The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/contrib/openzfs/config/zfs-build.m4

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 AC_DEFUN([ZFS_AC_LICENSE], [
    2         AC_MSG_CHECKING([zfs author])
    3         AC_MSG_RESULT([$ZFS_META_AUTHOR])
    4 
    5         AC_MSG_CHECKING([zfs license])
    6         AC_MSG_RESULT([$ZFS_META_LICENSE])
    7 ])
    8 
    9 AC_DEFUN([ZFS_AC_DEBUG_ENABLE], [
   10         DEBUG_CFLAGS="-Werror"
   11         DEBUG_CPPFLAGS="-DDEBUG -UNDEBUG"
   12         DEBUG_LDFLAGS=""
   13         DEBUG_ZFS="_with_debug"
   14         WITH_DEBUG="true"
   15         AC_DEFINE(ZFS_DEBUG, 1, [zfs debugging enabled])
   16 
   17         KERNEL_DEBUG_CFLAGS="-Werror"
   18         KERNEL_DEBUG_CPPFLAGS="-DDEBUG -UNDEBUG"
   19 ])
   20 
   21 AC_DEFUN([ZFS_AC_DEBUG_DISABLE], [
   22         DEBUG_CFLAGS=""
   23         DEBUG_CPPFLAGS="-UDEBUG -DNDEBUG"
   24         DEBUG_LDFLAGS=""
   25         DEBUG_ZFS="_without_debug"
   26         WITH_DEBUG=""
   27 
   28         KERNEL_DEBUG_CFLAGS=""
   29         KERNEL_DEBUG_CPPFLAGS="-UDEBUG -DNDEBUG"
   30 ])
   31 
   32 dnl #
   33 dnl # When debugging is enabled:
   34 dnl # - Enable all ASSERTs (-DDEBUG)
   35 dnl # - Promote all compiler warnings to errors (-Werror)
   36 dnl #
   37 dnl # (If INVARIANTS is detected, we need to force DEBUG, or strange panics
   38 dnl # can ensue.)
   39 dnl #
   40 AC_DEFUN([ZFS_AC_DEBUG], [
   41         AC_MSG_CHECKING([whether assertion support will be enabled])
   42         AC_ARG_ENABLE([debug],
   43                 [AS_HELP_STRING([--enable-debug],
   44                 [Enable compiler and code assertions @<:@default=no@:>@])],
   45                 [],
   46                 [enable_debug=no])
   47 
   48         AS_CASE(["x$enable_debug"],
   49                 ["xyes"],
   50                 [ZFS_AC_DEBUG_ENABLE],
   51                 ["xno"],
   52                 [ZFS_AC_DEBUG_DISABLE],
   53                 [AC_MSG_ERROR([Unknown option $enable_debug])])
   54 
   55         AS_CASE(["x$enable_invariants"],
   56                 ["xyes"],
   57                 [],
   58                 ["xno"],
   59                 [],
   60                 [ZFS_AC_DEBUG_INVARIANTS_DETECT])
   61 
   62         AS_CASE(["x$enable_invariants"],
   63                 ["xyes"],
   64                 [ZFS_AC_DEBUG_ENABLE],
   65                 ["xno"],
   66                 [],
   67                 [AC_MSG_ERROR([Unknown option $enable_invariants])])
   68 
   69         AC_SUBST(DEBUG_CFLAGS)
   70         AC_SUBST(DEBUG_CPPFLAGS)
   71         AC_SUBST(DEBUG_LDFLAGS)
   72         AC_SUBST(DEBUG_ZFS)
   73         AC_SUBST(WITH_DEBUG)
   74 
   75         AC_SUBST(KERNEL_DEBUG_CFLAGS)
   76         AC_SUBST(KERNEL_DEBUG_CPPFLAGS)
   77 
   78         AC_MSG_RESULT([$enable_debug])
   79 ])
   80 
   81 AC_DEFUN([ZFS_AC_DEBUGINFO_ENABLE], [
   82         DEBUG_CFLAGS="$DEBUG_CFLAGS -g -fno-inline $NO_IPA_SRA"
   83 
   84         KERNEL_DEBUG_CFLAGS="$KERNEL_DEBUG_CFLAGS -fno-inline $KERNEL_NO_IPA_SRA"
   85         KERNEL_MAKE="$KERNEL_MAKE CONFIG_DEBUG_INFO=y"
   86 
   87         DEBUGINFO_ZFS="_with_debuginfo"
   88 ])
   89 
   90 AC_DEFUN([ZFS_AC_DEBUGINFO_DISABLE], [
   91         DEBUGINFO_ZFS="_without_debuginfo"
   92 ])
   93 
   94 AC_DEFUN([ZFS_AC_DEBUGINFO], [
   95         AC_MSG_CHECKING([whether debuginfo support will be forced])
   96         AC_ARG_ENABLE([debuginfo],
   97                 [AS_HELP_STRING([--enable-debuginfo],
   98                 [Force generation of debuginfo @<:@default=no@:>@])],
   99                 [],
  100                 [enable_debuginfo=no])
  101 
  102         AS_CASE(["x$enable_debuginfo"],
  103                 ["xyes"],
  104                 [ZFS_AC_DEBUGINFO_ENABLE],
  105                 ["xno"],
  106                 [ZFS_AC_DEBUGINFO_DISABLE],
  107                 [AC_MSG_ERROR([Unknown option $enable_debuginfo])])
  108 
  109         AC_SUBST(DEBUG_CFLAGS)
  110         AC_SUBST(DEBUGINFO_ZFS)
  111 
  112         AC_SUBST(KERNEL_DEBUG_CFLAGS)
  113         AC_SUBST(KERNEL_MAKE)
  114 
  115         AC_MSG_RESULT([$enable_debuginfo])
  116 ])
  117 
  118 dnl #
  119 dnl # Disabled by default, provides basic memory tracking.  Track the total
  120 dnl # number of bytes allocated with kmem_alloc() and freed with kmem_free().
  121 dnl # Then at module unload time if any bytes were leaked it will be reported
  122 dnl # on the console.
  123 dnl #
  124 AC_DEFUN([ZFS_AC_DEBUG_KMEM], [
  125         AC_MSG_CHECKING([whether basic kmem accounting is enabled])
  126         AC_ARG_ENABLE([debug-kmem],
  127                 [AS_HELP_STRING([--enable-debug-kmem],
  128                 [Enable basic kmem accounting @<:@default=no@:>@])],
  129                 [],
  130                 [enable_debug_kmem=no])
  131 
  132         AS_IF([test "x$enable_debug_kmem" = xyes], [
  133                 KERNEL_DEBUG_CPPFLAGS="${KERNEL_DEBUG_CPPFLAGS} -DDEBUG_KMEM"
  134                 DEBUG_KMEM_ZFS="_with_debug_kmem"
  135         ], [
  136                 DEBUG_KMEM_ZFS="_without_debug_kmem"
  137         ])
  138 
  139         AC_SUBST(KERNEL_DEBUG_CPPFLAGS)
  140         AC_SUBST(DEBUG_KMEM_ZFS)
  141 
  142         AC_MSG_RESULT([$enable_debug_kmem])
  143 ])
  144 
  145 dnl #
  146 dnl # Disabled by default, provides detailed memory tracking.  This feature
  147 dnl # also requires --enable-debug-kmem to be set.  When enabled not only will
  148 dnl # total bytes be tracked but also the location of every kmem_alloc() and
  149 dnl # kmem_free().  When the module is unloaded a list of all leaked addresses
  150 dnl # and where they were allocated will be dumped to the console.  Enabling
  151 dnl # this feature has a significant impact on performance but it makes finding
  152 dnl # memory leaks straight forward.
  153 dnl #
  154 AC_DEFUN([ZFS_AC_DEBUG_KMEM_TRACKING], [
  155         AC_MSG_CHECKING([whether detailed kmem tracking is enabled])
  156         AC_ARG_ENABLE([debug-kmem-tracking],
  157                 [AS_HELP_STRING([--enable-debug-kmem-tracking],
  158                 [Enable detailed kmem tracking  @<:@default=no@:>@])],
  159                 [],
  160                 [enable_debug_kmem_tracking=no])
  161 
  162         AS_IF([test "x$enable_debug_kmem_tracking" = xyes], [
  163                 KERNEL_DEBUG_CPPFLAGS="${KERNEL_DEBUG_CPPFLAGS} -DDEBUG_KMEM_TRACKING"
  164                 DEBUG_KMEM_TRACKING_ZFS="_with_debug_kmem_tracking"
  165         ], [
  166                 DEBUG_KMEM_TRACKING_ZFS="_without_debug_kmem_tracking"
  167         ])
  168 
  169         AC_SUBST(KERNEL_DEBUG_CPPFLAGS)
  170         AC_SUBST(DEBUG_KMEM_TRACKING_ZFS)
  171 
  172         AC_MSG_RESULT([$enable_debug_kmem_tracking])
  173 ])
  174 
  175 AC_DEFUN([ZFS_AC_DEBUG_INVARIANTS_DETECT_FREEBSD], [
  176         AS_IF([sysctl -n kern.conftxt | grep -Fqx $'options\tINVARIANTS'],
  177                 [enable_invariants="yes"],
  178                 [enable_invariants="no"])
  179 ])
  180 
  181 AC_DEFUN([ZFS_AC_DEBUG_INVARIANTS_DETECT], [
  182         AM_COND_IF([BUILD_FREEBSD],
  183                 [ZFS_AC_DEBUG_INVARIANTS_DETECT_FREEBSD],
  184                 [enable_invariants="no"])
  185 ])
  186 
  187 dnl #
  188 dnl # Detected for the running kernel by default, enables INVARIANTS features
  189 dnl # in the FreeBSD kernel module.  This feature must be used when building
  190 dnl # for a FreeBSD kernel with "options INVARIANTS" in the KERNCONF and must
  191 dnl # not be used when the INVARIANTS option is absent.
  192 dnl #
  193 AC_DEFUN([ZFS_AC_DEBUG_INVARIANTS], [
  194         AC_MSG_CHECKING([whether FreeBSD kernel INVARIANTS checks are enabled])
  195         AC_ARG_ENABLE([invariants],
  196                 [AS_HELP_STRING([--enable-invariants],
  197                 [Enable FreeBSD kernel INVARIANTS checks [[default: detect]]])],
  198                 [], [ZFS_AC_DEBUG_INVARIANTS_DETECT])
  199 
  200         AS_IF([test "x$enable_invariants" = xyes],
  201                 [WITH_INVARIANTS="true"],
  202                 [WITH_INVARIANTS=""])
  203         AC_SUBST(WITH_INVARIANTS)
  204 
  205         AC_MSG_RESULT([$enable_invariants])
  206 ])
  207 
  208 AC_DEFUN([ZFS_AC_CONFIG_ALWAYS], [
  209         AX_COUNT_CPUS([])
  210         AC_SUBST(CPU_COUNT)
  211 
  212         ZFS_AC_CONFIG_ALWAYS_CC_NO_CLOBBERED
  213         ZFS_AC_CONFIG_ALWAYS_CC_INFINITE_RECURSION
  214         ZFS_AC_CONFIG_ALWAYS_KERNEL_CC_INFINITE_RECURSION
  215         ZFS_AC_CONFIG_ALWAYS_CC_IMPLICIT_FALLTHROUGH
  216         ZFS_AC_CONFIG_ALWAYS_CC_FRAME_LARGER_THAN
  217         ZFS_AC_CONFIG_ALWAYS_CC_NO_FORMAT_TRUNCATION
  218         ZFS_AC_CONFIG_ALWAYS_CC_NO_FORMAT_ZERO_LENGTH
  219         ZFS_AC_CONFIG_ALWAYS_CC_FORMAT_OVERFLOW
  220         ZFS_AC_CONFIG_ALWAYS_CC_NO_OMIT_FRAME_POINTER
  221         ZFS_AC_CONFIG_ALWAYS_CC_NO_IPA_SRA
  222         ZFS_AC_CONFIG_ALWAYS_KERNEL_CC_NO_IPA_SRA
  223         ZFS_AC_CONFIG_ALWAYS_CC_ASAN
  224         ZFS_AC_CONFIG_ALWAYS_CC_UBSAN
  225         ZFS_AC_CONFIG_ALWAYS_TOOLCHAIN_SIMD
  226         ZFS_AC_CONFIG_ALWAYS_SYSTEM
  227         ZFS_AC_CONFIG_ALWAYS_ARCH
  228         ZFS_AC_CONFIG_ALWAYS_PYTHON
  229         ZFS_AC_CONFIG_ALWAYS_PYZFS
  230         ZFS_AC_CONFIG_ALWAYS_SED
  231         ZFS_AC_CONFIG_ALWAYS_CPPCHECK
  232         ZFS_AC_CONFIG_ALWAYS_SHELLCHECK
  233         ZFS_AC_CONFIG_ALWAYS_PARALLEL
  234 ])
  235 
  236 AC_DEFUN([ZFS_AC_CONFIG], [
  237 
  238         dnl # Remove the previous build test directory.
  239         rm -Rf build
  240 
  241         ZFS_CONFIG=all
  242         AC_ARG_WITH([config],
  243                 AS_HELP_STRING([--with-config=CONFIG],
  244                 [Config file 'kernel|user|all|srpm']),
  245                 [ZFS_CONFIG="$withval"])
  246         AC_ARG_ENABLE([linux-builtin],
  247                 [AS_HELP_STRING([--enable-linux-builtin],
  248                 [Configure for builtin in-tree kernel modules @<:@default=no@:>@])],
  249                 [],
  250                 [enable_linux_builtin=no])
  251 
  252         AC_MSG_CHECKING([zfs config])
  253         AC_MSG_RESULT([$ZFS_CONFIG]);
  254         AC_SUBST(ZFS_CONFIG)
  255 
  256         ZFS_AC_CONFIG_ALWAYS
  257 
  258         AM_COND_IF([BUILD_LINUX], [
  259                 AC_ARG_VAR([TEST_JOBS], [simultaneous jobs during configure])
  260                 if test "x$ac_cv_env_TEST_JOBS_set" != "xset"; then
  261                         TEST_JOBS=$CPU_COUNT
  262                 fi
  263                 AC_SUBST(TEST_JOBS)
  264         ])
  265 
  266         ZFS_INIT_SYSV=
  267         ZFS_INIT_SYSTEMD=
  268         ZFS_WANT_MODULES_LOAD_D=
  269 
  270         case "$ZFS_CONFIG" in
  271                 kernel) ZFS_AC_CONFIG_KERNEL ;;
  272                 user)   ZFS_AC_CONFIG_USER   ;;
  273                 all)    ZFS_AC_CONFIG_USER
  274                         ZFS_AC_CONFIG_KERNEL ;;
  275                 dist)                        ;;
  276                 srpm)                        ;;
  277                 *)
  278                 AC_MSG_RESULT([Error!])
  279                 AC_MSG_ERROR([Bad value "$ZFS_CONFIG" for --with-config,
  280                               user kernel|user|all|srpm]) ;;
  281         esac
  282 
  283         AM_CONDITIONAL([INIT_SYSV],           [test "x$ZFS_INIT_SYSV" = "xyes"])
  284         AM_CONDITIONAL([INIT_SYSTEMD],        [test "x$ZFS_INIT_SYSTEMD" = "xyes"])
  285         AM_CONDITIONAL([WANT_MODULES_LOAD_D], [test "x$ZFS_WANT_MODULES_LOAD_D" = "xyes"])
  286 
  287         AM_CONDITIONAL([CONFIG_USER],
  288             [test "$ZFS_CONFIG" = user -o "$ZFS_CONFIG" = all])
  289         AM_CONDITIONAL([CONFIG_KERNEL],
  290             [test "$ZFS_CONFIG" = kernel -o "$ZFS_CONFIG" = all] &&
  291             [test "x$enable_linux_builtin" != xyes ])
  292         AM_CONDITIONAL([CONFIG_QAT],
  293             [test "$ZFS_CONFIG" = kernel -o "$ZFS_CONFIG" = all] &&
  294             [test "x$qatsrc" != x ])
  295         AM_CONDITIONAL([WANT_DEVNAME2DEVID], [test "x$user_libudev" = xyes ])
  296         AM_CONDITIONAL([WANT_MMAP_LIBAIO], [test "x$user_libaio" = xyes ])
  297         AM_CONDITIONAL([PAM_ZFS_ENABLED], [test "x$enable_pam" = xyes])
  298 ])
  299 
  300 dnl #
  301 dnl # Check for rpm+rpmbuild to build RPM packages.  If these tools
  302 dnl # are missing it is non-fatal but you will not be able to build
  303 dnl # RPM packages and will be warned if you try too.
  304 dnl #
  305 dnl # By default the generic spec file will be used because it requires
  306 dnl # minimal dependencies.  Distribution specific spec files can be
  307 dnl # placed under the 'rpm/<distribution>' directory and enabled using
  308 dnl # the --with-spec=<distribution> configure option.
  309 dnl #
  310 AC_DEFUN([ZFS_AC_RPM], [
  311         RPM=rpm
  312         RPMBUILD=rpmbuild
  313 
  314         AC_MSG_CHECKING([whether $RPM is available])
  315         AS_IF([tmp=$($RPM --version 2>/dev/null)], [
  316                 RPM_VERSION=$(echo $tmp | $AWK '/RPM/ { print $[3] }')
  317                 HAVE_RPM=yes
  318                 AC_MSG_RESULT([$HAVE_RPM ($RPM_VERSION)])
  319         ],[
  320                 HAVE_RPM=no
  321                 AC_MSG_RESULT([$HAVE_RPM])
  322         ])
  323 
  324         AC_MSG_CHECKING([whether $RPMBUILD is available])
  325         AS_IF([tmp=$($RPMBUILD --version 2>/dev/null)], [
  326                 RPMBUILD_VERSION=$(echo $tmp | $AWK '/RPM/ { print $[3] }')
  327                 HAVE_RPMBUILD=yes
  328                 AC_MSG_RESULT([$HAVE_RPMBUILD ($RPMBUILD_VERSION)])
  329         ],[
  330                 HAVE_RPMBUILD=no
  331                 AC_MSG_RESULT([$HAVE_RPMBUILD])
  332         ])
  333 
  334         RPM_DEFINE_COMMON='--define "$(DEBUG_ZFS) 1"'
  335         RPM_DEFINE_COMMON=${RPM_DEFINE_COMMON}' --define "$(DEBUGINFO_ZFS) 1"'
  336         RPM_DEFINE_COMMON=${RPM_DEFINE_COMMON}' --define "$(DEBUG_KMEM_ZFS) 1"'
  337         RPM_DEFINE_COMMON=${RPM_DEFINE_COMMON}' --define "$(DEBUG_KMEM_TRACKING_ZFS) 1"'
  338         RPM_DEFINE_COMMON=${RPM_DEFINE_COMMON}' --define "$(ASAN_ZFS) 1"'
  339         RPM_DEFINE_COMMON=${RPM_DEFINE_COMMON}' --define "$(UBSAN_ZFS) 1"'
  340 
  341         AS_IF([test "x$enable_debuginfo" = xyes], [
  342                 RPM_DEFINE_COMMON=${RPM_DEFINE_COMMON}' --define "__strip /bin/true"'
  343         ])
  344 
  345         RPM_DEFINE_UTIL=' --define "_initconfdir $(initconfdir)"'
  346 
  347         dnl # Make the next three RPM_DEFINE_UTIL additions conditional, since
  348         dnl # their values may not be set when running:
  349         dnl #
  350         dnl #   ./configure --with-config=srpm
  351         dnl #
  352         AS_IF([test -n "$dracutdir" ], [
  353                 RPM_DEFINE_UTIL=${RPM_DEFINE_UTIL}' --define "_dracutdir $(dracutdir)"'
  354         ])
  355         AS_IF([test -n "$udevdir" ], [
  356                 RPM_DEFINE_UTIL=${RPM_DEFINE_UTIL}' --define "_udevdir $(udevdir)"'
  357         ])
  358         AS_IF([test -n "$udevruledir" ], [
  359                 RPM_DEFINE_UTIL=${RPM_DEFINE_UTIL}' --define "_udevruledir $(udevruledir)"'
  360         ])
  361         RPM_DEFINE_UTIL=${RPM_DEFINE_UTIL}' $(DEFINE_SYSTEMD)'
  362         RPM_DEFINE_UTIL=${RPM_DEFINE_UTIL}' $(DEFINE_PYZFS)'
  363         RPM_DEFINE_UTIL=${RPM_DEFINE_UTIL}' $(DEFINE_PAM)'
  364         RPM_DEFINE_UTIL=${RPM_DEFINE_UTIL}' $(DEFINE_PYTHON_VERSION)'
  365         RPM_DEFINE_UTIL=${RPM_DEFINE_UTIL}' $(DEFINE_PYTHON_PKG_VERSION)'
  366 
  367         dnl # Override default lib directory on Debian/Ubuntu systems.  The
  368         dnl # provided /usr/lib/rpm/platform/<arch>/macros files do not
  369         dnl # specify the correct path for multiarch systems as described
  370         dnl # by the packaging guidelines.
  371         dnl #
  372         dnl # https://wiki.ubuntu.com/MultiarchSpec
  373         dnl # https://wiki.debian.org/Multiarch/Implementation
  374         dnl #
  375         AS_IF([test "$DEFAULT_PACKAGE" = "deb"], [
  376                 MULTIARCH_LIBDIR="lib/$(dpkg-architecture -qDEB_HOST_MULTIARCH)"
  377                 RPM_DEFINE_UTIL=${RPM_DEFINE_UTIL}' --define "_lib $(MULTIARCH_LIBDIR)"'
  378                 AC_SUBST(MULTIARCH_LIBDIR)
  379         ])
  380 
  381         dnl # Make RPM_DEFINE_KMOD additions conditional on CONFIG_KERNEL,
  382         dnl # since the values will not be set otherwise. The spec files
  383         dnl # provide defaults for them.
  384         dnl #
  385         RPM_DEFINE_KMOD='--define "_wrong_version_format_terminate_build 0"'
  386         AM_COND_IF([CONFIG_KERNEL], [
  387                 RPM_DEFINE_KMOD=${RPM_DEFINE_KMOD}' --define "kernels $(LINUX_VERSION)"'
  388                 RPM_DEFINE_KMOD=${RPM_DEFINE_KMOD}' --define "ksrc $(LINUX)"'
  389                 RPM_DEFINE_KMOD=${RPM_DEFINE_KMOD}' --define "kobj $(LINUX_OBJ)"'
  390                 RPM_DEFINE_KMOD=${RPM_DEFINE_KMOD}' --define "kernel_cc KERNEL_CC=$(KERNEL_CC)"'
  391                 RPM_DEFINE_KMOD=${RPM_DEFINE_KMOD}' --define "kernel_ld KERNEL_LD=$(KERNEL_LD)"'
  392                 RPM_DEFINE_KMOD=${RPM_DEFINE_KMOD}' --define "kernel_llvm KERNEL_LLVM=$(KERNEL_LLVM)"'
  393         ])
  394 
  395         RPM_DEFINE_DKMS=''
  396 
  397         SRPM_DEFINE_COMMON='--define "build_src_rpm 1"'
  398         SRPM_DEFINE_UTIL=
  399         SRPM_DEFINE_KMOD=
  400         SRPM_DEFINE_DKMS=
  401 
  402         RPM_SPEC_DIR="rpm/generic"
  403         AC_ARG_WITH([spec],
  404                 AS_HELP_STRING([--with-spec=SPEC],
  405                 [Spec files 'generic|redhat']),
  406                 [RPM_SPEC_DIR="rpm/$withval"])
  407 
  408         AC_MSG_CHECKING([whether spec files are available])
  409         AC_MSG_RESULT([yes ($RPM_SPEC_DIR/*.spec.in)])
  410 
  411         AC_SUBST(HAVE_RPM)
  412         AC_SUBST(RPM)
  413         AC_SUBST(RPM_VERSION)
  414 
  415         AC_SUBST(HAVE_RPMBUILD)
  416         AC_SUBST(RPMBUILD)
  417         AC_SUBST(RPMBUILD_VERSION)
  418 
  419         AC_SUBST(RPM_SPEC_DIR)
  420         AC_SUBST(RPM_DEFINE_UTIL)
  421         AC_SUBST(RPM_DEFINE_KMOD)
  422         AC_SUBST(RPM_DEFINE_DKMS)
  423         AC_SUBST(RPM_DEFINE_COMMON)
  424         AC_SUBST(SRPM_DEFINE_UTIL)
  425         AC_SUBST(SRPM_DEFINE_KMOD)
  426         AC_SUBST(SRPM_DEFINE_DKMS)
  427         AC_SUBST(SRPM_DEFINE_COMMON)
  428 ])
  429 
  430 dnl #
  431 dnl # Check for dpkg+dpkg-buildpackage to build DEB packages.  If these
  432 dnl # tools are missing it is non-fatal but you will not be able to build
  433 dnl # DEB packages and will be warned if you try too.
  434 dnl #
  435 AC_DEFUN([ZFS_AC_DPKG], [
  436         DPKG=dpkg
  437         DPKGBUILD=dpkg-buildpackage
  438 
  439         AC_MSG_CHECKING([whether $DPKG is available])
  440         AS_IF([tmp=$($DPKG --version 2>/dev/null)], [
  441                 DPKG_VERSION=$(echo $tmp | $AWK '/Debian/ { print $[7] }')
  442                 HAVE_DPKG=yes
  443                 AC_MSG_RESULT([$HAVE_DPKG ($DPKG_VERSION)])
  444         ],[
  445                 HAVE_DPKG=no
  446                 AC_MSG_RESULT([$HAVE_DPKG])
  447         ])
  448 
  449         AC_MSG_CHECKING([whether $DPKGBUILD is available])
  450         AS_IF([tmp=$($DPKGBUILD --version 2>/dev/null)], [
  451                 DPKGBUILD_VERSION=$(echo $tmp | \
  452                     $AWK '/Debian/ { print $[4] }' | cut -f-4 -d'.')
  453                 HAVE_DPKGBUILD=yes
  454                 AC_MSG_RESULT([$HAVE_DPKGBUILD ($DPKGBUILD_VERSION)])
  455         ],[
  456                 HAVE_DPKGBUILD=no
  457                 AC_MSG_RESULT([$HAVE_DPKGBUILD])
  458         ])
  459 
  460         AC_SUBST(HAVE_DPKG)
  461         AC_SUBST(DPKG)
  462         AC_SUBST(DPKG_VERSION)
  463 
  464         AC_SUBST(HAVE_DPKGBUILD)
  465         AC_SUBST(DPKGBUILD)
  466         AC_SUBST(DPKGBUILD_VERSION)
  467         AC_SUBST([CFGOPTS], ["$CFGOPTS"])
  468 ])
  469 
  470 dnl #
  471 dnl # Until native packaging for various different packing systems
  472 dnl # can be added the least we can do is attempt to use alien to
  473 dnl # convert the RPM packages to the needed package type.  This is
  474 dnl # a hack but so far it has worked reasonable well.
  475 dnl #
  476 AC_DEFUN([ZFS_AC_ALIEN], [
  477         ALIEN=alien
  478 
  479         AC_MSG_CHECKING([whether $ALIEN is available])
  480         AS_IF([tmp=$($ALIEN --version 2>/dev/null)], [
  481                 ALIEN_VERSION=$(echo $tmp | $AWK '{ print $[3] }')
  482                 ALIEN_MAJOR=$(echo ${ALIEN_VERSION} | $AWK -F'.' '{ print $[1] }')
  483                 ALIEN_MINOR=$(echo ${ALIEN_VERSION} | $AWK -F'.' '{ print $[2] }')
  484                 ALIEN_POINT=$(echo ${ALIEN_VERSION} | $AWK -F'.' '{ print $[3] }')
  485                 HAVE_ALIEN=yes
  486                 AC_MSG_RESULT([$HAVE_ALIEN ($ALIEN_VERSION)])
  487         ],[
  488                 HAVE_ALIEN=no
  489                 AC_MSG_RESULT([$HAVE_ALIEN])
  490         ])
  491 
  492         AC_SUBST(HAVE_ALIEN)
  493         AC_SUBST(ALIEN)
  494         AC_SUBST(ALIEN_VERSION)
  495         AC_SUBST(ALIEN_MAJOR)
  496         AC_SUBST(ALIEN_MINOR)
  497         AC_SUBST(ALIEN_POINT)
  498 ])
  499 
  500 dnl #
  501 dnl # Using the VENDOR tag from config.guess set the default
  502 dnl # package type for 'make pkg': (rpm | deb | tgz)
  503 dnl #
  504 AC_DEFUN([ZFS_AC_DEFAULT_PACKAGE], [
  505         AC_MSG_CHECKING([os distribution])
  506         AC_ARG_WITH([vendor],
  507                 [AS_HELP_STRING([--with-vendor],
  508                         [Distribution vendor @<:@default=check@:>@])],
  509                 [with_vendor=$withval],
  510                 [with_vendor=check])
  511         AS_IF([test "x$with_vendor" = "xcheck"],[
  512                 if test -f /etc/toss-release ; then
  513                         VENDOR=toss ;
  514                 elif test -f /etc/fedora-release ; then
  515                         VENDOR=fedora ;
  516                 elif test -f /etc/redhat-release ; then
  517                         VENDOR=redhat ;
  518                 elif test -f /etc/gentoo-release ; then
  519                         VENDOR=gentoo ;
  520                 elif test -f /etc/arch-release ; then
  521                         VENDOR=arch ;
  522                 elif test -f /etc/SuSE-release ; then
  523                         VENDOR=sles ;
  524                 elif test -f /etc/slackware-version ; then
  525                         VENDOR=slackware ;
  526                 elif test -f /etc/lunar.release ; then
  527                         VENDOR=lunar ;
  528                 elif test -f /etc/lsb-release ; then
  529                         VENDOR=ubuntu ;
  530                 elif test -f /etc/debian_version ; then
  531                         VENDOR=debian ;
  532                 elif test -f /etc/alpine-release ; then
  533                         VENDOR=alpine ;
  534                 elif test -f /bin/freebsd-version ; then
  535                         VENDOR=freebsd ;
  536                 elif test -f /etc/openEuler-release ; then
  537                         VENDOR=openeuler ;
  538                 else
  539                         VENDOR= ;
  540                 fi],
  541                 [ test "x${with_vendor}" != x],[
  542                         VENDOR="$with_vendor" ],
  543                 [ VENDOR= ; ]
  544         )
  545         AC_MSG_RESULT([$VENDOR])
  546         AC_SUBST(VENDOR)
  547 
  548         AC_MSG_CHECKING([default package type])
  549         case "$VENDOR" in
  550                 toss)       DEFAULT_PACKAGE=rpm  ;;
  551                 redhat)     DEFAULT_PACKAGE=rpm  ;;
  552                 fedora)     DEFAULT_PACKAGE=rpm  ;;
  553                 gentoo)     DEFAULT_PACKAGE=tgz  ;;
  554                 alpine)     DEFAULT_PACKAGE=tgz  ;;
  555                 arch)       DEFAULT_PACKAGE=tgz  ;;
  556                 sles)       DEFAULT_PACKAGE=rpm  ;;
  557                 slackware)  DEFAULT_PACKAGE=tgz  ;;
  558                 lunar)      DEFAULT_PACKAGE=tgz  ;;
  559                 ubuntu)     DEFAULT_PACKAGE=deb  ;;
  560                 debian)     DEFAULT_PACKAGE=deb  ;;
  561                 freebsd)    DEFAULT_PACKAGE=pkg  ;;
  562                 openeuler)  DEFAULT_PACKAGE=rpm  ;;
  563                 *)          DEFAULT_PACKAGE=rpm  ;;
  564         esac
  565         AC_MSG_RESULT([$DEFAULT_PACKAGE])
  566         AC_SUBST(DEFAULT_PACKAGE)
  567 
  568         AC_MSG_CHECKING([default init directory])
  569         case "$VENDOR" in
  570                 freebsd)    initdir=$sysconfdir/rc.d  ;;
  571                 *)          initdir=$sysconfdir/init.d;;
  572         esac
  573         AC_MSG_RESULT([$initdir])
  574         AC_SUBST(initdir)
  575 
  576         AC_MSG_CHECKING([default shell])
  577         case "$VENDOR" in
  578                 gentoo)     DEFAULT_INIT_SHELL="/sbin/openrc-run";;
  579                 alpine)     DEFAULT_INIT_SHELL="/sbin/openrc-run";;
  580                 *)          DEFAULT_INIT_SHELL="/bin/sh"         ;;
  581         esac
  582 
  583         AC_MSG_RESULT([$DEFAULT_INIT_SHELL])
  584         AC_SUBST(DEFAULT_INIT_SHELL)
  585 
  586         AC_MSG_CHECKING([default nfs server init script])
  587         AS_IF([test "$VENDOR" = "debian"],
  588                 [DEFAULT_INIT_NFS_SERVER="nfs-kernel-server"],
  589                 [DEFAULT_INIT_NFS_SERVER="nfs"]
  590         )
  591         AC_MSG_RESULT([$DEFAULT_INIT_NFS_SERVER])
  592         AC_SUBST(DEFAULT_INIT_NFS_SERVER)
  593 
  594         AC_MSG_CHECKING([default init config directory])
  595         case "$VENDOR" in
  596                 alpine)     initconfdir=/etc/conf.d    ;;
  597                 gentoo)     initconfdir=/etc/conf.d    ;;
  598                 toss)       initconfdir=/etc/sysconfig ;;
  599                 redhat)     initconfdir=/etc/sysconfig ;;
  600                 fedora)     initconfdir=/etc/sysconfig ;;
  601                 sles)       initconfdir=/etc/sysconfig ;;
  602                 openeuler)  initconfdir=/etc/sysconfig ;;
  603                 ubuntu)     initconfdir=/etc/default   ;;
  604                 debian)     initconfdir=/etc/default   ;;
  605                 freebsd)    initconfdir=$sysconfdir/rc.conf.d;;
  606                 *)          initconfdir=/etc/default   ;;
  607         esac
  608         AC_MSG_RESULT([$initconfdir])
  609         AC_SUBST(initconfdir)
  610 
  611         AC_MSG_CHECKING([whether initramfs-tools is available])
  612         if test -d /usr/share/initramfs-tools ; then
  613                 RPM_DEFINE_INITRAMFS='--define "_initramfs 1"'
  614                 AC_MSG_RESULT([yes])
  615         else
  616                 RPM_DEFINE_INITRAMFS=''
  617                 AC_MSG_RESULT([no])
  618         fi
  619         AC_SUBST(RPM_DEFINE_INITRAMFS)
  620 ])
  621 
  622 dnl #
  623 dnl # Default ZFS package configuration
  624 dnl #
  625 AC_DEFUN([ZFS_AC_PACKAGE], [
  626         ZFS_AC_DEFAULT_PACKAGE
  627         AS_IF([test x$VENDOR != xfreebsd], [
  628                 ZFS_AC_RPM
  629                 ZFS_AC_DPKG
  630                 ZFS_AC_ALIEN
  631         ])
  632 ])

Cache object: 26f193c983dc7cfae2ffbd6c29c9b541


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.