2021-06-01 09:42:38 +00:00
AC_INIT([nix],[m4_esyscmd(bash -c "echo -n $(cat ./.version)$VERSION_SUFFIX")])
2019-07-01 17:04:03 +00:00
AC_CONFIG_MACRO_DIRS([m4])
2016-05-30 14:31:32 +00:00
AC_CONFIG_SRCDIR(README.md)
2003-04-04 16:14:56 +00:00
AC_CONFIG_AUX_DIR(config)
2006-03-01 12:15:33 +00:00
2011-11-16 20:39:59 +00:00
AC_PROG_SED
2006-05-31 11:50:14 +00:00
2023-05-11 13:51:48 +00:00
# Construct a Nix system name (like "i686-linux"):
# https://www.gnu.org/software/autoconf/manual/html_node/Canonicalizing.html#index-AC_005fCANONICAL_005fHOST-1
2023-06-20 12:10:30 +00:00
# The inital value is produced by the `config/config.guess` script:
# upstream: https://git.savannah.gnu.org/cgit/config.git/tree/config.guess
2023-05-11 13:51:48 +00:00
# It has the following form, which is not documented anywhere:
# <cpu>-<vendor>-<os>[<version>][-<abi>]
2023-06-20 12:10:30 +00:00
# If `./configure` is passed any of the `--host`, `--build`, `--target` options, the value comes from `config/config.sub` instead:
# upstream: https://git.savannah.gnu.org/cgit/config.git/tree/config.sub
2011-11-16 20:39:59 +00:00
AC_CANONICAL_HOST
2003-12-01 14:36:50 +00:00
AC_MSG_CHECKING([for the canonical Nix system name])
2006-05-31 11:50:14 +00:00
2021-06-01 09:42:38 +00:00
AC_ARG_WITH(system, AS_HELP_STRING([--with-system=SYSTEM],[Platform identifier (e.g., `i686-linux').]),
2011-11-16 20:39:59 +00:00
[system=$withval],
2011-11-16 20:58:21 +00:00
[case "$host_cpu" in
i*86)
machine_name="i686";;
2011-11-18 17:25:40 +00:00
amd64)
machine_name="x86_64";;
2016-03-11 20:53:06 +00:00
armv6|armv7)
machine_name="${host_cpu}l";;
2011-11-16 20:58:21 +00:00
*)
machine_name="$host_cpu";;
esac
case "$host_os" in
2016-02-29 11:50:47 +00:00
linux-gnu*|linux-musl*)
2012-08-27 15:28:48 +00:00
# For backward compatibility, strip the `-gnu' part.
system="$machine_name-linux";;
2011-11-16 20:39:59 +00:00
*)
# Strip the version number from names such as `gnu0.3',
# `darwin10.2.0', etc.
2012-08-27 15:28:48 +00:00
system="$machine_name-`echo $host_os | "$SED" -e's/@<:@0-9.@:>@*$//g'`";;
2011-11-16 20:39:59 +00:00
esac])
2003-12-01 14:36:50 +00:00
AC_MSG_RESULT($system)
AC_SUBST(system)
2019-07-02 01:11:52 +00:00
AC_DEFINE_UNQUOTED(SYSTEM, ["$system"], [platform identifier ('cpu-os')])
2003-12-01 14:36:50 +00:00
2006-05-31 11:50:14 +00:00
2008-11-20 14:14:35 +00:00
# State should be stored in /nix/var, unless the user overrides it explicitly.
test "$localstatedir" = '${prefix}/var' && localstatedir=/nix/var
2003-04-04 16:14:56 +00:00
AC_PROG_CC
AC_PROG_CXX
2018-01-28 19:19:56 +00:00
AC_PROG_CPP
2006-05-31 11:50:14 +00:00
2019-02-13 05:03:10 +00:00
AC_CHECK_TOOL([AR], [ar])
2006-05-31 11:50:14 +00:00
2006-09-22 11:13:12 +00:00
# Use 64-bit file system calls so that we can support files > 2 GiB.
2009-10-06 09:14:06 +00:00
AC_SYS_LARGEFILE
2006-09-22 11:13:12 +00:00
2024-03-01 16:42:24 +00:00
# OS-specific stuff.
2019-07-02 20:28:30 +00:00
AC_STRUCT_DIRENT_D_TYPE
2021-08-13 08:19:43 +00:00
case "$host_os" in
solaris*)
2019-07-02 20:28:30 +00:00
# Solaris requires -lsocket -lnsl for network functions
2021-06-04 11:25:36 +00:00
LDFLAGS="-lsocket -lnsl $LDFLAGS"
2021-08-13 08:19:43 +00:00
;;
2024-03-01 16:42:24 +00:00
darwin*)
# Need to link to libsandbox.
LDFLAGS="-lsandbox $LDFLAGS"
;;
2021-08-13 08:19:43 +00:00
esac
2019-07-02 20:28:30 +00:00
2003-12-22 16:40:46 +00:00
# Check for pubsetbuf.
AC_MSG_CHECKING([for pubsetbuf])
AC_LANG_PUSH(C++)
AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <iostream>
using namespace std;
static char buf[1024];]],
[[cerr.rdbuf()->pubsetbuf(buf, sizeof(buf));]])],
2008-06-09 13:52:45 +00:00
[AC_MSG_RESULT(yes) AC_DEFINE(HAVE_PUBSETBUF, 1, [Whether pubsetbuf is available.])],
2003-12-22 16:40:46 +00:00
AC_MSG_RESULT(no))
AC_LANG_POP(C++)
2006-05-31 11:50:14 +00:00
2016-06-09 14:15:58 +00:00
AC_CHECK_FUNCS([statvfs pipe2])
2007-10-27 16:51:55 +00:00
2012-07-23 20:52:25 +00:00
# Check for lutimes, optionally used for changing the mtime of
# symlinks.
AC_CHECK_FUNCS([lutimes])
2012-07-23 22:42:18 +00:00
# Check whether the store optimiser can optimise symlinks.
AC_MSG_CHECKING([whether it is possible to create a link to a symlink])
ln -s bla tmp_link
if ln tmp_link tmp_link2 2> /dev/null; then
AC_MSG_RESULT(yes)
AC_DEFINE(CAN_LINK_SYMLINK, 1, [Whether link() works on symlinks.])
else
AC_MSG_RESULT(no)
fi
rm -f tmp_link tmp_link2
2009-01-12 16:30:32 +00:00
# Check for <locale>.
2003-12-22 16:40:46 +00:00
AC_LANG_PUSH(C++)
2012-02-15 00:31:56 +00:00
AC_CHECK_HEADERS([locale])
2003-12-22 16:40:46 +00:00
AC_LANG_POP(C++)
2006-05-31 11:50:14 +00:00
2004-04-06 08:40:19 +00:00
AC_DEFUN([NEED_PROG],
2004-04-23 15:16:08 +00:00
[
AC_PATH_PROG($1, $2)
2004-04-06 08:40:19 +00:00
if test -z "$$1"; then
2004-07-18 21:07:27 +00:00
AC_MSG_ERROR([$2 is required])
2004-04-06 08:40:19 +00:00
fi
])
2008-04-10 09:54:23 +00:00
NEED_PROG(bash, bash)
2004-01-30 16:32:14 +00:00
AC_PATH_PROG(flex, flex, false)
AC_PATH_PROG(bison, bison, false)
2006-02-22 13:55:41 +00:00
AC_PATH_PROG(dot, dot)
2017-04-20 17:11:45 +00:00
AC_PATH_PROG(lsof, lsof, lsof)
2019-05-07 21:22:47 +00:00
NEED_PROG(jq, jq)
2006-10-19 19:20:18 +00:00
2011-04-11 10:13:53 +00:00
2019-03-27 23:02:10 +00:00
AC_SUBST(coreutils, [$(dirname $(type -p cat))])
2003-11-26 10:41:21 +00:00
2011-04-11 10:13:53 +00:00
2021-06-01 09:42:38 +00:00
AC_ARG_WITH(store-dir, AS_HELP_STRING([--with-store-dir=PATH],[path of the Nix store (defaults to /nix/store)]),
2008-11-20 14:14:35 +00:00
storedir=$withval, storedir='/nix/store')
2004-02-16 15:23:19 +00:00
AC_SUBST(storedir)
2011-04-11 10:13:53 +00:00
2019-07-02 01:12:58 +00:00
# Look for boost, a required dependency.
# Note that AX_BOOST_BASE only exports *CPP* BOOST_CPPFLAGS, no CXX flags,
# and CPPFLAGS are not passed to the C++ compiler automatically.
# Thus we append the returned CPPFLAGS to the CXXFLAGS here.
AX_BOOST_BASE([1.66], [CXXFLAGS="$BOOST_CPPFLAGS $CXXFLAGS"], [AC_MSG_ERROR([Nix requires boost.])])
2019-07-03 00:47:27 +00:00
# For unknown reasons, setting this directly in the ACTION-IF-FOUND above
# ends up with LDFLAGS being empty, so we set it afterwards.
LDFLAGS="$BOOST_LDFLAGS $LDFLAGS"
2019-07-02 01:12:58 +00:00
2019-10-02 01:22:18 +00:00
# On some platforms, new-style atomics need a helper library
AC_MSG_CHECKING(whether -latomic is needed)
AC_LINK_IFELSE([AC_LANG_SOURCE([[
#include <stdint.h>
uint64_t v;
int main() {
return (int)__atomic_load_n(&v, __ATOMIC_ACQUIRE);
}]])], GCC_ATOMIC_BUILTINS_NEED_LIBATOMIC=no, GCC_ATOMIC_BUILTINS_NEED_LIBATOMIC=yes)
AC_MSG_RESULT($GCC_ATOMIC_BUILTINS_NEED_LIBATOMIC)
if test "x$GCC_ATOMIC_BUILTINS_NEED_LIBATOMIC" = xyes; then
2021-06-04 11:25:36 +00:00
LDFLAGS="-latomic $LDFLAGS"
2019-10-02 01:22:18 +00:00
fi
2019-07-02 01:12:58 +00:00
2023-02-20 19:27:50 +00:00
# Building without tests is useful for bootstrapping with a smaller footprint
# or running the tests in a separate derivation. Otherwise, we do compile and
# run them.
AC_ARG_ENABLE(tests, AS_HELP_STRING([--disable-tests],[Do not build the tests]),
tests=$enableval, tests=yes)
AC_SUBST(tests)
2023-02-13 17:37:35 +00:00
# Building without API docs is the default as Nix' C++ interfaces are internal and unstable.
AC_ARG_ENABLE(internal_api_docs, AS_HELP_STRING([--enable-internal-api-docs],[Build API docs for Nix's internal unstable C++ interfaces]),
internal_api_docs=$enableval, internal_api_docs=no)
AC_SUBST(internal_api_docs)
2021-12-21 18:34:40 +00:00
# LTO is currently broken with clang for unknown reasons; ld segfaults in the llvm plugin
AC_ARG_ENABLE(lto, AS_HELP_STRING([--enable-lto],[Enable LTO (only supported with GCC) [default=no]]),
lto=$enableval, lto=no)
if test "$lto" = yes; then
if $CXX --version | grep -q GCC; then
AC_SUBST(CXXLTO, [-flto=jobserver])
else
echo "error: LTO is only supported with GCC at the moment" >&2
exit 1
fi
else
AC_SUBST(CXXLTO, [""])
fi
2019-11-01 17:27:40 +00:00
PKG_PROG_PKG_CONFIG
2021-06-01 09:42:38 +00:00
AC_ARG_ENABLE(shared, AS_HELP_STRING([--enable-shared],[Build shared libraries for Nix [default=yes]]),
2019-11-01 17:27:40 +00:00
shared=$enableval, shared=yes)
if test "$shared" = yes; then
AC_SUBST(BUILD_SHARED_LIBS, 1, [Whether to build shared libraries.])
else
AC_SUBST(BUILD_SHARED_LIBS, 0, [Whether to build shared libraries.])
PKG_CONFIG="$PKG_CONFIG --static"
fi
2019-03-27 23:02:10 +00:00
# Look for OpenSSL, a required dependency. FIXME: this is only (maybe)
# used by S3BinaryCacheStore.
2023-02-03 17:07:47 +00:00
PKG_CHECK_MODULES([OPENSSL], [libcrypto >= 1.1.1], [CXXFLAGS="$OPENSSL_CFLAGS $CXXFLAGS"])
2011-04-11 10:13:53 +00:00
2012-03-18 22:54:57 +00:00
2022-12-07 11:58:58 +00:00
# Look for libarchive.
2019-12-09 11:39:37 +00:00
PKG_CHECK_MODULES([LIBARCHIVE], [libarchive >= 3.1.2], [CXXFLAGS="$LIBARCHIVE_CFLAGS $CXXFLAGS"])
2020-10-15 20:13:01 +00:00
# Workaround until https://github.com/libarchive/libarchive/issues/1446 is fixed
if test "$shared" != yes; then
LIBARCHIVE_LIBS+=' -lz'
fi
2012-03-18 22:54:57 +00:00
# Look for SQLite, a required dependency.
2012-05-04 21:21:43 +00:00
PKG_CHECK_MODULES([SQLITE3], [sqlite3 >= 3.6.19], [CXXFLAGS="$SQLITE3_CFLAGS $CXXFLAGS"])
2003-07-28 14:13:42 +00:00
2015-03-27 11:27:36 +00:00
# Look for libcurl, a required dependency.
PKG_CHECK_MODULES([LIBCURL], [libcurl], [CXXFLAGS="$LIBCURL_CFLAGS $CXXFLAGS"])
2018-10-29 13:44:58 +00:00
# Look for editline, a required dependency.
2019-07-01 16:31:54 +00:00
# The the libeditline.pc file was added only in libeditline >= 1.15.2,
# see https://github.com/troglobit/editline/commit/0a8f2ef4203c3a4a4726b9dd1336869cd0da8607,
# but e.g. Ubuntu 16.04 has an older version, so we fall back to searching for
# editline.h when the pkg-config approach fails.
PKG_CHECK_MODULES([EDITLINE], [libeditline], [CXXFLAGS="$EDITLINE_CFLAGS $CXXFLAGS"], [
AC_CHECK_HEADERS([editline.h], [true],
[AC_MSG_ERROR([Nix requires libeditline; it was found neither via pkg-config nor its normal header.])])
AC_SEARCH_LIBS([readline read_history], [editline], [],
[AC_MSG_ERROR([Nix requires libeditline; it was not found via pkg-config, but via its header, but required functions do not work. Maybe it is too old? >= 1.14 is required.])])
])
2015-03-27 11:27:36 +00:00
2021-11-27 22:02:04 +00:00
# Look for libsodium.
2021-01-06 16:56:53 +00:00
PKG_CHECK_MODULES([SODIUM], [libsodium], [CXXFLAGS="$SODIUM_CFLAGS $CXXFLAGS"])
2015-02-04 15:43:32 +00:00
2018-08-06 09:48:35 +00:00
# Look for libbrotli{enc,dec}.
PKG_CHECK_MODULES([LIBBROTLI], [libbrotlienc libbrotlidec], [CXXFLAGS="$LIBBROTLI_CFLAGS $CXXFLAGS"])
2021-02-16 13:32:12 +00:00
# Look for libcpuid.
2021-11-27 23:48:04 +00:00
have_libcpuid=
2021-02-16 13:32:12 +00:00
if test "$machine_name" = "x86_64"; then
2021-11-27 23:48:04 +00:00
AC_ARG_ENABLE([cpuid],
AS_HELP_STRING([--disable-cpuid], [Do not determine microarchitecture levels with libcpuid (relevant to x86_64 only)]))
if test "x$enable_cpuid" != "xno"; then
PKG_CHECK_MODULES([LIBCPUID], [libcpuid],
[CXXFLAGS="$LIBCPUID_CFLAGS $CXXFLAGS"
have_libcpuid=1
AC_DEFINE([HAVE_LIBCPUID], [1], [Use libcpuid])]
)
fi
2021-02-16 13:32:12 +00:00
fi
AC_SUBST(HAVE_LIBCPUID, [$have_libcpuid])
2017-12-29 20:42:14 +00:00
2017-05-29 09:34:24 +00:00
# Look for libseccomp, required for Linux sandboxing.
2021-08-13 08:19:43 +00:00
case "$host_os" in
linux*)
AC_ARG_ENABLE([seccomp-sandboxing],
AS_HELP_STRING([--disable-seccomp-sandboxing],[Don't build support for seccomp sandboxing (only recommended if your arch doesn't support libseccomp yet!)
]))
if test "x$enable_seccomp_sandboxing" != "xno"; then
PKG_CHECK_MODULES([LIBSECCOMP], [libseccomp],
[CXXFLAGS="$LIBSECCOMP_CFLAGS $CXXFLAGS"])
have_seccomp=1
AC_DEFINE([HAVE_SECCOMP], [1], [Whether seccomp is available and should be used for sandboxing.])
Require at least libseccomp 2.5.5
Closes #10585
As it turns out, libseccomp maintains an internal syscall table and
validates each rule against it. This means that when using libseccomp
2.5.4 or older, one may pass `452` as syscall number against it, but
since it doesn't exist in the internal structure, `libseccomp` will refuse
to create a filter for that. This happens with nixpkgs-23.11, i.e. on
stable NixOS and when building Nix against the project's flake.
To work around that
* a backport of libseccomp 2.5.5 on upstream nixpkgs has been
scheduled[1].
* the package now uses libseccomp 2.5.5 on its own already. This is to
provide a quick fix since the correct fix for 23.11 is still a staging cycle
away.
It must not be possible to build a Nix with an incompatible libseccomp
version (nothing can be built in a sandbox on Linux!), so configure.ac
rejects libseccomp if `__SNR_fchmodat2` is not defined.
We still need the compat header though since `SCMP_SYS(fchmodat2)`
internally transforms this into `__SNR_fchmodat2` which points to
`__NR_fchmodat2` from glibc 2.39, so it wouldn't build on glibc 2.38.
The updated syscall table from libseccomp 2.5.5 is NOT used for that
step, but used later, so we need both, our compat header and their
syscall table 🤷
[1] https://github.com/NixOS/nixpkgs/pull/306070
(cherry picked from commit 73918b0ae4f1bfbf0a11fb50df8b48f7135060ba)
2024-04-22 18:19:03 +00:00
AC_COMPILE_IFELSE([
AC_LANG_SOURCE([[
#include <seccomp.h>
#ifndef __SNR_fchmodat2
# error "Missing support for fchmodat2"
#endif
]])
], [], [
echo "libseccomp is missing __SNR_fchmodat2. Please provide libseccomp 2.5.5 or later"
exit 1
])
2021-08-13 08:19:43 +00:00
else
have_seccomp=
fi
;;
*)
2018-02-18 07:35:01 +00:00
have_seccomp=
2021-08-13 08:19:43 +00:00
;;
esac
2018-02-18 07:35:01 +00:00
AC_SUBST(HAVE_SECCOMP, [$have_seccomp])
2017-05-29 09:34:24 +00:00
2016-05-04 15:16:48 +00:00
# Look for aws-cpp-sdk-s3.
AC_LANG_PUSH(C++)
AC_CHECK_HEADERS([aws/s3/S3Client.h],
2021-06-25 20:51:02 +00:00
[AC_DEFINE([ENABLE_S3], [1], [Whether to enable S3 support via aws-sdk-cpp.]) enable_s3=1],
2021-04-23 06:30:05 +00:00
[AC_DEFINE([ENABLE_S3], [0], [Whether to enable S3 support via aws-sdk-cpp.]) enable_s3=])
2016-05-04 15:16:48 +00:00
AC_SUBST(ENABLE_S3, [$enable_s3])
AC_LANG_POP(C++)
2017-12-22 11:05:13 +00:00
if test -n "$enable_s3"; then
2019-01-10 09:10:44 +00:00
declare -a aws_version_tokens=($(printf '#include <aws/core/VersionConfig.h>\nAWS_SDK_VERSION_STRING' | $CPP $CPPFLAGS - | grep -v '^#.*' | sed 's/"//g' | tr '.' ' '))
AC_DEFINE_UNQUOTED([AWS_VERSION_MAJOR], ${aws_version_tokens@<:@0@:>@}, [Major version of aws-sdk-cpp.])
AC_DEFINE_UNQUOTED([AWS_VERSION_MINOR], ${aws_version_tokens@<:@1@:>@}, [Minor version of aws-sdk-cpp.])
2020-12-04 18:32:35 +00:00
AC_DEFINE_UNQUOTED([AWS_VERSION_PATCH], ${aws_version_tokens@<:@2@:>@}, [Patch version of aws-sdk-cpp.])
2017-12-22 11:05:13 +00:00
fi
2016-05-04 15:16:48 +00:00
2010-10-22 13:39:15 +00:00
# Whether to use the Boehm garbage collector.
2021-06-01 09:42:38 +00:00
AC_ARG_ENABLE(gc, AS_HELP_STRING([--enable-gc],[enable garbage collection in the Nix expression evaluator (requires Boehm GC) [default=yes]]),
2019-10-30 13:43:09 +00:00
gc=$enableval, gc=yes)
2012-01-04 12:45:40 +00:00
if test "$gc" = yes; then
2010-10-29 14:00:47 +00:00
PKG_CHECK_MODULES([BDW_GC], [bdw-gc])
CXXFLAGS="$BDW_GC_CFLAGS $CXXFLAGS"
2010-10-22 13:39:15 +00:00
AC_DEFINE(HAVE_BOEHMGC, 1, [Whether to use the Boehm garbage collector.])
fi
2010-10-29 14:00:47 +00:00
2006-05-31 11:50:14 +00:00
2023-02-20 19:27:50 +00:00
if test "$tests" = yes; then
2020-05-08 10:09:00 +00:00
# Look for gtest.
PKG_CHECK_MODULES([GTEST], [gtest_main])
2023-01-19 13:51:00 +00:00
# Look for rapidcheck.
2023-04-08 20:29:43 +00:00
AC_ARG_VAR([RAPIDCHECK_HEADERS], [include path of gtest headers shipped by RAPIDCHECK])
2023-01-19 13:51:00 +00:00
# No pkg-config yet, https://github.com/emil-e/rapidcheck/issues/302
2023-01-30 17:08:57 +00:00
AC_LANG_PUSH(C++)
2023-02-13 17:37:35 +00:00
AC_SUBST(RAPIDCHECK_HEADERS)
[CXXFLAGS="-I $RAPIDCHECK_HEADERS $CXXFLAGS"]
2023-04-08 20:29:43 +00:00
[LIBS="-lrapidcheck -lgtest $LIBS"]
2023-01-19 13:51:00 +00:00
AC_CHECK_HEADERS([rapidcheck/gtest.h], [], [], [#include <gtest/gtest.h>])
2023-04-08 20:29:43 +00:00
dnl AC_CHECK_LIB doesn't work for C++ libs with mangled symbols
AC_LINK_IFELSE([
AC_LANG_PROGRAM([[
#include <gtest/gtest.h>
#include <rapidcheck/gtest.h>
]], [[
return RUN_ALL_TESTS();
]])
],
[],
[AC_MSG_ERROR([librapidcheck is not found.])])
2023-01-30 17:08:57 +00:00
AC_LANG_POP(C++)
2023-01-19 13:51:00 +00:00
2023-02-20 19:27:50 +00:00
fi
2023-01-19 13:51:00 +00:00
2022-01-26 10:41:51 +00:00
# Look for nlohmann/json.
PKG_CHECK_MODULES([NLOHMANN_JSON], [nlohmann_json >= 3.9])
2016-09-20 14:31:23 +00:00
# documentation generation switch
2021-06-01 09:42:38 +00:00
AC_ARG_ENABLE(doc-gen, AS_HELP_STRING([--disable-doc-gen],[disable documentation generation]),
2016-09-20 14:31:23 +00:00
doc_generate=$enableval, doc_generate=yes)
AC_SUBST(doc_generate)
2021-09-14 05:54:37 +00:00
# Look for lowdown library.
2022-02-01 09:44:19 +00:00
PKG_CHECK_MODULES([LOWDOWN], [lowdown >= 0.9.0], [CXXFLAGS="$LOWDOWN_CFLAGS $CXXFLAGS"])
2016-09-20 14:31:23 +00:00
2006-05-31 11:50:14 +00:00
# Setuid installations.
2006-12-07 18:51:11 +00:00
AC_CHECK_FUNCS([setresuid setreuid lchown])
2006-12-03 14:32:22 +00:00
2006-11-29 21:06:58 +00:00
2007-12-14 14:49:35 +00:00
# Nice to have, but not essential.
2017-02-28 12:59:11 +00:00
AC_CHECK_FUNCS([strsignal posix_fallocate sysconf])
2007-12-14 14:49:35 +00:00
2021-06-01 09:42:38 +00:00
AC_ARG_WITH(sandbox-shell, AS_HELP_STRING([--with-sandbox-shell=PATH],[path of a statically-linked shell to use as /bin/sh in sandboxes]),
2017-05-15 15:30:33 +00:00
sandbox_shell=$withval)
AC_SUBST(sandbox_shell)
2022-05-24 15:00:27 +00:00
if test ${cross_compiling:-no} = no && ! test -z ${sandbox_shell+x}; then
2022-05-24 14:26:40 +00:00
AC_MSG_CHECKING([whether sandbox-shell has the standalone feature])
# busybox shell sometimes allows executing other busybox applets,
# even if they are not in the path, breaking our sandbox
if PATH= $sandbox_shell -c "busybox" 2>&1 | grep -qv "not found"; then
AC_MSG_RESULT(enabled)
AC_MSG_ERROR([Please disable busybox FEATURE_SH_STANDALONE])
else
AC_MSG_RESULT(disabled)
fi
fi
2017-05-15 15:30:33 +00:00
2022-06-22 16:21:37 +00:00
AC_ARG_ENABLE(embedded-sandbox-shell, AS_HELP_STRING([--enable-embedded-sandbox-shell],[include the sandbox shell in the Nix binary [default=no]]),
embedded_sandbox_shell=$enableval, embedded_sandbox_shell=no)
AC_SUBST(embedded_sandbox_shell)
if test "$embedded_sandbox_shell" = yes; then
AC_DEFINE(HAVE_EMBEDDED_SANDBOX_SHELL, 1, [Include the sandbox shell in the Nix binary.])
fi
2013-11-25 15:51:22 +00:00
# Expand all variables in config.status.
test "$prefix" = NONE && prefix=$ac_default_prefix
test "$exec_prefix" = NONE && exec_prefix='${prefix}'
for name in $ac_subst_vars; do
2019-01-10 09:10:44 +00:00
declare $name="$(eval echo "${!name}")"
declare $name="$(eval echo "${!name}")"
declare $name="$(eval echo "${!name}")"
2013-11-25 15:51:22 +00:00
done
2014-09-22 10:50:38 +00:00
rm -f Makefile.config
2021-06-01 09:42:38 +00:00
AC_CONFIG_HEADERS([config.h])
2013-11-25 10:56:14 +00:00
AC_CONFIG_FILES([])
2003-04-08 15:36:54 +00:00
AC_OUTPUT