dnl == process this file with autoconf to produce a configure script == AC_PREREQ(2.59) AC_INIT([Dyninst], [6.1], [bugs@dyninst.org], [dyninst]) AC_PREFIX_DEFAULT(`pwd`/..) AC_CONFIG_AUX_DIR([autodyninst]) AC_CONFIG_MACRO_DIR([autodyninst]) AC_PROG_CXX(g++) AC_PATH_PROG(_ICC_, icc) AC_PATH_PROG(_ICPC_, icpc) AC_PATH_PROG(_PGC_, pgcc) AC_PATH_PROG(_PGCXX_, pgCC) AC_PATH_PROG(_CC_, cc) AC_PATH_PROG(_CXX_, CC) AC_LANG(C++) dnl === configure options == PACKAGE_BASE="" AC_ARG_WITH(package-base, [AS_HELP_STRING([--with-package-base],[Base directory to look for packages])], [PACKAGE_BASE="${withval}"; TCLTK_INC_DIR="${PACKAGE_BASE}/tcl8.4.5/include"; TCLTK_LIB_DIR="${PACKAGE_BASE}/tcl8.4.5/lib"; LIBELF_INC_DIR="${PACKAGE_BASE}/libelf/include"; LIBELF_LIB_DIR="${PACKAGE_BASE}/libelf/lib"; LIBDWARF_INC_DIR="${PACKAGE_BASE}/libdwarf/include"; LIBDWARF_LIB_DIR="${PACKAGE_BASE}/libdwarf/lib"; LIBXML2_INC_DIR="${PACKAGE_BASE}/libxml2/include/libxml2" LIBXML2_LIB_DIR="${PACKAGE_BASE}/libxml2/lib"; LIBUNWIND_INC_DIR="${PACKAGE_BASE}/libunwind/include"; LIBUNWIND_LIB_DIR="${PACKAGE_BASE}/libunwind/lib"; LIBFLEX_LIB_DIR="${PACKAGE_BASE}/libflex/lib"; ],[ # We fall back on these defaults if both --with-package-base and # specific --with- arguments are not provided. TCLTK_INC_DIR="/usr/include"; TCLTK_LIB_DIR="/usr/lib"; LIBELF_INC_DIR="/usr/include"; LIBELF_LIB_DIR="/usr/lib"; LIBDWARF_INC_DIR="/usr/include"; LIBDWARF_LIB_DIR="/usr/lib"; LIBXML2_INC_DIR="/usr/include/libxml2" LIBXML2_LIB_DIR="/usr/lib"; LIBUNWIND_INC_DIR="/usr/include"; LIBUNWIND_LIB_DIR="/usr/lib"; LIBFLEX_LIB_DIR="/usr/lib"; ]) # 3/15/09: We don't include libiberty in the cs.wisc.edu package-base. # Why? Putting these here for now... LIBIBERTY_LIB_DIR="/usr/lib"; AC_ARG_WITH(tcl83, [AS_HELP_STRING([--with-tcl83],[Use Tcl/Tk 8.3])], [TCL_VERSION="tcl8.3"; USE_TCL83="${withval}";], [TCL_VERSION="tcl8.4"; USE_TCL83="false";]) AC_ARG_WITH(tcltk-incdir, [AS_HELP_STRING([--with-tcltk-incdir],[TCL/TK include directory])], [TCLTK_INC_DIR="${withval}";],) AC_ARG_WITH(tcltk-libdir, [AS_HELP_STRING([--with-tcltk-libdir],[TCL/TK library directory])], [TCLTK_LIB_DIR="${withval}";],) PD_SOFT_CHECK_INC_DIR($TCLTK_INC_DIR, [tcl.h], [tcl]) PD_SOFT_CHECK_LIB_DIR($TCLTK_LIB_DIR, $TCL_VERSION, [Tcl_Eval]) AC_SUBST(USE_TCL83) AC_SUBST(TCLTK_INC_DIR) AC_SUBST(TCLTK_LIB_DIR) AC_CANONICAL_HOST if test "`echo $host_os | cut -b-3`" = "aix" ; then AC_MSG_NOTICE([AIX system, skipping libelf...]) else AC_ARG_WITH(libelf-incdir, [AS_HELP_STRING([--with-libelf-incdir],[LIBELF include directory])], [LIBELF_INC_DIR="${withval}";],) AC_ARG_WITH(libelf-libdir, [AS_HELP_STRING([--with-libelf-libdir],[LIBELF library directory])], [LIBELF_LIB_DIR="${withval}";],) CXXFLAGS_HOLD=$CXXFLAGS; CXXFLAGS="$CXXFLAGS -I$LIBELF_INC_DIR"; CPPFLAGS_HOLD=$CPPFLAGS; CPPFLAGS="$CPPFLAGS -I$LIBELF_INC_DIR"; AC_CHECK_HEADER([$LIBELF_INC_DIR/libelf.h], [AC_MSG_NOTICE(ELF include directory: $LIBELF_INC_DIR)], [CXXFLAGS="$CXXFLAGS -I$LIBELF_INC_DIR/libelf"; CPPFLAGS="$CPPFLAGS -I$LIBELF_INC_DIR/libelf"; AC_CHECK_HEADER([$LIBELF_INC_DIR/libelf/libelf.h], [LIBELF_INC_DIR+="/libelf";AC_MSG_NOTICE(ELF include directory: $LIBELF_INC_DIR)], [AC_ERROR(couldn't find libelf.h)])]) CXXFLAGS=$CXXFLAGS_HOLD; CPPFLAGS=$CPPFLAGS_HOLD; PD_CHECK_LIB_DIR($LIBELF_LIB_DIR,[elf],[elf_memory]) PD_CHECK_LIB_TYPE($LIBELF_LIB_DIR, elf) LIBELF_STATIC="$LIB_TYPE_STATIC" LIBELF_DYNAMIC="$LIB_TYPE_DYNAMIC" AC_SUBST(LIBELF_INC_DIR) AC_SUBST(LIBELF_LIB_DIR) AC_SUBST(LIBELF_STATIC) AC_SUBST(LIBELF_DYNAMIC) fi if test "`echo $host_os | cut -b-3`" = "aix" ; then if test "`basename $CXX`" = "xlC" ; then BUILD_XLC="true"; elif test "`basename $CC`" = "xlc" ; then BUILD_XLC="true"; else BUILD_XLC=""; AC_ARG_WITH(libiberty-libdir, [AS_HELP_STRING([--with-libiberty-libdir],[LIBIBERTY library directory])], [LIBIBERTY_LIB_DIR="${withval}";],) LIBS_HOLD=$LIBS LIBS="-L$LIBIBERTY_LIB_DIR" AC_CHECK_LIB([iberty], [cplus_demangle], [HAVE_LIBIBERTY="1";], [AC_CHECK_FILE($LIBIBERTY_LIB_DIR/libiberty.a, [], [AC_MSG_ERROR(Can't find libiberty in $LIBIBERTY_LIB_DIR)])]) LIBS=$LIBS_HOLD AC_SUBST(LIBIBERTY_LIB_DIR) PD_CHECK_LIB_TYPE($LIBIBERTY_LIB_DIR, iberty) LIBIBERTY_STATIC="$LIB_TYPE_STATIC" LIBIBERTY_DYNAMIC="$LIB_TYPE_DYNAMIC" AC_SUBST(LIBIBERTY_STATIC) AC_SUBST(LIBIBERTY_DYNAMIC) AC_SUBST(HAVE_LIBIBERTY) fi AC_SUBST(BUILD_XLC) else AC_ARG_WITH(libiberty-libdir, [AS_HELP_STRING([--with-libiberty-libdir],[LIBIBERTY library directory])], [LIBIBERTY_LIB_DIR="${withval}";],) LIBS_HOLD=$LIBS LIBS="-L$LIBIBERTY_LIB_DIR" AC_CHECK_LIB([iberty], [cplus_demangle], [HAVE_LIBIBERTY="1";], [AC_CHECK_FILE($LIBIBERTY_LIB_DIR/libiberty.a, [], [AC_MSG_ERROR(Can't find libiberty in $LIBIBERTY_LIB_DIR)])]) LIBS=$LIBS_HOLD AC_SUBST(LIBIBERTY_LIB_DIR) PD_CHECK_LIB_TYPE($LIBIBERTY_LIB_DIR, iberty) LIBIBERTY_STATIC="$LIB_TYPE_STATIC" LIBIBERTY_DYNAMIC="$LIB_TYPE_DYNAMIC" AC_SUBST(LIBIBERTY_STATIC) AC_SUBST(LIBIBERTY_DYNAMIC) AC_SUBST(HAVE_LIBIBERTY) fi if test "`echo $host_os | cut -b-3`" = "aix" ; then AC_MSG_NOTICE([AIX system, skipping libdwarf...]) else AC_ARG_WITH(libdwarf-incdir, [AS_HELP_STRING([--with-libdwarf-incdir],[LIBDWARF include directory])], [LIBDWARF_INC_DIR="${withval}";],) AC_ARG_WITH(libdwarf-libdir, [AS_HELP_STRING([--with-libdwarf-libdir],[LIBDWARF library directory])], [LIBDWARF_LIB_DIR="${withval}";],) CXXFLAGS_HOLD=$CXXFLAGS; CXXFLAGS="$CXXFLAGS -I$LIBDWARF_INC_DIR"; CPPFLAGS_HOLD=$CPPFLAGS; CPPFLAGS="$CPPFLAGS -I$LIBDWARF_INC_DIR"; AC_CHECK_HEADER([$LIBDWARF_INC_DIR/libdwarf.h], [AC_MSG_NOTICE(DWARF include directory: $LIBDWARF_INC_DIR)], [CXXFLAGS="$CXXFLAGS -I$LIBDWARF_INC_DIR/libdwarf"; CPPFLAGS="$CPPFLAGS -I$LIBDWARF_INC_DIR/libdwarf"; AC_CHECK_HEADER([$LIBDWARF_INC_DIR/libdwarf/libdwarf.h], [LIBDWARF_INC_DIR+="/libdwarf";AC_MSG_NOTICE(DWARF include directory: $LIBDWARF_INC_DIR)], [AC_ERROR(couldn't find libdwarf.h)])]) CXXFLAGS=$CXXFLAGS_HOLD; CPPFLAGS=$CPPFLAGS_HOLD; PD_CHECK_LIB_DIR($LIBDWARF_LIB_DIR,[dwarf],[dwarf_add_arange],$LIBELF_LIB_DIR,[-lelf]) PD_CHECK_LIB_TYPE($LIBDWARF_LIB_DIR, dwarf) LIBDWARF_STATIC="$LIB_TYPE_STATIC" LIBDWARF_DYNAMIC="$LIB_TYPE_DYNAMIC" AC_SUBST(LIBDWARF_INC_DIR) AC_SUBST(LIBDWARF_LIB_DIR) AC_SUBST(LIBDWARF_STATIC) AC_SUBST(LIBDWARF_DYNAMIC) PD_CHECK_LIB_FEATURE($LIBDWARF_LIB_DIR,[dwarf],[dwarf_set_frame_cfa_value],$LIBELF_LIB_DIR,[-lelf]) LIBDWARF_HAS_SET_FRAME="$HAS_FEATURE" AC_SUBST(LIBDWARF_HAS_SET_FRAME) fi AC_ARG_WITH(libxml2-incdir, [AS_HELP_STRING([--with-libxml2-incdir],[LIBXML2 include directory])], [LIBXML2_INC_DIR="${withval}";],) AC_ARG_WITH(libxml2-libdir, [AS_HELP_STRING([--with-libxml2-libdir],[LIBXML2 library directory])], [LIBXML2_LIB_DIR="${withval}";],) PD_SOFT_CHECK_INC_DIR($LIBXML2_INC_DIR, [libxml/xmlschemas.h], [libxml]) PD_SOFT_CHECK_LIB_DIR($LIBXML2_LIB_DIR,[xml2],[xmlAddID]) AC_SUBST(LIBXML2_INC_DIR) AC_SUBST(LIBXML2_LIB_DIR) if test "$host_cpu" != "ia64" ; then AC_MSG_NOTICE([Not IA-64, skipping libunwind...]) else AC_ARG_WITH(libunwind-incdir, [AS_HELP_STRING([--with-libunwind-incdir],[LIBUNWIND include directory])], [LIBUNWIND_INC_DIR="${withval}";],) AC_ARG_WITH(libunwind-libdir, [AS_HELP_STRING([--with-libunwind-libdir],[LIBUNWIND library directory])], [LIBUNWIND_LIB_DIR="${withval}";],) PD_CHECK_INC_DIR(${LIBUNWIND_INC_DIR}, [libunwind.h]) fi AC_SUBST(LIBUNWIND_INC_DIR) AC_SUBST(LIBUNWIND_LIB_DIR) AC_ARG_WITH(libflex-libdir, [AS_HELP_STRING([--with-libflex-libdir],[Absolute path to flex library])], [LIBFLEX_LIB_DIR="${withval}";],) # 3/15/09: We are not checking for libflex sources and they are not in cs.wisc.edu package-base. # What's the story here? Not needed? PD_SOFT_CHECK_LIB_DIR(${LIBFLEX_LIB_DIR}, [fl], [yywrap]) AC_SUBST(LIBFLEX_LIB_DIR) AC_PATH_PROG(NASM, nasm, "", "${PACKAGE_BASE}/nasm/bin:$PATH") AC_SUBST(NASM) AC_MSG_CHECKING([for -fno-stack-protector]) SAVED_CXXFLAGS=$CXXFLAGS CXXFLAGS="-fno-stack-protector" AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], [AC_MSG_RESULT([yes]); STACKPROT="DISABLE_STACK_PROT=1"], [AC_MSG_RESULT([no]); STACKPROT=""]) AC_SUBST(STACKPROT) CXXFLAGS=$SAVED_CXXFLAGS if test "`echo $host_os | cut -b-3`" = "aix" ; then M32FLAG="-maix32" else M32FLAG="-m32" fi AC_MSG_CHECKING([for 32-bit build environment]) SAVED_CXXFLAGS=$CXXFLAGS CXXFLAGS=$M32FLAG AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include ]], [[]])], [AC_MSG_RESULT([yes]); BUILD32=""], [AC_MSG_RESULT([no]); BUILD32="SKIP_BUILD_RTLIB_32=1"]) AC_SUBST(BUILD32) CXXFLAGS=$SAVED_CXXFLAGS AC_MSG_CHECKING([whether to use MM timer]) case $host in ia64-*-*-*) MMTIMER=true ;; *) MMTIMER=false ;; esac AC_MSG_RESULT(${MMTIMER}) AC_SUBST([MMTIMER]) AC_SUBST([DEFS]) AC_ARG_ENABLE(testsuite, AS_HELP_STRING([--disable-testsuite], [Disable the Dyninst test suite (default is no)]), [], [enable_testsuite=yes]) AS_IF([test "x$enable_testsuite" != xyes], [TESTSUITE="DONT_BUILD_TESTSUITE=1"], [TESTSUITE=""]) AC_SUBST([TESTSUITE]) AC_CONFIG_FILES([make.config.local:autodyninst/make.config.local.in]) AC_OUTPUT