summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile43
-rw-r--r--build-aux/Makefile.each.head/20-libretools.mk2
-rw-r--r--build-aux/Makefile.each.tail/20-libretools.mk36
-rw-r--r--build-aux/Makefile.once.head/00-libretools.mk7
-rw-r--r--po/Makefile2
-rw-r--r--po/subdir.mk8
-rw-r--r--src/Makefile14
-rw-r--r--src/chroot-tools/Makefile2
-rw-r--r--src/devtools/Makefile2
-rw-r--r--src/gitget/Makefile2
-rw-r--r--src/lib/Makefile2
-rw-r--r--src/xbs-abs/Makefile5
-rw-r--r--src/xbs-abslibre/Makefile1
-rw-r--r--src/xbs/Makefile1
14 files changed, 65 insertions, 62 deletions
diff --git a/Makefile b/Makefile
index 9992d49..1252b64 100644
--- a/Makefile
+++ b/Makefile
@@ -1,29 +1,15 @@
include $(dir $(lastword $(MAKEFILE_LIST)))/config.mk
include $(topsrcdir)/build-aux/Makefile.head.mk
-# these are the resulting packages
-pkgs=libretools librelib gitget xbs
-# and which directories they contain
-pkg.libretools=\
- src \
- src/abslibre-tools \
- src/chroot-tools \
- src/devtools \
- src/librefetch \
- src/toru
-pkg.librelib=src/lib
-pkg.gitget=src/gitget
-pkg.xbs=\
- src/xbs \
- src/xbs-abs \
- src/xbs-abslibre
+libretools.out.mans =
+libretools.out.bins =
+libretools.out.libexecs =
+libretools.out.libs =
+libretools.out.docs =
+libretools.out.confs =
-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))))
+files.src.gen += .srcversion-libretools.mk .srcversion-devtools.mk
+nested.subdirs = src po
$(outdir)/check:
cd $(@D)/test && ./testenv $(TESTENVFLAGS) roundup
@@ -39,17 +25,4 @@ $(outdir)/shellcheck: private shellcheck.prune += -o -type f -name source.sh.gen
$(outdir)/shellcheck:
cd $(@D)/test && ./testenv $(TESTENVFLAGS) 'cd "$$TMPDIR/destdir" && find \( $(shellcheck.prune) \) -prune -o -not -type d -exec shellcheck $(shellcheck.flags) {} +'
-$(eval $(foreach pkg,$(pkgs),\
- $(call at.path,$(srcdir)/po/$(pkg).pot): $(call at.addprefix,$(topsrcdir),$(addsuffix /dir.pot,$(pkg.$(pkg))))$(at.nl)))
-
-libretools.out.mans =
-libretools.out.bins =
-libretools.out.libexecs =
-libretools.out.libs =
-libretools.out.docs =
-libretools.out.confs =
-
-files.src.gen += .srcversion-libretools.mk .srcversion-devtools.mk
-nested.subdirs = $(foreach pkg,$(pkgs),$(pkg.$(pkg))) po
-
include $(topsrcdir)/build-aux/Makefile.tail.mk
diff --git a/build-aux/Makefile.each.head/20-libretools.mk b/build-aux/Makefile.each.head/20-libretools.mk
index 470db51..22f59ba 100644
--- a/build-aux/Makefile.each.head/20-libretools.mk
+++ b/build-aux/Makefile.each.head/20-libretools.mk
@@ -19,6 +19,8 @@ pkglibdir = $(libdir)/libretools
# Auto-detect ########################################################
+libretools.pkg = libretools
+
libretools.src.devtools =
libretools.out.mans = $(patsubst %.ronn,%,$(libretools.src.ronn))
diff --git a/build-aux/Makefile.each.tail/20-libretools.mk b/build-aux/Makefile.each.tail/20-libretools.mk
index 945b0ea..9b1a6e3 100644
--- a/build-aux/Makefile.each.tail/20-libretools.mk
+++ b/build-aux/Makefile.each.tail/20-libretools.mk
@@ -21,23 +21,28 @@ endif
# Connect with `files` module ########################################
files.src.gen += $(libretools.src.devtools)
-files.out.all += $(filter-out $(files.src),$(libretools.out)) \
- $(if $(strip $(libretools.pots)),dir.pot)
-files.sys.all += $(addprefix $(bindir)/,$(libretools.out.bins)) \
- $(addprefix $(pkgconfdir)/,$(libretools.out.confs)) \
- $(addprefix $(pkglibdir)/,$(libretools.out.libs)) \
- $(addprefix $(pkglibexecdir)/,$(libretools.out.libexecs)) \
- $(addprefix $(docdir)/,$(libretools.out.docs)) \
- $(addprefix $(mandir)/man1/,$(filter %.1,$(libretools.out.mans))) \
- $(addprefix $(mandir)/man2/,$(filter %.2,$(libretools.out.mans))) \
- $(addprefix $(mandir)/man3/,$(filter %.3,$(libretools.out.mans))) \
- $(addprefix $(mandir)/man4/,$(filter %.4,$(libretools.out.mans))) \
- $(addprefix $(mandir)/man5/,$(filter %.5,$(libretools.out.mans))) \
- $(addprefix $(mandir)/man6/,$(filter %.6,$(libretools.out.mans))) \
- $(addprefix $(mandir)/man7/,$(filter %.7,$(libretools.out.mans))) \
- $(addprefix $(mandir)/man8/,$(filter %.8,$(libretools.out.mans)))
+files.out.$(libretools.pkg) += \
+ $(filter-out $(files.src),$(libretools.out)) \
+ $(if $(strip $(libretools.pots)),dir.pot)
+files.sys.$(libretools.pkg) += \
+ $(addprefix $(bindir)/,$(libretools.out.bins)) \
+ $(addprefix $(pkgconfdir)/,$(libretools.out.confs)) \
+ $(addprefix $(pkglibdir)/,$(libretools.out.libs)) \
+ $(addprefix $(pkglibexecdir)/,$(libretools.out.libexecs)) \
+ $(addprefix $(docdir)/,$(libretools.out.docs)) \
+ $(addprefix $(mandir)/man1/,$(filter %.1,$(libretools.out.mans))) \
+ $(addprefix $(mandir)/man2/,$(filter %.2,$(libretools.out.mans))) \
+ $(addprefix $(mandir)/man3/,$(filter %.3,$(libretools.out.mans))) \
+ $(addprefix $(mandir)/man4/,$(filter %.4,$(libretools.out.mans))) \
+ $(addprefix $(mandir)/man5/,$(filter %.5,$(libretools.out.mans))) \
+ $(addprefix $(mandir)/man6/,$(filter %.6,$(libretools.out.mans))) \
+ $(addprefix $(mandir)/man7/,$(filter %.7,$(libretools.out.mans))) \
+ $(addprefix $(mandir)/man8/,$(filter %.8,$(libretools.out.mans)))
files.out.int += *.pot *.ugly *.rej *.orig
+files.out.all += $(foreach pkg,$(filter-out all,$(files.groups)),$(files.out.$(pkg)))
+files.sys.all += $(foreach pkg,$(filter-out all,$(files.groups)),$(files.sys.$(pkg)))
+
# Generate rules #####################################################
$(srcdir)/%.in: $(devtoolsdir)/%.in
cp -T '$<' '$@'
@@ -57,6 +62,7 @@ $(srcdir)/%.pot: $(srcdir)/% $(topsrcdir)/src/lib/librexgettext
cd $(<D) && $(abspath $(topsrcdir)/src/lib/librexgettext) $(LIBREXGETTEXT_FLAGS) $(<F) > $(@F)
$(srcdir)/dir.pot: $(addprefix $(outdir)/,$(addsuffix .pot,$(libretools.pots)))
cat $^ | $(libretools.pofmt) > '$@'
+$(call at.path,$(topsrcdir)/po/$(libretools.pkg).pot): $(srcdir)/dir.pot
# Install rules ######################################################
$(DESTDIR)$(pkgconfdir)/% : $(outdir)/% ; install -T -Dm644 '$<' '$@'
diff --git a/build-aux/Makefile.once.head/00-libretools.mk b/build-aux/Makefile.once.head/00-libretools.mk
index f3462d5..eb73476 100644
--- a/build-aux/Makefile.once.head/00-libretools.mk
+++ b/build-aux/Makefile.once.head/00-libretools.mk
@@ -1,4 +1,4 @@
-# Copyright (C) 2015, 2017 Luke Shumaker
+# Copyright (C) 2015, 2017-2018 Luke Shumaker
#
# This program is free software: you can redistribute it and/or modify
# it under the terms of the GNU Affero General Public License as published by
@@ -38,6 +38,7 @@ define mod.libretools.doc
# - `libretools.edit`
# - `libretools.pofmt`
# - Source information
+# - Directory variable : `libretools.pkg = libretools`
# - Directory variable : `libretools.src`
# - Directory variable : `libretools.src.exec`
# - Directory variable : `libretools.src.conf`
@@ -51,8 +52,11 @@ define mod.libretools.doc
# - Global variable : `DEVTOOLS_VERSION`
# - Global variable : `DEVTOOLS_COMMIT`
# - Primary outputs:
+# - Global variable : `files.groups`
# - Directory variable : `files.src.gen`
+# - Directory variable : `files.out.$(libretools.pkg)`
# - Directory variable : `files.out.all`
+# - Directory variable : `files.sys.$(libretools.pkg)`
# - Directory variable : `files.sys.all`
# - Directory variable : `files.out.int`
# - Target : `$(srcdir)/%.in: $(devtoolsdir)/%.in`
@@ -76,6 +80,7 @@ mod.quote.doc := $(value mod.quote.doc)
# Configure how Autothing modules work ###############################
gitfiles.file = .srcfiles.mk
+files.groups = all libretools librelib gitget xbs
# Boilerplate ########################################################
.PHONY: FORCE
diff --git a/po/Makefile b/po/Makefile
index b27844c..d1d72a0 100644
--- a/po/Makefile
+++ b/po/Makefile
@@ -1,7 +1,7 @@
include $(dir $(lastword $(MAKEFILE_LIST)))/../config.mk
include $(topsrcdir)/build-aux/Makefile.head.mk
-domains = libretools librelib gitget xbs
+domains = $(filter-out all,$(files.groups))
locales := $(filter-out .,$(sort $(patsubst %/,%,$(dir $(files.src.src)))))
files.src.gen += $(addsuffix .pot,$(domains))
diff --git a/po/subdir.mk b/po/subdir.mk
index b9a2575..9d07d3c 100644
--- a/po/subdir.mk
+++ b/po/subdir.mk
@@ -11,8 +11,12 @@ $(outdir)/%.mo: $(srcdir)/%.po $(call at.path,$(srcdir)/../%.pot)
$(DESTDIR)$(localedir)/$(locale)/LC_MESSAGES/%.mo: $(outdir)/%.mo
install -T -Dm644 '$<' '$@'
-files.out.all += $(addsuffix .mo,$(domains))
-files.sys.all += $(foreach domain,$(domains),$(localedir)/$(locale)/LC_MESSAGES/$(domain).mo)
+define _domain_rule
+files.out.$(domain) += $(domain).mo
+files.sys.$(domain) += $(localedir)/$(locale)/LC_MESSAGES/$(domain).mo
+endef
+$(eval $(foreach domain,$(domains),$(_domain_rule)$(at.nl)))
+
at.subdirs += ..
include $(topsrcdir)/build-aux/Makefile.tail.mk
diff --git a/src/Makefile b/src/Makefile
index 2ba9534..e148732 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -3,9 +3,15 @@ include $(topsrcdir)/build-aux/Makefile.head.mk
pkgconfdir = $(sysconfdir)
-# Because against all common sense, the subdirectories of this
-# directory aren't `nested.subdirs`, gitfiles includes the files in
-# them in `files.src.src`. So, filter-out everything with a slash.
-files.src.src := $(foreach f,$(files.src.src),$(if $(findstring /,$f),, $f ))
+nested.subdirs += abslibre-tools
+nested.subdirs += chroot-tools
+nested.subdirs += devtools
+nested.subdirs += gitget
+nested.subdirs += lib
+nested.subdirs += librefetch
+nested.subdirs += toru
+nested.subdirs += xbs
+nested.subdirs += xbs-abs
+nested.subdirs += xbs-abslibre
include $(topsrcdir)/build-aux/Makefile.tail.mk
diff --git a/src/chroot-tools/Makefile b/src/chroot-tools/Makefile
index 412ebb5..de79819 100644
--- a/src/chroot-tools/Makefile
+++ b/src/chroot-tools/Makefile
@@ -9,7 +9,7 @@ libretools.out.bins = librechroot libremakepkg
libretools.out.libexecs = arch-nspawn chcleanup distcc-tool indent mkarchroot
libretools.out.libs = $(libretools.src.sh) makechrootpkg.sh
files.out.int += chcleanup.lib
-files.sys.all += $(bindir)/chcleanup # not in libretools.out.bins because explicit rule
+files.sys.libretools += $(bindir)/chcleanup # not in libretools.out.bins because explicit rule
$(srcdir)/makechrootpkg.sh.in: $(srcdir)/makechrootpkg.in
sed -e '1s^.*^#!/hint/bash -euE^' -e '/^\s*main "$$@"\s*$$/d' < $< > $@
diff --git a/src/devtools/Makefile b/src/devtools/Makefile
index 4b7af11..f904406 100644
--- a/src/devtools/Makefile
+++ b/src/devtools/Makefile
@@ -3,7 +3,7 @@ include $(topsrcdir)/build-aux/Makefile.head.mk
libretools.out.bins = checkpkg find-libdeps finddeps lddd
libretools.src.devtools = $(addsuffix .in,$(libretools.out.bins))
-files.sys.all += $(bindir)/find-libprovides
+files.sys.libretools += $(bindir)/find-libprovides
$(DESTDIR)$(bindir)/find-libprovides:
$(MKDIR_P) $(@D)
diff --git a/src/gitget/Makefile b/src/gitget/Makefile
index a1b7765..a846b09 100644
--- a/src/gitget/Makefile
+++ b/src/gitget/Makefile
@@ -1,4 +1,6 @@
include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk
include $(topsrcdir)/build-aux/Makefile.head.mk
+libretools.pkg = gitget
+
include $(topsrcdir)/build-aux/Makefile.tail.mk
diff --git a/src/lib/Makefile b/src/lib/Makefile
index 515f856..1871e19 100644
--- a/src/lib/Makefile
+++ b/src/lib/Makefile
@@ -1,6 +1,8 @@
include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk
include $(topsrcdir)/build-aux/Makefile.head.mk
+libretools.pkg = librelib
+
libretools.src.devtools = common.sh.in archroot.sh.in
libretools.out.libs += common.sh archroot.sh conf.sh
diff --git a/src/xbs-abs/Makefile b/src/xbs-abs/Makefile
index c2d6bc9..907b3d0 100644
--- a/src/xbs-abs/Makefile
+++ b/src/xbs-abs/Makefile
@@ -1,6 +1,7 @@
include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk
include $(topsrcdir)/build-aux/Makefile.head.mk
+libretools.pkg = xbs
pkgconfdir = $(sysconfdir)/xbs
pkglibexecdir = $(libexecdir)/xbs
@@ -13,8 +14,8 @@ libretools.out.bins =
libretools.out.libexecs = helper-abs
libretools.out.libs = valid-tags.sh
-files.out.all += $(_helpers)
-files.sys.all += $(addprefix $(pkglibexecdir)/helper-abs.d/,$(_helpers))
+files.out.xbs += $(_helpers)
+files.sys.xbs += $(addprefix $(pkglibexecdir)/helper-abs.d/,$(_helpers))
$(outdir)/commitpkg: $(srcdir)/commitpkg.in
@echo "OUT $@"
diff --git a/src/xbs-abslibre/Makefile b/src/xbs-abslibre/Makefile
index a86b958..068e6e4 100644
--- a/src/xbs-abslibre/Makefile
+++ b/src/xbs-abslibre/Makefile
@@ -1,6 +1,7 @@
include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk
include $(topsrcdir)/build-aux/Makefile.head.mk
+libretools.pkg = xbs
pkglibexecdir = $(libexecdir)/xbs
libretools.out.bins =
diff --git a/src/xbs/Makefile b/src/xbs/Makefile
index bc9f4c8..6a39658 100644
--- a/src/xbs/Makefile
+++ b/src/xbs/Makefile
@@ -1,6 +1,7 @@
include $(dir $(lastword $(MAKEFILE_LIST)))/../../config.mk
include $(topsrcdir)/build-aux/Makefile.head.mk
+libretools.pkg = xbs
pkgconfdir = $(sysconfdir)/xbs
include $(topsrcdir)/build-aux/Makefile.tail.mk