Mercurial > hg > release > heapstats-1.1
view agent/configure.ac @ 32:7dbbab82d6c2 1.1.2
Bump to 1.1.2
review-thread: http://icedtea.classpath.org/pipermail/heapstats/2014-August/000431.html
author | KUBOTA Yuji <kubota.yuji@lab.ntt.co.jp> |
---|---|
date | Fri, 22 Aug 2014 10:14:58 +0900 |
parents | 778bd93bc33a |
children | ab312de8b6ae |
line wrap: on
line source
# -*- Autoconf -*- # Process this file with autoconf to produce a configure script. AC_PREREQ([2.59]) AC_INIT([heapstats_agent], [1.1.2], [heapstats@icedtea.classpath.org]) AC_CONFIG_SRCDIR([./src]) AC_CONFIG_AUX_DIR([./m4]) AC_CONFIG_MACRO_DIR([./m4]) AM_INIT_AUTOMAKE AM_MAINTAINER_MODE AC_CACHE_SAVE AC_DISABLE_OPTION_CHECKING LDFLAGS+=" -Wl,-z,noexecstack" # Checks for programs. AC_PROG_CC AC_PROG_CXX AC_PROG_CXXCPP AM_PROG_AS AC_DISABLE_STATIC AM_DISABLE_STATIC AC_PROG_LIBTOOL AC_SUBST([LIBTOOL_DEPS]) AC_PROG_AWK AC_PROG_EGREP AC_PROG_INSTALL AC_PATH_PROG([LS], [ls], [AC_MSG_ERROR([Not found: cmd:ls])], [$PATH]) AC_PATH_PROG([CAT], [cat], [AC_MSG_ERROR([Not found: cmd:cat])], [$PATH]) AC_PATH_PROG([SORT], [sort], [AC_MSG_ERROR([Not found: cmd:sort])], [$PATH]) AC_PATH_PROG([UNIQ], [uniq], [AC_MSG_ERROR([Not found: cmd:uniq])], [$PATH]) AC_PATH_PROG([READLINK], [readlink], [AC_MSG_ERROR([Not found: cmd:readlink])], [$PATH]) AC_CACHE_SAVE # Checks for libraries. AC_CHECK_LIB([pcre], [main], [], [AC_MSG_ERROR([PCRE library was not found.])]) AC_CHECK_LIB([netsnmp], [main], [], [AC_MSG_ERROR([net-snmp library was not found.])]) AC_CACHE_SAVE # Checks for common header files. AC_HEADER_STDC # stdlib.h stdarg.h string.h float.h AC_HEADER_DIRENT # dirent.h AC_HEADER_STAT # sys/stat.h AC_HEADER_SYS_WAIT # sys/wait.h AC_HEADER_TIME # time.h sys/time.h AC_CHECK_HEADERS([ \ unistd.h sys/socket.h sys/types.h sys/un.h \ sys/utsname.h sys/wait.h sys/syscall.h sys/mman.h \ stddef.h stdint.h stdio.h fcntl.h link.h \ limits.h errno.h signal.h execinfo.h \ gnu/libc-version.h pthread.h \ ], [], [AC_MSG_ERROR([Not found common header files.])]) AC_CACHE_SAVE # Checks for library header files. AC_CHECK_HEADERS([pcre.h], [], [AC_MSG_ERROR([Header files of PCRE were not found.])]) AC_CHECK_HEADERS([net-snmp/net-snmp-config.h], [], [AC_MSG_ERROR([Header files of Net-SNMP were not found.])]) AC_CHECK_HEADERS([net-snmp/net-snmp-includes.h], [], [AC_MSG_ERROR([Header files of Net-SNMP were not found.])], [#include <net-snmp/net-snmp-config.h>]) AC_CHECK_HEADERS([bfd.h], [], [AC_MSG_ERROR([Header files of binutils were not found.])]) AC_CACHE_SAVE # Checks for compiler characteristics. AC_C_BIGENDIAN([], [], [AC_MSG_ERROR([Unknown byteorder.])]) AC_CACHE_SAVE # Checks for typedefs, structures. AC_TYPE_OFF_T AC_TYPE_PID_T AC_TYPE_SIZE_T AC_STRUCT_TM AC_CHECK_TYPES([ptrdiff_t]) AC_CACHE_SAVE # Checks for library functions. AC_FUNC_MEMCMP AC_FUNC_STRFTIME AC_FUNC_FORK AC_FUNC_STAT AC_FUNC_CLOSEDIR_VOID AC_FUNC_MALLOC AC_FUNC_MMAP #AC_CHECK_FUNCS([ sysconf \ # memcpy memmove memset munmap \ # getpid geteuid getegid \ # open socket close write read lseek fopen fclose \ # opendir readdir closedir mkdir rmdir unlink \ # strchr strrchr strstr strtol \ # strcpy strncpy strcat strncat strdup strlen \ # sprintf snprintf sscanf \ # pthread_mutex_init pthread_mutex_destroy \ # pthread_mutex_lock pthread_mutex_unlock \ # pthread_cond_init pthread_cond_destroy \ # pthread_cond_signal pthread_cond_wait \ # pthread_key_create pthread_getspecific pthread_setspecific pthread_self \ # abort uname gettimeofday ], [], \ # [AC_MSG_ERROR([Not found using common function.])]) AC_CHECK_FUNCS([ syscall dl_iterate_phdr \ localtime_r strdup realpath unlink truncate getline \ madvise posix_fadvise munmap \ gnu_get_libc_version gnu_get_libc_release ], [], \ [AC_MSG_ERROR([Function was not found that need to test feature.])]) AC_CHECK_FUNCS([netsnmp_transport_open_client], [], [AC_CHECK_FUNCS([netsnmp_tdomain_transport], [], [AC_MSG_ERROR([Function was not found in net-snmp library.])]) ]) AC_CACHE_SAVE # set test macro state AC_LANG([C++]) AC_REQUIRE_CPP # set general file path DEVNULL="/dev/null" # check cpu instruction set ---------------------------------------------------- CPUINFO="/proc/cpuinfo" CPUINFO_DATA="./cpuinfo.tmp" $CAT $CPUINFO 2>$DEVNULL | $SORT 2>$DEVNULL | $UNIQ 2>$DEVNULL 1>$CPUINFO_DATA INSTRUCT_FLAGS=`$CAT $CPUINFO_DATA 2>$DEVNULL | $SED -ne "/flags\W*:+*/p" 2>$DEVNULL` INSTRUCT_OPTS="" AC_ARG_WITH([instruction-set],AC_HELP_STRING([--with-instruction-set@<:@=<arch>/auto@:>@], [Optimization level for processor. @<:@default=auto@:>@]), [], [with_instruction_set="auto"]) AC_MSG_CHECKING([for sse instruction set]) # check SSE [$ECHO "$INSTRUCT_FLAGS" 2>$DEVNULL | $EGREP " sse[^0-9]" 1>$DEVNULL 2>$DEVNULL] if test $? -eq 0; then AC_MSG_RESULT([enable]) else AC_MSG_RESULT([disable]) AC_MSG_FAILURE([Heapstats agent use SSE/SSE2 instruction set. This machine or this system maybe inferior to required spec.]) fi AC_MSG_CHECKING([for sse2 instruction set]) # check SSE2 $ECHO "$INSTRUCT_FLAGS" 2>$DEVNULL | $EGREP "sse2" 1>$DEVNULL 2>$DEVNULL if test $? -eq 0; then AC_MSG_RESULT([enable]) else AC_MSG_RESULT([disable]) AC_MSG_FAILURE([Heapstats agent use SSE/SSE2 instruction set. This machine or this system maybe inferior to required spec.]) fi # check SSE/SSE2 flag for compiler IS_ENABLE_FLAG="no" AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])], [IS_ENABLE_FLAG="yes"], []) AC_MSG_CHECKING([for sse/sse2 compiler flag]) AC_MSG_RESULT([$IS_ENABLE_FLAG]) if test "$IS_ENABLE_FLAG" = "no" ; then AC_MSG_FAILURE([Heapstats agent use SSE/SSE2 instruction set. Detected compiler is unsuppoted SSE flag. Please confirm your compiler, linker and etc..]) fi # check instruction set after sse2 if test "$with_instruction_set" = "auto" ; then OPTIMIZED=0 # check intel-AVX AC_MSG_CHECKING([for intel-avx instruction set]) $ECHO "$INSTRUCT_FLAGS" 2>$DEVNULL | $EGREP "avx" 1>$DEVNULL 2>$DEVNULL if test $? -eq 0; then AC_MSG_RESULT([enable]) CHECK_FLAG="-mavx" # check Intel-AVX flag for compiler OLD_CXXFLAGS=$CXXFLAGS CXXFLAGS+=" `echo $CHECK_FLAG`" IS_ENABLE_FLAG="no" AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])], [IS_ENABLE_FLAG="yes"], []) AC_MSG_CHECKING([for avx compiler flag]) AC_MSG_RESULT([$IS_ENABLE_FLAG]) if test "$IS_ENABLE_FLAG" = "no" ; then AC_MSG_WARN([Detected compiler is unsuppoted Intel-AVX flag. So this script disabled it. Please confirm your compiler, linker and etc..]) else INSTRUCT_OPTS+=" `echo $CHECK_FLAG`" OPTIMIZED=1 fi CXXFLAGS=$OLD_CXXFLAGS else AC_MSG_RESULT([disable]) fi # check SSE4 if test $OPTIMIZED -eq 0; then AC_MSG_CHECKING([for sse4 instruction set]) $ECHO "$INSTRUCT_FLAGS" 2>$DEVNULL | $EGREP "sse4" 1>$DEVNULL 2>$DEVNULL if test $? -eq 0; then AC_MSG_RESULT([enable]) CHECK_FLAG="-msse4" # check SSE4 flag for compiler OLD_CXXFLAGS=$CXXFLAGS CXXFLAGS+=" `echo $CHECK_FLAG`" IS_ENABLE_FLAG="no" AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])], [IS_ENABLE_FLAG="yes"], []) AC_MSG_CHECKING([for sse4 compiler flag]) AC_MSG_RESULT([$IS_ENABLE_FLAG]) if test "$IS_ENABLE_FLAG" = "no" ; then AC_MSG_WARN([Detected compiler is unsuppoted SSE4.1 flag. So this script disabled it. Please confirm your compiler, linker and etc..]) else INSTRUCT_OPTS+=" `echo $CHECK_FLAG`" CCASFLAGS+=" -DSSE4_1" OPTIMIZED=1 fi CXXFLAGS=$OLD_CXXFLAGS else AC_MSG_RESULT([disable]) fi fi # check SSE3 if test $OPTIMIZED -eq 0; then AC_MSG_CHECKING([for sse3 instruction set]) $ECHO "$INSTRUCT_FLAGS" 2>$DEVNULL | $EGREP "sse3" 1>$DEVNULL 2>$DEVNULL if test $? -eq 0; then AC_MSG_RESULT([enable]) CHECK_FLAG="-msse3" # check SSE4 flag for compiler OLD_CXXFLAGS=$CXXFLAGS CXXFLAGS+=" `echo $CHECK_FLAG`" IS_ENABLE_FLAG="no" AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])], [IS_ENABLE_FLAG="yes"], []) AC_MSG_CHECKING([for sse4 compiler flag]) AC_MSG_RESULT([$IS_ENABLE_FLAG]) if test "$IS_ENABLE_FLAG" = "no" ; then AC_MSG_WARN([Detected compiler is unsuppoted SSE4.1 flag. So this script disabled it. Please confirm your compiler, linker and etc..]) else INSTRUCT_OPTS+=" `echo $CHECK_FLAG`" OPTIMIZED=1 fi CXXFLAGS=$OLD_CXXFLAGS else AC_MSG_RESULT([disable]) fi fi else INSTRUCT_OPTS="-m$with_instruction_set" fi AC_SUBST([INSTRUCT_OPTS]) # end cpu instruction set ------------------------------------------------------ # check build target ----------------------------------------------------------- # parse build target options BUILD_TARGET_CPU="$target_cpu" BUILD_TARGET_ARCH="$target_cpu" if test "$BUILD_TARGET_CPU" = "" ; then BUILD_TARGET_CPU="$host_cpu" fi if test "$BUILD_TARGET_ARCH" = "" ; then BUILD_TARGET_ARCH="$host_cpu" fi BUILD_ENV_OPT="" ARCH_TYPE="unknown" AC_MSG_CHECKING([for cpu address size]) # check bit size case $BUILD_TARGET_CPU in i*86 ) BUILD_ENV_OPT+=" -m32" ARCH_TYPE="32bit" ;; x86_64 | amd64 ) BUILD_ENV_OPT+=" -m64" ARCH_TYPE="64bit" ;; * ) ARCH_TYPE="unknown" ;; esac AC_MSG_RESULT([$ARCH_TYPE]) AC_SUBST([BUILD_ENV_OPT]) # end build target ------------------------------------------------------------- # remove temporary file rm -f $CPUINFO_DATA # get JDK path ----------------------------------------------------------------- AC_ARG_WITH([jdk], AC_HELP_STRING([--with-jdk@<:@=PATH@:>@], [Path to JDK home directory. @<:@default=/usr/lib/jvm/java-openjdk@:>@])) AC_MSG_CHECKING([for JAVA_HOME]) if test "$with_jdk" != ""; then JDK_DIR="$with_jdk" AC_MSG_RESULT($JDK_DIR) else AC_MSG_RESULT(none) AC_MSG_CHECKING([for default openjdk home directory]) DEFAULT_JDK_PATH="/usr/lib/jvm/java-openjdk" if test -d "$DEFAULT_JDK_PATH" && test -r "$DEFAULT_JDK_PATH" ; then JDK_DIR="$DEFAULT_JDK_PATH" AC_MSG_RESULT([exist]) else AC_MSG_RESULT([none]) AC_PATH_PROG([JAVA_PATH], [java], [], [/etc/alternatives]) AC_MSG_CHECKING([for java configured by alternatives]) if test -L $JAVA_PATH; then JDK_DIR=`$READLINK -f "$JAVA_PATH" 2>$DEVNULL | $SED -e 's:bin/java::g' 2>$DEVNULL` if test $? -ne 0 ; then JDK_DIR="" AC_MSG_RESULT([not found]) else AC_MSG_RESULT([found]) fi else AC_MSG_RESULT([not found]) fi fi fi AC_MSG_CHECKING([for JAVA_HOME]) if test "$JDK_DIR" = "" || test ! -d $JDK_DIR || test ! -r $JDK_DIR \ || test ! -d $JDK_DIR/bin/ || test ! -r $JDK_DIR/bin/ \ || test ! -d $JDK_DIR/include/ || test ! -r $JDK_DIR/include/ \ || test ! -d $JDK_DIR/jre/ || test ! -r $JDK_DIR/jre/ \ || test ! -d $JDK_DIR/lib/ || test ! -r $JDK_DIR/lib/ ; then AC_MSG_RESULT([not found]) AC_MSG_NOTICE([ [Do you put java at non default directory ?] [Please expect path to "with-jdk" option, if you put java to such path.]]) AC_MSG_ERROR([JDK directory (JAVA_HOME) was not found.]) fi AC_MSG_RESULT([$JDK_DIR]) AC_SUBST([JDK_DIR]) # end JDK path ----------------------------------------------------------------- # VMStructs -------------------------------------------------------------------- AC_ARG_ENABLE([vmstructs], AC_HELP_STRING([--enable-vmstructs@<:@=yes/no@:>@], [Use symbol of VMStructs in libjvm.so . @<:@default=no@:>@])) VMSTRUCTS_CXX_FLAGS="" VMSTRUCTS_LIB_FLAGS="" JVM_LIB_DIR="" VMSTRUCTS_SYMBOL="gHotSpotVMStructs" if test "$enable_vmstructs" = "yes" ; then AC_MSG_CHECKING([for of VMStructs in jvm shared-library]) for archPath in i386 amd64 do if test -d $JDK_DIR/jre/lib/$archPath/ ; then JVM_LIB_DIR=`$ECHO $JDK_DIR/jre/lib/$archPath 2>$DEVNULL` break fi done if test "$JVM_LIB_DIR" = "" ; then AC_MSG_RESULT([no]) AC_MSG_ERROR([JDK shared-library arch directory was not found.]) fi if test -d $JVM_LIB_DIR/server/ ; then JVM_LIB_DIR+="/server" elif test -d $JVM_LIB_DIR/client/ ; then JVM_LIB_DIR+="/client" else AC_MSG_RESULT([no]) AC_MSG_ERROR([JDK shared-library directory was not found.]) fi RESULT_SYMBOL=`$NM -D $JVM_LIB_DIR/libjvm.so 2>$DEVNULL | $EGREP $VMSTRUCTS_SYMBOL 2>$DEVNULL` if test $? -ne 0 || test "$RESULT_SYMBOL" = "" ; then AC_MSG_RESULT([no]) AC_MSG_ERROR([Symbol of VMStructs was not found in libjvm.so .]) fi VMSTRUCTS_CXX_FLAGS="-DUSE_VMSTRUCTS" AC_MSG_RESULT([yes]) fi AC_SUBST([VMSTRUCTS_CXX_FLAGS]) # end VMStructs ---------------------------------------------------------------- # get Net-SNMP-Config ---------------------------------------------------------- AC_PATH_PROGS([NET_SNMP_CFG_PATH], [net-snmp-config-x86_64 net-snmp-config], [:], [/bin:/sbin/:/usr/bin]) NET_SNMP_LIB_FLAGS=`$NET_SNMP_CFG_PATH --agent-libs 2>$DEVNULL` if test $? -ne 0 ; then AC_MSG_ERROR([Could not get LDFLAGS from net-snmp-cfg.]) fi AC_SUBST([NET_SNMP_LIB_FLAGS]) # end Net-SNMP-Config ---------------------------------------------------------- # check bfd -------------------------------------------------------------------- AC_ARG_WITH([bfd],AC_HELP_STRING([--with-bfd@<:@=PATH@:>@], [Path to libbfd library file. @<:@default=autosearch@:>@]), [], [with_bfd=""]) AC_ARG_WITH([iberty],AC_HELP_STRING([--with-iberty@<:@=PATH@:>@], [Path to libiberty library file. @<:@default=autosearch@:>@]), [], [with_iberty=""]) BFD_PATH="" IBERTY_FLAG=0 IBERTY_PATH="" BFD_SYMBOL="bfd_openr" IBERTY_SYMBOL="hex_value" AC_MSG_CHECKING([for BFD library]) if test "$with_bfd" != "" ; then BFD_PATH="$with_bfd" AC_MSG_RESULT([$BFD_PATH]) AC_MSG_CHECKING([for symbol BFD library]) # search symbol for shared library RESULT_SYMBOL=`$NM -D $BFD_PATH 2>$DEVNULL | $EGREP $BFD_SYMBOL 2>$DEVNULL` if test $? -ne 0 || test "$RESULT_SYMBOL" = "" ; then # search symbol for static library RESULT_SYMBOL=`$NM -g $BFD_PATH 2>$DEVNULL | $EGREP $BFD_SYMBOL 2>$DEVNULL` if test $? -ne 0 || test "$RESULT_SYMBOL" = "" ; then AC_MSG_RESULT([none]) AC_MSG_ERROR([Symbol to need was not found in BFD library.]) fi fi AC_MSG_RESULT([ok]) # Check designated library is static library RESULT_SYMBOL=`$NM -g $BFD_PATH 2>$DEVNULL | $EGREP $IBERTY_SYMBOL 2>$DEVNULL` if test $? -eq 0 && test "$RESULT_SYMBOL" != "" ; then IBERTY_FLAG=1 fi else AC_MSG_RESULT([none]) AC_MSG_CHECKING([for symbol in BFD library]) BFD_TARGET=`$LS {/usr,/usr/local,}/lib*/libbfd*.a* 2>$DEVNULL` BFD_TARGET+=" " BFD_TARGET+=`$LS {/usr,/usr/local,}/lib*/libbfd*.so* 2>$DEVNULL` for tmpPath in $BFD_TARGET do if test -f $tmpPath ; then # search symbol for shared library RESULT_SYMBOL=`$NM -D $tmpPath 2>$DEVNULL | $EGREP $BFD_SYMBOL 2>$DEVNULL` if test $? -eq 0 && test "$RESULT_SYMBOL" != "" ; then AC_MSG_RESULT([$tmpPath]) BFD_PATH=`$ECHO $tmpPath 2>$DEVNULL` break fi # search symbol for static library RESULT_SYMBOL=`$NM -g $tmpPath 2>$DEVNULL | $EGREP $BFD_SYMBOL 2>$DEVNULL` if test $? -eq 0 && test "$RESULT_SYMBOL" != "" ; then AC_MSG_RESULT([$tmpPath]) BFD_PATH=`$ECHO $tmpPath 2>$DEVNULL` IBERTY_FLAG=1 break fi fi done if test "$BFD_PATH" = "" ; then AC_MSG_RESULT([not found]) fi fi AC_MSG_CHECKING([for BFD library]) if test "$BFD_PATH" = "" || test ! -f $BFD_PATH ; then AC_MSG_RESULT([no]) AC_MSG_ERROR([BFD library was not found.]) fi AC_MSG_RESULT([yes]) if test $IBERTY_FLAG -ne 0 ; then AC_MSG_NOTICE([BFD library designate need iberty library.]) AC_MSG_CHECKING([for with-iberty]) if test "$with_iberty" != "" ; then IBERTY_PATH="$with_iberty" AC_MSG_RESULT([$IBERTY_PATH]) else AC_MSG_RESULT([none]) AC_MSG_CHECKING([for symbol in iberty library]) IBERTY_TARGET=`$LS {/usr,/usr/local,}/lib*/libiberty*.a* 2>$DEVNULL` IBERTY_TARGET+=" " IBERTY_TARGET+=`$LS {/usr,/usr/local,}/lib*/libiberty*.so* 2>$DEVNULL` for tmpPath in $IBERTY_TARGET do # search symbol for shared library RESULT_SYMBOL=`$NM -D $tmpPath 2>$DEVNULL | $EGREP $IBERTY_SYMBOL 2>$DEVNULL` if test $? -eq 0 && test "$RESULT_SYMBOL" != "" ; then AC_MSG_RESULT($tmpPath) IBERTY_PATH=`$ECHO $tmpPath 2>$DEVNULL` break fi # search symbol for static library RESULT_SYMBOL=`$NM -g $tmpPath 2>$DEVNULL | $EGREP $IBERTY_SYMBOL 2>$DEVNULL` if test $? -eq 0 && test "$RESULT_SYMBOL" != "" ; then AC_MSG_RESULT($tmpPath) IBERTY_PATH=`$ECHO $tmpPath 2>$DEVNULL` break fi done if test "$IBERTY_PATH" = "" ; then AC_MSG_RESULT([not found]) fi fi AC_MSG_CHECKING([for iberty library]) if test "$IBERTY_PATH" = "" || test ! -f $IBERTY_PATH ; then AC_MSG_RESULT([no]) AC_MSG_ERROR([iberty library was not found.]) fi AC_MSG_RESULT([yes]) fi MASK_LIBNAME="s:.*/\?lib\(.*\)\.\(so\|a\):\1:g" MASK_LIBPATH="s:\(.*\)/\?lib.*\.\(so\|a\):\1:g" LIB_NAME=`eval "echo $BFD_PATH | $SED -e \"$MASK_LIBNAME\"" 2>$DEVNULL` LIB_PATH=`eval "echo $BFD_PATH | $SED -e \"$MASK_LIBPATH\"" 2>$DEVNULL` LDFLAGS+=" -L$LIB_PATH -l$LIB_NAME" #LIB_NAME=`eval "\"$ECHO\" $BFD_PATH | $SED -e \`$ECHO \'$MASK_LIBNAME\'\`" 2>$DEVNULL` #$LIB_PATH=`eval "\"$ECHO\" $BFD_PATH | $SED -e \`$ECHO \'$MASK_LIBPATH\'\`" 2>$DEVNULL` #LDFLAGS+=`eval "$ECHO" " -L$LIB_PATH -l$LIB_NAME"` if test $IBERTY_FLAG -ne 0 ; then LIB_NAME=`eval "echo $IBERTY_PATH | $SED -e \"$MASK_LIBNAME\"" 2>$DEVNULL` LIB_PATH=`eval "echo $IBERTY_PATH | $SED -e \"$MASK_LIBPATH\"" 2>$DEVNULL` LDFLAGS+=" -L$LIB_PATH -l$LIB_NAME" # LIB_NAME=`eval "\"$ECHO\" $IBERTY_PATH | $SED -e \`$ECHO \'$MASK_LIBNAME\'\`" 2>$DEVNULL` # LIB_PATH=`eval "\"$ECHO\" $IBERTY_PATH | $SED -e \`$ECHO \'$MASK_LIBPATH\'\`" 2>$DEVNULL` # LDFLAGS+=`eval "$ECHO" " -L$LIB_PATH -l$LIB_NAME"` fi # end bfd ---------------------------------------------------------------------- # set sse3 -------------------------------------------------------------------- AC_ARG_ENABLE([sse3], AC_HELP_STRING([--enable-sse3@<:@=yes/no/auto@:>@], [Enable the function which use SSE3. @<:@default=auto@:>@]), [], [enable_sse3="auto"]) if test "$enable_sse3" = "yes" || test "$enable_sse3" = "auto" ; then AC_MSG_CHECKING([for enable function using SSE3]) IS_ENABLE_FLAG="no" AC_LINK_IFELSE( [AC_LANG_PROGRAM([[]], [[asm volatile("movddup %%xmm0, %%xmm1;" : : : "cc", "%xmm0", "%xmm1");]])], [IS_ENABLE_FLAG="yes"], []) AC_MSG_RESULT([$IS_ENABLE_FLAG]) if test "$IS_ENABLE_FLAG" = "no" ; then if test "$enable_sse3" = "yes" ; then AC_MSG_WARN([Selected compiler or linker is unsupported sse3. This script respect your designated this option. So this option is effective, you can complie it. But maybe you fail to complie. Please confirm your compiler, linker and etc..]) CXXFLAGS+=" -DSSE3" CCASFLAGS+=" -DSSE3" fi else CXXFLAGS+=" -DSSE3" CCASFLAGS+=" -DSSE3" fi fi # end sse3 -------------------------------------------------------------------- # set sse4 -------------------------------------------------------------------- AC_ARG_ENABLE([sse4], AC_HELP_STRING([--enable-sse4@<:@=yes/no/auto@:>@], [Enable the function which use SSE4.1. @<:@default=auto@:>@]), [], [enable_sse4="auto"]) if test "$enable_sse4" = "yes" || test "$enable_sse4" = "auto" ; then AC_MSG_CHECKING([for enable function using SSE4.1]) IS_ENABLE_FLAG="no" AC_LINK_IFELSE( [AC_LANG_PROGRAM([[]], [[asm volatile("pcmpeqq %%xmm0, %%xmm1;" : : : "cc", "%xmm0", "%xmm1");]])], [IS_ENABLE_FLAG="yes"], []) AC_MSG_RESULT([$IS_ENABLE_FLAG]) if test "$IS_ENABLE_FLAG" = "no" ; then if test "$enable_sse4" = "yes" ; then AC_MSG_WARN([Selected compiler or linker is unsupported sse4. This script respect your designated this option. So this option is effective, you can complie it. But maybe you fail to complie. Please confirm your compiler, linker and etc..]) CXXFLAGS+=" -DSSE4_1" CCASFLAGS+=" -DSSE4_1" fi else CXXFLAGS+=" -DSSE4_1" CCASFLAGS+=" -DSSE4_1" fi fi # end sse4 -------------------------------------------------------------------- # set avx -------------------------------------------------------------------- AC_ARG_ENABLE([avx], AC_HELP_STRING([--enable-avx@<:@=yes/no/auto@:>@], [Enable the function which use AVX. @<:@default=auto@:>@]), [], [enable_avx="auto"]) if test "$enable_avx" = "yes" || test "$enable_avx" = "auto" ; then AC_MSG_CHECKING([for enable function using AVX]) IS_ENABLE_FLAG="no" AC_LINK_IFELSE( [AC_LANG_PROGRAM([[]], [[asm volatile("vpxor %%xmm0, %%xmm0, %%xmm0;" : : : "cc", "%xmm0");]])], [IS_ENABLE_FLAG="yes"], []) AC_MSG_RESULT([$IS_ENABLE_FLAG]) if test "$IS_ENABLE_FLAG" = "no" ; then if test "$enable_avx" = "yes" ; then AC_MSG_WARN([Selected compiler or linker is unsupported avx. This script respect your designated this option. So this option is effective, you can complie it. But maybe you fail to complie. Please confirm your compiler, linker and etc..]) CXXFLAGS+=" -DAVX" CCASFLAGS+=" -DAVX" fi else CXXFLAGS+=" -DAVX" CCASFLAGS+=" -DAVX" fi fi # end avx -------------------------------------------------------------------- # set debug -------------------------------------------------------------------- AC_ARG_ENABLE([debug], AC_HELP_STRING([--enable-debug@<:@=yes/no@:>@], [Enable debug compile flags. @<:@default=yes@:>@]), [], [enable_debug="yes"]) COMPILER_DEBUG_FLAG="-g" if test "$enable_debug" = "yes" ; then CXXFLAGS+=" $COMPILER_DEBUG_FLAG" else CXXFLAGS=`eval "$ECHO \"$CXXFLAGS\" | $SED -e 's:$COMPILER_DEBUG_FLAG::g'" 2>$DEVNULL` fi # end debug -------------------------------------------------------------------- # set optimize ------------------------------------------------------------------ AC_ARG_ENABLE([optimize], AC_HELP_STRING([--enable-optimize@<:@=yes/no@:>@], [Enable optimize compile flags. @<:@default=yes@:>@]), [], [enable_optimize="yes"]) if test "$enable_optimize" = "yes" ; then CXXFLAGS+=" -O2 -DRELEASE" else CXXFLAGS+=" -O0 -DDEBUG" fi # end optimize ------------------------------------------------------------------ # check gcov and profiling ------------------------------------------------------ AC_ARG_WITH([gcov], AC_HELP_STRING([--with-gcov@<:@=yes/no@:>@], [Link with gcov library. @<:@default=no@:>@])) AC_ARG_ENABLE([profiling], AC_HELP_STRING([--enable-profile@<:@=useprofile/sampling/no@:>@], [Enable gcc profile and optimize. @<:@default=no@:>@]), [], [enable_profile="no"]) if test "$with_gcov" = "yes" ; then CXXFLAGS+=" -fprofile-arcs -ftest-coverage" LDFLAGS+=" -lgcov" elif test "$enable_profile" = "useprofile" ; then CXXFLAGS+=" -fprofile-use" LDFLAGS+=" -fprofile-use" elif test "$enable_profile" = "sampling" ; then CXXFLAGS+=" -fprofile-genereate" LDFLAGS+=" -fprofile-genereate" AC_MSG_NOTICE([GCC optimize using profile need agent library running. And if you wish optimization with using profile, then don't remove "*.gcda/*.gcno" files So don't use "make clean" command which delete such files. You should use "make mostly-clean" command.]) fi # end gcov and profiling ------------------------------------------------------- # check for configure attacher ------------------------------------------------ HEAPSTATAS_DEFAULT_AGENT=`$ECHO $libdir 2>$DEVNULL` ATTACHER_JAR_PATH=`$ECHO $sysconfdir 2>$DEVNULL` AC_SUBST([HEAPSTATAS_DEFAULT_AGENT]) AC_SUBST([ATTACHER_JAR_PATH]) # end of configure attacher --------------------------------------------------- AC_CONFIG_FILES([Makefile src/Makefile attacher/Makefile]) AC_CONFIG_FILES([heapstats.conf]) AC_OUTPUT