xref: /freebsd/sys/contrib/openzfs/config/rpm.am (revision 78ae60b447ebf420dd5cebfec30480866fd5cef4)
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