/[path-sandbox]/trunk/configure.ac
Gentoo

Diff of /trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

Revision 243 Revision 412
1AC_PREREQ([2.59]) 1AC_PREREQ([2.61])
2AC_INIT([sandbox], [1.2.17], [sandbox@gentoo.org]) 2AC_INIT([sandbox], [1.3.0], [sandbox@gentoo.org])
3AM_INIT_AUTOMAKE 3AM_INIT_AUTOMAKE
4AC_CONFIG_HEADER([config.h]) 4AC_CONFIG_HEADER([config.h])
5 5
6dnl Checks for programs. 6dnl Checks for programs.
7AC_PROG_CC 7AC_PROG_CC
8AM_PROG_CC_C_O
8AC_ISC_POSIX 9AC_ISC_POSIX
9AC_PROG_INSTALL 10AC_PROG_INSTALL
10AC_PROG_MAKE_SET 11AC_PROG_MAKE_SET
11AC_PROG_AWK 12AC_PROG_AWK
12AC_CHECK_PROGS([READELF], [readelf eu-readelf], [false]) 13AC_CHECK_PROGS([READELF], [readelf eu-readelf], [false])
14AM_MISSING_PROG([AUTOM4TE], [autom4te])
13 15
14AC_ENABLE_SHARED 16AC_ENABLE_SHARED
15AC_DISABLE_STATIC 17AC_DISABLE_STATIC
16dnl Next four lines is a hack to prevent libtool checking for CXX/F77 18dnl Next four lines is a hack to prevent libtool checking for CXX/F77
17m4_undefine([AC_PROG_CXX]) 19m4_undefine([AC_PROG_CXX])
26dnl Checks for header files. 28dnl Checks for header files.
27AC_FUNC_ALLOCA 29AC_FUNC_ALLOCA
28AC_HEADER_DIRENT 30AC_HEADER_DIRENT
29AC_HEADER_STDC 31AC_HEADER_STDC
30AC_HEADER_SYS_WAIT 32AC_HEADER_SYS_WAIT
31AC_CHECK_HEADERS([ \ 33AC_CHECK_HEADERS_ONCE([ \
32 fcntl.h limits.h memory.h stddef.h \ 34 dirent.h \
33 stdlib.h string.h strings.h sys/file.h \ 35 dlfcn.h \
34 sys/param.h sys/time.h unistd.h utime.h \ 36 elf.h \
37 errno.h \
38 execinfo.h \
39 fcntl.h \
40 libgen.h \
41 limits.h \
42 memory.h \
43 signal.h \
44 stdarg.h \
45 stdbool.h \
46 stddef.h \
47 stdio.h \
48 stdlib.h \
49 string.h \
50 strings.h \
51 syscall.h \
52 unistd.h \
53 utime.h \
54 sys/file.h \
55 sys/mman.h \
56 sys/param.h \
57 sys/stat.h \
58 sys/time.h \
59 sys/types.h \
60 sys/wait.h \
35]) 61])
36 62
37dnl Checks for typedefs, structures, and compiler characteristics. 63dnl Checks for typedefs, structures, and compiler characteristics.
38AC_C_CONST 64AC_C_CONST
39AC_TYPE_UID_T 65AC_TYPE_UID_T
46AC_FUNC_FORK 72AC_FUNC_FORK
47AC_FUNC_LSTAT 73AC_FUNC_LSTAT
48AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK 74AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
49AC_TYPE_SIGNAL 75AC_TYPE_SIGNAL
50AC_FUNC_STAT 76AC_FUNC_STAT
51AC_CHECK_FUNCS([ \ 77AC_CHECK_FUNCS_ONCE([ \
52 bzero ftruncate getcwd lchown memmove \ 78 backtrace \
53 memcpy memset mkdir pathconf realpath \ 79 ftruncate \
54 rmdir setenv strcasecmp strchr strdup \ 80 getcwd \
55 strerror strndup strrchr strspn strstr \ 81 lchown \
82 memmove \
83 memcpy \
84 memset \
85 mkdir \
86 pathconf \
87 realpath \
88 rmdir \
89 setenv \
90 strcasecmp \
91 strchr \
92 strdup \
93 strerror \
94 strndup \
95 strrchr \
96 strspn \
97 strstr \
56 strtok_r \ 98 strtok_r \
57]) 99])
100dnl For librcutil
101AC_CHECK_FUNCS([remove])
102
103dnl Check if gcc provides va_copy or __va_copy (for librcutil)
104AC_MSG_CHECKING([for va_copy])
105AC_TRY_COMPILE([
106 #include <stdarg.h>
107 ], [
108 va_list ap, aq;
109 va_copy(ap, aq);
110 ],
111 [va_copy="va_copy"],
112 [AC_TRY_COMPILE([
113 #include <stdarg.h>
114 ], [
115 va_list ap, aq;
116 __va_copy(ap, aq);
117 ],
118 [va_copy="__va_copy"],
119 [AC_MSG_ERROR([Unable to determine name of va_copy macro])]
120 )]
121)
122AC_MSG_RESULT([$va_copy])
123if test x"$va_copy" != xva_copy ; then
124 AC_DEFINE_UNQUOTED([va_copy], [$va_copy],
125 [Define to name of va_copy macro proviced by gcc if its not `va_copy'.]
126 )
127fi
58 128
59dnl Verify people aren't doing stupid shit 129dnl Verify people aren't doing stupid shit
60if test x"$enable_static" != xno ; then 130if test x"$enable_static" != xno ; then
61 AC_MSG_ERROR([dont be a Kumba, building a libsandbox.a is stupid]) 131 AC_MSG_ERROR([dont be a Kumba, building a libsandbox.a is stupid])
62fi 132fi
119 [have_rtld_next="yes"], 189 [have_rtld_next="yes"],
120 [have_rtld_next="no"] 190 [have_rtld_next="no"]
121) 191)
122AC_MSG_RESULT([$have_rtld_next]) 192AC_MSG_RESULT([$have_rtld_next])
123if test x"$have_rtld_next" = xyes ; then 193if test x"$have_rtld_next" = xyes ; then
194 CPPFLAGS="$CPPFLAGS -D_GNU_SOURCE"
124 AC_DEFINE([HAVE_RTLD_NEXT], [1], [Have RTLD_NEXT enabled libc]) 195 AC_DEFINE([HAVE_RTLD_NEXT], [1], [Have RTLD_NEXT enabled libc])
125fi 196fi
126 197
127dnl we need to handle symbols differently based upon their version, 198dnl we need to handle symbols differently based upon their version,
128dnl but we have to know which symbols the libc supports first 199dnl but we have to know which symbols the libc supports first
129AC_MSG_CHECKING([libc path]) 200AC_MSG_CHECKING([libc path])
130echo "int main(void) { return 0; }" > libctest.c 201echo "int main(void) { return 0; }" > libctest.c
131$CC $CFLAGS -Wl,-verbose -o libctest libctest.c &> libctest.log 202$CC $CFLAGS $CPPFLAGS $LDFLAGS -Wl,-verbose -o libctest libctest.c > libctest.log 2>&1
132cat libctest.log 1>&AS_MESSAGE_LOG_FD 203cat libctest.log 1>&AS_MESSAGE_LOG_FD
204LIBC_PATH=$(
133LIBC_PATH=`$AWK '/attempt to open/ { if (($4 ~ /\/libc\.so/) && ($5 == "succeeded")) LIBC = $4; }; END {print LIBC}' libctest.log` 205 $AWK '/attempt to open/ { if (($4 ~ /\/libc\.so/) && ($5 == "succeeded")) LIBC = $4; }; END {print LIBC}' libctest.log
206)
134rm -f libctest* 207rm -f libctest*
135if test x"$LIBC_PATH" = x || ! test -r "$LIBC_PATH" ; then 208if test x"$LIBC_PATH" = x || ! test -r "$LIBC_PATH" ; then
136 AC_MSG_ERROR([Unable to determine LIBC PATH ($LIBC_PATH)]) 209 AC_MSG_ERROR([Unable to determine LIBC PATH ($LIBC_PATH)])
137fi 210fi
138AC_MSG_RESULT([$LIBC_PATH]) 211AC_MSG_RESULT([$LIBC_PATH])
140 213
141dnl when intercepting libc calls, we have to know the name of the 214dnl when intercepting libc calls, we have to know the name of the
142dnl libc to load and search with dl*() calls 215dnl libc to load and search with dl*() calls
143AC_MSG_CHECKING([libc version]) 216AC_MSG_CHECKING([libc version])
144dnl the sed script at the end here looks funny but it's ok ... 217dnl the sed script at the end here looks funny but it's ok ...
145dnl they're m4 escape sequences for left and right brackets
146echo "int main(void) { return 0; }" > libctest.c 218echo "int main(void) { return 0; }" > libctest.c
147$CC -Wall -o libctest libctest.c 219$CC $CFLAGS $CPPFLAGS $LDFLAGS -Wall -o libctest libctest.c
148LIBC_VERSION=`readelf -d libctest | grep NEEDED.*libc\\.so | $AWK '{print $NF}' | sed -e 's:\@<:@::' -e 's:\@:>@::'` 220LIBC_VERSION=$(
221 $READELF -d libctest | \
222 grep NEEDED.*libc\\.so | \
223 $AWK '{print $NF}' | sed -e ['s:\[::' -e 's:\]::']
224)
149rm -f libctest* 225rm -f libctest*
150if test "$LIBC_VERSION"x = x ; then 226if test "$LIBC_VERSION"x = x ; then
151 AC_MSG_ERROR([Unable to determine LIBC VERSION]) 227 AC_MSG_ERROR([Unable to determine LIBC VERSION])
152fi 228fi
153AC_MSG_RESULT([$LIBC_VERSION]) 229AC_MSG_RESULT([$LIBC_VERSION])
154AC_DEFINE_UNQUOTED([LIBC_VERSION], ["$LIBC_VERSION"], [Name of libc to hook into]) 230AC_DEFINE_UNQUOTED([LIBC_VERSION], ["$LIBC_VERSION"], [Name of libc to hook into])
155 231
156dnl check if we have 32bit or 64bit output 232dnl We add to CPPFLAGS rather than doing AC_DEFINE_UNQUOTED
157AC_ARG_ENABLE([multilib], 233dnl so we dont have to worry about fully expanding all of
158 AS_HELP_STRING([--enable-multilib], 234dnl the variables ($sysconfdir defaults to "$prefix/etc")
159 [enable building for multilib setups (default=disabled)]), 235SANDBOX_DEFINES='-DETCDIR="\"$(sysconfdir)\"" -DLIBSANDBOX_PATH="\"$(libdir)\"" -DSANDBOX_BASHRC_PATH="\"$(pkgdatadir)\""'
160 [enable_multilib="$enableval"], 236AC_SUBST([SANDBOX_DEFINES])
161 [enable_multilib="no"]
162)
163 237
164if test x"$enable_multilib" != xno ; then 238CPPFLAGS="$CPPFLAGS -D_REENTRANT"
165 AC_DEFINE([SB_HAVE_MULTILIB], [1], [Have multilib enabled system]) 239if test "$GCC" = yes; then
240 CFLAGS="$CFLAGS -Wall"
166fi 241fi
242
243AC_CONFIG_TESTDIR([tests])
167 244
168AC_OUTPUT([ 245AC_OUTPUT([
169 Makefile 246 Makefile
170 scripts/Makefile 247 scripts/Makefile
248 etc/Makefile
171 data/Makefile 249 data/Makefile
250 libsbutil/Makefile
251 libsandbox/Makefile
172 src/Makefile 252 src/Makefile
253 tests/atlocal
254 tests/Makefile
255 tests/package.m4
173]) 256])

Legend:
Removed from v.243  
changed lines
  Added in v.412

  ViewVC Help
Powered by ViewVC 1.1.20