diff --git a/.gitignore b/.gitignore index 43881bda0..4102f3eee 100644 --- a/.gitignore +++ b/.gitignore @@ -13,6 +13,11 @@ windows/res/preferences \!NetSurf/Resources/nl/Templates,fec \!NetSurf/Resources/nl/Messages \!NetSurf/Resources/it/Messages +gtk/res/en/Messages +gtk/res/fr/Messages +gtk/res/de/Messages +gtk/res/nl/Messages +gtk/res/it/Messages test/nsoption test/nsurl test/urldbtest diff --git a/Makefile b/Makefile index d54bfd409..077d1944c 100644 --- a/Makefile +++ b/Makefile @@ -122,9 +122,23 @@ ifeq ($(filter $(VLDTARGET),$(TARGET)),) $(error Unknown TARGET "$(TARGET)", Must be one of $(VLDTARGET)) endif -SUBTARGET = -RESOURCES = +# ensure empty values for base variables +# Sub target for build +SUBTARGET= +# Resources executable target depends upon +RESOURCES= +# Messages executable target depends on +MESSAGES:= + +# The filter applied to the fat (full) messages to generate split messages +MESSAGES_FILTER=any +# The languages in the fat messages to convert +MESSAGES_LANGUAGES=de en fr it nl +# The target directory for the split messages +MESSAGES_TARGET=!NetSurf/Resources + +# Defaults for tools PERL=perl MKDIR=mkdir TOUCH=touch @@ -521,8 +535,7 @@ $(TOOLROOT)/created: $(OBJROOT)/created $(Q)$(MKDIR) $(TOOLROOT) $(Q)$(TOUCH) $(TOOLROOT)/created -CLEANS := clean-target clean-testament - +CLEANS := POSTEXES := # ---------------------------------------------------------------------------- @@ -567,6 +580,39 @@ S_COMMON := $(S_CONTENT) $(S_FETCHERS) $(S_CSS) $(S_RENDER) $(S_UTILS) \ $(S_HTTP) $(S_DESKTOP) $(S_JAVASCRIPT) +# ---------------------------------------------------------------------------- +# Message targets +# ---------------------------------------------------------------------------- + +# Message splitting rule generation macro +# 1 = Language +define split_messages +.INTERMEDIATE:$$(MESSAGES_TARGET)/$(1)/Messages.tmp + +$$(MESSAGES_TARGET)/$(1)/Messages.tmp: resources/FatMessages + $$(VQ)echo "MSGSPLIT: Language: $(1) Filter: $$(MESSAGES_FILTER)" + $$(Q)mkdir -p $$(MESSAGES_TARGET)/$(1) + $$(Q)$$(SPLIT_MESSAGES) -l $(1) -p $$(MESSAGES_FILTER) -f messages -o $$@ $$< + +$$(MESSAGES_TARGET)/$(1)/Messages: $$(MESSAGES_TARGET)/$(1)/Messages.tmp + $$(VQ)echo "COMPRESS: $$@" + $$(Q)gzip -9n < $$< > $$@ + +CLEAN_MESSAGES += $$(MESSAGES_TARGET)/$(1)/Messages +MESSAGES += $$(MESSAGES_TARGET)/$(1)/Messages + +endef + +# geenrate the message file rules +$(eval $(foreach LANG,$(MESSAGES_LANGUAGES), \ + $(call split_messages,$(LANG)))) + +clean-messages: + $(VQ)echo " CLEAN: $(CLEAN_MESSAGES)" + $(Q)$(RM) $(CLEAN_MESSAGES) +CLEANS += clean-messages + + # ---------------------------------------------------------------------------- # Source file setup # ---------------------------------------------------------------------------- @@ -580,7 +626,7 @@ endif OBJECTS := $(sort $(addprefix $(OBJROOT)/,$(subst /,_,$(patsubst %.c,%.o,$(patsubst %.cpp,%.o,$(patsubst %.m,%.o,$(patsubst %.s,%.o,$(SOURCES)))))))) -$(EXETARGET): $(OBJECTS) $(RESOURCES) +$(EXETARGET): $(OBJECTS) $(RESOURCES) $(MESSAGES) $(VQ)echo " LINK: $(EXETARGET)" ifneq ($(TARGET)$(SUBTARGET),riscos-elf) $(Q)$(CC) -o $(EXETARGET) $(OBJECTS) $(LDFLAGS) @@ -615,11 +661,12 @@ endif clean-target: $(VQ)echo " CLEAN: $(EXETARGET)" $(Q)$(RM) $(EXETARGET) - $(call clean_install_messages, !NetSurf/Resources) +CLEANS += clean-target clean-testament: $(VQ)echo " CLEAN: testament.h" $(Q)$(RM) $(OBJROOT)/testament.h +CLEANS += clean-testament clean-builddir: $(VQ)echo " CLEAN: $(OBJROOT)" @@ -627,15 +674,12 @@ clean-builddir: CLEANS += clean-builddir -.PHONY: all-program all-messages testament +.PHONY: all-program testament testament $(OBJROOT)/testament.h: $(Q)$(PERL) utils/git-testament.pl $(CURDIR) $(OBJROOT)/testament.h -all-messages: - $(call split_install_messages, any, !NetSurf/Resources) - -all-program: all-messages $(EXETARGET) $(POSTEXES) +all-program: $(EXETARGET) $(POSTEXES) .SUFFIXES: @@ -758,25 +802,6 @@ clean: $(CLEANS) # Target builds a distribution package package: all-program package-$(TARGET) -FAT_LANGUAGES=de en fr it nl -# 1 = front end name (gtk, ro, ami, etc) -# 2 = Destination directory (where resources being installed, creates en/Messages etc) -# 3 = suffix after language name -define split_install_messages - $(foreach LANG, $(FAT_LANGUAGES), @echo MSGSPLIT: $(1)/$(LANG) to $(2) - $(Q)mkdir -p $(2)/$(LANG)$(3) - $(Q)$(SPLIT_MESSAGES) -l $(LANG) -p $(1) -f messages resources/FatMessages | gzip -9n > $(2)$(3)/$(LANG)/Messages - ) -endef - -# Clean Message target -# 1 = Destination directory (where resources being installed, creates en/Messages etc) -# 2 = suffix after language name -define clean_install_messages - $(foreach LANG, $(FAT_LANGUAGES), @echo MSGCLEAN: $(LANG) in $(1) - $(Q)$(RM) -f $(1)$(2)/$(LANG)/Messages - ) -endef .PHONY: messages-split-tfx messages-fetch-tfx messages-import-tfx diff --git a/gtk/Makefile.target b/gtk/Makefile.target index e69f6c267..23c01457e 100644 --- a/gtk/Makefile.target +++ b/gtk/Makefile.target @@ -121,8 +121,14 @@ S_GTK := $(addprefix gtk/,$(S_GTK)) $(addprefix utils/,container.c) # Note this is deliberately *not* expanded here as common and image # are not yet available SOURCES = $(S_COMMON) $(S_IMAGE) $(S_BROWSER) $(S_PIXBUF) $(S_GTK) + +# The gtk binary target EXETARGET := nsgtk +# The filter and target for split messages +MESSAGES_FILTER=gtk +MESSAGES_TARGET=gtk/res + # ---------------------------------------------------------------------------- # Install target # ---------------------------------------------------------------------------- @@ -150,7 +156,6 @@ install-gtk: $(Q)install -m 0644 gtk/res/throbber/*.png $(DESTDIR)$(NETSURF_GTK_RESOURCES)/throbber $(Q)tar -c -h -C gtk/res -f - themes | tar -xv -C $(DESTDIR)$(NETSURF_GTK_RESOURCES) -f - $(Q)tar -c -h -C gtk/res -f - $(GTK_TRANSLATIONS_HTML) | tar -xv -C $(DESTDIR)$(NETSURF_GTK_RESOURCES) -f - - $(call split_install_messages, gtk, $(DESTDIR)$(NETSURF_GTK_RESOURCES)) $(Q)install -m 0644 $(GTK_RESOURCES_LIST) $(DESTDIR)$(NETSURF_GTK_RESOURCES) # ---------------------------------------------------------------------------- diff --git a/gtk/res/de/Messages b/gtk/res/de/Messages deleted file mode 120000 index 2f1fc39c3..000000000 --- a/gtk/res/de/Messages +++ /dev/null @@ -1 +0,0 @@ -../../../!NetSurf/Resources/de/Messages \ No newline at end of file diff --git a/gtk/res/en/Messages b/gtk/res/en/Messages deleted file mode 120000 index 72c9eff90..000000000 --- a/gtk/res/en/Messages +++ /dev/null @@ -1 +0,0 @@ -../../../!NetSurf/Resources/en/Messages \ No newline at end of file diff --git a/gtk/res/fr/Messages b/gtk/res/fr/Messages deleted file mode 120000 index a42cf08f4..000000000 --- a/gtk/res/fr/Messages +++ /dev/null @@ -1 +0,0 @@ -../../../!NetSurf/Resources/fr/Messages \ No newline at end of file diff --git a/gtk/res/it/Messages b/gtk/res/it/Messages deleted file mode 120000 index d4c5c2956..000000000 --- a/gtk/res/it/Messages +++ /dev/null @@ -1 +0,0 @@ -../../../!NetSurf/Resources/it/Messages \ No newline at end of file diff --git a/gtk/res/nl/Messages b/gtk/res/nl/Messages deleted file mode 120000 index d484ebd29..000000000 --- a/gtk/res/nl/Messages +++ /dev/null @@ -1 +0,0 @@ -../../../!NetSurf/Resources/nl/Messages \ No newline at end of file