xref: /freebsd/sys/contrib/openzfs/config/rpm.am (revision eda14cbc264d6969b02f2b1994cef11148e914f1)
1###############################################################################
2# Copyright (C) 2007-2013 Lawrence Livermore National Security, LLC.
3# Copyright (C) 2007 The Regents of the University of California.
4# Written by Brian Behlendorf <behlendorf1@llnl.gov>.
5###############################################################################
6# Build targets for RPM packages.
7###############################################################################
8
9PHONY += srpm srpms srpm-kmod srpm-dkms srpm-utils
10PHONY += rpm rpms rpm-kmod rpm-dkms rpm-utils
11PHONY += srpm-common rpm-common rpm-local
12
13srpm-kmod srpm-dkms srpm-utils: dist
14
15srpm-kmod:
16	$(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-kmod" \
17		def='${SRPM_DEFINE_COMMON} ${SRPM_DEFINE_KMOD}' srpm-common
18
19srpm-dkms:
20	$(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-dkms" \
21		def='${SRPM_DEFINE_COMMON} ${SRPM_DEFINE_DKMS}' srpm-common
22
23srpm-utils:
24	$(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" \
25		def='${SRPM_DEFINE_COMMON} ${SRPM_DEFINE_UTIL}' srpm-common
26
27srpm: srpm-kmod srpm-dkms srpm-utils
28srpms: srpm-kmod srpm-dkms srpm-utils
29
30rpm-kmod: srpm-kmod
31	$(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-kmod" \
32		def='${RPM_DEFINE_COMMON} ${RPM_DEFINE_KMOD}' rpm-common
33
34rpm-dkms: srpm-dkms
35	$(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-dkms" \
36		def='${RPM_DEFINE_COMMON} ${RPM_DEFINE_DKMS}' rpm-common
37
38rpm-utils: srpm-utils
39	$(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" \
40		def='${RPM_DEFINE_COMMON} ${RPM_DEFINE_UTIL}' rpm-common
41
42rpm: rpm-kmod rpm-dkms rpm-utils
43rpms: rpm-kmod rpm-dkms rpm-utils
44
45rpm-local:
46	@(if test "${HAVE_RPMBUILD}" = "no"; then \
47		echo -e "\n" \
48	"*** Required util ${RPMBUILD} missing.  Please install the\n" \
49	"*** package for your distribution which provides ${RPMBUILD},\n" \
50	"*** re-run configure, and try again.\n"; \
51		exit 1; \
52	fi; \
53	mkdir -p $(rpmbuild)/TMP && \
54	mkdir -p $(rpmbuild)/BUILD && \
55	mkdir -p $(rpmbuild)/RPMS && \
56	mkdir -p $(rpmbuild)/SRPMS && \
57	mkdir -p $(rpmbuild)/SPECS && \
58	cp ${RPM_SPEC_DIR}/$(rpmspec) $(rpmbuild)/SPECS && \
59	mkdir -p $(rpmbuild)/SOURCES && \
60	cp $(top_srcdir)/scripts/kmodtool $(rpmbuild)/SOURCES && \
61	cp $(distdir).tar.gz $(rpmbuild)/SOURCES)
62
63srpm-common:
64	@(dist=`$(RPM) --eval %{?dist}`; \
65	rpmpkg=$(pkg)-$(VERSION)-$(RELEASE)$$dist*src.rpm; \
66	rpmspec=$(pkg).spec; \
67	rpmbuild=`mktemp -t -d $(PACKAGE)-build-$$USER-XXXXXXXX`; \
68	$(MAKE) $(AM_MAKEFLAGS) \
69		rpmbuild="$$rpmbuild" \
70		rpmspec="$$rpmspec" \
71		rpm-local || exit 1; \
72	LANG=C $(RPMBUILD) \
73		--define "_tmppath $$rpmbuild/TMP" \
74		--define "_topdir $$rpmbuild" \
75		$(def) -bs $$rpmbuild/SPECS/$$rpmspec || exit 1; \
76	cp $$rpmbuild/SRPMS/$$rpmpkg . || exit 1; \
77	rm -R $$rpmbuild)
78
79rpm-common:
80	@(dist=`$(RPM) --eval %{?dist}`; \
81	rpmpkg=$(pkg)-$(VERSION)-$(RELEASE)$$dist*src.rpm; \
82	rpmspec=$(pkg).spec; \
83	rpmbuild=`mktemp -t -d $(PACKAGE)-build-$$USER-XXXXXXXX`; \
84	$(MAKE) $(AM_MAKEFLAGS) \
85		rpmbuild="$$rpmbuild" \
86		rpmspec="$$rpmspec" \
87		rpm-local || exit 1; \
88	LANG=C ${RPMBUILD} \
89		--define "_tmppath $$rpmbuild/TMP" \
90		--define "_topdir $$rpmbuild" \
91		$(def) --rebuild $$rpmpkg || exit 1; \
92	cp $$rpmbuild/RPMS/*/* . || exit 1; \
93	rm -R $$rpmbuild)
94