1eda14cbcSMatt Macy############################################################################### 2eda14cbcSMatt Macy# Copyright (C) 2007-2013 Lawrence Livermore National Security, LLC. 3eda14cbcSMatt Macy# Copyright (C) 2007 The Regents of the University of California. 4eda14cbcSMatt Macy# Written by Brian Behlendorf <behlendorf1@llnl.gov>. 5eda14cbcSMatt Macy############################################################################### 6eda14cbcSMatt Macy# Build targets for RPM packages. 7eda14cbcSMatt Macy############################################################################### 8eda14cbcSMatt Macy 9eda14cbcSMatt MacyPHONY += srpm srpms srpm-kmod srpm-dkms srpm-utils 102c48331dSMatt MacyPHONY += rpm rpms rpm-kmod rpm-dkms rpm-utils rpm-utils-initramfs 11eda14cbcSMatt MacyPHONY += srpm-common rpm-common rpm-local 12eda14cbcSMatt Macy 13eda14cbcSMatt Macysrpm-kmod srpm-dkms srpm-utils: dist 14eda14cbcSMatt Macy 15eda14cbcSMatt Macysrpm-kmod: 16eda14cbcSMatt Macy $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-kmod" \ 17eda14cbcSMatt Macy def='${SRPM_DEFINE_COMMON} ${SRPM_DEFINE_KMOD}' srpm-common 18eda14cbcSMatt Macy 19eda14cbcSMatt Macysrpm-dkms: 20eda14cbcSMatt Macy $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-dkms" \ 21eda14cbcSMatt Macy def='${SRPM_DEFINE_COMMON} ${SRPM_DEFINE_DKMS}' srpm-common 22eda14cbcSMatt Macy 23eda14cbcSMatt Macysrpm-utils: 24eda14cbcSMatt Macy $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" \ 25eda14cbcSMatt Macy def='${SRPM_DEFINE_COMMON} ${SRPM_DEFINE_UTIL}' srpm-common 26eda14cbcSMatt Macy 27eda14cbcSMatt Macysrpm: srpm-kmod srpm-dkms srpm-utils 28eda14cbcSMatt Macysrpms: srpm-kmod srpm-dkms srpm-utils 29eda14cbcSMatt Macy 30eda14cbcSMatt Macyrpm-kmod: srpm-kmod 31eda14cbcSMatt Macy $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-kmod" \ 32eda14cbcSMatt Macy def='${RPM_DEFINE_COMMON} ${RPM_DEFINE_KMOD}' rpm-common 33eda14cbcSMatt Macy 34eda14cbcSMatt Macyrpm-dkms: srpm-dkms 35eda14cbcSMatt Macy $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-dkms" \ 36eda14cbcSMatt Macy def='${RPM_DEFINE_COMMON} ${RPM_DEFINE_DKMS}' rpm-common 37eda14cbcSMatt Macy 382c48331dSMatt Macy# The rpm-utils and rpm-utils-initramfs targets are identical except for the 392c48331dSMatt Macy# zfs-initramfs package: rpm-utils never includes it, rpm-utils-initramfs 402c48331dSMatt Macy# includes it if detected at configure time. The zfs-initramfs package does 412c48331dSMatt Macy# not work on any known RPM-based distribution and the resulting RPM is only 422c48331dSMatt Macy# used to create a Debian package. The rpm-utils-initramfs target is not 432c48331dSMatt Macy# intended to be specified by the user directly, it is provided as a 442c48331dSMatt Macy# dependency of the deb-utils target. 452c48331dSMatt Macy 46eda14cbcSMatt Macyrpm-utils: srpm-utils 47eda14cbcSMatt Macy $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" \ 48eda14cbcSMatt Macy def='${RPM_DEFINE_COMMON} ${RPM_DEFINE_UTIL}' rpm-common 49eda14cbcSMatt Macy 502c48331dSMatt Macyrpm-utils-initramfs: srpm-utils 512c48331dSMatt Macy $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" \ 522c48331dSMatt Macy def='${RPM_DEFINE_COMMON} ${RPM_DEFINE_UTIL} ${RPM_DEFINE_INITRAMFS}' rpm-common 532c48331dSMatt Macy 54eda14cbcSMatt Macyrpm: rpm-kmod rpm-dkms rpm-utils 55eda14cbcSMatt Macyrpms: rpm-kmod rpm-dkms rpm-utils 56eda14cbcSMatt Macy 57eda14cbcSMatt Macyrpm-local: 58eda14cbcSMatt Macy @(if test "${HAVE_RPMBUILD}" = "no"; then \ 59eda14cbcSMatt Macy echo -e "\n" \ 60eda14cbcSMatt Macy "*** Required util ${RPMBUILD} missing. Please install the\n" \ 61eda14cbcSMatt Macy "*** package for your distribution which provides ${RPMBUILD},\n" \ 62eda14cbcSMatt Macy "*** re-run configure, and try again.\n"; \ 63eda14cbcSMatt Macy exit 1; \ 64eda14cbcSMatt Macy fi; \ 65eda14cbcSMatt Macy mkdir -p $(rpmbuild)/TMP && \ 66eda14cbcSMatt Macy mkdir -p $(rpmbuild)/BUILD && \ 67eda14cbcSMatt Macy mkdir -p $(rpmbuild)/RPMS && \ 68eda14cbcSMatt Macy mkdir -p $(rpmbuild)/SRPMS && \ 69eda14cbcSMatt Macy mkdir -p $(rpmbuild)/SPECS && \ 70eda14cbcSMatt Macy cp ${RPM_SPEC_DIR}/$(rpmspec) $(rpmbuild)/SPECS && \ 71eda14cbcSMatt Macy mkdir -p $(rpmbuild)/SOURCES && \ 72eda14cbcSMatt Macy cp $(top_srcdir)/scripts/kmodtool $(rpmbuild)/SOURCES && \ 73eda14cbcSMatt Macy cp $(distdir).tar.gz $(rpmbuild)/SOURCES) 74eda14cbcSMatt Macy 75eda14cbcSMatt Macysrpm-common: 76eda14cbcSMatt Macy @(dist=`$(RPM) --eval %{?dist}`; \ 77eda14cbcSMatt Macy rpmpkg=$(pkg)-$(VERSION)-$(RELEASE)$$dist*src.rpm; \ 78eda14cbcSMatt Macy rpmspec=$(pkg).spec; \ 79eda14cbcSMatt Macy rpmbuild=`mktemp -t -d $(PACKAGE)-build-$$USER-XXXXXXXX`; \ 80eda14cbcSMatt Macy $(MAKE) $(AM_MAKEFLAGS) \ 81eda14cbcSMatt Macy rpmbuild="$$rpmbuild" \ 82eda14cbcSMatt Macy rpmspec="$$rpmspec" \ 83eda14cbcSMatt Macy rpm-local || exit 1; \ 84eda14cbcSMatt Macy LANG=C $(RPMBUILD) \ 85eda14cbcSMatt Macy --define "_tmppath $$rpmbuild/TMP" \ 86*78ae60b4SMartin Matuska --define "_builddir $$rpmbuild/BUILD" \ 87*78ae60b4SMartin Matuska --define "_rpmdir $$rpmbuild/RPMS" \ 88*78ae60b4SMartin Matuska --define "_srcrpmdir $$rpmbuild/SRPMS" \ 89*78ae60b4SMartin Matuska --define "_specdir $$rpmbuild/SPECS" \ 90*78ae60b4SMartin Matuska --define "_sourcedir $$rpmbuild/SOURCES" \ 91eda14cbcSMatt Macy --define "_topdir $$rpmbuild" \ 92eda14cbcSMatt Macy $(def) -bs $$rpmbuild/SPECS/$$rpmspec || exit 1; \ 93eda14cbcSMatt Macy cp $$rpmbuild/SRPMS/$$rpmpkg . || exit 1; \ 94eda14cbcSMatt Macy rm -R $$rpmbuild) 95eda14cbcSMatt Macy 96eda14cbcSMatt Macyrpm-common: 97eda14cbcSMatt Macy @(dist=`$(RPM) --eval %{?dist}`; \ 98eda14cbcSMatt Macy rpmpkg=$(pkg)-$(VERSION)-$(RELEASE)$$dist*src.rpm; \ 99eda14cbcSMatt Macy rpmspec=$(pkg).spec; \ 100eda14cbcSMatt Macy rpmbuild=`mktemp -t -d $(PACKAGE)-build-$$USER-XXXXXXXX`; \ 101eda14cbcSMatt Macy $(MAKE) $(AM_MAKEFLAGS) \ 102eda14cbcSMatt Macy rpmbuild="$$rpmbuild" \ 103eda14cbcSMatt Macy rpmspec="$$rpmspec" \ 104eda14cbcSMatt Macy rpm-local || exit 1; \ 105eda14cbcSMatt Macy LANG=C ${RPMBUILD} \ 106eda14cbcSMatt Macy --define "_tmppath $$rpmbuild/TMP" \ 107*78ae60b4SMartin Matuska --define "_builddir $$rpmbuild/BUILD" \ 108*78ae60b4SMartin Matuska --define "_rpmdir $$rpmbuild/RPMS" \ 109*78ae60b4SMartin Matuska --define "_srcrpmdir $$rpmbuild/SRPMS" \ 110*78ae60b4SMartin Matuska --define "_specdir $$rpmbuild/SPECS" \ 111*78ae60b4SMartin Matuska --define "_sourcedir $$rpmbuild/SOURCES" \ 112eda14cbcSMatt Macy --define "_topdir $$rpmbuild" \ 113eda14cbcSMatt Macy $(def) --rebuild $$rpmpkg || exit 1; \ 114eda14cbcSMatt Macy cp $$rpmbuild/RPMS/*/* . || exit 1; \ 115eda14cbcSMatt Macy rm -R $$rpmbuild) 116