From 57da1b4bd21aceced30f658993fb811a5232cff7 Mon Sep 17 00:00:00 2001 From: David Kalnischkies Date: Fri, 31 May 2013 18:19:09 +0200 Subject: [PATCH] stop building l10n if strings are unchanged The buildsystem tried to build l10n for test applications which never produced the output it expected causing it to try building it all the time. --- buildlib/copy.mak | 2 +- buildlib/podomain.mak | 7 ++++++- doc/makefile | 2 +- po/makefile | 15 +++++++++++---- test/interactive-helper/makefile | 1 + test/libapt/makefile | 1 + 6 files changed, 21 insertions(+), 7 deletions(-) diff --git a/buildlib/copy.mak b/buildlib/copy.mak index e8fe43deb..3ae11a7eb 100644 --- a/buildlib/copy.mak +++ b/buildlib/copy.mak @@ -21,7 +21,7 @@ veryclean: veryclean/$(LOCAL) MKDIRS += $(dir $($(LOCAL)-LIST)) -$($(LOCAL)-LIST) : $(TO)/% : % dirs +$($(LOCAL)-LIST) : $(TO)/% : % echo Installing $< to $(@D) cp $< $(@D) diff --git a/buildlib/podomain.mak b/buildlib/podomain.mak index cca7d55be..265359abc 100644 --- a/buildlib/podomain.mak +++ b/buildlib/podomain.mak @@ -4,6 +4,8 @@ # declared domain of the make file. It also arranges to set the DOMAIN # CPPFLAG for the compilation. +ifneq ($(APT_DOMAIN),none) + MY_DOMAIN := $(PACKAGE) ifdef APT_DOMAIN $($(LOCAL)-OBJS): CPPFLAGS := $(CPPFLAGS) -DAPT_DOMAIN='"$(APT_DOMAIN)"' @@ -13,10 +15,13 @@ endif MKDIRS += $(PO_DOMAINS)/$(MY_DOMAIN) $(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list: SRC := $(addprefix $(SUBDIR)/,$(SOURCE)) $(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list: makefile dirs - (echo $(SRC) | xargs -n1 echo) > $@ + (echo $(SRC) | xargs -n1 echo) > $@.tmp + cmp --silent $@.tmp $@ || mv $@.tmp $@ startup binary program clean update-po: $(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list veryclean: veryclean/$(LOCAL) veryclean/po/$(LOCAL): LIST := $(PO_DOMAINS)/$(MY_DOMAIN)/$(LOCAL).$(TYPE)list veryclean/po/$(LOCAL): rm -f $(LIST) + +endif diff --git a/doc/makefile b/doc/makefile index 44a22a597..274fbc278 100644 --- a/doc/makefile +++ b/doc/makefile @@ -36,7 +36,7 @@ $(DOCDIRLIST) :: %/makefile : lang.makefile test -d $(dir $@) || mkdir $(dir $@) sed "s#@@LANG@@#$(subst /,,$(dir $@))#" $< > $@ -debiandoc/subdirs manpages/subdirs clean/subdirs veryclean/subdirs: dirs +debiandoc/subdirs manpages/subdirs clean/subdirs veryclean/subdirs: for dir in en $(dir $(DOCDIRLIST)); do \ $(MAKE) -C $$dir $(patsubst %/subdirs,%,$@); \ done diff --git a/po/makefile b/po/makefile index ebf6c06d0..5a3c7fb67 100644 --- a/po/makefile +++ b/po/makefile @@ -30,17 +30,23 @@ GETDOMAIN = $(word 1,$(subst /, ,$(1))) # and produce the .pot file. $(POTFILES) : $(PO)/%.pot : echo "Generating POT file $@" - echo $@ : $(wildcard $(PO)/domains/$*/*.*list) $(addprefix $(BASE)/,$(shell cat $(wildcard $(PO)/domains/$*/*.srclist))) > $@.d + echo $@ : $(wildcard $(PO)/domains/$*/*.*list) $(addprefix $(BASE)/,$(shell cat $(wildcard $(PO)/domains/$*/*.srclist))) > $@.d.tmp + cmp --silent $@.d.tmp $@.d || mv $@.d.tmp $@.d # From sh source - cat $(PO)/domains/$*/*.shlist 2> /dev/null | (cd $(BASE) && xargs -n1 bash --dump-po-strings) > $(PO)/domains/$*/sh.pot + cat $(PO)/domains/$*/*.shlist 2> /dev/null | (cd $(BASE) && xargs -n1 bash --dump-po-strings) > $(PO)/domains/$*/sh.pot.tmp + cmp --silent $(PO)/domains/$*/sh.pot.tmp $(PO)/domains/$*/sh.pot || \ + mv $(PO)/domains/$*/sh.pot.tmp $(PO)/domains/$*/sh.pot # From C/C++ source cat $(PO)/domains/$*/*.srclist > $(PO)/POTFILES_$*.in $(XGETTEXT) --default-domain=$* --directory=$(BASE) \ --add-comments --foreign --keyword=_ --keyword=N_ \ --keyword=P_:1,2 \ - --files-from=$(PO)/POTFILES_$*.in -o $(PO)/domains/$*/c.pot + --files-from=$(PO)/POTFILES_$*.in -o $(PO)/domains/$*/c.pot.tmp + cmp --silent $(PO)/domains/$*/c.pot.tmp $(PO)/domains/$*/c.pot || \ + mv $(PO)/domains/$*/c.pot.tmp $(PO)/domains/$*/c.pot rm -f $(PO)/POTFILES_$*.in - $(MSGCOMM) --omit-header --more-than=0 $(PO)/domains/$*/c.pot $(PO)/domains/$*/sh.pot --output=$@ + $(MSGCOMM) --omit-header --more-than=0 $(PO)/domains/$*/c.pot $(PO)/domains/$*/sh.pot --output=$@.tmp + cmp --silent $@ $@.tmp || mv $@.tmp $@ # copy into the domain dirs to make rosetta happy rm -f $(PO)/domains/$*/*.pot cp $@ $(PO)/domains/$* @@ -93,4 +99,5 @@ ifneq ($(words $(The_DFiles)),0) include $(The_DFiles) endif +# otherwise the output is completely screwed .NOTPARALLEL: diff --git a/test/interactive-helper/makefile b/test/interactive-helper/makefile index 10d1e44ec..fa4f5fecb 100644 --- a/test/interactive-helper/makefile +++ b/test/interactive-helper/makefile @@ -1,6 +1,7 @@ # -*- make -*- BASE=../.. SUBDIR=test/interactive-helper +APT_DOMAIN=none # Bring in the default rules include ../../buildlib/defaults.mak diff --git a/test/libapt/makefile b/test/libapt/makefile index 953e455e0..1b67cba9d 100644 --- a/test/libapt/makefile +++ b/test/libapt/makefile @@ -2,6 +2,7 @@ BASE=../.. SUBDIR=test/libapt BASENAME=_libapt_test +APT_DOMAIN=none # Bring in the default rules include ../../buildlib/defaults.mak -- 2.45.2