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/always-pyzfs.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 dnl #
    2 dnl # ZFS_AC_PYTHON_MODULE(module_name, [action-if-true], [action-if-false])
    3 dnl #
    4 dnl # Checks for Python module. Freely inspired by AX_PYTHON_MODULE
    5 dnl # https://www.gnu.org/software/autoconf-archive/ax_python_module.html
    6 dnl # Required by ZFS_AC_CONFIG_ALWAYS_PYZFS.
    7 dnl #
    8 AC_DEFUN([ZFS_AC_PYTHON_MODULE], [
    9         PYTHON_NAME=${PYTHON##*/}
   10         AC_MSG_CHECKING([for $PYTHON_NAME module: $1])
   11         AS_IF([$PYTHON -c "import $1" 2>/dev/null], [
   12                 AC_MSG_RESULT(yes)
   13                 m4_ifvaln([$2], [$2])
   14         ], [
   15                 AC_MSG_RESULT(no)
   16                 m4_ifvaln([$3], [$3])
   17         ])
   18 ])
   19 
   20 dnl #
   21 dnl # Determines if pyzfs can be built, requires Python 3.6 or later.
   22 dnl #
   23 AC_DEFUN([ZFS_AC_CONFIG_ALWAYS_PYZFS], [
   24         AC_ARG_ENABLE([pyzfs],
   25                 AS_HELP_STRING([--enable-pyzfs],
   26                 [install libzfs_core python bindings @<:@default=check@:>@]),
   27                 [enable_pyzfs=$enableval],
   28                 [enable_pyzfs=check])
   29 
   30         dnl #
   31         dnl # Packages for pyzfs specifically enabled/disabled.
   32         dnl #
   33         AS_IF([test "x$enable_pyzfs" != xcheck], [
   34                 AS_IF([test "x$enable_pyzfs" = xyes], [
   35                         DEFINE_PYZFS='--with pyzfs'
   36                 ], [
   37                         DEFINE_PYZFS='--without pyzfs'
   38                 ])
   39         ], [
   40                 AS_IF([test "$PYTHON" != :], [
   41                         DEFINE_PYZFS=''
   42                 ], [
   43                         enable_pyzfs=no
   44                         DEFINE_PYZFS='--without pyzfs'
   45                 ])
   46         ])
   47         AC_SUBST(DEFINE_PYZFS)
   48 
   49         dnl #
   50         dnl # Autodetection disables pyzfs if kernel or srpm config
   51         dnl #
   52         AS_IF([test "x$enable_pyzfs" = xcheck], [
   53                 AS_IF([test "x$ZFS_CONFIG" = xkernel -o "x$ZFS_CONFIG" = xsrpm ], [
   54                                 enable_pyzfs=no
   55                                 AC_MSG_NOTICE([Disabling pyzfs for kernel/srpm config])
   56                 ])
   57         ])
   58 
   59         dnl #
   60         dnl # Python "packaging" (or, failing that, "distlib") module is required to build and install pyzfs
   61         dnl #
   62         AS_IF([test "x$enable_pyzfs" = xcheck -o "x$enable_pyzfs" = xyes], [
   63                 ZFS_AC_PYTHON_MODULE([packaging], [], [
   64                         ZFS_AC_PYTHON_MODULE([distlib], [], [
   65                                 AS_IF([test "x$enable_pyzfs" = xyes], [
   66                                         AC_MSG_ERROR("Python $PYTHON_VERSION packaging and distlib modules are not installed")
   67                                 ], [test "x$enable_pyzfs" != xno], [
   68                                         enable_pyzfs=no
   69                                 ])
   70                         ])
   71                 ])
   72         ])
   73 
   74         dnl #
   75         dnl # Require python3-devel libraries
   76         dnl #
   77         AS_IF([test "x$enable_pyzfs" = xcheck  -o "x$enable_pyzfs" = xyes], [
   78                 AS_CASE([$PYTHON_VERSION],
   79                         [3.*], [PYTHON_REQUIRED_VERSION=">= '3.6.0'"],
   80                         [AC_MSG_ERROR("Python $PYTHON_VERSION unknown")]
   81                 )
   82 
   83                 AX_PYTHON_DEVEL([$PYTHON_REQUIRED_VERSION], [
   84                         AS_IF([test "x$enable_pyzfs" = xyes], [
   85                                 AC_MSG_ERROR("Python $PYTHON_REQUIRED_VERSION development library is not installed")
   86                         ], [test "x$enable_pyzfs" != xno], [
   87                                 enable_pyzfs=no
   88                         ])
   89                 ])
   90         ])
   91 
   92         dnl #
   93         dnl # Python "setuptools" module is required to build and install pyzfs
   94         dnl #
   95         AS_IF([test "x$enable_pyzfs" = xcheck -o "x$enable_pyzfs" = xyes], [
   96                 ZFS_AC_PYTHON_MODULE([setuptools], [], [
   97                         AS_IF([test "x$enable_pyzfs" = xyes], [
   98                                 AC_MSG_ERROR("Python $PYTHON_VERSION setuptools is not installed")
   99                         ], [test "x$enable_pyzfs" != xno], [
  100                                 enable_pyzfs=no
  101                         ])
  102                 ])
  103         ])
  104 
  105         dnl #
  106         dnl # Python "cffi" module is required to run pyzfs
  107         dnl #
  108         AS_IF([test "x$enable_pyzfs" = xcheck -o "x$enable_pyzfs" = xyes], [
  109                 ZFS_AC_PYTHON_MODULE([cffi], [], [
  110                         AS_IF([test "x$enable_pyzfs" = xyes], [
  111                                 AC_MSG_ERROR("Python $PYTHON_VERSION cffi is not installed")
  112                         ], [test "x$enable_pyzfs" != xno], [
  113                                 enable_pyzfs=no
  114                         ])
  115                 ])
  116         ])
  117 
  118         dnl #
  119         dnl # Set enable_pyzfs to 'yes' if every check passed
  120         dnl #
  121         AS_IF([test "x$enable_pyzfs" = xcheck], [enable_pyzfs=yes])
  122 
  123         AM_CONDITIONAL([PYZFS_ENABLED], [test "x$enable_pyzfs" = xyes])
  124         AC_SUBST([PYZFS_ENABLED], [$enable_pyzfs])
  125         AC_SUBST(pythonsitedir, [$PYTHON_SITE_PKG])
  126 
  127         AC_MSG_CHECKING([whether to enable pyzfs: ])
  128         AC_MSG_RESULT($enable_pyzfs)
  129 ])

Cache object: 3f5c3586ed639083eda3a2516bc7bc17


[ 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.