diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 24 |
1 files changed, 22 insertions, 2 deletions
diff --git a/configure.ac b/configure.ac index ac5fecd6a..8ea831aa4 100644 --- a/configure.ac +++ b/configure.ac @@ -145,6 +145,8 @@ AC_CHECK_FUNCS( rpmatch]) AC_FUNC_FSEEKO +AC_CHECK_FUNCS([openat fstatat unlinkat], [have_openat=yes], [have_openat=no]) + AC_CHECK_MEMBER(struct sockaddr.sa_len, AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,[Define if struct sockaddr contains sa_len]),, [#include <sys/types.h> @@ -630,9 +632,27 @@ AM_CONDITIONAL(BUILD_CRAMFS, test "x$build_cramfs" = xyes) AC_ARG_ENABLE([switch_root], AS_HELP_STRING([--disable-switch_root], [do not build switch_root]), - [], enable_switch_root=no + [], enable_switch_root=check ) -AM_CONDITIONAL(BUILD_SWITCH_ROOT, test "x$enable_switch_root" = xyes) + +if test "x$enable_switch_root" = xno; then + build_switch_root=no +else + build_switch_root=yes + case $enable_switch_root:$linux_os in + yes:no) AC_MSG_ERROR([switch_root selected for non-linux system]);; + check:no) AC_MSG_WARN([non-linux system; do not build switch_root]) + build_switch_root=no;; + esac + if test "x$build_switch_root" = xyes; then + case $enable_switch_root:$have_openat in + yes:no) AC_MSG_ERROR([switch_root selected but openat() function not found]);; + check:no) AC_MSG_WARN([openat() function not found; do not build switch_root]) + build_switch_root=no;; + esac + fi +fi +AM_CONDITIONAL(BUILD_SWITCH_ROOT, test "x$build_switch_root" = xyes) AC_ARG_ENABLE([elvtune], |