📄 configure.in
字号:
dnldnl Caching is usually WRONG for systems with cross-mounted file systemsdnl (the cache file may correspond to a different system). Since configurednl is not on a performance-critical path, go for robustness over speed.dnldefine([AC_CACHE_LOAD], )dnldefine([AC_CACHE_SAVE], )dnldnldnlAH_BOTTOM([/* Temporary fix of undefined int64_t on SLES8 with "icc -no-gcc" */#if defined(FIX_STDINT_ORDER)#include "clog_inttypes.h"#endif/* Define WINDOWS specific features *//* Windows' open() opens an ASCII file by default, add Windows specific flag O_BINARY to open()'s argument*/#if !defined( OPEN )#if defined(HAVE_WINDOWS_H)#define OPEN( a, b, c ) open( a, b | O_BINARY, c )#else#if defined(HAVE_O_LARGEFILE)#if defined(HAVE_O_BINARY)#define OPEN( a, b, c ) open( a, b | O_LARGEFILE | O_BINARY, c )#else#define OPEN( a, b, c ) open( a, b | O_LARGEFILE, c )#endif /* HAVE_O_BINARY */#else#if defined(HAVE_O_BINARY)#define OPEN( a, b, c ) open( a, b | O_BINARY, c )#else#define OPEN( a, b, c ) open( a, b, c )#endif /* HAVE_O_BINARY */#endif /* HAVE_O_LARGEFILE */#endif /* HAVE_WINDOWS_H */#endif /* OPEN */])AC_INIT()AC_PREREQ(2.52)AC_CONFIG_HEADER( mpe_logging_conf.h )dnlecho "Configuring MPE Logging Library and Tools with $ac_configure_args"dnldnl Set top_srcdir_abs to be the ABSOLUTE path to the home directory of MPEdnl top_srcdir is in relative path.if test "X$srcdir" != "X." -a -s $srcdir/include/mpe_log.h ; then top_srcdir_abs=$srcdirelse PAC_GETWD( top_srcdir_abs, include/mpe_log.h )fiAC_SUBST(top_srcdir_abs) AC_ARG_ENABLE( echo,[--enable-echo - Turn on strong echoing. The default is enable=no.],set -x )AC_ARG_ENABLE( softerror,[--enable-softerror - Turn on soft error, i.e. instead of issuing MSG_ERROR, MSG_WARN + exit 0 are used. The default is enable=no.],, enable_softerror=${mpe_enable_softerror:-no} )MAKE=${MAKE:-make}MPI_IMPL=${MPI_IMPL:-UserSupplied}MPE_BUILD_FORTRAN2C=${MPE_BUILD_FORTRAN2C:-no}CC=${CC:-cc}CLINKER=${CLINKER:-$CC}CFLAGS=${MPE_CFLAGS}MPI_CC=${MPI_CC:-${CC}}MPI_CFLAGS=${MPI_CFLAGS}MPI_LIBS=${MPI_LIBS}MPE_LIBNAME=${MPE_LIBNAME:-mpe}PROF_LIBNAME="$MPE_LIBNAME"PROF_LIBS="-l$PROF_LIBNAME" dnl Fixup for makePAC_MAKE_IS_GNUMAKEPAC_MAKE_IS_BSD44PAC_MAKE_IS_OSFPAC_MAKE_VPATHAC_SUBST(MAKE) dnl If we are relying on vpath and no vpath is set, then we must exitif test ! -s include/mpe_log.h -a -z "$VPATH" ; then AC_MSG_ERROR( [No virtual MAKE path command found. You may need to set your make command The GNU make (sometimes available as gnumake) can be used.] )fidnl CPRP is the version of cp that accepts -r and -p arguments.MKDIR=mkdirCPRP=cpRM=rmMV=mvAC_SUBST(MKDIR)AC_SUBST(CPRP)AC_SUBST(RM)AC_SUBST(MV)AC_ARG_ENABLE( threadlogging,[--enable-threadlogging - Turn on/off the coarse-grained thread support in MPE logging. The default is enable=yes.], ,enable_threadlogging=yes )dnl Set the various build directories from their mpe_ prefixed env variables.dnldnl includebuild_dir is for all user header filesdnl libbuild_dir is used to build the libraries in before they are installed.dnl binbuild_dir is for the scripts/programsdnl sbinbuild_dir is for all system admin toolsdnl etcbuild_dir is for all system admin configuration settingsdnlrootbuild_dir=`pwd`for dir in include lib bin etc ; do dirname=${dir}build_dir mpe_dirname=mpe_${dirname} eval dirvalue=\$"$dirname" eval $dirname=\$\{${mpe_dirname}\}donefor dir in include lib bin etc ; do dirname=${dir}build_dir eval dirvalue=\$"$dirname" if test -n "$dirvalue" ; then if test ! -d $dirvalue ; then if mkdir -p $dirvalue ; then : else PAC_MSG_ERROR( $enable_softerror, [Could not create directory $dirvalue] ) fi fi fidoneAC_SUBST(includebuild_dir)AC_SUBST(libbuild_dir)AC_SUBST(binbuild_dir)AC_SUBST(etcbuild_dir)AC_PROG_CCAC_OBJEXTAC_EXEEXTdnl Check for broken handling of common symbolsdnl PAC_PROG_C_BROKEN_COMMONAC_CHECK_PROG(AR, ar, ar, ;)AC_PROG_RANLIBdnl We need to check that this has worked. The autoconf macro is brokenAC_PROG_CPPif test "$CPP" = "/lib/cpp" -a ! -x /lib/cpp ; then AC_MSG_ERROR( [configure could not find a working C preprocessor] )fiAC_HEADER_STDCAC_C_CONSTAC_DEFINE( CLOG_IMPL, 1, [The configuration header enables CLOG2 implementation related API] )dnl -- Check if byteswapping needs to be done.if test "$cross_compiling" = "yes" -o "$cross_compiling" = 1 ; then AC_MSG_CHECKING([for byte ordering]) if test "X$CROSS_BIGENDIAN" != "X" ; then if test "$CROSS_BIGENDIAN" = "true" \ -o "$CROSS_BIGENDIAN" = "false" ; then if test "$CROSS_BIGENDIAN" = "true" ; then AC_DEFINE( WORDS_BIGENDIAN, 1, [Define if byte order is bigendian] ) AC_MSG_RESULT( [defined to be big endian] ) else AC_MSG_RESULT( [defined to be little endian] ) fi else AC_DEFINE( WORDS_BIGENDIAN, 1, [Define if byte order is bigendian] ) AC_MSG_RESULT( [Unknown CROSS_BIGENDIAN, $CROSS_BIGENDIAN! Assumed big endian] ) fi else AC_DEFINE( WORDS_BIGENDIAN, 1, [Define if byte order is bigendian] ) AC_MSG_RESULT( [Undefined CROSS_BIGENDIAN! Assumed big endian] ) fielse AC_C_BIGENDIANfiAC_CHECK_HEADERS(stdio.h stdlib.h string.h unistd.h sys/time.h sys/types.h sys/bitypes.h sys/stat.h fcntl.h)dnldnl Check system headers for C99 intXX_t.dnlPAC_GET_STDINT_HEADER([mpe_c99_stdint_h])if test "X$mpe_c99_stdint_h" != "X" ; then mpe_int8_t="int8_t" mpe_int16_t="int16_t" mpe_int32_t="int32_t" mpe_int64_t="int64_t"elsednl Since there isn't any intXX_t defined in the system headers.dnl Define intXX_t based on basic integer types, char, short, int, long... PAC_GET_BASIC_INT_TYPES([mpe_int8_t], [mpe_int16_t], [mpe_int32_t], [mpe_int64_t])fidnldnl Check for PRIdXXdnlPAC_GET_STDINT_FORMATS([$mpe_int8_t], [$mpe_int16_t], [$mpe_int32_t], [$mpe_int64_t], [mpe_int8_fmt], [mpe_int16_fmt], [mpe_int32_fmt], [mpe_int64_fmt], [mpe_c99_pridxx_h])dnl Create the output stdint.h for MPE loggingdnl PAC_OUTPUT_STDINT_HEADER([include/clog_stdint.h],dnl [$mpe_c99_stdint_h], [$mpe_c99_pridxx_h],dnl [$mpe_int8_t], [$mpe_int16_t],dnl [$mpe_int32_t], [$mpe_int64_t],dnl [$mpe_int8_fmt], [$mpe_int16_fmt],dnl [$mpe_int32_fmt], [$mpe_int64_fmt])mpe_c99_stdint_inc=""mpe_c99_pridxx_inc=""if test "X$mpe_c99_stdint_h" != "X" ; then mpe_c99_stdint_inc="#include <$mpe_c99_stdint_h>" if test "X$mpe_c99_pridxx_h" != "X" ; then if test "$mpe_c99_pridxx_h" != "$mpe_c99_stdint_h" ; then mpe_c99_pridxx_inc="#include <$mpe_c99_pridxx_h>" fi fifiAC_SUBST(mpe_c99_stdint_inc)AC_SUBST(mpe_c99_pridxx_inc)AC_SUBST(mpe_int8_t)AC_SUBST(mpe_int16_t)AC_SUBST(mpe_int32_t)AC_SUBST(mpe_int64_t)AC_SUBST(mpe_int8_fmt)AC_SUBST(mpe_int16_fmt)AC_SUBST(mpe_int32_fmt)AC_SUBST(mpe_int64_fmt)if test "X$mpe_c99_stdint_h" != "X" ; then AC_MSG_CHECKING( [if <$mpe_c99_stdint_h> can be behind system headers] ) AC_COMPILE_IFELSE( [ AC_LANG_PROGRAM( [#if defined( STDC_HEADERS ) || defined( HAVE_STDIO_H )#include <stdio.h>#endif#if defined( STDC_HEADERS ) || defined( HAVE_STDLIB_H )#include <stdlib.h>#endif#include <$mpe_c99_stdint_h> ], [ int64_t ii64 = 0; ] ) ], [ mpe_link_ok=yes ], [ mpe_link_ok=no ] ) if test "$mpe_link_ok" = "yes" ; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_DEFINE( FIX_STDINT_ORDER, 1, [Define if stdint.h should be before system headers] ) fifidnl Set ZMPI_AINT for mpi_null.hAC_CHECK_SIZEOF( void *, $CROSS_SIZEOF_VOID_P )ZMPI_AINT=mpe_int64_tAC_MSG_CHECKING( [for address-sized integer] )for bytelen in 8 16 32 64 ; do charlen=`expr $bytelen / 8` if test "$ac_cv_sizeof_void_p" = "$charlen" ; then ZMPI_AINT=CLOG_int${bytelen}_t ZMPI_SIZEOF_AINT=$charlen break; fidoneAC_MSG_RESULT([$ZMPI_AINT])AC_SUBST(ZMPI_AINT)# If sizeof(mpi_aint) = sizeof(int), set this valueif test "$ac_cv_sizeof_int" = "$ac_cv_sizeof_void_p" ; then AC_DEFINE(SIZEOF_INT_IS_AINT,1,[define if sizeof(int) = sizeof(void*)])fidnl **** Checking for specific functions needed for the package. if test -z "$nonopt" ; then nonopt=NONE ; fiAC_CANONICAL_HOSTcase "$host" in *cray*) if test "$MPE_BUILD_FORTRAN2C" = "yes" ; then AC_MSG_CHECKING( [for Cray's FCD string type] ) AC_LINK_IFELSE( [ AC_LANG_PROGRAM( [#include <fortran.h>], [ char *cstr; int cstrlen; _fcd fstr; cstr = _fcdtocp( fstr ); cstr_len = _fcdlen( fstr ); ] ) ], [ mpe_link_ok=yes ], [ mpe_link_ok=no ] ) if test "$mpe_link_ok" = "yes" ; then AC_MSG_RESULT(yes)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -