1dnl 2dnl Copyright (C) 2010. See COPYRIGHT in top-level directory. 3dnl 4 5AC_PREREQ(2.62) 6 7AC_INIT([armci],[0]) 8AC_CONFIG_AUX_DIR(m4) 9AC_CONFIG_MACRO_DIR(m4) 10AM_INIT_AUTOMAKE([-Wall -Werror foreign 1.12.3 color-tests parallel-tests]) 11 12LT_PREREQ([2.2.6]) 13 14## Bug in libtool adds -O2 and -g by default 15if test ! -z "$MPICC" ; then 16 CC=$MPICC 17 export CC 18fi 19PAC_PUSH_FLAG(CFLAGS) 20AC_PROG_CC(mpicc) 21 22AM_PROG_AR 23 24LT_INIT(disable-shared) 25PAC_POP_FLAG(CFLAGS) 26 27## Non-verbose make 28m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) 29 30## Version checks 31if test -s "$srcdir/VERSION" ; then 32 . $srcdir/VERSION 33 export ARMCI_VERSION 34else 35 AC_MSG_ERROR([Version information not found. Configuration aborted.]) 36fi 37 38# ABI version 39AC_SUBST(libarmci_abi_version) 40 41# Release version 42# Produce a numeric version assuming the following format: 43# Version: [MAJ].[MIN].[REV][EXT][EXT_NUMBER] 44# Example: 1.0.7rc1 has 45# MAJ = 1 46# MIN = 0 47# REV = 7 48# EXT = rc 49# EXT_NUMBER = 1 50# 51# Converting to numeric version will convert EXT to a format number: 52# ALPHA (a) = 0 53# BETA (b) = 1 54# RC (rc) = 2 55# PATCH (p) = 3 56# Regular releases are treated as patch 0 57# 58# Numeric version will have 1 digit for MAJ, 2 digits for MIN, 59# 2 digits for REV, 1 digit for EXT and 2 digits for EXT_NUMBER. 60changequote(<<,>>) 61V1=`expr $ARMCI_VERSION : '\([0-9]*\)\.[0-9]*\.*[0-9]*[a-zA-Z]*[0-9]*'` 62V2=`expr $ARMCI_VERSION : '[0-9]*\.\([0-9]*\)\.*[0-9]*[a-zA-Z]*[0-9]*'` 63V3=`expr $ARMCI_VERSION : '[0-9]*\.[0-9]*\.*\([0-9]*\)[a-zA-Z]*[0-9]*'` 64V4=`expr $ARMCI_VERSION : '[0-9]*\.[0-9]*\.*[0-9]*\([a-zA-Z]*\)[0-9]*'` 65V5=`expr $ARMCI_VERSION : '[0-9]*\.[0-9]*\.*[0-9]*[a-zA-Z]*\([0-9]*\)'` 66changequote([,]) 67 68if test "$V2" -le 9 ; then V2=0$V2 ; fi 69if test "$V3" = "" ; then V3=0; fi 70if test "$V3" -le 9 ; then V3=0$V3 ; fi 71if test "$V4" = "a" ; then 72 V4=0 73elif test "$V4" = "b" ; then 74 V4=1 75elif test "$V4" = "rc" ; then 76 V4=2 77elif test "$V4" = "" ; then 78 V4=3 79 V5=0 80elif test "$V4" = "p" ; then 81 V4=3 82fi 83if test "$V5" -le 9 ; then V5=0$V5 ; fi 84 85ARMCI_NUMVERSION=`expr $V1$V2$V3$V4$V5 + 0` 86AC_SUBST(ARMCI_NUMVERSION) 87AC_SUBST(ARMCI_VERSION) 88 89AC_CONFIG_HEADER(src/armciconf.h) 90AH_TOP([/* -*- Mode: C; c-basic-offset:4 ; -*- */ 91/* 92 * (C) 2010 by Argonne National Laboratory. 93 * See COPYRIGHT in top-level directory. 94 */ 95#ifndef _ARMCICONF_H_ 96#define _ARMCICONF_H_ 97]) 98AH_BOTTOM([#endif /* _ARMCICONF_H_ */]) 99 100PAC_ARG_STRICT 101PAC_CC_FUNCTION_NAME_SYMBOL 102 103## Error checking functionality 104#AC_ARG_ENABLE(error-checking, 105 #AC_HELP_STRING([--enable-error-checking],[Enable error checking functionality]), 106 #enable_error_checking=$enableval, 107 #enable_error_checking=yes) 108#if test "$enable_error_checking" = "yes" ; then 109 #AC_DEFINE(ERROR_CHECKING,1,[Define if error checking is enabled]) 110#fi 111 112## Check if __VA_ARGS__ is defined by the compiler 113PAC_C_MACRO_VA_ARGS 114 115## const and restrict 116AC_C_CONST 117AC_C_RESTRICT 118 119## Chcek for C99 120AC_PROG_CC_C99 121if test "$ac_cv_prog_cc_c99" = "no" ; then 122 AC_ERROR([C99 not supported by the compiler]) 123fi 124 125AC_CHECK_HEADERS([execinfo.h stdint.h inttypes.h]) 126AC_TYPE_UINT8_T 127 128## Debugging support 129AC_ARG_ENABLE(g, AC_HELP_STRING([--enable-g],[Enable Debugging]), 130 [ debug=$enableval ], 131 [ debug=no ]) 132AC_MSG_CHECKING(debugging support) 133AC_MSG_RESULT($debug) 134if test "$debug" = "yes"; then 135 CFLAGS="$CFLAGS -g -O0" 136fi 137 138## Safety checks 139AC_ARG_ENABLE(safety-checks, AC_HELP_STRING([--disable-safety-checks],[Disable safety checks for better performance]), 140 [ safety_enabled=$enableval ], 141 [ safety_enabled=yes ]) 142AC_MSG_CHECKING(whether safety checks are enabled) 143AC_MSG_RESULT($safety_enabled) 144if test "$safety_enabled" = "no"; then 145 AC_DEFINE(NO_SEATBELTS,1,[Defined when safety checks are disabled]) 146fi 147 148## ARMCI Groups 149AC_ARG_ENABLE(armci-group, AC_HELP_STRING([--enable-armci-group],[Enable ARMCI subset-collective group formation]), 150 [ armci_group_enabled=$enableval ], 151 [ armci_group_enabled=no ]) 152AC_MSG_CHECKING(whether ARMCI subset-collective group formation is enabled) 153AC_MSG_RESULT($armci_group_enabled) 154if test "$armci_group_enabled" = "yes"; then 155 AC_DEFINE(ARMCI_GROUP,1,[Defined when ARMCI subset-collective group formation is enabled]) 156fi 157 158# Check for support for weak symbols. 159AC_ARG_ENABLE(weak-symbols, AC_HELP_STRING([--enable-weak-symbols], 160 [Use weak symbols to implement PARMCI routines (default)]),, 161 enable_weak_symbols=yes) 162if test $enable_weak_symbols = yes ; then 163 # Turn off weak symbols if they aren't available 164 PAC_PROG_C_WEAK_SYMBOLS(,enable_weak_symbols=no) 165fi 166if test $enable_weak_symbols = "yes" ; then 167 AC_DEFINE(USE_WEAK_SYMBOLS,1,[Define if weak symbols should be used]) 168 # Check for the ability to support multiple weak symbols 169 if test "$pac_cv_prog_c_weak_symbols" = "pragma weak" ; then 170 PAC_PROG_C_MULTIPLE_WEAK_SYMBOLS(AC_DEFINE(HAVE_MULTIPLE_PRAGMA_WEAK,1,[Define if multiple weak symbols may be defined])) 171 fi 172fi 173 174## Enable creation of libtool-style versioning or no versioning 175AC_ARG_ENABLE(versioning, 176 [AC_HELP_STRING([--enable-versioning],[Enable library versioning])],, 177 [enable_versioning=yes]) 178 179if test "$enable_versioning" = "yes" ; then 180 libarmci_abi_versionflags="-version-info \$(libarmci_abi_version)" 181else 182 libarmci_abi_versionflags="-avoid-version" 183fi 184export libarmci_abi_versionflags 185AC_SUBST(libarmci_abi_versionflags) 186 187 188## Documentation 189AC_PATH_PROG([DOXYGEN],[doxygen],,$PATH) 190AC_SUBST(DOXYGEN) 191 192AC_SUBST(top_srcdir) 193 194## Final output 195AC_OUTPUT(Makefile) 196