1*8dd5e09dSSadaf Ebrahimi 2*8dd5e09dSSadaf Ebrahimidnl 3*8dd5e09dSSadaf Ebrahimidefine([AC_INIT_NOTICE], 4*8dd5e09dSSadaf Ebrahimi[### Generated automatically using autoconf version] AC_ACVERSION [ 5*8dd5e09dSSadaf Ebrahimi### Copyright 2009-2023 Steve Grubb <[email protected]> 6*8dd5e09dSSadaf Ebrahimi### 7*8dd5e09dSSadaf Ebrahimi### Permission is hereby granted, free of charge, to any person obtaining a 8*8dd5e09dSSadaf Ebrahimi### copy of this software and associated documentation files (the "Software"), 9*8dd5e09dSSadaf Ebrahimi### to deal in the Software without restriction, including without limitation 10*8dd5e09dSSadaf Ebrahimi### the rights to use, copy, modify, merge, publish, distribute, sublicense, 11*8dd5e09dSSadaf Ebrahimi### and/or sell copies of the Software, and to permit persons to whom the 12*8dd5e09dSSadaf Ebrahimi### Software is furnished to do so, subject to the following conditions: 13*8dd5e09dSSadaf Ebrahimi### 14*8dd5e09dSSadaf Ebrahimi### The above copyright notice and this permission notice shall be included 15*8dd5e09dSSadaf Ebrahimi### in all copies or substantial portions of the Software. 16*8dd5e09dSSadaf Ebrahimi### 17*8dd5e09dSSadaf Ebrahimi### THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18*8dd5e09dSSadaf Ebrahimi### IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19*8dd5e09dSSadaf Ebrahimi### FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL 20*8dd5e09dSSadaf Ebrahimi### THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR 21*8dd5e09dSSadaf Ebrahimi### OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, 22*8dd5e09dSSadaf Ebrahimi### ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 23*8dd5e09dSSadaf Ebrahimi### OTHER DEALINGS IN THE SOFTWARE. 24*8dd5e09dSSadaf Ebrahimi### 25*8dd5e09dSSadaf Ebrahimi### For usage, run `./configure --help' 26*8dd5e09dSSadaf Ebrahimi### For more detailed information on installation, read the file `INSTALL'. 27*8dd5e09dSSadaf Ebrahimi### 28*8dd5e09dSSadaf Ebrahimi### If configuration succeeds, status is in the file `config.status'. 29*8dd5e09dSSadaf Ebrahimi### A log of configuration tests is in `config.log'. 30*8dd5e09dSSadaf Ebrahimi]) 31*8dd5e09dSSadaf Ebrahimi 32*8dd5e09dSSadaf EbrahimiAC_REVISION($Revision: 1.3 $)dnl 33*8dd5e09dSSadaf EbrahimiAC_INIT([libcap-ng],[0.8.5]) 34*8dd5e09dSSadaf EbrahimiAC_PREREQ([2.50])dnl 35*8dd5e09dSSadaf EbrahimiAC_CONFIG_HEADERS([config.h]) 36*8dd5e09dSSadaf EbrahimiAC_CONFIG_MACRO_DIR([m4]) 37*8dd5e09dSSadaf Ebrahimi 38*8dd5e09dSSadaf Ebrahimiecho Configuring libcap-ng $VERSION 39*8dd5e09dSSadaf Ebrahimi 40*8dd5e09dSSadaf EbrahimiAC_CANONICAL_TARGET 41*8dd5e09dSSadaf EbrahimiAM_INIT_AUTOMAKE 42*8dd5e09dSSadaf EbrahimiLT_INIT 43*8dd5e09dSSadaf EbrahimiAC_SUBST(LIBTOOL_DEPS) 44*8dd5e09dSSadaf Ebrahimi 45*8dd5e09dSSadaf Ebrahimiecho . 46*8dd5e09dSSadaf Ebrahimiecho Checking for programs 47*8dd5e09dSSadaf Ebrahimi 48*8dd5e09dSSadaf EbrahimiAC_PROG_CC 49*8dd5e09dSSadaf EbrahimiAC_PROG_INSTALL 50*8dd5e09dSSadaf EbrahimiAC_PROG_AWK 51*8dd5e09dSSadaf Ebrahimi 52*8dd5e09dSSadaf Ebrahimiecho . 53*8dd5e09dSSadaf Ebrahimiecho Checking for header files 54*8dd5e09dSSadaf EbrahimiAC_CHECK_HEADERS(linux/capability.h, [], [AC_MSG_ERROR(linux/capability.h is required in order to build libcap-ng.)]) 55*8dd5e09dSSadaf EbrahimiAC_CHECK_HEADERS(sys/xattr.h, [], [ 56*8dd5e09dSSadaf Ebrahimi AC_CHECK_HEADERS(attr/xattr.h, [], [AC_MSG_WARN(attr/xattr.h not found, disabling file system capabilities.)]) 57*8dd5e09dSSadaf Ebrahimi ]) 58*8dd5e09dSSadaf EbrahimiAC_CHECK_HEADERS(linux/securebits.h, [], []) 59*8dd5e09dSSadaf EbrahimiAC_CHECK_HEADERS(pthread.h, 60*8dd5e09dSSadaf Ebrahimi [AC_SEARCH_LIBS(pthread_atfork, pthread)], 61*8dd5e09dSSadaf Ebrahimi [AC_MSG_WARN(pthread.h not found, disabling pthread_atfork.)]) 62*8dd5e09dSSadaf EbrahimiAC_CHECK_HEADERS(sys/vfs.h, [ 63*8dd5e09dSSadaf Ebrahimi AC_CHECK_HEADERS(linux/magic.h, [], [AC_MSG_WARN(linux/magic.h is required in order to verify procfs.)]) 64*8dd5e09dSSadaf Ebrahimi ], [AC_MSG_WARN(sys/vfs.h is required in order to verify procfs.)]) 65*8dd5e09dSSadaf Ebrahimi 66*8dd5e09dSSadaf EbrahimiAC_ARG_WITH([capability_header], 67*8dd5e09dSSadaf Ebrahimi [AS_HELP_STRING([--with-capability_header=path : path to capability.h])], 68*8dd5e09dSSadaf Ebrahimi [CAPABILITY_HEADER=$withval], 69*8dd5e09dSSadaf Ebrahimi [CAPABILITY_HEADER=/usr/include/linux/capability.h]) 70*8dd5e09dSSadaf EbrahimiAC_SUBST(CAPABILITY_HEADER) 71*8dd5e09dSSadaf Ebrahimi 72*8dd5e09dSSadaf EbrahimiALLWARNS="" 73*8dd5e09dSSadaf EbrahimiALLDEBUG="-g" 74*8dd5e09dSSadaf EbrahimiOPT="-O" 75*8dd5e09dSSadaf Ebrahimiif test x"$GCC" = x"yes"; then 76*8dd5e09dSSadaf Ebrahimi OPT="-O2 -pipe" 77*8dd5e09dSSadaf Ebrahimi case "$target" in 78*8dd5e09dSSadaf Ebrahimi *linux*) 79*8dd5e09dSSadaf Ebrahimi ALLWARNS="-W -Wall -Wundef -Wpointer-arith -Wcast-align \ 80*8dd5e09dSSadaf Ebrahimi-Wwrite-strings -Waggregate-return -Wstrict-prototypes \ 81*8dd5e09dSSadaf Ebrahimi-Wmissing-prototypes -Wmissing-declarations -Wredundant-decls \ 82*8dd5e09dSSadaf Ebrahimi-Wnested-externs -Winline -Wfloat-equal -Wchar-subscripts" 83*8dd5e09dSSadaf Ebrahimi ;; 84*8dd5e09dSSadaf Ebrahimi esac 85*8dd5e09dSSadaf Ebrahimifi 86*8dd5e09dSSadaf Ebrahimi 87*8dd5e09dSSadaf EbrahimiALLDEBUG="-g" 88*8dd5e09dSSadaf EbrahimiAC_ARG_WITH(debug, 89*8dd5e09dSSadaf Ebrahimi[ --with-debug turn on debugging [[default=no]]], 90*8dd5e09dSSadaf Ebrahimi[ 91*8dd5e09dSSadaf Ebrahimiif test "x${withval}" = xyes; then 92*8dd5e09dSSadaf Ebrahimi DEBUG="$ALLDEBUG" 93*8dd5e09dSSadaf Ebrahimi OPT="-O" 94*8dd5e09dSSadaf Ebrahimi AM_CONDITIONAL(DEBUG, true) 95*8dd5e09dSSadaf Ebrahimielse 96*8dd5e09dSSadaf Ebrahimi DEBUG="-DNDEBUG" 97*8dd5e09dSSadaf Ebrahimi AM_CONDITIONAL(DEBUG, false) 98*8dd5e09dSSadaf Ebrahimifi 99*8dd5e09dSSadaf Ebrahimi], 100*8dd5e09dSSadaf Ebrahimi[ DEBUG="-DNDEBUG"; AM_CONDITIONAL(DEBUG, false) ]) 101*8dd5e09dSSadaf Ebrahimi 102*8dd5e09dSSadaf EbrahimiAC_MSG_CHECKING(__attr_dealloc_free support) 103*8dd5e09dSSadaf EbrahimiAC_COMPILE_IFELSE( 104*8dd5e09dSSadaf Ebrahimi [AC_LANG_SOURCE( 105*8dd5e09dSSadaf Ebrahimi [[ 106*8dd5e09dSSadaf Ebrahimi #include <stdio.h> 107*8dd5e09dSSadaf Ebrahimi extern char *test(const char *name) __attr_dealloc_free; 108*8dd5e09dSSadaf Ebrahimi int main(void) { return 0; }]])], 109*8dd5e09dSSadaf Ebrahimi [DEALLOC="yes"], 110*8dd5e09dSSadaf Ebrahimi [DEALLOC="no"] 111*8dd5e09dSSadaf Ebrahimi) 112*8dd5e09dSSadaf EbrahimiAC_MSG_RESULT($DEALLOC) 113*8dd5e09dSSadaf Ebrahimi 114*8dd5e09dSSadaf EbrahimiAC_ARG_WITH(warn, 115*8dd5e09dSSadaf Ebrahimi[ --with-warn turn on warnings [[default=yes]]], 116*8dd5e09dSSadaf Ebrahimi[ 117*8dd5e09dSSadaf Ebrahimiif test "x${withval}" = xyes; then 118*8dd5e09dSSadaf Ebrahimi WARNS="$ALLWARNS" 119*8dd5e09dSSadaf Ebrahimielse 120*8dd5e09dSSadaf Ebrahimi WARNS="" 121*8dd5e09dSSadaf Ebrahimifi 122*8dd5e09dSSadaf Ebrahimi],WARNS="$ALLWARNS") 123*8dd5e09dSSadaf EbrahimiAC_SUBST(DEBUG) 124*8dd5e09dSSadaf Ebrahimi 125*8dd5e09dSSadaf EbrahimiWFLAGS="" 126*8dd5e09dSSadaf EbrahimiAC_MSG_CHECKING(for -Wformat-truncation) 127*8dd5e09dSSadaf EbrahimiTMPCFLAGS="${CFLAGS}" 128*8dd5e09dSSadaf EbrahimiCFLAGS="${CFLAGS} -Wformat-truncation" 129*8dd5e09dSSadaf EbrahimiAC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])],[WFLAGS="-Wno-format-truncation" 130*8dd5e09dSSadaf Ebrahimi AC_MSG_RESULT(yes)], 131*8dd5e09dSSadaf Ebrahimi [AC_MSG_RESULT(no)]) 132*8dd5e09dSSadaf EbrahimiCFLAGS="${TMPCFLAGS}" 133*8dd5e09dSSadaf EbrahimiAC_SUBST(WFLAGS) 134*8dd5e09dSSadaf Ebrahimi 135*8dd5e09dSSadaf EbrahimiAC_CHECK_HEADER(sys/syscall.h, 136*8dd5e09dSSadaf Ebrahimi [AC_DEFINE([HAVE_SYSCALL_H], [1], 137*8dd5e09dSSadaf Ebrahimi [Define to 1 if you have <sys/syscall.h>.])], [],) 138*8dd5e09dSSadaf Ebrahimi 139*8dd5e09dSSadaf Ebrahimidnl; This is to record in the build logs what options are being taken 140*8dd5e09dSSadaf EbrahimiAC_CHECK_DECLS([PR_CAP_AMBIENT], [], [], [[#include <sys/prctl.h>]]) 141*8dd5e09dSSadaf EbrahimiAC_CHECK_DECLS([VFS_CAP_REVISION_2], [], [], [[#include <linux/capability.h>]]) 142*8dd5e09dSSadaf EbrahimiAC_CHECK_DECLS([VFS_CAP_REVISION_3], [], [], [[#include <linux/capability.h>]]) 143*8dd5e09dSSadaf EbrahimiAC_CHECK_DECLS([CAP_EPOLLWAKEUP], [], [], [[#include <linux/capability.h>]]) 144*8dd5e09dSSadaf EbrahimiAC_CHECK_DECLS([CAP_WAKE_ALARM], [], [], [[#include <linux/capability.h>]]) 145*8dd5e09dSSadaf EbrahimiAC_CHECK_DECLS([CAP_BLOCK_SUSPEND], [], [], [[#include <linux/capability.h>]]) 146*8dd5e09dSSadaf EbrahimiAC_CHECK_DECLS([CAP_AUDIT_READ], [], [], [[#include <linux/capability.h>]]) 147*8dd5e09dSSadaf EbrahimiAC_CHECK_DECLS([CAP_PERFMON], [], [], [[#include <linux/capability.h>]]) 148*8dd5e09dSSadaf EbrahimiAC_CHECK_DECLS([CAP_BPF], [], [], [[#include <linux/capability.h>]]) 149*8dd5e09dSSadaf EbrahimiAC_CHECK_DECLS([CAP_CHECKPOINT_RESTORE], [], [], [[#include <linux/capability.h>]]) 150*8dd5e09dSSadaf Ebrahimi 151*8dd5e09dSSadaf Ebrahimidnl only build libdrop_ambient if support for ambient capabilities was found (which is normal) 152*8dd5e09dSSadaf Ebrahimiif test x"${ac_cv_have_decl_PR_CAP_AMBIENT}" = x"no" ; then 153*8dd5e09dSSadaf Ebrahimi AC_MSG_WARN("PR_CAP_AMBIENT not available - libdrop_ambient will not be built") 154*8dd5e09dSSadaf Ebrahimifi 155*8dd5e09dSSadaf EbrahimiAM_CONDITIONAL(BUILD_LIBDROP_AMBIENT, test x"${ac_cv_have_decl_PR_CAP_AMBIENT}" = x"yes") 156*8dd5e09dSSadaf Ebrahimi 157*8dd5e09dSSadaf EbrahimiAC_CHECK_PROG(swig_found, swig, yes, no) 158*8dd5e09dSSadaf Ebrahimiif test x"${swig_found}" = x"no" ; then 159*8dd5e09dSSadaf Ebrahimi AC_MSG_WARN("Swig not found - python bindings will not be made") 160*8dd5e09dSSadaf Ebrahimifi 161*8dd5e09dSSadaf EbrahimiAM_CONDITIONAL(HAVE_SWIG, test x"${swig_found}" = x"yes") 162*8dd5e09dSSadaf Ebrahimi 163*8dd5e09dSSadaf Ebrahimiwithval="" 164*8dd5e09dSSadaf EbrahimiAC_MSG_CHECKING(whether to create python3 bindings) 165*8dd5e09dSSadaf EbrahimiAC_ARG_WITH(python3, 166*8dd5e09dSSadaf EbrahimiAS_HELP_STRING([--with-python3],[enable building python3 bindings]), 167*8dd5e09dSSadaf Ebrahimiuse_python3=$withval, 168*8dd5e09dSSadaf Ebrahimiuse_python3=auto) 169*8dd5e09dSSadaf Ebrahimiif test x$use_python3 = xno ; then 170*8dd5e09dSSadaf Ebrahimi AC_MSG_RESULT(no) 171*8dd5e09dSSadaf Ebrahimielse 172*8dd5e09dSSadaf Ebrahimi AC_MSG_RESULT(investigating) 173*8dd5e09dSSadaf Ebrahimi AC_PATH_PROG([use_python3], [python3-config], [no]) 174*8dd5e09dSSadaf Ebrahimi if test ${use_python3} = no ; then 175*8dd5e09dSSadaf Ebrahimi if test ${withval} = yes ; then 176*8dd5e09dSSadaf Ebrahimi echo "Python3 bindings were selected but python3-config was not found." 177*8dd5e09dSSadaf Ebrahimi echo "Please ensure that it's installed or pass --without-python3 to ./configure" 178*8dd5e09dSSadaf Ebrahimi exit 1 179*8dd5e09dSSadaf Ebrahimi fi 180*8dd5e09dSSadaf Ebrahimi echo "Python3 bindings will NOT be built" 181*8dd5e09dSSadaf Ebrahimi else 182*8dd5e09dSSadaf Ebrahimi echo "Python3 bindings WILL be built" 183*8dd5e09dSSadaf Ebrahimi use_python3=yes 184*8dd5e09dSSadaf Ebrahimi AM_PATH_PYTHON([3.1],, [:]) 185*8dd5e09dSSadaf Ebrahimi PYTHON3_CFLAGS=`python3-config --cflags 2> /dev/null` 186*8dd5e09dSSadaf Ebrahimi PYTHON3_LIBS=`python3-config --libs 2> /dev/null` 187*8dd5e09dSSadaf Ebrahimi PYTHON3_INCLUDES=`python3-config --includes 2> /dev/null` 188*8dd5e09dSSadaf Ebrahimi AC_SUBST(PYTHON3_CFLAGS) 189*8dd5e09dSSadaf Ebrahimi AC_SUBST(PYTHON3_LIBS) 190*8dd5e09dSSadaf Ebrahimi AC_SUBST(PYTHON3_INCLUDES) 191*8dd5e09dSSadaf Ebrahimi fi 192*8dd5e09dSSadaf Ebrahimifi 193*8dd5e09dSSadaf EbrahimiAM_CONDITIONAL(USE_PYTHON3, test ${use_python3} = "yes") 194*8dd5e09dSSadaf Ebrahimi 195*8dd5e09dSSadaf EbrahimiAC_CONFIG_FILES([Makefile src/Makefile src/libcap-ng.pc src/test/Makefile 196*8dd5e09dSSadaf Ebrahimi bindings/Makefile 197*8dd5e09dSSadaf Ebrahimi bindings/python3/Makefile bindings/src/Makefile 198*8dd5e09dSSadaf Ebrahimi bindings/python3/test/Makefile utils/Makefile 199*8dd5e09dSSadaf Ebrahimi m4/Makefile docs/Makefile]) 200*8dd5e09dSSadaf EbrahimiAC_OUTPUT 201*8dd5e09dSSadaf Ebrahimi 202*8dd5e09dSSadaf Ebrahimiecho . 203*8dd5e09dSSadaf Ebrahimiecho " 204*8dd5e09dSSadaf Ebrahimi 205*8dd5e09dSSadaf Ebrahimi libcap-ng Version: $VERSION 206*8dd5e09dSSadaf Ebrahimi Target: $target 207*8dd5e09dSSadaf Ebrahimi Installation prefix: $prefix 208*8dd5e09dSSadaf Ebrahimi PYTHON_PREFIX: $PYTHON_PREFIX 209*8dd5e09dSSadaf Ebrahimi Compiler: $CC 210*8dd5e09dSSadaf Ebrahimi Compiler flags: 211*8dd5e09dSSadaf Ebrahimi`echo $CFLAGS | fmt -w 50 | sed 's,^, ,'` 212*8dd5e09dSSadaf Ebrahimi __attr_dealloc_free support: $DEALLOC 213*8dd5e09dSSadaf Ebrahimi" 214