### Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,
### USA.
-all::
+all:
clean::
check::
.PHONY: all clean check
sha256sum sha384sum sha512sum shred shuf sort split stat \
stdbuf sum tac tail tee test timeout tr truncate tsort tty \
unexpand uniq unlink users wc who whoami yes) \
- /usr/lib/MULTI/coreutils/ \
+ ?/usr/lib/MULTI/coreutils/ \
$(addprefix /lib/MULTI/, \
libnsl.so.* libnss_*.so.*) \
/usr/bin/gpgv \
$(addprefix /usr/bin/$a-, \
cpp gcc g++ gcov gcov-dump gcov-tool gprof \
gcc-ar gcc-nm gcc-ranlib) \
- /usr/lib/gcc-cross/$a/)
+ /usr/lib/gcc-cross/$a/ \
+ /usr/$a/include/c++)
## Local packages to be compiled and installed in chroots. Archives can be
## found in `pkg/'.
## Which distribution of Qemu to use.
CONFIG_VARS += $(foreach d,$(DISTS),$d_QEMUDIST)
+stretch_QEMUDIST = buster
## Qemu architecture names. These tell us which Qemu binary to use for a
## particular Debian architecture.
SILENCE_LVM = \
LVM_SUPPRESS_FD_WARNINGS=1; export LVM_SUPPRESS_FD_WARNINGS
+## $(call file-name,PATH)
+##
+## Strip any trailing `/' from the PATH.
+file-name = $(1:/=)
+
+## $(call base-name,PATH)
+##
+## Expand to the last component of PATH, whether or not it's a directory
+## name with a trailing `/'.
+base-name = $(notdir $(call file-name,$1))
+
+## $(call parent-dir,PATH)
+##
+## Expand to the parent directory of PATH, whether or not it's a directory
+## name with a trailing `/'.
+## `/'.
+parent-dir = $(dir $(call file-name,$1))
+
## $(call definedp,VAR)
##
## Expand non-empty if and only if VAR is defined (but possibly empty).
$(call v_tag,CC)$(CC) -c $(CFLAGS) $(PYEXT_CFLAGS) -o$@ $<
PYMODULES = $(foreach x,$(PYEXTS),$(STATE)/lib/python/$x.so)
-all:: $(PYMODULES)
+all: $(PYMODULES)
$(PYMODULES): $(STATE)/lib/python/%.so: $$(call c-object,$$($$*_SOURCES))
$(V_AT)mkdir -p $(dir $@)
$(call v_tag,LD)$(LD) $(LDFLAGS) $(PYEXT_LDFLAGS) -o$@ $^
SCRIPTS += mkchrootconf
SUBST_SCRIPTS = $(addprefix $(STATE)/bin/,$(SCRIPTS))
-all:: $(SUBST_SCRIPTS)
+all: $(SUBST_SCRIPTS)
$(SUBST_SCRIPTS): $(STATE)/bin/%: bin/% $(STATE)/config.sh
$(V_AT)mkdir -p $(dir $@)
$(call v_tag,SUBST){ \
## In a chroot, `/etc/apt/sources.list' links to
## `/usr/local.schroot/etc/apt/sources.$d' for the appropriate distribution.
APT_SOURCES = $(foreach d,$(DISTS),$(LOCAL)/etc/apt/sources.$d)
-all:: $(APT_SOURCES)
+all: $(APT_SOURCES)
$(foreach d,$(DISTS),$(STATE)/etc/apt/aptsrc.$d): $(STATE)/etc/apt/aptsrc.%:
$(V_AT)mkdir -p $(dir $@)
## In a chroot, a link `/etc/apt/apt.conf.d/FOO' is created for each file in
## `/usr/local.schroot/etc/apt/apt.conf.d/FOO'.
APT_CONFIGS = $(addprefix $(LOCAL)/etc/apt/apt.conf.d/,$(APTCONF))
-all:: $(APT_CONFIGS)
+all: $(APT_CONFIGS)
$(APT_CONFIGS): $(LOCAL)/etc/apt/apt.conf.d/%: \
$$(or $$(_$$*_APTCONFSRC) etc/apt-conf.d/$$*)
$(V_AT)mkdir -p $(dir $@)
EATMYDATA_HACKS += apt-get aptitude dpkg
SYMLINK_EATMYDATA_HACKS = $(addprefix $(LOCAL)/hacks/,$(EATMYDATA_HACKS))
-all:: $(SYMLINK_EATMYDATA_HACKS)
+all: $(SYMLINK_EATMYDATA_HACKS)
$(SYMLINK_EATMYDATA_HACKS): $(LOCAL)/hacks/%: \
$$(if $$(call symlink-ok-p,$$@,/usr/bin/eatmydata),,_force)
$(V_AT)mkdir -p $(dir $@)
SCRIPT_HACKS += buildwrap
COPY_SCRIPT_HACKS = $(addprefix $(LOCAL)/hacks/,$(SCRIPT_HACKS))
-all:: $(COPY_SCRIPT_HACKS)
+all: $(COPY_SCRIPT_HACKS)
$(COPY_SCRIPT_HACKS): $(LOCAL)/hacks/%: bin/%
$(V_AT)mkdir -p $(dir $@)
$(call v_tag,COPY)cp $< $@.new && mv $@.new $@
###--------------------------------------------------------------------------
### `schroot' and `sbuild' configuration.
-all:: schroot-config
-schroot-config::
+all: schroot-config
+schroot-config:
.PHONY: schroot-config
check::; $(call check-mountpoint,WARN,/var/lib/sbuild/build)
$(call v_tag,GEN)$(call %print-varlist,$(CONFIG_VARS)) \
>$@.new && mv $@.new $@
-schroot-config:: $(STATE)/config.sh
+schroot-config: $(STATE)/config.sh
$(STATE)/config.sh: $(schroot-config_FILE)
$(call v_tag,SYMLINK)ln -sf $(notdir $<) $@
-schroot-config:: $(LOCAL)/etc/schroot/sbuild.schroot
+schroot-config: $(LOCAL)/etc/schroot/sbuild.schroot
$(LOCAL)/etc/schroot/sbuild.schroot: $(STATE)/bin/mkchrootconf
$(V_AT)mkdir -p $(dir $@)
$(call v_tag,GEN)$(STATE)/bin/mkchrootconf >$@.new && \
CLEANFILES += $(LOCAL)/etc/schroot/sbuild.schroot
check::; $(call check-symlink,WARN,/etc/schroot/chroot.d/sbuild,$(ABSLOCAL)/etc/schroot/sbuild.schroot)
-schroot-config:: $(LOCAL)/etc/schroot/sbuild.profile/copyfiles
+schroot-config: $(LOCAL)/etc/schroot/sbuild.profile/copyfiles
$(LOCAL)/etc/schroot/sbuild.profile/copyfiles: $(schroot-config_STAMP)
$(V_AT)mkdir -p $(dir $@)
$(call v_tag,GEN){ \
} >$@.new && mv $@.new $@
CLEANFILES += $(LOCAL)/etc/schroot/sbuild.profile/copyfiles
-schroot-config:: $(LOCAL)/etc/schroot/sbuild.profile/nssdatabases
+schroot-config: $(LOCAL)/etc/schroot/sbuild.profile/nssdatabases
$(LOCAL)/etc/schroot/sbuild.profile/nssdatabases: $(schroot-config_STAMP)
$(V_AT)mkdir -p $(dir $@)
$(call v_tag,GEN){ \
} >$@.new && mv $@.new $@
CLEANFILES += $(LOCAL)/etc/schroot/sbuild.profile/nssdatabases
-schroot-config:: $(LOCAL)/etc/schroot/sbuild.profile/fstab
+schroot-config: $(LOCAL)/etc/schroot/sbuild.profile/fstab
$(LOCAL)/etc/schroot/sbuild.profile/fstab: \
etc/sbuild.fstab.in $(schroot-config_STAMP)
$(V_AT)mkdir -p $(dir $@)
check::; $(call check-symlink,WARN,/etc/schroot/sbuild,$(ABSLOCAL)/etc/schroot/sbuild.profile)
-schroot-config:: $(LOCAL)/etc/sbuild.conf
+schroot-config: $(LOCAL)/etc/sbuild.conf
$(LOCAL)/etc/sbuild.conf: etc/sbuild.conf.in $(schroot-config_STAMP)
$(V_AT)mkdir -p $(dir $@)
$(call v_tag,SUBST)$(call subst-file,### -*-perl-*-) \
SCHROOT_SCRIPTS += 15binfmt
SCHROOT_SCRIPTS += 51chrootenv
COPY_SCHROOT_SCRIPTS = $(addprefix $(LOCAL)/etc/schroot/setup.d/,$(SCHROOT_SCRIPTS))
-schroot-config:: $(COPY_SCHROOT_SCRIPTS)
+schroot-config: $(COPY_SCHROOT_SCRIPTS)
$(COPY_SCHROOT_SCRIPTS): \
$(LOCAL)/etc/schroot/setup.d/%: etc/schroot-scripts/%
$(V_AT)mkdir -p $(dir $@)
CCACHE_CONFIGS = $(foreach r,$(ALL_CHROOTS), \
/var/lib/sbuild/build/.ccache/$(LVPREFIX)$r/ccache.conf)
-all:: $(CCACHE_CONFIGS)
+all: $(CCACHE_CONFIGS)
$(CCACHE_CONFIGS): /var/lib/sbuild/build/.ccache/$(LVPREFIX)%/ccache.conf: \
etc/ccache.conf
$(V_AT)mkdir -p $(dir $@)
LOCAL_COMMON_DIRS = share/ src/
LOCAL_EXTRA_DIRS = share/man/
-all:: $(foreach d,$(LOCAL_COMMON_DIRS) $(LOCAL_EXTRA_DIRS),$(LOCAL)/$d)
+all: $(foreach d,$(LOCAL_COMMON_DIRS) $(LOCAL_EXTRA_DIRS),$(LOCAL)/$d)
$(foreach d,$(LOCAL_COMMON_DIRS) $(LOCAL_EXTRA_DIRS),$(LOCAL)/$d):
- $(V_AT)mkdir -p $(dir $(patsubst %/,%,$@))
+ $(V_AT)mkdir -p $(call parent-dir $@)
$(call v_tag,MKDIR)mkdir $@
LOCAL_ARCH_DIRS = bin/ etc/ games/ include/ include.aside/
LOCAL_ARCH_DIRS += lib/ libexec/ sbin/
LOCAL_ARCH_LINKS = man
man_LINKDEST = share/man
-all:: $(foreach a,$(ALL_ARCHS),\
+all: $(foreach a,$(ALL_ARCHS),\
$(LOCAL)/$a/ \
$(foreach d,$(LOCAL_ARCH_DIRS),$(LOCAL)/$a/$d) \
$(foreach d,$(LOCAL_ARCH_LINKS),$(LOCAL)/$a/$d) \
$(call v_tag,MKDIR)mkdir $@
$(foreach a,$(ALL_ARCHS),\
$(foreach d,$(LOCAL_ARCH_DIRS),$(LOCAL)/$a/$d)):
- $(V_AT)mkdir -p $(dir $(patsubst %/,%,$@))
+ $(V_AT)mkdir -p $(call parent-dir,$@)
$(call v_tag,MKDIR)mkdir $@
$(foreach a,$(ALL_ARCHS),\
$(foreach d,$(LOCAL_ARCH_LINKS),$(LOCAL)/$a/$d)): \
- $$(if $$(call symlink-ok-p,$$@,$$($$(notdir $$@)_LINKDEST)),,_force)
- $(V_AT)mkdir -p $(notdir $@)
- $(call v_tag,SYMLINK)ln -sf $($(notdir $@)_LINKDEST) $@
+ $$(if $$(call symlink-ok-p,$$@,$$($$(call base-name,$$@)_LINKDEST)),,_force) \
+ $(V_AT)mkdir -p $(call parent-dir,$@)
+ $(call v_tag,SYMLINK)ln -sf $($(call base-name,$@)_LINKDEST) $@
$(foreach a,$(ALL_ARCHS),\
$(foreach d,$(LOCAL_COMMON_DIRS),$(LOCAL)/$a/$d)): \
- $$(if $$(call symlink-ok-p,$$@,../$$(notdir $$(patsubst %/,%,$$@))),,_force)
- $(V_AT)mkdir -p $(dir $(patsubst %/,%,$@))
- $(call v_tag,SYMLINK)ln -sf ../$(notdir $(patsubst %/,%,$@)) $(patsubst %/,%,$@)
+ $$(if $$(call symlink-ok-p,$$@,../$$(call base-name,$$@)),,_force) \
+ $(V_AT)mkdir -p $(call parent-dir,$@)
+ $(call v_tag,SYMLINK)ln -sf ../$(call base-name,$@) $(call file-name,$@)
###--------------------------------------------------------------------------
### Main chroot maintenance.