github.com/bugraaydogar/snapd@v0.0.0-20210315170335-8c70bb858939/cmd/configure.ac (about)

     1  AC_PREREQ([2.69])
     2  AC_INIT([snap-confine], m4_esyscmd_s([cat VERSION]), [snapcraft@lists.ubuntu.com])
     3  AC_CONFIG_SRCDIR([snap-confine/snap-confine.c])
     4  AC_CONFIG_HEADERS([config.h])
     5  AC_USE_SYSTEM_EXTENSIONS
     6  AM_INIT_AUTOMAKE([foreign subdir-objects])
     7  AM_MAINTAINER_MODE([enable])
     8  
     9  # Checks for programs.
    10  AC_PROG_CC_C99
    11  AC_PROG_CPP
    12  AC_PROG_INSTALL
    13  AC_PROG_MAKE_SET
    14  AC_PROG_RANLIB
    15  
    16  AC_LANG([C])
    17  # Checks for libraries.
    18  
    19  # check for large file support
    20  AC_SYS_LARGEFILE
    21  
    22  # Checks for header files.
    23  AC_CHECK_HEADERS([fcntl.h limits.h stdlib.h string.h sys/mount.h unistd.h])
    24  AC_CHECK_HEADERS([sys/quota.h], [], [AC_MSG_ERROR(sys/quota.h unavailable)])
    25  AC_CHECK_HEADERS([xfs/xqm.h], [], [AC_MSG_ERROR(xfs/xqm.h unavailable)],
    26  [[#define _GNU_SOURCE
    27  #define _FILE_OFFSET_BITS 64
    28  #include <xfs/xqm.h>
    29  ]])
    30  
    31  # Checks for typedefs, structures, and compiler characteristics.
    32  AC_CHECK_HEADER_STDBOOL
    33  AC_TYPE_UID_T
    34  AC_TYPE_MODE_T
    35  AC_TYPE_PID_T
    36  AC_TYPE_SIZE_T
    37  
    38  # Checks for library functions.
    39  AC_FUNC_CHOWN
    40  AC_FUNC_ERROR_AT_LINE
    41  AC_FUNC_FORK
    42  AC_FUNC_STRNLEN
    43  AC_CHECK_FUNCS([mkdir regcomp setenv strdup strerror secure_getenv])
    44  
    45  AC_ARG_WITH([unit-tests],
    46      AC_HELP_STRING([--without-unit-tests], [do not build unit test programs]),
    47      [case "${withval}" in
    48          yes) with_unit_tests=yes ;;
    49          no)  with_unit_tests=no ;;
    50          *)   AC_MSG_ERROR([bad value ${withval} for --without-unit-tests])
    51      esac], [with_unit_tests=yes])
    52  AM_CONDITIONAL([WITH_UNIT_TESTS], [test "x$with_unit_tests" = "xyes"])
    53  
    54  # Allow to build without apparmor support by calling:
    55  # ./configure --disable-apparmor
    56  # This makes it possible to run snaps in devmode on almost any host,
    57  # regardless of the kernel version.
    58  AC_ARG_ENABLE([apparmor],
    59      AS_HELP_STRING([--disable-apparmor], [Disable apparmor support]),
    60      [case "${enableval}" in
    61          yes) enable_apparmor=yes ;;
    62          no)  enable_apparmor=no ;;
    63          *) AC_MSG_ERROR([bad value ${enableval} for --disable-apparmor])
    64      esac], [enable_apparmor=yes])
    65  AM_CONDITIONAL([APPARMOR], [test "x$enable_apparmor" = "xyes"])
    66  
    67  # Allow to build with SELinux support by calling:
    68  # ./configure --enable-selinux
    69  AC_ARG_ENABLE([selinux],
    70      AS_HELP_STRING([--enable-selinux], [Enable SELinux support]),
    71      [case "${enableval}" in
    72          yes) enable_selinux=yes ;;
    73          no)  enable_selinux=no ;;
    74          *) AC_MSG_ERROR([bad value ${enableval} for --enable-selinux])
    75      esac], [enable_selinux=no])
    76  AM_CONDITIONAL([SELINUX], [test "x$enable_selinux" = "xyes"])
    77  
    78  # Enable older tests only when confinement is enabled and we're building for PC
    79  # The tests are of smaller value as we port more and more tests to spread.
    80  AM_CONDITIONAL([CONFINEMENT_TESTS], [test "x$enable_apparmor" = "xyes" && ((test "x$host_cpu" = "xx86_64" && test "x$build_cpu" = "xx86_64") || (test "x$host_cpu" = "xi686" && test "x$build_cpu" = "xi686"))])
    81  
    82  # Check for glib that we use for unit testing
    83  AS_IF([test "x$with_unit_tests" = "xyes"], [
    84      PKG_CHECK_MODULES([GLIB], [glib-2.0])
    85  ])
    86  
    87  # Check if apparmor userspace library is available.
    88  AS_IF([test "x$enable_apparmor" = "xyes"], [
    89      PKG_CHECK_MODULES([APPARMOR], [libapparmor], [
    90        AC_DEFINE([HAVE_APPARMOR], [1], [Build with apparmor support])])
    91  ], [
    92      AC_MSG_WARN([
    93      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
    94      X                                                     X
    95      X Apparmor is disabled, all snaps will run in devmode X
    96      X                                                     X
    97      XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX])
    98  ])
    99  
   100  # Check if SELinux userspace library is available.
   101  AS_IF([test "x$enable_selinux" = "xyes"], [
   102  PKG_CHECK_MODULES([SELINUX], [libselinux], [
   103  AC_DEFINE([HAVE_SELINUX], [1], [Build with SELinux support])])
   104  ])
   105  
   106  # Check if udev and libudev are available.
   107  # Those are now used unconditionally even if apparmor is disabled.
   108  PKG_CHECK_MODULES([LIBUDEV], [libudev])
   109  PKG_CHECK_MODULES([UDEV], [udev])
   110  
   111  # Check if libcap is available.
   112  # PKG_CHECK_MODULES([LIBCAP], [libcap])
   113  
   114  # Enable special support for hosts with proprietary nvidia drivers on Ubuntu.
   115  AC_ARG_ENABLE([nvidia-multiarch],
   116      AS_HELP_STRING([--enable-nvidia-multiarch], [Support for proprietary nvidia drivers (Ubuntu/Debian)]),
   117      [case "${enableval}" in
   118          yes) enable_nvidia_multiarch=yes ;;
   119          no)  enable_nvidia_multiarch=no ;;
   120          *) AC_MSG_ERROR([bad value ${enableval} for --enable-nvidia-multiarch])
   121      esac], [enable_nvidia_multiarch=no])
   122  AM_CONDITIONAL([NVIDIA_MULTIARCH], [test "x$enable_nvidia_multiarch" = "xyes"])
   123  
   124  AS_IF([test "x$enable_nvidia_multiarch" = "xyes"], [
   125      AC_DEFINE([NVIDIA_MULTIARCH], [1],
   126          [Support for proprietary nvidia drivers (Ubuntu/Debian)])])
   127  
   128  # Enable special support for hosts with proprietary nvidia drivers on Arch.
   129  AC_ARG_ENABLE([nvidia-biarch],
   130      AS_HELP_STRING([--enable-nvidia-biarch], [Support for proprietary nvidia drivers (bi-arch distributions)]),
   131      [case "${enableval}" in
   132          yes) enable_nvidia_biarch=yes ;;
   133          no)  enable_nvidia_biarch=no ;;
   134          *) AC_MSG_ERROR([bad value ${enableval} for --enable-nvidia-biarch])
   135      esac], [enable_nvidia_biarch=no])
   136  AM_CONDITIONAL([NVIDIA_BIARCH], [test "x$enable_nvidia_biarch" = "xyes"])
   137  
   138  AS_IF([test "x$enable_nvidia_biarch" = "xyes"], [
   139      AC_DEFINE([NVIDIA_BIARCH], [1],
   140          [Support for proprietary nvidia drivers (bi-arch distributions)])])
   141  
   142  AC_ARG_ENABLE([merged-usr],
   143      AS_HELP_STRING([--enable-merged-usr], [Enable support for merged /usr directory]),
   144      [case "${enableval}" in
   145          yes) enable_merged_usr=yes ;;
   146          no)  enable_merged_usr=no ;;
   147          *) AC_MSG_ERROR([bad value ${enableval} for --enable-merged-usr])
   148      esac], [enable_merged_usr=no])
   149  AM_CONDITIONAL([MERGED_USR], [test "x$enable_merged_usr" = "xyes"])
   150  
   151  AS_IF([test "x$enable_merged_usr" = "xyes"], [
   152      AC_DEFINE([MERGED_USR], [1],
   153          [Support for merged /usr directory])])
   154  
   155  SNAP_MOUNT_DIR="/snap"
   156  AC_ARG_WITH([snap-mount-dir],
   157      AS_HELP_STRING([--with-snap-mount-dir=DIR], [Use an alternate snap mount directory]),
   158      [SNAP_MOUNT_DIR="$withval"])
   159  AC_SUBST(SNAP_MOUNT_DIR)
   160  AC_DEFINE_UNQUOTED([SNAP_MOUNT_DIR], "${SNAP_MOUNT_DIR}", [Location of the snap mount points])
   161  
   162  SNAP_MOUNT_DIR_SYSTEMD_UNIT="$(systemd-escape -p "$SNAP_MOUNT_DIR")"
   163  AC_SUBST([SNAP_MOUNT_DIR_SYSTEMD_UNIT])
   164  AC_DEFINE_UNQUOTED([SNAP_MOUNT_DIR_SYSTEMD_UNIT], "${SNAP_MOUNT_DIR_SYSTEMD_UNIT}", [Systemd unit name for snap mount points location])
   165  
   166  AC_PATH_PROGS([HAVE_RST2MAN],[rst2man rst2man.py])
   167  AS_IF([test "x$HAVE_RST2MAN" = "x"], [AC_MSG_WARN(["cannot find the rst2man tool, install python-docutils or similar"])])
   168  AM_CONDITIONAL([HAVE_RST2MAN], [test "x${HAVE_RST2MAN}" != "x"])
   169  
   170  AC_PATH_PROG([HAVE_VALGRIND],[valgrind])
   171  AM_CONDITIONAL([HAVE_VALGRIND], [test "x${HAVE_VALGRIND}" != "x"])
   172  AS_IF([test "x$HAVE_VALGRIND" = "x"], [AC_MSG_WARN(["cannot find the valgrind tool, will not run unit tests through valgrind"])])
   173  
   174  # Allow linking selected libraries statically for reexec.
   175  AC_ARG_ENABLE([static-libcap],
   176      AS_HELP_STRING([--enable-static-libcap], [Link libcap statically]),
   177      [case "${enableval}" in
   178          yes) enable_static_libcap=yes ;;
   179          no)  enable_static_libcap=no ;;
   180          *) AC_MSG_ERROR([bad value ${enableval} for --enable-static-libcap])
   181      esac], [enable_static_libcap=no])
   182  AM_CONDITIONAL([STATIC_LIBCAP], [test "x$enable_static_libcap" = "xyes"])
   183  
   184  AC_ARG_ENABLE([static-libapparmor],
   185      AS_HELP_STRING([--enable-static-libapparmor], [Link libapparmor statically]),
   186      [case "${enableval}" in
   187          yes) enable_static_libapparmor=yes ;;
   188          no)  enable_static_libapparmor=no ;;
   189          *) AC_MSG_ERROR([bad value ${enableval} for --enable-static-libapparmor])
   190      esac], [enable_static_libapparmor=no])
   191  AM_CONDITIONAL([STATIC_LIBAPPARMOR], [test "x$enable_static_libapparmor" = "xyes"])
   192  
   193  AC_ARG_ENABLE([static-libselinux],
   194  AS_HELP_STRING([--enable-static-libselinux], [Link libselinux statically]),
   195  [case "${enableval}" in
   196  yes) enable_static_libselinux=yes ;;
   197  no)  enable_static_libselinux=no ;;
   198  *) AC_MSG_ERROR([bad value ${enableval} for --enable-static-libselinux])
   199  esac], [enable_static_libselinux=no])
   200  AM_CONDITIONAL([STATIC_LIBSELINUX], [test "x$enable_static_libselinux" = "xyes"])
   201  
   202  LIB32_DIR="${prefix}/lib32"
   203  AC_ARG_WITH([32bit-libdir],
   204      AS_HELP_STRING([--with-32bit-libdir=DIR], [Use an alternate lib32 directory]),
   205      [LIB32_DIR="$withval"])
   206  AC_SUBST(LIB32_DIR)
   207  AC_DEFINE_UNQUOTED([LIB32_DIR], "${LIB32_DIR}", [Location of the lib32 directory])
   208  
   209  AC_ARG_WITH([host-arch-triplet],
   210      AS_HELP_STRING([--with-host-arch-triplet=triplet], [Arch triplet for host libraries]),
   211      [HOST_ARCH_TRIPLET="$withval"])
   212  AC_SUBST(HOST_ARCH_TRIPLET)
   213  AC_DEFINE_UNQUOTED([HOST_ARCH_TRIPLET], "${HOST_ARCH_TRIPLET}", [Arch triplet for host libraries])
   214  
   215  AC_ARG_WITH([host-arch-32bit-triplet],
   216      AS_HELP_STRING([--with-host-arch-32bit-triplet=triplet], [Arch triplet for 32bit libraries]),
   217      [HOST_ARCH32_TRIPLET="$withval"])
   218  AC_SUBST(HOST_ARCH32_TRIPLET)
   219  AC_DEFINE_UNQUOTED([HOST_ARCH32_TRIPLET], "${HOST_ARCH32_TRIPLET}", [Arch triplet for 32bit libraries])
   220  
   221  SYSTEMD_SYSTEM_GENERATOR_DIR="$($PKG_CONFIG --variable=systemdsystemgeneratordir systemd)"
   222  AS_IF([test "x$SYSTEMD_SYSTEM_GENERATOR_DIR" = "x"], [SYSTEMD_SYSTEM_GENERATOR_DIR=/lib/systemd/system-generators])
   223  AC_SUBST(SYSTEMD_SYSTEM_GENERATOR_DIR)
   224  
   225  # FIXME: get this via something like pkgconf once it is defined there
   226  SYSTEMD_SYSTEM_ENV_GENERATOR_DIR="${prefix}/lib/systemd/system-environment-generators"
   227  AC_SUBST(SYSTEMD_SYSTEM_ENV_GENERATOR_DIR)
   228  
   229  AC_CONFIG_FILES([Makefile])
   230  AC_OUTPUT