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

Contents of /trunk/configure.ac

Parent Directory Parent Directory | Revision Log Revision Log


Revision 75 - (show annotations) (download)
Wed May 4 23:35:39 2005 UTC (9 years, 2 months ago) by azarah
Original Path: trunk/configure.in
File MIME type: text/plain
File size: 3039 byte(s)
We create libctest.c via configure, so no need to keep it around.  Do some
cleanup related to libctest.c and libctest during configure.

1 AC_PREREQ(2.59)
2 AC_INIT(sandbox, 1.2.5, dev-portage@gentoo.org)
3 AM_INIT_AUTOMAKE
4 AC_CONFIG_HEADER([config.h])
5
6 dnl Checks for programs.
7 AC_PROG_CC
8 AC_ISC_POSIX
9 AC_PROG_INSTALL
10 AC_PROG_MAKE_SET
11 AC_PROG_AWK
12
13 AC_ENABLE_SHARED
14 AC_DISABLE_STATIC
15 dnl Next four lines is a hack to prevent libtool checking for CXX/F77
16 m4_undefine([AC_PROG_CXX])
17 m4_defun([AC_PROG_CXX],[])
18 m4_undefine([AC_PROG_F77])
19 m4_defun([AC_PROG_F77],[])
20 AC_PROG_LIBTOOL
21
22 AC_PREFIX_DEFAULT([/usr])
23
24 dnl Checks for libraries.
25 dnl Checks for header files.
26 AC_FUNC_ALLOCA
27 AC_HEADER_DIRENT
28 AC_HEADER_STDC
29 AC_HEADER_SYS_WAIT
30 AC_CHECK_HEADERS([ \
31 fcntl.h limits.h memory.h stddef.h \
32 stdlib.h string.h strings.h sys/file.h \
33 sys/param.h sys/time.h unistd.h utime.h \
34 ])
35
36 dnl Checks for typedefs, structures, and compiler characteristics.
37 AC_C_CONST
38 AC_TYPE_UID_T
39 AC_TYPE_MODE_T
40 AC_TYPE_SIZE_T
41 AC_CHECK_TYPES([ptrdiff_t])
42
43 dnl Checks for library functions.
44 AC_FUNC_CHOWN
45 AC_FUNC_FORK
46 AC_FUNC_LSTAT
47 AC_FUNC_LSTAT_FOLLOWS_SLASHED_SYMLINK
48 AC_FUNC_MALLOC
49 AC_FUNC_REALLOC
50 AC_TYPE_SIGNAL
51 AC_FUNC_STAT
52 AC_CHECK_FUNCS([ \
53 bzero ftruncate getcwd lchown memmove \
54 mempcpy memset mkdir pathconf realpath \
55 rmdir setenv strcasecmp strchr strdup \
56 strerror strndup strrchr strspn strstr \
57 ])
58
59 dnl uClibc doesn't currently provide dlvsym() so lets
60 dnl verify the toolchain supports it
61 AC_CHECK_LIB(dl, dlvsym,
62 [AC_DEFINE(HAVE_DLVSYM, 1, [libdl supports dlvsym])],
63 [AC_DEFINE(HAVE_DLVSYM, 0, [libdl does not support dlvsym])]
64 )
65
66 dnl when using libc5, (f)trucate's offset argument type is size_t with
67 dnl libc5, but it's off_t with libc6 (glibc2).
68 AC_MSG_CHECKING(truncate argument type)
69 if echo '#include <unistd.h>' | $CC -E - | grep -q 'truncate.*size_t' ; then
70 AC_MSG_RESULT(size_t)
71 AC_DEFINE(TRUNCATE_T, size_t, [truncate arg type])
72 else
73 AC_MSG_RESULT(off_t)
74 AC_DEFINE(TRUNCATE_T, off_t, [truncate arg type])
75 fi
76
77 dnl we need to handle symbols differently based upon their version,
78 dnl but we have to know which symbols the libc supports first
79 AC_MSG_CHECKING(libc path)
80 echo "int main(void) { return 0; }" > libctest.c
81 $CC -Wall -o libctest libctest.c
82 LIBC_PATH=`$CC $CFLAGS -Wl,-verbose -o libctest libctest.c 2>&1 | \
83 $AWK '/attempt to open/ { if (($4 ~ /libc\.so/) && ($5 == "succeeded")) LIBC = $4; }; END {print LIBC}'`
84 rm -f libctest.c
85 if test "$LIBC_PATH"x = x ; then
86 AC_MSG_ERROR(Unable to determine LIBC PATH)
87 fi
88 AC_MSG_RESULT($LIBC_PATH)
89 AC_SUBST(LIBC_PATH)
90
91 dnl when intercepting libc calls, we have to know the name of the
92 dnl libc to load and search with dl*() calls
93 AC_MSG_CHECKING(libc version)
94 dnl the sed script at the end here looks funny but it's ok ...
95 dnl they're m4 escape sequences for left and right brackets
96 LIBC_VERSION=`readelf -d libctest | grep NEEDED.*libc\\.so | $AWK '{print $NF}' | sed -e 's:\@<:@::' -e 's:\@:>@::'`
97 rm -f libctest
98 if test "$LIBC_VERSION"x = x ; then
99 AC_MSG_ERROR(Unable to determine LIBC VERSION)
100 fi
101 AC_MSG_RESULT($LIBC_VERSION)
102 AC_DEFINE_UNQUOTED(LIBC_VERSION, "$LIBC_VERSION", [name of libc to hook into])
103
104 AC_OUTPUT([Makefile])

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.20