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