aboutsummaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/deb.am20
-rw-r--r--config/rpm.am90
-rw-r--r--config/spl-build.m434
-rw-r--r--config/spl-meta.m43
-rw-r--r--config/tgz.am20
5 files changed, 87 insertions, 80 deletions
diff --git a/config/deb.am b/config/deb.am
index 75e31dfec..5efbd9d36 100644
--- a/config/deb.am
+++ b/config/deb.am
@@ -28,26 +28,24 @@ deb-local:
exit 1; \
fi)
-deb-modules: deb-local rpm-modules
+deb-kmod: deb-local rpm-kmod
if CONFIG_KERNEL
- name=${PACKAGE}-modules; \
- version=${SPL_META_VERSION}-${SPL_META_RELEASE}; \
- release=`echo ${LINUX_VERSION} | $(SED) -e "s/-/_/g"`; \
- arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \
- pkg1=$${name}-$${version}_$${release}.$${arch}.rpm; \
- pkg2=$${name}-devel-$${version}_$${release}.$${arch}.rpm; \
- fakeroot $(ALIEN) --scripts --to-deb $$pkg1 $$pkg2; \
- $(RM) $$pkg1 $$pkg2
+ name=${PACKAGE}; \
+ version=${VERSION}-${RELEASE}; \
+ arch=`$(RPM) -qp $${name}-kmod-$${version}.src.rpm --qf %{arch} | tail -1`; \
+ pkg1=kmod-$${name}*$${version}.$${arch}.rpm; \
+ fakeroot $(ALIEN) --scripts --to-deb $$pkg1; \
+ $(RM) $$pkg1
endif
deb-utils: deb-local rpm-utils
if CONFIG_USER
name=${PACKAGE}; \
- version=${SPL_META_VERSION}-${SPL_META_RELEASE}; \
+ version=${VERSION}-${RELEASE}; \
arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \
pkg1=$${name}-$${version}.$${arch}.rpm; \
fakeroot $(ALIEN) --scripts --to-deb $$pkg1; \
$(RM) $$pkg1
endif
-deb: deb-modules deb-utils
+deb: deb-kmod deb-utils
diff --git a/config/rpm.am b/config/rpm.am
index 7340b4fce..8b33bb5b6 100644
--- a/config/rpm.am
+++ b/config/rpm.am
@@ -1,39 +1,40 @@
###############################################################################
-# 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 <[email protected]>.
###############################################################################
# Build targets for RPM packages.
###############################################################################
-srpm-modules:
-if CONFIG_KERNEL
- $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-modules" srpm-common
-endif
+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:
-if CONFIG_USER
- $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" srpm-common
-endif
+ $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" \
+ def='${SRPM_DEFINE_COMMON} ${SRPM_DEFINE_UTIL}' srpm-common
-srpm: srpm-modules srpm-utils
+srpm: srpm-kmod srpm-dkms srpm-utils
+srpms: srpm-kmod srpm-dkms srpm-utils
-rpm-dkms: srpm-modules
-if CONFIG_KERNEL
- $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-modules" dkms-common
-endif
+rpm-kmod: srpm-kmod
+ $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-kmod" \
+ def='${RPM_DEFINE_COMMON} ${RPM_DEFINE_KMOD}' rpm-common
-rpm-modules: srpm-modules
-if CONFIG_KERNEL
- $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-modules" rpm-common
-endif
+rpm-dkms: srpm-dkms
+ $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}-dkms" \
+ def='${RPM_DEFINE_COMMON} ${RPM_DEFINE_DKMS}' rpm-common
rpm-utils: srpm-utils
-if CONFIG_USER
- $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" rpm-common
-endif
+ $(MAKE) $(AM_MAKEFLAGS) pkg="${PACKAGE}" \
+ def='${RPM_DEFINE_COMMON} ${RPM_DEFINE_UTIL}' rpm-common
-rpm: rpm-modules rpm-utils rpm-dkms
+rpm: rpm-kmod rpm-dkms rpm-utils
+rpms: rpm-kmod rpm-dkms rpm-utils
rpm-local:
@(if test "${HAVE_RPMBUILD}" = "no"; then \
@@ -48,32 +49,14 @@ 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 scripts/kmodtool $(rpmbuild)/SOURCES && \
cp $(distdir).tar.gz $(rpmbuild)/SOURCES)
-dkms-common:
- rpmpkg=$(pkg)-$(SPL_META_VERSION)-$(SPL_META_RELEASE).src.rpm; \
- rpmspec=$(pkg).spec; \
- rpmdkms=$(pkg)-dkms-$(SPL_META_VERSION)-$(SPL_META_RELEASE).noarch.rpm;\
- rpmbuild=`mktemp -t -d $(PACKAGE)-build-$$USER-XXXXXXXX`; \
- $(MAKE) $(AM_MAKEFLAGS) \
- rpmbuild="$$rpmbuild" \
- rpmspec="$$rpmspec" \
- rpm-local || exit 1; \
- $(RPMBUILD) \
- --define "_tmppath $$rpmbuild/TMP" \
- --define "_topdir $$rpmbuild" \
- --define "dist %{nil}" \
- --define "_without_kernel 1" \
- --define "_without_kernel_debug 1" \
- --define "_with_kernel_dkms 1" \
- --nodeps --rebuild $$rpmpkg || exit 1; \
- cp $$rpmbuild/RPMS/noarch/$$rpmdkms . || exit 1; \
- $(RM) -R $$rpmbuild
-
srpm-common: dist
- 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) \
@@ -83,14 +66,13 @@ srpm-common: dist
$(RPMBUILD) \
--define "_tmppath $$rpmbuild/TMP" \
--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) \
@@ -100,14 +82,6 @@ rpm-common:
${RPMBUILD} \
--define "_tmppath $$rpmbuild/TMP" \
--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)
diff --git a/config/spl-build.m4 b/config/spl-build.m4
index 14a7d9740..233eea004 100644
--- a/config/spl-build.m4
+++ b/config/spl-build.m4
@@ -232,6 +232,11 @@ dnl # Check for rpm+rpmbuild to build RPM packages. If these tools
dnl # are missing it is non-fatal but you will not be able to build
dnl # RPM packages and will be warned if you try too.
dnl #
+dnl # By default the generic spec file will be used because it requires
+dnl # minimal dependencies. Distribution specific spec files can be
+dnl # placed under the 'rpm/<distribution>' directory and enabled using
+dnl # the --with-spec=<distribution> configure option.
+dnl #
AC_DEFUN([SPL_AC_RPM], [
RPM=rpm
RPMBUILD=rpmbuild
@@ -256,6 +261,25 @@ AC_DEFUN([SPL_AC_RPM], [
AC_MSG_RESULT([$HAVE_RPMBUILD])
])
+ RPM_DEFINE_COMMON='--define "$(DEBUG_SPL) 1" --define "$(DEBUG_LOG) 1" --define "$(DEBUG_KMEM) 1" --define "$(DEBUG_KMEM_TRACKING) 1"'
+ RPM_DEFINE_UTIL=
+ RPM_DEFINE_KMOD='--define "kernels $(LINUX_VERSION)"'
+ RPM_DEFINE_DKMS=
+
+ SRPM_DEFINE_COMMON='--define "build_src_rpm 1"'
+ SRPM_DEFINE_UTIL=
+ SRPM_DEFINE_KMOD=
+ SRPM_DEFINE_DKMS=
+
+ RPM_SPEC_DIR="rpm/generic"
+ AC_ARG_WITH([spec],
+ AS_HELP_STRING([--with-spec=SPEC],
+ [Spec files 'generic|fedora']),
+ [RPM_SPEC_DIR="rpm/$withval"])
+
+ AC_MSG_CHECKING([whether spec files are available])
+ AC_MSG_RESULT([yes ($RPM_SPEC_DIR/*.spec.in)])
+
AC_SUBST(HAVE_RPM)
AC_SUBST(RPM)
AC_SUBST(RPM_VERSION)
@@ -263,6 +287,16 @@ AC_DEFUN([SPL_AC_RPM], [
AC_SUBST(HAVE_RPMBUILD)
AC_SUBST(RPMBUILD)
AC_SUBST(RPMBUILD_VERSION)
+
+ AC_SUBST(RPM_SPEC_DIR)
+ AC_SUBST(RPM_DEFINE_UTIL)
+ AC_SUBST(RPM_DEFINE_KMOD)
+ AC_SUBST(RPM_DEFINE_DKMS)
+ AC_SUBST(RPM_DEFINE_COMMON)
+ AC_SUBST(SRPM_DEFINE_UTIL)
+ AC_SUBST(SRPM_DEFINE_KMOD)
+ AC_SUBST(SRPM_DEFINE_DKMS)
+ AC_SUBST(SRPM_DEFINE_COMMON)
])
dnl #
diff --git a/config/spl-meta.m4 b/config/spl-meta.m4
index b76cc8dc6..af8be801a 100644
--- a/config/spl-meta.m4
+++ b/config/spl-meta.m4
@@ -35,6 +35,9 @@ AC_DEFUN([SPL_AC_META], [
[Define the project release.]
)
AC_SUBST([SPL_META_RELEASE])
+
+ RELEASE="$SPL_META_RELEASE"
+ AC_SUBST([RELEASE])
fi
if test -n "$SPL_META_NAME" -a -n "$SPL_META_VERSION"; then
diff --git a/config/tgz.am b/config/tgz.am
index 1aaf4dde2..765be43b9 100644
--- a/config/tgz.am
+++ b/config/tgz.am
@@ -21,26 +21,24 @@ tgz-local:
exit 1; \
fi)
-tgz-modules: tgz-local rpm-modules
+tgz-kmod: tgz-local rpm-kmod
if CONFIG_KERNEL
- name=${PACKAGE}-modules; \
- version=${SPL_META_VERSION}-${SPL_META_RELEASE}; \
- release=`echo ${LINUX_VERSION} | $(SED) -e "s/-/_/g"`; \
- arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \
- pkg1=$${name}-$${version}_$${release}.$${arch}.rpm; \
- pkg2=$${name}-devel-$${version}_$${release}.$${arch}.rpm; \
- fakeroot $(ALIEN) --scripts --to-tgz $$pkg1 $$pkg2; \
- $(RM) $$pkg1 $$pkg2
+ name=${PACKAGE}; \
+ version=${VERSION}-${RELEASE}; \
+ arch=`$(RPM) -qp $${name}-kmod-$${version}.src.rpm --qf %{arch} | tail -1`; \
+ pkg1=kmod-$${name}*$${version}.$${arch}.rpm; \
+ fakeroot $(ALIEN) --scripts --to-tgz $$pkg1; \
+ $(RM) $$pkg1
endif
tgz-utils: tgz-local rpm-utils
if CONFIG_USER
name=${PACKAGE}; \
- version=${SPL_META_VERSION}-${SPL_META_RELEASE}; \
+ version=${VERSION}-${RELEASE}; \
arch=`$(RPM) -qp $${name}-$${version}.src.rpm --qf %{arch} | tail -1`; \
pkg1=$${name}-$${version}.$${arch}.rpm; \
fakeroot $(ALIEN) --scripts --to-tgz $$pkg1; \
$(RM) $$pkg1
endif
-tgz: tgz-modules tgz-utils
+tgz: tgz-kmod tgz-utils