X-Git-Url: https://git.saurik.com/apt.git/blobdiff_plain/f31d34ee967cb1637c0efeb408c76a2c26bbdc07..607bab3fe856d228f22e1cd96dbb7204e2f3375d:/vendor/makefile diff --git a/vendor/makefile b/vendor/makefile index a6d53abd0..966c3d080 100644 --- a/vendor/makefile +++ b/vendor/makefile @@ -5,19 +5,18 @@ SUBDIR=vendor # Bring in the default rules include ../buildlib/defaults.mak -all headers library binary program doc manpages debiandoc test update-po startup dirs: current +all headers library binary program doc manpages docbook test update-po startup dirs: current all: all/subdirs binary: binary/subdirs doc: doc/subdirs clean: clean/subdirs veryclean: veryclean/subdirs dirs: dirs/subdirs +manpages: manpages/subdirs -all/subdirs binary/subdirs doc/subdirs dirs/subdirs: - $(MAKE) -C current $(patsubst %/subdirs,%,$@) - -clean/subdirs veryclean/subdirs: - test ! -e current || $(MAKE) -C current $(patsubst %/subdirs,%,$@) +all/subdirs binary/subdirs doc/subdirs dirs/subdirs manpages/subdirs clean/subdirs veryclean/subdirs: + test ! -e current/makefile || $(MAKE) -C current $(patsubst %/subdirs,%,$@) + test ! -e current/makefile.auto || $(MAKE) -C current -f makefile.auto $(patsubst %/subdirs,%,$@) current: rm -f $@ @@ -28,15 +27,32 @@ current: break; \ fi; \ done - # if we haven't found a specific, look for a deriving in hardcoded order - test -e $@ || \ - (dpkg-vendor --derives-from ubuntu && cp ln -s ubuntu $@ ) || \ - ln -s debian $@ + # if we haven't found a specific, look for a deriving + # we do ubuntu and debian last as those are the biggest families + # and would therefore potentially 'shadow' smaller families + # (especially debian as it sorts quiet early) + if ! test -e $@; then \ + find -mindepth 1 -maxdepth 1 -type d | cut -d'/' -f 2 | while read DISTRO; do \ + if [ "$$DISTRO" = 'debian' -o "$$DISTRO" = 'ubuntu' ]; then continue; fi; \ + if dpkg-vendor --derives-from $$DISTRO; then \ + ln -s $$DISTRO $@; \ + break; \ + fi; \ + done; \ + test -e $@ || \ + (dpkg-vendor --derives-from ubuntu && cp ln -s ubuntu $@ ) || \ + ln -s debian $@; \ + fi + if test ! -e current/makefile; then \ + sed "s#@@VENDOR@@#$(notdir $(shell readlink -f current))#" vendor.makefile > current/makefile.auto; \ + fi .PHONY: clean veryclean all binary vendor clean: clean/current +clean/current: clean/subdirs + rm -f current/makefile.auto current -clean/current: - test ! -e current || $(MAKE) -C current clean - rm -f current +veryclean: veryclean/current +veryclean/current: veryclean/subdirs + rm -f current/makefile.auto current