allow users to configure the option --enable-feature or --with-package, if an option is given run shell commands action-if-given

Signed-off-by: Caio B. Silva <caioboffo@gmail.com>
This commit is contained in:
Caio B. Silva 2019-09-30 09:25:00 -03:00
parent f756a3501a
commit b2963bf912

View File

@ -173,9 +173,9 @@ AC_MSG_RESULT($init_script)
# systemd unit dir
AC_ARG_WITH([systemdsystemunitdir],
AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
[],
[with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
AS_HELP_STRING([--with-systemdsystemunitdir=DIR], [Directory for systemd service files]),
[with_systemdsystemunitdir=$withval],
[with_systemdsystemunitdir=$($PKG_CONFIG --variable=systemdsystemunitdir systemd)])
if test -z "$with_systemdsystemunitdir"; then
with_systemdsystemunitdir=/lib/systemd/system
fi
@ -184,20 +184,19 @@ if test "x$with_systemdsystemunitdir" != "xno"; then
fi
AC_ARG_ENABLE([werror],
[AS_HELP_STRING([--disable-werror],
[do not treat warnings as errors])],
[], [enable_werror=yes])
[AS_HELP_STRING([--disable-werror], [do not treat warnings as errors])],
[enable_werror=$enableval], [enable_werror=yes])
# Allow disabling rpath
AC_ARG_ENABLE([rpath],
[AS_HELP_STRING([--enable-rpath], [set rpath in executables [default=no]])],
[], [enable_rpath=no])
[enable_rpath=$enableval], [enable_rpath=no])
AM_CONDITIONAL([ENABLE_RPATH], [test "x$enable_rpath" = "xyes"])
# Documentation (manpages)
AC_ARG_ENABLE([doc],
[AS_HELP_STRING([--enable-doc], [make man pages [default=auto]])],
[], [enable_doc=auto])
[enable_doc=$enableval], [enable_doc=auto])
if test "x$enable_doc" = "xyes" -o "x$enable_doc" = "xauto"; then
db2xman=""
@ -236,9 +235,8 @@ AC_SUBST(docdtd)
# Documentation (API)
AC_ARG_ENABLE([api-docs],
[AS_HELP_STRING([--enable-api-docs],
[make API documentation [default=auto]])],
[], [enable_api_docs=auto])
[AS_HELP_STRING([--enable-api-docs], [make API documentation [default=auto]])],
[enable_api_docs=$enableval], [enable_api_docs=auto])
if test "x$enable_api_docs" = "xyes" -o "x$enable_api_docs" = "xauto"; then
AC_CHECK_PROGS([HAVE_DOXYGEN],[doxygen])
@ -261,7 +259,7 @@ AC_CONFIG_MACRO_DIRS([config])
# Apparmor
AC_ARG_ENABLE([apparmor],
[AS_HELP_STRING([--enable-apparmor], [enable apparmor support [default=auto]])],
[], [enable_apparmor=auto])
[enable_apparmor=$enableval], [enable_apparmor=auto])
if test "$enable_apparmor" = "auto" ; then
AC_CHECK_LIB([apparmor],[aa_change_profile],[enable_apparmor=yes], [enable_apparmor=no])
@ -272,7 +270,7 @@ AM_CONDITIONAL([ENABLE_APPARMOR], [test "x$enable_apparmor" = "xyes"])
# libssl-dev
AC_ARG_ENABLE([openssl],
[AS_HELP_STRING([--enable-openssl], [enable OpenSSL support [default=auto]])],
[], [enable_openssl=auto])
[enable_openssl=$enableval], [enable_openssl=auto])
if test "$enable_openssl" = "auto" ; then
AC_CHECK_LIB([ssl], [OPENSSL_init_ssl], [enable_openssl=yes], [enable_openssl=no])
@ -287,7 +285,7 @@ AM_COND_IF([ENABLE_OPENSSL],
# SELinux
AC_ARG_ENABLE([selinux],
[AS_HELP_STRING([--enable-selinux], [enable SELinux support [default=auto]])],
[], [enable_selinux=auto])
[enable_selinux=$enableval], [enable_selinux=auto])
if test "x$enable_selinux" = xauto; then
AC_CHECK_LIB([selinux],[setexeccon_raw],[enable_selinux=yes],[enable_selinux=no])
@ -301,7 +299,7 @@ AM_COND_IF([ENABLE_SELINUX],
# Seccomp syscall filter
AC_ARG_ENABLE([seccomp],
[AS_HELP_STRING([--enable-seccomp], [enable seccomp support [default=auto]])],
[], [enable_seccomp=auto])
[enable_seccomp=$enableval], [enable_seccomp=auto])
if test "x$enable_seccomp" = "xauto" ; then
AC_CHECK_LIB([seccomp],[seccomp_init],[enable_seccomp=yes],[enable_seccomp=no])
@ -347,7 +345,7 @@ LIBS="$OLD_LIBS"
# Linux capabilities
AC_ARG_ENABLE([capabilities],
[AS_HELP_STRING([--enable-capabilities], [enable kernel capabilities support [default=auto]])],
[], [enable_capabilities=auto])
[enable_capabilities=$enableval], [enable_capabilities=auto])
if test "x$enable_capabilities" = "xauto"; then
AC_CHECK_LIB([cap],[cap_set_proc],[enable_capabilities=yes],[enable_capabilities=no])
@ -373,13 +371,13 @@ CFLAGS="$OLD_CFLAGS"
# Configuration examples
AC_ARG_ENABLE([examples],
[AS_HELP_STRING([--enable-examples], [install examples [default=yes]])],
[], [enable_examples=yes])
[enable_examples=$enableval], [enable_examples=yes])
AM_CONDITIONAL([ENABLE_EXAMPLES], [test "x$enable_examples" = "xyes"])
# Enable dumping stack traces
AC_ARG_ENABLE([mutex-debugging],
[AS_HELP_STRING([--enable-mutex-debugging], [Makes mutexes to report error and provide stack trace [default=no]])],
[], [enable_mutex_debugging=no])
[enable_mutex_debugging=$enableval], [enable_mutex_debugging=no])
AM_CONDITIONAL([MUTEX_DEBUGGING], [test "x$enable_mutex_debugging" = "xyes"])
AM_COND_IF([MUTEX_DEBUGGING],
@ -409,7 +407,7 @@ m4_ifdef([PKG_CHECK_VAR], [],
# Optional bash integration
AC_ARG_ENABLE([bash],
[AS_HELP_STRING([--enable-bash], [build bash integration [default=yes]])],
[], [enable_bash=yes])
[enable_bash=$enableval], [enable_bash=yes])
AM_CONDITIONAL([ENABLE_BASH], [test "x$enable_bash" = "xyes"])
AM_COND_IF([ENABLE_BASH],
@ -423,90 +421,74 @@ AM_COND_IF([ENABLE_BASH],
# Build the command line tools
AC_ARG_ENABLE([tools],
[AS_HELP_STRING([--enable-tools], [build the command line tools [default=yes]])],
[], [enable_tools=yes])
[enable_tools=$enableval], [enable_tools=yes])
AM_CONDITIONAL([ENABLE_TOOLS], [test "x$enable_tools" = "xyes"])
# Build the liblxc commands
AC_ARG_ENABLE([commands],
[AS_HELP_STRING([--enable-commands], [build the liblxc commands [default=yes]])],
[], [enable_commands=yes])
[enable_commands=$enableval], [enable_commands=yes])
AM_CONDITIONAL([ENABLE_COMMANDS], [test "x$enable_commands" = "xyes"])
# Build with ASAN commands
AC_ARG_ENABLE([asan],
[AS_HELP_STRING([--enable-asan], [build with address sanitizer enabled [default=no]])],
[], [enable_asan=no])
[enable_asan=$enableval], [enable_asan=no])
AM_CONDITIONAL([ENABLE_ASAN], [test "x$enable_asan" = "xyes"])
# Optional test binaries
AC_ARG_ENABLE([tests],
[AS_HELP_STRING([--enable-tests], [build test/example binaries [default=no]])],
[], [enable_tests=no])
[enable_tests=$enableval], [enable_tests=no])
AM_CONDITIONAL([ENABLE_TESTS], [test "x$enable_tests" = "xyes"])
# Allow overriding the default runtime dir (/run)
AC_ARG_WITH([runtime-path],
[AS_HELP_STRING(
[--with-runtime-path=dir],
[runtime directory (default: /run)]
)], [], [with_runtime_path=['/run']])
[AS_HELP_STRING([--with-runtime-path=dir], [runtime directory (default: /run)])],
[with_runtime_path=$withval], [with_runtime_path=['/run']])
# LXC container path, where the containers are actually stored
# This is overridden by an entry in the file called LXCCONF
# (i.e. /etc/lxc/lxc.conf)
AC_ARG_WITH([config-path],
[AS_HELP_STRING(
[--with-config-path=dir],
[lxc configuration repository path]
)], [], [with_config_path=['${localstatedir}/lib/lxc']])
[AS_HELP_STRING([--with-config-path=dir], [lxc configuration repository path])],
[with_config_path=$withval], [with_config_path=['${localstatedir}/lib/lxc']])
# The path of the global lxc configuration file.
AC_ARG_WITH([global-conf],
[AS_HELP_STRING(
[--with-global-conf=dir],
[global lxc configuration file]
)], [], [with_global_conf=['${sysconfdir}/lxc/lxc.conf']])
[AS_HELP_STRING([--with-global-conf=dir], [global lxc configuration file])],
[with_global_conf=$withval], [with_global_conf=['${sysconfdir}/lxc/lxc.conf']])
# The path of the userns network configuration file
AC_ARG_WITH([usernic-conf],
[AS_HELP_STRING(
[--with-usernic-conf],
[user network interface configuration file]
)], [], [with_usernic_conf=['${sysconfdir}/lxc/lxc-usernet']])
[AS_HELP_STRING([--with-usernic-conf], [user network interface configuration file])],
[with_usernic_conf=$withval], [with_usernic_conf=['${sysconfdir}/lxc/lxc-usernet']])
# The path of the runtime usernic database
AC_ARG_WITH([usernic-db],
[AS_HELP_STRING(
[--with-usernic-db],
[lxc user nic database]
)], [], [with_usernic_db=['${with_runtime_path}/lxc/nics']])
[AS_HELP_STRING([--with-usernic-db], [lxc user nic database])],
[with_usernic_db=$withval], [with_usernic_db=['${with_runtime_path}/lxc/nics']])
# Rootfs path, where the container mount structure is assembled
AC_ARG_WITH([rootfs-path],
[AS_HELP_STRING(
[--with-rootfs-path=dir],
[lxc rootfs mount point]
)], [], [with_rootfs_path=['${libdir}/lxc/rootfs']])
[AS_HELP_STRING([--with-rootfs-path=dir], [lxc rootfs mount point])],
[with_rootfs_path=$withval], [with_rootfs_path=['${libdir}/lxc/rootfs']])
# cgroup pattern specification
AC_ARG_WITH([cgroup-pattern],
[AS_HELP_STRING(
[--with-cgroup-pattern=pattern],
[pattern for container cgroups]
)], [], [with_cgroup_pattern=['lxc.payload/%n']])
[AS_HELP_STRING([--with-cgroup-pattern=pattern], [pattern for container cgroups])],
[with_cgroup_pattern=$withval], [with_cgroup_pattern=['lxc.payload/%n']])
# The path for the apparmor_parser's cache for generated apparmor profiles
AC_ARG_WITH([apparmor-cache-dir],
[AS_HELP_STRING(
[--with-apparmor-cache-dir=dir],
[path for apparmor_parser cache]
)], [], [with_apparmor_cache_dir=['${localstatedir}/cache/lxc/apparmor']])
[AS_HELP_STRING([--with-apparmor-cache-dir=dir],[path for apparmor_parser cache])],
[with_apparmor_cache_dir=$withval], [with_apparmor_cache_dir=['${localstatedir}/cache/lxc/apparmor']])
# Container log path. By default, use $lxcpath.
AC_MSG_CHECKING([Whether to place logfiles in container config path])
AC_ARG_ENABLE([configpath-log],
[AS_HELP_STRING([--enable-configpath-log], [use logfiles in config path [default=no]])],
[], [enable_configpath_log=no])
[enable_configpath_log=$enableval], [enable_configpath_log=no])
AC_MSG_RESULT([$enable_configpath_log])
AM_CONDITIONAL([USE_CONFIGPATH_LOGS], [test "$enable_configpath_log" = "yes"])
@ -517,10 +499,8 @@ else
fi
AC_ARG_WITH([log-path],
[AS_HELP_STRING(
[--with-log-path=dir],
[per container log path]
)], [], [with_log_path=['${default_log_path}']])
[AS_HELP_STRING([--with-log-path=dir],[per container log path])],
[with_log_path=$withval], [with_log_path=['${default_log_path}']])
# Expand some useful variables
AS_AC_EXPAND(PREFIX, "$prefix")
@ -579,7 +559,7 @@ AM_CONDITIONAL([IS_BIONIC], [test "x$is_bionic" = "xyes"])
# Configuration examples
AC_ARG_ENABLE([pam],
[AS_HELP_STRING([--enable-pam], [enable pam module [default=no]])],
[], [enable_pam=no])
[enable_pam=$enableval], [enable_pam=no])
AM_CONDITIONAL([ENABLE_PAM], [test "x$enable_pam" = "xyes"])
AM_COND_IF([ENABLE_PAM],
@ -587,7 +567,7 @@ AM_COND_IF([ENABLE_PAM],
[pamdir],
[AS_HELP_STRING([--with-pamdir=PATH],[Specify the directory where PAM modules are stored,
or "none" if PAM modules are not to be built])],
[pamdir="${withval}"],
[pamdir=$withval],
[
if test "${prefix}" = "/usr"; then
pamdir="/lib${libdir##*/lib}/security"
@ -770,12 +750,12 @@ fi
AC_ARG_ENABLE([thread-safety],
[AS_HELP_STRING([--enable-thread-safety], [enforce thread-safety otherwise fail the build [default=yes]])],
[], [enable_thread_safety=yes])
[enable_thread_safety=$enableval], [enable_thread_safety=yes])
AM_CONDITIONAL([ENFORCE_THREAD_SAFETY], [test "x$enable_thread_safety" = "xyes"])
AC_ARG_ENABLE([dlog],
[AS_HELP_STRING([--enable-dlog], [enable dlog support [default=no]])],
[], [enable_dlog=no])
[enable_dlog=$enableval], [enable_dlog=no])
AM_CONDITIONAL([ENABLE_DLOG], [test "x$enable_dlog" = "xyes"])
AM_COND_IF([ENABLE_DLOG],
@ -788,7 +768,7 @@ AM_COND_IF([ENABLE_DLOG],
AC_ARG_ENABLE([memfd-rexec],
[AS_HELP_STRING([--enable-memfd-rexec], [enforce liblxc as a memfd to protect against certain symlink attacks [default=yes]])],
[], [enable_memfd_rexec=yes])
[enable_memfd_rexec=$enableval], [enable_memfd_rexec=yes])
AM_CONDITIONAL([ENFORCE_MEMFD_REXEC], [test "x$enable_memfd_rexec" = "xyes"])
if test "x$enable_memfd_rexec" = "xyes"; then
AC_DEFINE([ENFORCE_MEMFD_REXEC], 1, [Rexec liblxc as memfd])