dnl Process this file with autoconf to produce a configure script. AC_INIT(main.c) dnl Checks for system and operating system. AC_CANONICAL_SYSTEM AC_SUBST(CPUTYPE) CPUTYPE="$host_cpu" AC_SUBST(OSTYPE) OSTYPE="$host_os" AC_SUBST(MIGRATESUBVERSION) MIGRATESUBVERSION="" MIGRATESUBVERSION=`svn info | grep Revision | awk '{print $2}'` dnl Checks for programs. AC_SUBST(CFLAGS) CFLAGS=" " THREADCLFAGS=" " echo "==============================="; echo $MIGRATESUBVERSION . echo $host_vendor; echo $host_os; echo $host_cpu; echo "==============================="; echo ""; AC_PROG_CC(gcc icc pgcc cc) case $CC in gcc) case "$host_vendor" in apple) CFLAGS="-O3 -Wall -ffast-math -funroll-loops -fomit-frame-pointer -falign-loops=16 -D$CPUTYPE" ;; *) CFLAGS="-O3 -Wall -ffast-math -funroll-loops -fomit-frame-pointer -falign-loops=16 -D$CPUTYPE" ;; esac ;; pgcc) CFLAGS="-B -Bstatic -fast ";; # icc) CFLAGS=" -O3 -tpp7 -xKW -pad -ip ";; icc) CFLAGS=" -fast ";; cc) case "$host_vendor" in sgi) CFLAGS="-O2 -Xcpluscomm -DSGI";; dec) CFLAGS="-fast -inline speed -DCOMPAQ"; libdec="-lm";; ibm) CFLAGS="-O3 -q inline -q cpluscmt -DIBM";; *) CFLAGS="-O " ;; esac esac echo "+++++++++++++++++++++++++++++++++++++++" echo $CC echo $CFLAGS echo "+++++++++++++++++++++++++++++++++++++++" AC_PROG_INSTALL dnl Checks for libraries. LIBS=" " AC_SUBST(RANDOMCFLAGS) AC_SUBST(RANDOMLIBS) RANDOMLIBS=" " RANDOMCFLAG=" " AC_SUBST(THREADCFLAGS) AC_SUBST(THREADLIB) AC_SUBST(TAR) TAR="tar" THREADLIBS=" " AC_SUBST(HOARDLIB) HOARDLIB=" " case "`$ac_config_guess`" in powerpc-apple-darwin*) LIBS=""; TAR="gnutar";; *) ;; esac AC_CHECK_LIB(pthread, pthread_create, [ pthreadlib=yes pthreadlib="-lpthread" ]) if test -n "$pthreadlib"; then THREADLIB="$pthreadlib" fi AC_SUBST(MPICC) AC_CHECK_LIB(mpi,MPI_Init) case "`$ac_config_guess`" in powerpc-apple-darwin*) MPICC="hcc";; *aix*) MPICC="mpcc_r";; *) MPICC=mpicc;; esac SAVELIB=$LIBS LIBS="-lpthread $LIBS" AC_CHECK_LIB(hoard, calloc, [ hoardlib=yes hoardlib="-lhoard" ]) if test -n "$hoardlib"; then HOARDLIB="$hoardlib" fi LIBS=$SAVELIBS AC_CHECK_LIB(m, exp) if test -n "$libdec"; then LIBS="$libdec" fi dnl Checks for header files. AC_CONFIG_HEADER(conf.h) AC_HEADER_STDC AC_CHECK_HEADERS(limits.h strings.h) if test -n "$pthreadlib"; then AC_CHECK_HEADERS(pthread.h,THREADCFLAGS="-D_REENTRANT -DPTHREADS") fi case "`$ac_config_guess`" in powerpc-apple-darwin*) AC_CHECK_HEADERS(pthread.h,THREADCFLAGS="-D_REENTRANT -DPTHREADS");; *) ;; esac dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_SIZE_T AC_CHECK_TYPE(int, long) AC_STRUCT_TM AC_C_INLINE dnl Checks for library functions. AC_TYPE_SIGNAL AC_FUNC_STRFTIME AC_CHECK_FUNCS(strcspn) AC_CHECK_FUNCS(strsep) case "`$ac_config_guess`" in *aix*) ;; *) AC_CHECK_FUNCS(lgamma);; esac dnl checking for SSE2 or ALTIVEC AC_SUBST(HARDWARECFLAGS) HARDWARECFLAGS="" AC_ARG_ENABLE(sse2, [AS_HELP_STRING([--enable-sse2], [enable SSE2 optimizations])], have_sse2=$enableval, have_sse2=no) if test "$have_sse2" = "yes"; then AC_DEFINE(HAVE_SSE2, 1, [Define to enable SSE2 optimizations]) HARDWARECFLAGS="-msse2 -DSSE2" fi AC_ARG_ENABLE(altivec, [AS_HELP_STRING([--enable-altivec], [enable Altivec optimizations])], have_altivec=$enableval, have_altivec=no) if test "$have_altivec" = "yes"; then AC_DEFINE(HAVE_ALTIVEC, 1, [Define to enable Altivec optimizations.]) HARDWARECFLAGS="$CFLAGS -faltivec -maltivec" fi dnl substitute which files to compile for mersenne twister AC_SUBST(MT_FILES) MT_FILES="SFMT.c" # SFMT.h SFMT-params19937.h" if test "$have_sse2" = "yes"; then MT_FILES="SFMT.c" # SFMT.h SFMT-sse2.h SFMT-sse2.c" fi if test "$have_altivec" = "yes"; then MT_FILES="SFMT.c" # SFMT.h SFMT-alti.h SFMT-alti.c" fi echo "Copying source from Mersenne-Twister directory into main source directory" sh copy_mt_to_src AC_OUTPUT(Makefile) echo "-------------------------------------------------------------" echo " MIGRATE-N is now setup" echo " to compile the program you need to type one of the" echo " commands below (ordered by preference):" echo " " echo " SINGLE CPU machines " echo " make pretty # with PDF output support (recommended)" echo " # this might not work on all machines, let me know if" echo " # make pretty fails" echo " make # standard compile, should always work" echo " " echo " SMP machines [more than 1 CPU in machine] " echo " make thread # uses the thread library if present" echo " make thread-pretty # uses the thread library if present" echo " " echo " PARALLEL Computers, Clusters with MPI software " echo " make mpis # slow networks, nodes are single CPU " echo " make mpis-thread # slow network, nodes are SMPs" echo " make mpis-thread-pretty # slow network, nodes are SMPs" echo " make mpi # fast networks, nodes are single CPU " echo " make mpi-thread # fast network, nodes are SMPs" echo "-------------------------------------------------------------"