diff options
Diffstat (limited to 'configure.ac')
-rw-r--r-- | configure.ac | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/configure.ac b/configure.ac new file mode 100644 index 0000000..4943932 --- /dev/null +++ b/configure.ac @@ -0,0 +1,136 @@ +dnl Process this file with autoconf to produce a configure script. -*-m4-*- +AC_INIT(src/prelink.c) +AC_CONFIG_HEADERS(config.h) +AC_PREREQ(2.50) dnl Minimum Autoconf version required. +AC_CANONICAL_SYSTEM +AC_ARG_PROGRAM + +AM_INIT_AUTOMAKE([prelink], [0.0]) + +ALL_LINGUAS= + +AC_PROG_CC +AM_PROG_CC_C_O +AC_PROG_CXX +AC_PROG_CPP +AC_PROG_GCC_TRADITIONAL +AM_PROG_LIBTOOL + +AC_ARG_ENABLE(64-bit, +[ --disable-64-bit only support 32-bit ELF], +[case "${enableval}" in + yes) want64=true ;; + no) want64=false ;; + *) AC_MSG_ERROR(bad value ${enableval} for 64-bit option) ;; +esac],[want64=true])dnl + +AC_CHECK_HEADER(libelf.h,,[ + if test -f /usr/include/elfutils/libelf.h; then + CPPFLAGS="$CPPFLAGS -I /usr/include/elfutils" + elif test -f /usr/local/include/elfutils/libelf.h; then + CPPFLAGS="$CPPFLAGS -I /usr/local/include/elfutils" + elif test -f /usr/include/libelf/libelf.h; then + CPPFLAGS="$CPPFLAGS -I /usr/include/libelf" + elif test -f /usr/local/include/libelf/libelf.h; then + CPPFLAGS="$CPPFLAGS -I /usr/local/include/libelf" + else + AC_MSG_ERROR(libelf.h not found) + fi]) +LIBGELF="" +if test "$want64"x = falsex; then + GELFINCLUDE='-I$(top_srcdir)/gelfx32' +else + GELFINCLUDE='-I$(top_srcdir)/gelfx' + AC_CHECK_HEADER(gelf.h,,[ + GELFINCLUDE="$GELFINCLUDE "'-I$(top_srcdir)/gelf' + LIBGELF='../gelf/libgelf.la' + ]) +fi +AC_CHECK_LIB(elf,elf_begin) +AC_SUBST(GELFINCLUDE) +AC_SUBST(LIBGELF) + +dnl Now check what kind of libelf we will link against +AC_CHECK_FUNC(gelf_getvernaux,[newbu=true],[newbu=false]) + +dnl Check if FTW_ACTIONRETVAL is supported +AC_CACHE_CHECK([whether FTW_ACTIONRETVAL is supported], + [ac_cv_ftw_actionretval], [dnl + AC_EGREP_CPP([FTW supports ACTIONRETVAL], [ + #ifndef _GNU_SOURCE + #define _GNU_SOURCE 1 + #endif + #include <ftw.h> + #ifdef FTW_ACTIONRETVAL + FTW supports ACTIONRETVAL + #endif + ], ac_cv_ftw_actionretval=yes, ac_cv_ftw_actionretval=no)]) +if test "x$ac_cv_ftw_actionretval" = xyes; then + AC_DEFINE(HAVE_FTW_ACTIONRETVAL, 1, + [Define if FTW_ACTIONRETVAL is supported.]) +fi + +dnl SELinux checks +AC_ARG_ENABLE(selinux, + AS_HELP_STRING([--disable-selinux], + [Disable selinux support in the prelinker]), + [ enable_selinux="$enableval" ], + [ enable_selinux="yes" ]) + +if test "x$enable_selinux" != "xyes"; then + ac_cv_lib_selinux_is_selinux_enabled=no + ac_cv_header_selinux_selinux_h=no +fi + +AC_CHECK_LIB(selinux,is_selinux_enabled) +AC_CHECK_HEADERS(selinux/selinux.h) + +dnl This test must come as early as possible after the compiler configuration +dnl tests, because the choice of the file model can (in principle) affect +dnl whether functions and headers are available, whether they work, etc. +if test x"$newbu" = xtrue; then + # Don't use LFS for libelf-0.x + AC_SYS_LARGEFILE +fi + +AC_LIBELF_SXWORD + +dnl Elf64_Byte is specific to the 64-bit MIPS psABI and may not be defined. +AC_CHECK_TYPES([Elf64_Byte], [], [], [#include <libelf.h>]) + +# Package version. +AC_ARG_WITH(pkgversion, + AS_HELP_STRING([--with-pkgversion=PKG], + [Add PKG to the version string]), + [case "$withval" in + yes) AC_MSG_ERROR([package version not specified]) ;; + no) PKGVERSION= ;; + *) PKGVERSION=" ($withval)" ;; + esac], + PKGVERSION= +) +AC_SUBST(PKGVERSION) + +# The location to which bugs should be reported. +AC_ARG_WITH(bugurl, + AS_HELP_STRING([--with-bugurl=URL], + [Direct users to URL to report a bug]), + [case "$withval" in + yes) AC_MSG_ERROR([bug URL not specified]) ;; + no) REPORT_BUGS_TO="" ;; + *) REPORT_BUGS_TO="<URL:$withval>" ;; + esac], + REPORT_BUGS_TO="<mark.hatle@windriver.com>" +) +AC_SUBST(REPORT_BUGS_TO) + +AC_OUTPUT([Makefile + src/Makefile + src/rtld/Makefile + gelfx/Makefile + gelfx32/Makefile + gelf/Makefile + m4/Makefile + patches/Makefile + doc/Makefile + testsuite/Makefile]) |