]> git.proxmox.com Git - mirror_zfs.git/blobdiff - config/rpm.am
Linux 6.9 compat: bdev handles are now struct file
[mirror_zfs.git] / config / rpm.am
index 7dfe4fd9b96b0f3d30e034d07fdf83f94898e06f..85c56c0b2e3aaee9caf0d5b6bfdf5a4105d2ab0e 100644 (file)
@@ -1,28 +1,58 @@
 ###############################################################################
-# Copyright (C) 2007-2010 Lawrence Livermore National Security, LLC.
+# Copyright (C) 2007-2013 Lawrence Livermore National Security, LLC.
 # Copyright (C) 2007 The Regents of the University of California.
 # Written by Brian Behlendorf <behlendorf1@llnl.gov>.
 ###############################################################################
 # Build targets for RPM packages.
 ###############################################################################
 
-srpm-modules:
-       $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-modules" srpm-common
+PHONY += srpm srpms srpm-kmod srpm-dkms srpm-utils
+PHONY += rpm rpms rpm-kmod rpm-dkms rpm-utils rpm-utils-initramfs
+PHONY += srpm-common rpm-common rpm-local
+
+srpm-kmod srpm-dkms srpm-utils: dist
+
+srpm-kmod:
+       $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-kmod" \
+               def='${SRPM_DEFINE_COMMON} ${SRPM_DEFINE_KMOD}' srpm-common
+
+srpm-dkms:
+       $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-dkms" \
+               def='${SRPM_DEFINE_COMMON} ${SRPM_DEFINE_DKMS}' srpm-common
 
 srpm-utils:
-       $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" srpm-common
+       $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" \
+               def='${SRPM_DEFINE_COMMON} ${SRPM_DEFINE_UTIL}' srpm-common
+
+srpm: srpm-kmod srpm-dkms srpm-utils
+srpms: srpm-kmod srpm-dkms srpm-utils
+
+rpm-kmod: srpm-kmod
+       $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-kmod" \
+               def='${RPM_DEFINE_COMMON} ${RPM_DEFINE_KMOD}' rpm-common
 
-srpm: srpm-modules srpm-utils
+rpm-dkms: srpm-dkms
+       $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-dkms" \
+               def='${RPM_DEFINE_COMMON} ${RPM_DEFINE_DKMS}' rpm-common
 
-rpm-modules: srpm-modules
-       $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-modules" rpm-common
+# The rpm-utils and rpm-utils-initramfs targets are identical except for the
+# zfs-initramfs package: rpm-utils never includes it, rpm-utils-initramfs
+# includes it if detected at configure time. The zfs-initramfs package does
+# not work on any known RPM-based distribution and the resulting RPM is only
+# used to create a Debian package. The rpm-utils-initramfs target is not
+# intended to be specified by the user directly, it is provided as a
+# dependency of the deb-utils target.
 
 rpm-utils: srpm-utils
-       $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" rpm-common
+       $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" \
+               def='${RPM_DEFINE_COMMON} ${RPM_DEFINE_UTIL}' rpm-common
 
-rpm-modules: srpm-modules
+rpm-utils-initramfs: srpm-utils
+       $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" \
+               def='${RPM_DEFINE_COMMON} ${RPM_DEFINE_UTIL} ${RPM_DEFINE_INITRAMFS}' rpm-common
 
-rpm: rpm-modules rpm-utils
+rpm: rpm-kmod rpm-dkms rpm-utils
+rpms: rpm-kmod rpm-dkms rpm-utils
 
 rpm-local:
        @(if test "${HAVE_RPMBUILD}" = "no"; then \
@@ -37,46 +67,49 @@ rpm-local:
        mkdir -p $(rpmbuild)/RPMS && \
        mkdir -p $(rpmbuild)/SRPMS && \
        mkdir -p $(rpmbuild)/SPECS && \
-       cp $(rpmspec) $(rpmbuild)/SPECS && \
+       cp ${RPM_SPEC_DIR}/$(rpmspec) $(rpmbuild)/SPECS && \
        mkdir -p $(rpmbuild)/SOURCES && \
+       cp $(top_srcdir)/scripts/kmodtool $(rpmbuild)/SOURCES && \
        cp $(distdir).tar.gz $(rpmbuild)/SOURCES)
 
