summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.gitignore5
-rw-r--r--Makefile87
-rw-r--r--gtk/Makefile.target7
l---------gtk/res/de/Messages1
l---------gtk/res/en/Messages1
l---------gtk/res/fr/Messages1
l---------gtk/res/it/Messages1
l---------gtk/res/nl/Messages1
8 files changed, 67 insertions, 37 deletions
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 :=
# ----------------------------------------------------------------------------
@@ -568,6 +581,39 @@ S_COMMON := $(S_CONTENT) $(S_FETCHERS) $(S_CSS) $(S_RENDER) $(S_UTILS) \
# ----------------------------------------------------------------------------
+# 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