1 dnl Process this file with autoconf to produce a configure script. 2 dnl Configure input file for elfutils. -*-autoconf-*- 3 dnl 4 dnl Copyright (C) 1996-2002, 2003, 2004, 2005, 2006, 2007, 2008 Red Hat, Inc. 5 dnl 6 dnl This program is free software; you can redistribute it and/or modify 7 dnl it under the terms of the GNU General Public License as published by 8 dnl the Free Software Foundation, version 2. 9 dnl 10 dnl This program is distributed in the hope that it will be useful, 11 dnl but WITHOUT ANY WARRANTY; without even the implied warranty of 12 dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 13 dnl GNU General Public License for more details. 14 dnl 15 dnl You should have received a copy of the GNU General Public License 16 dnl along with this program; if not, write to the Free Software Foundation, 17 dnl Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. 18 dnl 19 AC_INIT([Red Hat elfutils],[0.138],[http://bugzilla.redhat.com/bugzilla/], 20 [elfutils]) 21 22 AC_CONFIG_AUX_DIR([config]) 23 AC_CONFIG_FILES([config/Makefile]) 24 25 AC_COPYRIGHT([Copyright (C) 1996-2007, 2008 Red Hat, Inc.]) 26 AC_PREREQ(2.59) dnl Minimum Autoconf version required. 27 28 dnl We use GNU make extensions; automake 1.10 defaults to -Wportability. 29 AM_INIT_AUTOMAKE([gnits 1.8 -Wno-portability dist-bzip2 no-dist-gzip]) 30 AM_MAINTAINER_MODE 31 32 dnl Unique ID for this build. 33 MODVERSION="Build on $(hostname) $(date +%FT%R:%S%z)" 34 AC_SUBST([MODVERSION]) 35 AC_DEFINE_UNQUOTED(MODVERSION, "$MODVERSION") 36 AH_TEMPLATE([MODVERSION], [Identifier for modules in the build.]) 37 38 AC_CONFIG_SRCDIR([libelf/libelf.h]) 39 AC_CONFIG_FILES([Makefile]) 40 AC_CONFIG_HEADERS([config.h]) 41 42 AC_CONFIG_MACRO_DIR([m4]) 43 AC_CONFIG_FILES([m4/Makefile]) 44 45 dnl The RPM spec file. We substitute a few values in the file. 46 AC_CONFIG_FILES([elfutils.spec:config/elfutils.spec.in]) 47 48 49 AC_CANONICAL_HOST 50 51 AC_ARG_ENABLE([tls], 52 AS_HELP_STRING([--enable-tls], [enable use of thread local storage]), 53 use_tls=yes, use_tls=no) 54 AM_CONDITIONAL(USE_TLS, test "$use_tls" = yes) 55 AS_IF([test "$use_tls" = yes], [AC_DEFINE(USE_TLS)]) 56 57 AH_TEMPLATE([USE_TLS], [Defined if thread local storage should be used.]) 58 59 dnl Add all the languages for which translations are available. 60 ALL_LINGUAS= 61 62 AC_PROG_CC 63 AC_PROG_RANLIB 64 AC_PROG_YACC 65 AM_PROG_LEX 66 67 AC_CACHE_CHECK([for gcc with C99 support], ac_cv_c99, [dnl 68 old_CFLAGS="$CFLAGS" 69 CFLAGS="$CFLAGS -std=gnu99" 70 AC_COMPILE_IFELSE([dnl 71 int foo (int a) { for (int i = 0; i < a; ++i) if (i % 4) break; int s = a; }], 72 ac_cv_c99=yes, ac_cv_c99=no) 73 CFLAGS="$old_CFLAGS"]) 74 AS_IF([test "x$ac_cv_c99" != xyes], 75 AC_MSG_ERROR([gcc with C99 support required])) 76 77 LOCALEDIR=$datadir 78 AC_SUBST(LOCALEDIR) 79 AC_DEFINE_UNQUOTED(LOCALEDIR, "$LOCALEDIR") 80 AH_TEMPLATE([LOCALEDIR], [Directory to place translation files in.]) 81 82 DATADIRNAME=$datadir 83 AC_SUBST(DATADIRNAME) 84 85 dnl This test must come as early as possible after the compiler configuration 86 dnl tests, because the choice of the file model can (in principle) affect 87 dnl whether functions and headers are available, whether they work, etc. 88 AC_SYS_LARGEFILE 89 90 dnl Enable the linker to be build as a native-only linker. By default it 91 dnl can handle all architectures but this comes at a cost. A native 92 dnl will be slightly faster, small, and has fewer dependencies. 93 native_ld=no 94 AC_ARG_ENABLE([generic], 95 AS_HELP_STRING([--disable-generic], [do not build generic linker]), [dnl 96 if test "$enable_generic" = no; then 97 case "$host_cpu" in 98 i?86) 99 AC_DEFINE(NATIVE_ELF, 32) 100 native_ld=yes 101 base_cpu=i386 102 ;; 103 *) 104 AC_MSG_ERROR([no machine-specific linker for this configuration available]) 105 ;; 106 esac 107 fi]) 108 AH_TEMPLATE([NATIVE_ELF], 109 [Define to 32 or 64 if a specific implementation is wanted.]) 110 AM_CONDITIONAL(NATIVE_LD, test "$native_ld" = yes) 111 dnl The automake generated Makefile cannot deal with macros in the name 112 dnl of files if at any time there is no such file, even if the filename 113 dnl would not be used. 114 AS_IF([test -z "$base_cpu"], [base_cpu=none]) 115 AC_SUBST(base_cpu) 116 dnl Support to work around automake's inflexible dependency generation. 117 dnl See src/Makefile.am for more information. 118 AM_CONDITIONAL(NEVER, false) 119 120 dnl Enable debugging via mudflap. This option will cause most libraries 121 dnl to be built as archives which are statically linked into the applications. 122 dnl All code, as far as possible, is compiled instrumented to catch all 123 dnl the bugs valgrind is able to catch. 124 use_mudflap=no 125 AC_ARG_ENABLE([mudflap], 126 AS_HELP_STRING([--enable-mudflap], 127 [build binaries with mudflap instrumentation]), [dnl 128 if test "x$enable_mudflap" = xyes; then 129 # Check whether the compiler support -fmudflap. 130 old_CFLAGS="$CFLAGS" 131 CFLAGS="$CFLAGS -fmudflap" 132 AC_TRY_COMPILE([], [], use_mudflap=yes, use_mudflap=fail) 133 CFLAGS="$old_CFLAGS" 134 fi]) 135 if test "$use_mudflap" = fail; then 136 AC_MSG_FAILURE([--enable-mudflap requires a compiler which understands this option]) 137 fi 138 AM_CONDITIONAL(MUDFLAP, test "$use_mudflap" = yes) 139 140 dnl enable debugging of branch prediction. 141 use_debugpred=0 142 AC_ARG_ENABLE([debugpred], 143 AC_HELP_STRING([--enable-debugpred], 144 [build binaries with support to debug branch prediction]), 145 [use_debugpred=1], [use_debugpred=0]) 146 AC_SUBST([DEBUGPRED], $use_debugpred) 147 148 dnl Enable gprof suport. 149 AC_ARG_ENABLE([gprof], 150 AC_HELP_STRING([--enable-gprof], 151 [build binaries with gprof support]), [use_gprof=yes], [use_gprof=no]) 152 if test "$use_gprof" = yes; then 153 CFLAGS="$CFLAGS -pg" 154 LDFLAGS="$LDFLAGS -pg" 155 fi 156 AM_CONDITIONAL(GPROF, test "$use_gprof" = yes) 157 158 # Enable gcov suport. 159 AC_ARG_ENABLE([gcov], 160 AC_HELP_STRING([--enable-gcov], 161 [build binaries with gcov support]), [use_gcov=yes], [use_gcov=no]) 162 if test "$use_gcov" = yes; then 163 CFLAGS="$CFLAGS -fprofile-arcs -ftest-coverage" 164 LDFLAGS="$LDFLAGS -fprofile-arcs" 165 fi 166 AM_CONDITIONAL(GCOV, test "$use_gcov" = yes) 167 168 AM_CONDITIONAL(BUILD_STATIC, [dnl 169 test "$use_mudflap" = yes -o "$use_gprof" = yes -o "$use_gcov" = yes]) 170 171 AC_ARG_ENABLE([tests-rpath], 172 AC_HELP_STRING([--enable-tests-rpath], [build $ORIGIN-using rpath into tests]), 173 [tests_use_rpath=yes], [tests_use_rpath=no]) 174 AM_CONDITIONAL(TESTS_RPATH, test "$tests_use_rpath" = yes) 175 176 LIBEBL_SUBDIR="$PACKAGE" 177 AC_ARG_ENABLE([libebl-subdir], 178 AS_HELP_STRING([--enable-libebl-subdir=DIR], 179 [install libebl_CPU modules in $(libdir)/DIR]), [dnl 180 LIBEBL_SUBDIR="$enable_libebl_subdir"]) 181 AC_SUBST([LIBEBL_SUBDIR]) 182 AC_DEFINE_UNQUOTED(LIBEBL_SUBDIR, "$LIBEBL_SUBDIR") 183 AH_TEMPLATE([LIBEBL_SUBDIR], [$libdir subdirectory containing libebl modules.]) 184 185 dnl The directories with content. 186 187 dnl Documentation. 188 dnl Commented out for now. 189 dnl AC_CONFIG_FILES([doc/Makefile]) 190 191 dnl Support library. 192 AC_CONFIG_FILES([lib/Makefile]) 193 194 dnl ELF library. 195 AC_CONFIG_FILES([libelf/Makefile]) 196 197 dnl Higher-level ELF support library. 198 AC_CONFIG_FILES([libebl/Makefile]) 199 200 dnl DWARF library. 201 AC_CONFIG_FILES([libdw/Makefile]) 202 203 dnl Higher-level DWARF support library. 204 AC_CONFIG_FILES([libdwfl/Makefile]) 205 206 dnl CPU handling library. 207 AC_CONFIG_FILES([libcpu/Makefile]) 208 209 dnl Assembler library. 210 AM_CONDITIONAL(HAVE_LIBASM, true)dnl Used in tests/Makefile.am, which see. 211 AC_CONFIG_FILES([libasm/Makefile]) 212 213 dnl CPU-specific backend libraries. 214 AC_CONFIG_FILES([backends/Makefile]) 215 216 dnl Tools. 217 AC_CONFIG_FILES([src/Makefile po/Makefile.in]) 218 219 dnl Test suite. 220 AM_CONDITIONAL(STANDALONE, false)dnl Used in tests/Makefile.am, which see. 221 AC_CONFIG_FILES([tests/Makefile]) 222 223 # Get the definitions necessary to create the Makefiles in the po 224 # subdirectories. This is a small subset of the gettext rules. 225 AC_SUBST(USE_NLS, yes) 226 AM_PO_SUBDIRS 227 228 dnl Appended to the config.h file. 229 dnl We hide all kinds of configuration magic in lib/eu-config.h. 230 AH_BOTTOM([#include <eu-config.h>]) 231 232 dnl Version compatibility header. 233 AC_CONFIG_FILES([version.h:config/version.h.in]) 234 AC_SUBST([eu_version]) 235 case $PACKAGE_VERSION in 236 0.???) eu_version=${PACKAGE_VERSION#0.} ;; 237 ?.???) eu_version=${PACKAGE_VERSION/./} ;; 238 ?.??) eu_version=${PACKAGE_VERSION/./}0 ;; 239 ?.?) eu_version=${PACKAGE_VERSION/./}00 ;; 240 *) AC_MSG_ERROR([confused by version number '$PACKAGE_VERSION']) ;; 241 esac 242 243 AC_OUTPUT 244