summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Kalnischkies <kalnischkies@gmail.com>2013-05-31 18:19:09 +0200
committerDavid Kalnischkies <kalnischkies@gmail.com>2013-06-09 15:12:32 +0200
commit57da1b4bd21aceced30f658993fb811a5232cff7 (patch)
tree59d24dd51b69af65f15906d0a675e5e48f480ae8
parent564fcbf93c78deb48fa44a9a63b5602eedfa53a9 (diff)
downloadapt-57da1b4bd21aceced30f658993fb811a5232cff7.tar.gz
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.
-rw-r--r--buildlib/copy.mak2
-rw-r--r--buildlib/podomain.mak7
-rw-r--r--doc/makefile2
-rw-r--r--po/makefile15
-rw-r--r--test/interactive-helper/makefile1
-rw-r--r--test/libapt/makefile1
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