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([ZFS_AC_RPM], [
RPM=rpm
RPMBUILD=rpmbuild
AC_MSG_RESULT([$HAVE_RPMBUILD])
])
+ RPM_DEFINE_COMMON='--define "$(DEBUG_ZFS) 1" --define "$(DEBUG_DMU_TX) 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)
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 #
])
dnl #
-dnl # Check for pacman+makepkg to build Arch Linux packages. If these
-dnl # tools are missing it is non-fatal but you will not be able to
-dnl # build Arch Linux packages and will be warned if you try too.
-dnl #
-AC_DEFUN([ZFS_AC_PACMAN], [
- PACMAN=pacman
- MAKEPKG=makepkg
-
- AC_MSG_CHECKING([whether $PACMAN is available])
- tmp=$($PACMAN --version 2>/dev/null)
- AS_IF([test -n "$tmp"], [
- PACMAN_VERSION=$(echo $tmp |
- $AWK '/Pacman/ { print $[3] }' |
- $SED 's/^v//')
- HAVE_PACMAN=yes
- AC_MSG_RESULT([$HAVE_PACMAN ($PACMAN_VERSION)])
- ],[
- HAVE_PACMAN=no
- AC_MSG_RESULT([$HAVE_PACMAN])
- ])
-
- AC_MSG_CHECKING([whether $MAKEPKG is available])
- tmp=$($MAKEPKG --version 2>/dev/null)
- AS_IF([test -n "$tmp"], [
- MAKEPKG_VERSION=$(echo $tmp | $AWK '/makepkg/ { print $[3] }')
- HAVE_MAKEPKG=yes
- AC_MSG_RESULT([$HAVE_MAKEPKG ($MAKEPKG_VERSION)])
- ],[
- HAVE_MAKEPKG=no
- AC_MSG_RESULT([$HAVE_MAKEPKG])
- ])
-
- AC_SUBST(HAVE_PACMAN)
- AC_SUBST(PACMAN)
- AC_SUBST(PACMAN_VERSION)
-
- AC_SUBST(HAVE_MAKEPKG)
- AC_SUBST(MAKEPKG)
- AC_SUBST(MAKEPKG_VERSION)
-])
-
-dnl #
dnl # Using the VENDOR tag from config.guess set the default
dnl # package type for 'make pkg': (rpm | deb | tgz)
dnl #
redhat) DEFAULT_PACKAGE=rpm ;;
fedora) DEFAULT_PACKAGE=rpm ;;
gentoo) DEFAULT_PACKAGE=tgz ;;
- arch) DEFAULT_PACKAGE=arch ;;
+ arch) DEFAULT_PACKAGE=tgz ;;
sles) DEFAULT_PACKAGE=rpm ;;
slackware) DEFAULT_PACKAGE=tgz ;;
lunar) DEFAULT_PACKAGE=tgz ;;
AC_MSG_RESULT([$DEFAULT_PACKAGE])
AC_SUBST(DEFAULT_PACKAGE)
+ DEFAULT_INIT_DIR=$sysconfdir/init.d
AC_MSG_CHECKING([default init directory])
- case "$VENDOR" in
- arch) DEFAULT_INIT_DIR=$sysconfdir/rc.d ;;
- *) DEFAULT_INIT_DIR=$sysconfdir/init.d ;;
- esac
-
AC_MSG_RESULT([$DEFAULT_INIT_DIR])
AC_SUBST(DEFAULT_INIT_DIR)
redhat) DEFAULT_INIT_SCRIPT=redhat ;;
fedora) DEFAULT_INIT_SCRIPT=fedora ;;
gentoo) DEFAULT_INIT_SCRIPT=gentoo ;;
- arch) DEFAULT_INIT_SCRIPT=arch ;;
+ arch) DEFAULT_INIT_SCRIPT=lsb ;;
sles) DEFAULT_INIT_SCRIPT=lsb ;;
slackware) DEFAULT_INIT_SCRIPT=lsb ;;
lunar) DEFAULT_INIT_SCRIPT=lunar ;;
ZFS_AC_RPM
ZFS_AC_DPKG
ZFS_AC_ALIEN
-
- AS_IF([test "$VENDOR" = "arch"], [ZFS_AC_PACMAN])
])