diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 66 |
1 files changed, 49 insertions, 17 deletions
@@ -7,46 +7,78 @@ DESTDIR=/usr ETCDIR=/etc +# Variables for building (binary) packages +PREFIX= +PKG_VERSION=0.0.0 +PKG_WORKDIR:=$(or $(PKG_WORKDIR),$(shell mktemp -d)) +PKG_ROOT:=$(PKG_WORKDIR)/bashtard-$(PKG_VERSION) + all: : # No build step required, use `make install` to install this program install: bin lib share uninstall: - rm -fv -- "$(DESTDIR)/bin/bashtard" - rm -rfv -- "$(DESTDIR)/lib/bashtard" - rm -rfv -- "$(DESTDIR)/share/bashtard" + rm -fv -- "$(PREFIX)$(DESTDIR)/bin/bashtard" + rm -rfv -- "$(PREFIX)$(DESTDIR)/lib/bashtard" + rm -rfv -- "$(PREFIX)$(DESTDIR)/share/bashtard" bin: - mkdir -pv -- "$(DESTDIR)/bin" + mkdir -pv -- "$(PREFIX)$(DESTDIR)/bin" sed \ -e 's@BASHTARD_LIBDIR=.*@BASHTARD_LIBDIR="$(DESTDIR)/lib/bashtard"@' \ -e 's@BASHTARD_SHAREDIR=.*@BASHTARD_SHAREDIR="$(DESTDIR)/share/bashtard"@' \ -e 's@BASHTARD_ETCDIR=.*@BASHTARD_ETCDIR="$(ETCDIR)/bashtard"@' \ - bin/bashtard > "$(DESTDIR)/bin/bashtard" - chmod +x "$(DESTDIR)/bin/bashtard" + bin/bashtard > "$(PREFIX)$(DESTDIR)/bin/bashtard" + chmod +x "$(PREFIX)$(DESTDIR)/bin/bashtard" lib: - mkdir -pv -- "$(DESTDIR)/lib/bashtard" - cp -rv -- lib/* "$(DESTDIR)/lib/bashtard" + mkdir -pv -- "$(PREFIX)$(DESTDIR)/lib/bashtard" + cp -rv -- lib/* "$(PREFIX)$(DESTDIR)/lib/bashtard" man: - mkdir -pv -- "$(DESTDIR)/share/man/man"{1,3,5,7} - scdoc < share/doc/bashtard.1.scd > "$(DESTDIR)/share/man/man1/bashtard.1" - scdoc < share/doc/bashtard.3.scd > "$(DESTDIR)/share/man/man3/bashtard.3" - scdoc < share/doc/bashtard.5.scd > "$(DESTDIR)/share/man/man5/bashtard.5" - scdoc < share/doc/bashtard.7.scd > "$(DESTDIR)/share/man/man7/bashtard.7" - scdoc < share/doc/playbooks.d.7.scd > "$(DESTDIR)/share/man/man7/playbooks.d.7" + mkdir -pv -- "$(PREFIX)$(DESTDIR)/share/man/man1" + mkdir -pv -- "$(PREFIX)$(DESTDIR)/share/man/man3" + mkdir -pv -- "$(PREFIX)$(DESTDIR)/share/man/man5" + mkdir -pv -- "$(PREFIX)$(DESTDIR)/share/man/man7" + scdoc < share/doc/bashtard.1.scd | gzip -cn9 > "$(PREFIX)$(DESTDIR)/share/man/man1/bashtard.1.gz" + scdoc < share/doc/bashtard.3.scd | gzip -cn9 > "$(PREFIX)$(DESTDIR)/share/man/man3/bashtard.3.gz" + scdoc < share/doc/bashtard.5.scd | gzip -cn9 > "$(PREFIX)$(DESTDIR)/share/man/man5/bashtard.5.gz" + scdoc < share/doc/bashtard.7.scd | gzip -cn9 > "$(PREFIX)$(DESTDIR)/share/man/man7/bashtard.7.gz" + scdoc < share/doc/playbooks.d.7.scd | gzip -cn9 > "$(PREFIX)$(DESTDIR)/share/man/man7/playbooks.d.7.gz" + +pkg-debian: + mkdir -pv "$(PKG_ROOT)" + + # Install package + $(MAKE) PREFIX="$(PKG_ROOT)" install + $(MAKE) PREFIX="$(PKG_ROOT)" man + + # Apply Debian stuff + mkdir -pv "$(PKG_ROOT)/DEBIAN" + sed \ + -e 's/%VERSION%/$(PKG_VERSION)/g' \ + etc/debian/control > "$(PKG_ROOT)/DEBIAN/control" + mkdir -pv "$(PKG_ROOT)/usr/share/doc/bashtard" + gzip -cn9 < CHANGELOG.md > "$(PKG_ROOT)/usr/share/doc/bashtard/changelog.gz" + cp -rv LICENSES/AGPL-3.0-or-later.txt "$(PKG_ROOT)/usr/share/doc/bashtard/copyright" + find "$(PKG_ROOT)" -iname "*.bash" -type f -exec chmod +x {} \; + + # Build Debian package + cd "$(PKG_WORKDIR)" && dpkg --build "bashtard-$(PKG_VERSION)" + + # TODO: Remove lintian, that's a manual step + lintian --no-tag-display-limit "$(PKG_WORKDIR)/bashtard-$(PKG_VERSION).deb" qa: reuse lint shellcheck -x bin/bashtard **/*.bash share: - mkdir -pv -- "$(DESTDIR)/share/bashtard" + mkdir -pv -- "$(PREFIX)$(DESTDIR)/share/bashtard" cp -rv -- \ share/defaults \ share/os.d \ - "$(DESTDIR)/share/bashtard" + "$(PREFIX)$(DESTDIR)/share/bashtard" -.PHONY: all install uninstall qa bin lib man share +.PHONY: all install uninstall pkg-debian qa bin lib man share |