diff -Nur a/Makefile b/Makefile --- a/Makefile 2016-08-31 18:23:47.000000000 +0100 +++ b/Makefile 2017-05-21 12:06:18.990543640 +0100 @@ -9,140 +9,45 @@ DIST := unstable SHELL=bash -SBIN = $(DESTDIR)/usr/sbin -ETC = $(DESTDIR)/etc/dkms -VAR = $(DESTDIR)/var/lib/dkms -MAN = $(DESTDIR)/usr/share/man/man8 -INITD = $(DESTDIR)/etc/rc.d/init.d -LIBDIR = $(DESTDIR)/usr/lib/dkms -BASHDIR = $(DESTDIR)/etc/bash_completion.d -KCONF = $(DESTDIR)/etc/kernel -SHAREDIR = $(DESTDIR)/usr/share -DOCDIR = $(SHAREDIR)/doc/dkms -SYSTEMD = $(DESTDIR)/usr/lib/systemd/system +SUBDIRS = +DESTDIR= +SBIN ?= /usr/sbin +ETC ?= /etc/dkms +VAR ?= /var/lib/dkms +MAN ?= /usr/share/man/man8 +LIBDIR ?= /usr/lib/dkms +BASHDIR ?= /etc/bash_completion.d +KCONF ?= /etc/kernel +SYSTEMD_UNITDIR ?= /usr/lib/systemd/system #Define the top-level build directory BUILDDIR := $(shell pwd) TOPDIR := $(shell pwd) -.PHONY = tarball -all: clean tarball rpm debs +all: + for d in $(SUBDIRS); do $(MAKE) -C $$d; done clean: - -rm -rf *~ dist/ dkms-freshmeat.txt + for d in $(SUBDIRS); do $(MAKE) -C $$d clean; done install: - mkdir -m 0755 -p $(VAR) $(SBIN) $(MAN) $(ETC) $(BASHDIR) $(SHAREDIR) $(LIBDIR) + for d in $(SUBDIRS); do $(MAKE) -C $$d install; done + + mkdir -m 0755 -p $(DESTDIR)/$(VAR) $(DESTDIR)/$(SBIN) $(DESTDIR)/$(MAN) $(DESTDIR)/$(ETC) $(DESTDIR)/$(BASHDIR) $(DESTDIR)/$(LIBDIR) $(DESTDIR)/$(SYSTEMD_UNITDIR) sed -e "s/\[INSERT_VERSION_HERE\]/$(RELEASE_VERSION)/" dkms > dkms.versioned mv -f dkms.versioned dkms - install -p -m 0755 dkms_common.postinst $(LIBDIR)/common.postinst - install -p -m 0755 dkms $(SBIN) - install -p -m 0755 dkms_autoinstaller $(LIBDIR) - install -p -m 0644 dkms_framework.conf $(ETC)/framework.conf - install -p -m 0644 dkms_dbversion $(VAR) - install -p -m 0644 dkms.bash-completion $(BASHDIR)/dkms - # install compressed manpage with proper timestamp and permissions - gzip -c -9 dkms.8 > $(MAN)/dkms.8.gz - chmod 0644 $(MAN)/dkms.8.gz - touch --reference=dkms.8 $(MAN)/dkms.8.gz - mkdir -p -m 0755 $(KCONF)/prerm.d $(KCONF)/postinst.d - install -p -m 0755 kernel_prerm.d_dkms $(KCONF)/prerm.d/dkms - install -p -m 0755 kernel_postinst.d_dkms $(KCONF)/postinst.d/dkms - -DOCFILES=sample.spec sample.conf AUTHORS COPYING README.dkms sample-suse-9-mkkmp.spec sample-suse-10-mkkmp.spec - -doc-perms: - # ensure doc file permissions ok - chmod 0644 $(DOCFILES) - -install-redhat-sysv: install doc-perms - mkdir -m 0755 -p $(INITD) - install -p -m 0755 dkms_mkkerneldoth $(LIBDIR)/mkkerneldoth - install -p -m 0755 dkms_find-provides $(LIBDIR)/find-provides - install -p -m 0755 lsb_release $(LIBDIR)/lsb_release - install -p -m 0644 template-dkms-mkrpm.spec $(ETC) - install -p -m 0644 template-dkms-redhat-kmod.spec $(ETC) - install -p -m 0755 dkms_autoinstaller $(INITD) - -install-redhat-systemd: install doc-perms - mkdir -m 0755 -p $(SYSTEMD) - install -p -m 0755 dkms_mkkerneldoth $(LIBDIR)/mkkerneldoth - install -p -m 0755 dkms_find-provides $(LIBDIR)/find-provides - install -p -m 0755 lsb_release $(LIBDIR)/lsb_release - install -p -m 0644 template-dkms-mkrpm.spec $(ETC) - install -p -m 0644 template-dkms-redhat-kmod.spec $(ETC) - install -p -m 0644 dkms.service $(SYSTEMD) - -install-doc: - mkdir -m 0755 -p $(DOCDIR) - install -p -m 0644 $(DOCFILES) $(DOCDIR) - -install-debian: install install-doc - mkdir -p -m 0755 $(SHAREDIR)/apport/package-hooks - install -p -m 0755 dkms_apport.py $(SHAREDIR)/apport/package-hooks/dkms_packages.py - mkdir -p -m 0755 $(KCONF)/header_postinst.d - install -p -m 0755 kernel_postinst.d_dkms $(KCONF)/header_postinst.d/dkms - mkdir -p -m 0755 $(ETC)/template-dkms-mkdeb/debian - ln -s template-dkms-mkdeb $(ETC)/template-dkms-mkdsc - install -p -m 0664 template-dkms-mkdeb/Makefile $(ETC)/template-dkms-mkdeb/ - install -p -m 0664 template-dkms-mkdeb/debian/* $(ETC)/template-dkms-mkdeb/debian/ - chmod +x $(ETC)/template-dkms-mkdeb/debian/postinst - chmod +x $(ETC)/template-dkms-mkdeb/debian/prerm - chmod +x $(ETC)/template-dkms-mkdeb/debian/rules - rm $(DOCDIR)/COPYING* - rm $(DOCDIR)/sample* - -deb_destdir=$(BUILDDIR)/dist -TARBALL=$(deb_destdir)/$(RELEASE_STRING).tar.gz -tarball: $(TARBALL) - -$(TARBALL): - mkdir -p $(deb_destdir) - tmp_dir=`mktemp -d --tmpdir dkms.XXXXXXXX` ; \ - cp -a ../$(RELEASE_NAME) $${tmp_dir}/$(RELEASE_STRING) ; \ - sed -e "s/\[INSERT_VERSION_HERE\]/$(RELEASE_VERSION)/" dkms > $${tmp_dir}/$(RELEASE_STRING)/dkms ; \ - sed -e "s/\[INSERT_VERSION_HERE\]/$(RELEASE_VERSION)/" dkms.spec > $${tmp_dir}/$(RELEASE_STRING)/dkms.spec ; \ - find $${tmp_dir}/$(RELEASE_STRING) -depth -name .git -type d -exec rm -rf \{\} \; ; \ - find $${tmp_dir}/$(RELEASE_STRING) -depth -name dist -type d -exec rm -rf \{\} \; ; \ - find $${tmp_dir}/$(RELEASE_STRING) -depth -name \*~ -type f -exec rm -f \{\} \; ; \ - find $${tmp_dir}/$(RELEASE_STRING) -depth -name dkms\*.rpm -type f -exec rm -f \{\} \; ; \ - find $${tmp_dir}/$(RELEASE_STRING) -depth -name dkms\*.tar.gz -type f -exec rm -f \{\} \; ; \ - find $${tmp_dir}/$(RELEASE_STRING) -depth -name dkms-freshmeat.txt -type f -exec rm -f \{\} \; ; \ - rm -rf $${tmp_dir}/$(RELEASE_STRING)/debian ; \ - sync ; sync ; sync ; \ - tar cvzf $(TARBALL) -C $${tmp_dir} $(RELEASE_STRING); \ - rm -rf $${tmp_dir} ; - - -rpm: $(TARBALL) dkms.spec - tmp_dir=`mktemp -d --tmpdir dkms.XXXXXXXX` ; \ - mkdir -p $${tmp_dir}/{BUILD,RPMS,SRPMS,SPECS,SOURCES} ; \ - cp $(TARBALL) $${tmp_dir}/SOURCES ; \ - sed "s/\[INSERT_VERSION_HERE\]/$(RELEASE_VERSION)/" dkms.spec > $${tmp_dir}/SPECS/dkms.spec ; \ - pushd $${tmp_dir} > /dev/null 2>&1; \ - rpmbuild -ba --define "_topdir $${tmp_dir}" SPECS/dkms.spec ; \ - popd > /dev/null 2>&1; \ - cp $${tmp_dir}/RPMS/noarch/* $${tmp_dir}/SRPMS/* dist ; \ - rm -rf $${tmp_dir} - -debmagic: $(TARBALL) - mkdir -p dist/ - ln -s $(TARBALL) $(DEB_TMP_BUILDDIR)/$(RELEASE_NAME)_$(RELEASE_VERSION).orig.tar.gz - tar -C $(DEB_TMP_BUILDDIR) -xzf $(TARBALL) - cp -ar debian $(DEB_TMP_BUILDDIR)/$(RELEASE_STRING)/debian - chmod +x $(DEB_TMP_BUILDDIR)/$(RELEASE_STRING)/debian/rules - cd $(DEB_TMP_BUILDDIR)/$(RELEASE_STRING) ; \ - dch -v $(RELEASE_VERSION)-0 "New upstream version, $(RELEASE_VERSION)"; \ - dpkg-buildpackage -D -b -rfakeroot ; \ - dpkg-buildpackage -D -S -sa -rfakeroot ; \ - mv ../$(RELEASE_NAME)_* $(TOPDIR)/dist/ ; \ - cd - - -debs: - tmp_dir=`mktemp -d --tmpdir dkms.XXXXXXXX` ; \ - make debmagic DEB_TMP_BUILDDIR=$${tmp_dir} DIST=$(DIST); \ - rm -rf $${tmp_dir} + install -p -m 0755 dkms_common.postinst $(DESTDIR)/$(LIBDIR)/common.postinst + install -p -m 0755 dkms $(DESTDIR)/$(SBIN) + install -p -m 0755 dkms_autoinstaller $(DESTDIR)/$(LIBDIR) + install -p -m 0644 dkms_framework.conf $(DESTDIR)/$(ETC)/framework.conf + install -p -m 0644 dkms_dbversion $(DESTDIR)/$(VAR) + install -p -m 0644 dkms.bash-completion $(DESTDIR)/$(BASHDIR)/dkms + install -p -m 0644 dkms.service $(DESTDIR)/$(SYSTEMD_UNITDIR) + gzip -c -9 dkms.8 > $(DESTDIR)/$(MAN)/dkms.8.gz + chmod 0644 $(DESTDIR)/$(MAN)/dkms.8.gz + touch --reference=dkms.8 $(DESTDIR)/$(MAN)/dkms.8.gz + mkdir -p -m 0755 $(DESTDIR)/$(KCONF)/prerm.d $(DESTDIR)/$(KCONF)/postinst.d + install -p -m 0755 kernel_prerm.d_dkms $(DESTDIR)/$(KCONF)/prerm.d/dkms + install -p -m 0755 kernel_postinst.d_dkms $(DESTDIR)/$(KCONF)/postinst.d/dkms -fm: - sed -e "s/\[INSERT_VERSION_HERE\]/$(RELEASE_VERSION)/" dkms-freshmeat.txt.in > dkms-freshmeat.txt