From dc9339b5699ee3b0d48145a1389f93e9e09d02a6 Mon Sep 17 00:00:00 2001 From: Luke Shumaker Date: Mon, 30 Jan 2017 14:46:36 -0500 Subject: Update and tidy the build system for autothing v3. --- Makefile | 45 ++++++++++++++++++++++++++------------------- 1 file changed, 26 insertions(+), 19 deletions(-) (limited to 'Makefile') diff --git a/Makefile b/Makefile index 0e9caa2..5e83abc 100644 --- a/Makefile +++ b/Makefile @@ -2,40 +2,47 @@ include $(dir $(lastword $(MAKEFILE_LIST)))/config.mk include $(topsrcdir)/build-aux/Makefile.head.mk # these are the resulting packages -packages=libretools librelib gitget xbs +pkgs=libretools librelib gitget xbs # and which directories they contain -libretools=\ +pkg.libretools=\ src \ src/abslibre-tools \ src/chroot-tools \ src/devtools \ src/librefetch \ src/toru -librelib=src/lib -gitget=src/gitget -xbs=\ +pkg.librelib=src/lib +pkg.gitget=src/gitget +pkg.xbs=\ src/xbs \ src/xbs-abs \ src/xbs-abslibre -verbs=build install uninstall mostlyclean clean distclean maintainer-clean check -$(foreach verb,$(verbs),$(foreach package,$(packages),$(eval $(verb)-$(package): $(addsuffix /$(verb),$($(package)))))) -$(foreach verb,$(verbs),$(foreach package,$(packages),$(eval .PHONY: $(verb)-$(package)))) +define _pkg_rule +%(verb)-%(pkg): $(addsuffix /%(verb),$(pkg.%(pkg))) +.PHONY: %(verb)-%(pkg) +endef +$(eval $(foreach verb,$(nested.targets),$(foreach pkg,$(pkgs),\ + $(subst %(verb),$(verb),$(subst %(pkg),$(pkg),$(value _pkg_rule)))$(at.nl)))) -$(outdir)/check:: +$(outdir)/check: cd $(@D)/test && ./testenv $(TESTENVFLAGS) roundup _po_rule = \ -po/%(package).pot: $(addsuffix /everything.pot,$(%(package))); \ - cat $^ | msguniq -Fi --to-code=UTF-8 > '$@' || rm -f '$@' -$(foreach package,$(packages),$(eval $(subst %(package),$(package),$(value _po_rule)))) +po/%(pkg).pot: $(addsuffix /everything.pot,$(pkg.%(pkg))); \ + cat $^ | msguniq -Fi --to-code=UTF-8 > '$@' +$(eval $(foreach pkg,$(pkgs),\ + $(subst %(pkg),$(pkg),$(value _po_rule))$(at.nl))) -pots = -std.out_files += $(foreach package,$(packages),po/$(package).pot) -std.clean_files += .var.* -std.gen_files += .srcversion-libretools.mk .srcversion-devtools.mk -at.subdirs = src $(foreach package,$(packages),$($(package))) -detect-ignore-md += HACKING/% -detect-ignore-exec += build-aux/% +libretools.out.mans = +libretools.out.bins = +libretools.out.libexecs = +libretools.out.libs = +libretools.out.docs = +libretools.out.confs = +libretools.out = $(foreach pkg,$(pkgs),po/$(pkg).pot) + +files.src.gen += .srcversion-libretools.mk .srcversion-devtools.mk +nested.subdirs = $(foreach pkg,$(pkgs),$(pkg.$(pkg))) include $(topsrcdir)/build-aux/Makefile.tail.mk -- cgit v1.2.3