diff options
Diffstat (limited to 'scripts/Makefile')
-rw-r--r-- | scripts/Makefile | 172 |
1 files changed, 172 insertions, 0 deletions
diff --git a/scripts/Makefile b/scripts/Makefile new file mode 100644 index 0000000..88f9a73 --- /dev/null +++ b/scripts/Makefile @@ -0,0 +1,172 @@ + +include ../Makefile.common +include /usr/share/dpkg/vendor.mk +DESTDIR = + +define \n + + +endef + +VERSION_FILE = ../version +VERSION = $(shell cat $(VERSION_FILE)) + +PL_FILES := $(wildcard *.pl) +SH_FILES = $(wildcard *.sh) +CWRAPPERS = debpkg-wrapper +SCRIPTS = $(patsubst %.pl,%,$(PL_FILES)) $(patsubst %.sh,%,$(SH_FILES)) +PL_CHECKS = $(patsubst %.pl,%.pl_check,$(PL_FILES)) +SH_CHECKS = $(patsubst %.sh,%.sh_check,$(SH_FILES)) +COMPL_FILES := $(wildcard *.bash_completion) +BC_BUILD_DIR:=bash_completion +COMPLETION = $(patsubst %.bash_completion,$(BC_BUILD_DIR)/%,$(COMPL_FILES)) +COMPL_DIR := $(shell pkg-config --variable=completionsdir bash-completion) +PKGNAMES := \ + build-rdeps \ + dd-list \ + debcheckout \ + debsnap \ + dget \ + getbuildlog \ + grep-excuses \ + mass-bug \ + mk-build-deps \ + pts-subscribe \ + pts-unsubscribe \ + rc-alert \ + rmadison \ + transition-check \ + who-uploads \ + whodepends \ + wnpp-alert \ + wnpp-check \ + +GEN_MAN1S += \ + deb-why-removed.1 \ + debbisect.1 \ + debootsnap.1 \ + debrebuild.1 \ + debrepro.1 \ + ltnu.1 \ + mk-origtargz.1 \ + salsa.1 \ + reproducible-check.1 \ + uscan.1 \ + +all: $(SCRIPTS) $(GEN_MAN1S) $(CWRAPPERS) $(COMPLETION) + +scripts: $(SCRIPTS) + +$(VERSION_FILE): + $(MAKE) -C .. version + +%: %.sh + +debchange: debchange.pl $(VERSION_FILE) + sed "s/###VERSION###/$(VERSION)/" $< > $@ + chmod --reference=$< $@ +ifeq ($(DEB_VENDOR),Ubuntu) +# On Ubuntu always default to targeting the release that it's built on, +# not the current devel release, since its primary use on stable releases +# will be for preparing PPA uploads. + sed -i 's/get_ubuntu_devel_distro()/"$(shell lsb_release -cs)"/' $@ +endif + +%.tmp: %.sh $(VERSION_FILE) + sed -e "s/###VERSION###/$(VERSION)/" $< > $@ +%.tmp: %.pl $(VERSION_FILE) + sed -e "s/###VERSION###/$(VERSION)/" $< > $@ +%: %.tmp + cp $< $@ + chmod +x $@ + +%.1: %.pl + podchecker $< + pod2man --utf8 --center=" " --release="Debian Utilities" $< > $@ +%.1: %.pod + podchecker $< + pod2man --utf8 --center=" " --release="Debian Utilities" $< > $@ +%.1: %.dbk + xsltproc --nonet -o $@ \ + /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/manpages/docbook.xsl $< + +# Syntax checker +test_sh: $(SH_CHECKS) +%.sh_check: % + bash -n $< + +test_pl: $(PL_CHECKS) +%.pl_check: % + perl -I ../lib -c $<; \ + +test_py: $(VERSION_FILE) + $(foreach python,$(shell py3versions -r ../debian/control),$(python) setup.py test$(\n)) + +debbisect.1: debbisect + help2man \ + --name="bisect snapshot.debian.org" \ + --version-string=$(VERSION) \ + --no-info \ + --no-discard-stderr \ + ./$< >$@ + +debootsnap.1: debootsnap + help2man \ + --name="create debian chroot using snapshot.debian.org" \ + --version-string=$(VERSION) \ + --no-info \ + --no-discard-stderr \ + ./$< >$@ + +debrebuild.1: debrebuild + help2man \ + --name="use a buildinfo file and snapshot.d.o to recreate binary packages" \ + --version-string=$(VERSION) \ + --no-info \ + --no-discard-stderr \ + ./$< >$@ + +reproducible-check.1: reproducible-check + help2man \ + --name="Reports on the reproducible status of installed packages" \ + --no-info \ + --no-discard-stderr \ + ./$< >$@ + +$(BC_BUILD_DIR): + mkdir $(BC_BUILD_DIR) + +$(COMPLETION): $(BC_BUILD_DIR)/% : %.bash_completion $(BC_BUILD_DIR) + cp $< $@ + +clean: + rm -f devscripts/__init__.py + find -name '*.pyc' -delete + find -name __pycache__ -delete + rm -rf devscripts.egg-info $(BC_BUILD_DIR) .pylint.d + rm -f $(SCRIPTS) $(patsubst %,%.tmp,$(SCRIPTS)) \ + $(GEN_MAN1S) $(SCRIPT_LIBS) $(CWRAPPERS) + + +test: test_pl test_sh test_py + +install: all + python3 setup.py install --root="$(DESTDIR)" --no-compile --install-layout=deb + cp $(SCRIPTS) $(DESTDIR)$(BINDIR) + ln -sf edit-patch $(DESTDIR)$(BINDIR)/add-patch + install -d $(DESTDIR)$(COMPL_DIR) + cp $(BC_BUILD_DIR)/* $(DESTDIR)$(COMPL_DIR)/ + for i in $(PKGNAMES); do \ + ln -sf pkgnames $(DESTDIR)$(COMPL_DIR)/$$i; \ + done + ln -sf debchange $(DESTDIR)$(COMPL_DIR)/dch + ln -sf debi $(DESTDIR)$(COMPL_DIR)/debc + # Special treatment for debpkg and run_bisect + install -d $(DESTDIR)$(DATA_DIR) + mv $(DESTDIR)$(BINDIR)/debpkg $(DESTDIR)$(DATA_DIR) + cp debpkg-wrapper $(DESTDIR)$(BINDIR)/debpkg + install -d $(DESTDIR)$(DATA_DIR)/scripts + mv $(DESTDIR)$(BINDIR)/run_bisect $(DESTDIR)$(DATA_DIR)/scripts + mv $(DESTDIR)$(BINDIR)/run_bisect_qemu $(DESTDIR)$(DATA_DIR)/scripts + +.PHONY: test test_pl test_sh test_py all install clean scripts |