Skip to content
Snippets Groups Projects
configure.ac 3.77 KiB
Newer Older
zhang's avatar
zhang committed
# Process this file with autoconf to produce a configure script.
AC_INIT([Tracy], [3.0], [nadolski@synchrotron-soleil.fr])
# Set auxilliary directory for config files
zhang's avatar
zhang committed
AC_CONFIG_AUX_DIR(config)

# Set system variables build host target
zhang's avatar
zhang committed
AC_CANONICAL_SYSTEM

#INIT AUTOMAKE
AM_INIT_AUTOMAKE([-Wall])

# Configuration for autoconf
AC_CONFIG_SRCDIR([tracy/src/t2elem.cc])

# Important header files
#AC_CONFIG_HEADER([config.h])
AC_HEADER_RESOLV
AC_CHECK_HEADERS([config.h sys/time.h malloc.h memory.h stdio.h stddef.h time.h])
zhang's avatar
zhang committed

# Checks for programs.
# Check for AWK
AC_PROG_AWK

#Check for C compile
AC_PROG_CC([mpicc gcc icc cc])

#Check for standard C compiler
AM_PROG_CC_STDC

#Check for install
AC_PROG_INSTALL

#Check for ln -s
AC_PROG_LN_S

#Check for C preprocessor
AC_PROG_CPP

#Check for ranlib
AC_PROG_RANLIB

#Check for C++ compiler
AC_PROG_CXX

#Check for compiler
AC_PROG_F77(gfortran)

# Configure option: --enable-debug[=no]
AC_ARG_ENABLE([debug],
  [AS_HELP_STRING([--enable-debug],
    [enable debug code (default is no)])],
    [debug="$withval"], [debug=no])
    
# Configure option: --enable-mpi-exec
AC_ARG_ENABLE([mpi_exec],
	[  --enable-mpi-exec     enable mpi exec],
	[mpi_exec=${enableval}], [mpi_exec=no])

# Checks for libraries.
#AC_SEARCH_LIBS([mpi_init], [mpichcxx], [have_pthreads=yes])

# Force malloc(0) to be NULL pointer
AC_FUNC_MALLOC

zhang's avatar
zhang committed
# NR
#AC_SEARCH_LIBS([dsvbk], [recipes_c_icc])


# Checks for header files.
AC_CHECK_HEADERS([stdlib.h string.h])

# If MPI compitation asked, check whether header is available
if test "x${mpi_exec}" = xyes; then
  have_mpi=no 
  AC_CHECK_HEADERS([mpi.h], [have_mpi=yes], [have_mpi=no])
  
  if test "x${have_mpi}" = xno; then
    AC_MSG_WARN([
	-------------------------------------------
	 Unable to find mpi library on this system.
	 Check 'config.log' for more information.
	-----------------------------------------])
  else
    AC_MSG_NOTICE([
	-------------------------------------------
	 mpi library found on this system.
	 Building parallel version
	 Check 'config.log' for more information.
	-----------------------------------------])
   AC_DEFINE([MPI_EXEC], 1, [mpi executation enabled])
  fi
fi

# Configure supported platforms
case $target_os in
  linux-gnu)
    
    #Compilation optionss
    CXXFLAGS="-O2 -Wall -fno-implicit-templates " # C++ options
    CFLAGS="$CFLAGS -Wall-fno-implicit-templates "     # C   options 
    FFLAGS="$FFLAGS -Wall -fbounds-check" # Fortran options
    if test "x$HOSTNAME" = xisei; then
      #Define isei special compilers
        if test "x$have_mpi" = xyes; then 
	  # mpi compilers
	  AC_MSG_NOTICE([MPI compilation available for $HOSTNAME])
zhang's avatar
zhang committed
	  CC=mpiicc
	  F77=mpiifort
	  CXX=mpiicpc
zhang's avatar
zhang committed
	else
      AC_MSG_NOTICE([Intel compilation for $HOSTNAME])
zhang's avatar
zhang committed
	  CC=icc
      F77=ifort
      CXX=icpc	
zhang's avatar
zhang committed
	fi
    fi;;
  
  apple-darwin);;
  #INSTALL-DATA-EXEC=$(HOME)/bin
zhang's avatar
zhang committed
esac


# Checks for typedefs, structures, and compiler characteristics.
AC_C_CONST
AC_C_INLINE
AC_TYPE_SIZE_T


# Checks for library functions.
AC_CONFIG_FILES(Makefile
          TPSA/Makefile
	  tracy/Makefile 
	  tracy/src/Makefile 
	  tools/Makefile)
AC_OUTPUT

echo \
"-----------------------------------------------------
${PACKAGE_NAME} Version ${PACKAGE_VERSION}
SYNCHROTRON SOLEIL

Prefix.........: ${prefix}
Compiler.......: ${CC} ${CFLAGS} ${CPPFLAGS}
Debug Build....: ${debug}
Libraries......: ${LIBS}

Extra argument:
  --enable-mpi-exec=yes/no

Package features:
   Parallel computation using mpi: ${mpi_exec}

Now type 'make @<:@<target>@:>@'
  where the optional <target> is:
    all         - build all binaries
    check       - run simple test file
    install     - (to be done)
    distclean   - Clean distribution
    dist        - make tar.gz (to me done)
    distcheck   - check
-----------------------------------------------------"