-srpm-common: dist
-       rpmpkg=$(pkg)-$(SPL_META_VERSION)-$(SPL_META_RELEASE).src.rpm; \
+srpm-common:
+       @(dist=`$(RPM) --eval %{?dist}`; \
+       rpmpkg=$(pkg)-$(VERSION)-$(RELEASE)$$dist*src.rpm; \
        rpmspec=$(pkg).spec; \
        rpmbuild=`mktemp -t -d $(PACKAGE)-build-$$USER-XXXXXXXX`; \
        $(MAKE) $(AM_MAKEFLAGS) \
                rpmbuild="$$rpmbuild" \
                rpmspec="$$rpmspec" \
                rpm-local || exit 1; \
-       $(RPMBUILD) \
+       LANG=C $(RPMBUILD) \
                --define "_tmppath $$rpmbuild/TMP" \
+               --define "_builddir $$rpmbuild/BUILD" \
+               --define "_rpmdir $$rpmbuild/RPMS" \
+               --define "_srcrpmdir $$rpmbuild/SRPMS" \
+               --define "_specdir $$rpmbuild/SPECS" \
+               --define "_sourcedir $$rpmbuild/SOURCES" \
                --define "_topdir $$rpmbuild" \
-               --define "build_src_rpm 1" \
-               --define "dist %{nil}" \
-               --nodeps -bs $$rpmbuild/SPECS/$$rpmspec || exit 1; \
+               $(def) -bs $$rpmbuild/SPECS/$$rpmspec || exit 1; \
        cp $$rpmbuild/SRPMS/$$rpmpkg . || exit 1; \
-       $(RM) -R $$rpmbuild
+       rm -R $$rpmbuild)
 
 rpm-common: 
-       rpmpkg=$(pkg)-$(SPL_META_VERSION)-$(SPL_META_RELEASE).src.rpm; \
+       @(dist=`$(RPM) --eval %{?dist}`; \
+       rpmpkg=$(pkg)-$(VERSION)-$(RELEASE)$$dist*src.rpm; \
        rpmspec=$(pkg).spec; \
        rpmbuild=`mktemp -t -d $(PACKAGE)-build-$$USER-XXXXXXXX`; \
        $(MAKE) $(AM_MAKEFLAGS) \
                rpmbuild="$$rpmbuild" \
                rpmspec="$$rpmspec" \
                rpm-local || exit 1; \
-       ${RPMBUILD} \
+       LANG=C ${RPMBUILD} \
                --define "_tmppath $$rpmbuild/TMP" \
+               --define "_builddir $$rpmbuild/BUILD" \
+               --define "_rpmdir $$rpmbuild/RPMS" \
+               --define "_srcrpmdir $$rpmbuild/SRPMS" \
+               --define "_specdir $$rpmbuild/SPECS" \
+               --define "_sourcedir $$rpmbuild/SOURCES" \
                --define "_topdir $$rpmbuild" \
-               --define "dist %{nil}" \
-               --define "require_kdir $(LINUX)" \
-               --define "require_kobj $(LINUX_OBJ)" \
-               --define "require_kver $(LINUX_VERSION)" \
-               --define "$(DEBUG_SPL) 1" \
-               --define "$(DEBUG_LOG) 1" \
-               --define "$(DEBUG_KMEM) 1" \
-               --define "$(DEBUG_KMEM_TRACKING) 1" \
-               --nodeps --rebuild $$rpmpkg || exit 1; \
+               $(def) --rebuild $$rpmpkg || exit 1; \
        cp $$rpmbuild/RPMS/*/* . || exit 1; \
-       $(RM) -R $$rpmbuild
+       rm -R $$rpmbuild)