dnl Process this file with autoconf to produce a configure script. define([AC_CACHE_LOAD], )dnl define([AC_CACHE_SAVE], )dnl AC_INIT(Cantera.README) AC_CONFIG_HEADER(../config.h) AC_CONFIG_AUX_DIR(.) echo echo "--------------------------------------------------------------" echo echo " Cantera Configuration Script " echo echo "--------------------------------------------------------------" echo AC_DEFINE(NDEBUG) ac_sys_system=`uname -s` ac_sys_release=`uname -r` SHARED_CTLIB=0 OS_IS_DARWIN=0 OS_IS_WIN=0 OS_IS_CYGWIN=0 mex_ext=mexglx case $ac_sys_system in Darwin*) OS_IS_DARWIN=1; mex_ext=mexmac;; CYGWIN*) OS_IS_CYGWIN=1; mex_ext=dll;; esac CVF_LIBDIR="" if test "x${OS_IS_CYGWIN}" = "x1"; then if test "${USE_VISUAL_STUDIO}" = "y"; then OS_IS_WIN=1; CVF_LIBDIR=$FORTRAN_LIB_DIR fi fi AC_SUBST(CVF_LIBDIR) #AC_PREFIX_DEFAULT([/usr/local]) local_inst=1 if test "x${prefix}" = "xNONE"; then if test "x${OS_IS_CYGWIN}" = "x1"; then prefix=${CANTERA_INSTALL_DIR} # mkdir ${prefix} else prefix=${ac_default_prefix} fi local_inst=0 # if test ! -d ${prefix}; then # echo # echo "********************************************************************" # echo "Installation directory ${prefix} does not exist. Either create it and" # echo "re-run configure, or specify another installation directory using the" # echo "prefix option:" # echo " ./configure --prefix=" # echo "********************************************************************" # exit 1 #fi fi if test "x${OS_IS_WIN}" = "x1"; then prefix=`cygpath -a -w "${prefix}" | sed 's/\\\/\\//g'` fi echo "Cantera will be installed in ${prefix}" AC_SUBST(prefix) AC_SUBST(local_inst) ctversion=${CANTERA_VERSION} AC_SUBST(ctversion) homedir=${HOME} AC_SUBST(homedir) if test -z $local_inst; then ct_libdir=${prefix}/lib/cantera/${ctversion} ct_incdir=${prefix}/include/cantera ct_incroot=${prefix}/include ct_bindir=${prefix}/bin ct_datadir=${prefix}/cantera/${ctversion}/data ct_demodir=${prefix}/cantera/${ctversion}/demos ct_templdir=${prefix}/cantera/${ctversion}/templates ct_tutdir=${prefix}/cantera/${ctversion}/tutorials ct_docdir=${prefix}/cantera/${ctversion}/doc ct_dir=${prefix}/cantera/${ctversion} ct_mandir=${prefix}/share/man else ct_libdir=${prefix}/lib/cantera/${ctversion} ct_incdir=${prefix}/include/cantera ct_incroot=${prefix}/include ct_bindir=${prefix}/bin ct_datadir=${prefix}/cantera/${ctversion}/data ct_demodir=${prefix}/cantera/${ctversion}/demos ct_templdir=${prefix}/cantera/${ctversion}/templates ct_tutdir=${prefix}/cantera/${ctversion}/tutorials ct_docdir=${prefix}/cantera/${ctversion}/doc ct_dir=${prefix}/cantera/${ctversion} ct_mandir=${prefix}/share/man fi if test "x${OS_IS_WIN}" = "x1"; then ct_libdir=${prefix}/lib/${ctversion} ct_incdir=${prefix}/include/cantera ct_incroot=${prefix}/include ct_bindir=${prefix}/bin ct_datadir=${prefix}/data ct_demodir=${prefix}/demos ct_templdir=${prefix}/templates ct_tutdir=${prefix}/tutorials ct_docdir=${prefix}/doc ct_dir=${prefix} ct_mandir=${prefix} fi AC_SUBST(ct_libdir) AC_SUBST(ct_incdir) AC_SUBST(ct_incroot) AC_SUBST(ct_bindir) AC_SUBST(ct_datadir) AC_SUBST(ct_demodir) AC_SUBST(ct_templdir) AC_SUBST(ct_mandir) AC_SUBST(ct_tutdir) AC_SUBST(ct_docdir) AC_SUBST(ct_dir) CANTERA_DATADIR=$datadir/cantera/data # # Cantera directory structure # if test -z "$CANTERA_ROOT"; then CANTERA_ROOT=$prefix/cantera; fi AC_SUBST(CANTERA_LIBDIR) AC_SUBST(CANTERA_INCDIR) if test -z "$CT_TOOLS_BIN"; then CT_TOOLS_BIN=$CANTERA_ROOT/tools/bin; fi AC_SUBST(CT_TOOLS_BIN) AC_SUBST(CANTERA_BINDIR) if test -z "$CANTERA_EXAMPLES_DIR"; then CANTERA_EXAMPLES_DIR=$CANTERA_ROOT/examples; fi AC_SUBST(CANTERA_EXAMPLES_DIR) AC_SUBST(CANTERA_DATADIR) AC_CANONICAL_SYSTEM() ctroot=`(cd ..;pwd)` builddir=$target if test "x${OS_IS_WIN}" = "x1"; then ctroot=`cygpath -a -w "${ctroot}" | sed 's/\\\/\\//g'` builddir="i686-pc-win32" fi if test -z "$username"; then username=$USER; fi AC_SUBST(username) AC_SUBST(ctroot) buildinc=$ctroot/build/include AC_SUBST(buildinc) buildlib=$ctroot/build/lib/$builddir AC_SUBST(buildlib) buildbin=$ctroot/build/bin/$builddir AC_SUBST(buildbin) AC_DEFINE_UNQUOTED(DARWIN,$OS_IS_DARWIN) AC_DEFINE_UNQUOTED(RXNPATH_FONT,"$RPFONT") AC_DEFINE_UNQUOTED(CANTERA_ROOT,"$prefix/cantera") if test -z "$MAKE"; then MAKE='make'; fi AC_SUBST(MAKE) #----------- ARCHIVE -------------------- if test "x${OS_IS_DARWIN}" = "x1"; then ARCHIVE='libtool -static -o' fi AC_SUBST(ARCHIVE) #---------------------------------------- AC_SUBST(SOEXT) if test -z "$SHARED"; then SHARED='-shared'; fi AC_SUBST(SHARED) if test -z "$PIC"; then PIC='-fPIC'; fi AC_SUBST(PIC) #if test -z "$LCXX_FLAGS"; then LCXX_FLAGS="$CXXFLAGS"; fi AC_SUBST(LCXX_FLAGS) #if test -z "$LCXX_END_LIBS"; then LCXX_END_LIBS='-lm'; fi AC_SUBST(LCXX_END_LIBS) ######################################################### # User Code ######################################################### USERDIR="" INCL_USER_CODE=0 if test -n "$USER_SRC_DIR"; then USERDIR=$USER_SRC_DIR; INCL_USER_CODE=1; fi AC_SUBST(USERDIR) AC_SUBST(INCL_USER_CODE) ######################################################### # The Cantera Kernel ######################################################### KERNEL='base' BUILD_CK= NEED_CKREADER= NEED_BLAS= NEED_LAPACK= NEED_RECIPES= NEED_MATH= NEED_TPX= NEED_CVODE= NEED_TRANSPORT= NEED_ZEROD= NEED_ONED= if test "$ENABLE_THERMO" = "y"; then KERNEL=$KERNEL' 'thermo; fi if test "$ENABLE_KINETICS" = "y"; then KERNEL=$KERNEL' 'kinetics; fi if test "$ENABLE_CK" = "y" then #KERNEL=$KERNEL' 'ck BUILD_CK=1 NEED_CKREADER=1 fi if test "$ENABLE_TRANSPORT" = "y" then KERNEL=$KERNEL' 'trprops NEED_BLAS=1 NEED_LAPACK=1 NEED_MATH=1 NEED_TRANSPORT=1 fi if test "$ENABLE_EQUIL" = "y" then KERNEL=$KERNEL' 'equil NEED_BLAS=1 NEED_LAPACK=1 NEED_RECIPES=1 fi if test "$ENABLE_REACTORS" = "y" then KERNEL=$KERNEL' 'reactor NEED_CVODE=1 NEED_ZEROD=1 fi if test "$ENABLE_SOLVERS" = "y" then KERNEL=$KERNEL' 'solvers NEED_CVODE=1 NEED_MATH=1 fi if test "$ENABLE_FLOW1D" = "y" then KERNEL=$KERNEL' 'flow1D NEED_BLAS=1 NEED_LAPACK=1 NEED_MATH=1 NEED_ONED=1 fi if test "$ENABLE_RXNPATH" = "y" then KERNEL=$KERNEL' 'rpath fi if test "$ENABLE_TPX" = "y" then KERNEL=$KERNEL' 'tpx NEED_TPX=1 AC_DEFINE(INCL_PURE_FLUIDS) fi AC_SUBST(KERNEL) AC_SUBST(BUILD_CK) AC_SUBST(LIB_DIR) ######################################################## # BLAS and LAPACK ######################################################## # # if lapack and blas libraries have been specified, then skip building the # supplied libraries build_lapack=0 if test -z "$LAPACK_LIBRARY"; then LAPACK_LIBRARY=-lctlapack; build_lapack=1; fi AC_SUBST(LAPACK_LIBRARY) AC_SUBST(build_lapack) build_blas=0 if test -z "$BLAS_LIBRARY"; then BLAS_LIBRARY=-lctblas; build_blas=1; fi AC_SUBST(BLAS_LIBRARY) AC_SUBST(build_blas) LOCAL_LIBS= if test -n "$NEED_ONED" then LOCAL_LIBS=$LOCAL_LIBS' '-loneD fi if test -n "$NEED_ZEROD" then LOCAL_LIBS=$LOCAL_LIBS' '-lzeroD fi if test -n "$NEED_TRANSPORT" then LOCAL_LIBS=$LOCAL_LIBS' '-ltransport fi #if test -n "$NEED_CKREADER" #then LOCAL_LIBS=$LOCAL_LIBS' '-lconverters #fi LOCAL_LIBS=$LOCAL_LIBS' '-lcantera if test -n "$NEED_RECIPES" then LOCAL_LIBS=$LOCAL_LIBS' '-lrecipes fi if test -n "$NEED_CVODE" then LOCAL_LIBS=$LOCAL_LIBS' '-lcvode fi if test -n "$NEED_LAPACK" then LOCAL_LIBS=$LOCAL_LIBS' '$LAPACK_LIBRARY fi if test -n "$NEED_MATH" then LOCAL_LIBS=$LOCAL_LIBS' '-lctmath fi if test -n "$NEED_BLAS" then LOCAL_LIBS=$LOCAL_LIBS' '$BLAS_LIBRARY fi if test -n "$NEED_TPX" then LOCAL_LIBS=$LOCAL_LIBS' '-ltpx fi AC_SUBST(LOCAL_LIBS) #------------------------------------------------- # Language Interfaces #------------------------------------------------- AC_SUBST(CT_SHARED_LIB) BUILD_F90=0 if test "$BUILD_F90_INTERFACE" != "n"; then BUILD_F90=1 fi AC_SUBST(BUILD_F90) BUILD_CLIB=0 # # Python Interface # BUILD_PYTHON=0 if test -z "$PYTHON_CMD"; then AC_PATH_PROGS(PYTHON_CMD, python2 python, "none") fi if test "$PYTHON_CMD" != "none"; then if test "x$OS_IS_WIN" = "x1"; then PYTHON_CMD=`cygpath -a -w "$PYTHON_CMD" | sed 's/\\\/\\//g'` fi if test "$BUILD_PYTHON_INTERFACE" != "n"; then BUILD_PYTHON=1; BUILD_CLIB=1 fi else echo echo "********************************************************************" echo "Configuration error. Python is required to build Cantera, but it" echo "cannot be found. Set environment variable PYTHON_CMD to the full path to" echo "the Python interpreter on your system, and run configure again." echo "********************************************************************" exit 1 fi AC_SUBST(BUILD_PYTHON) AC_DEFINE_UNQUOTED(PYTHON_EXE,"$PYTHON_CMD") # # Matlab Interface # BUILD_MATLAB=0 if test "$BUILD_MATLAB_TOOLBOX" != "n"; then if test -z "$MATLAB_CMD"; then AC_PATH_PROG(MATLAB_CMD, matlab, "none") if test "$MATLAB_CMD" != "none"; then BUILD_MATLAB=1; BUILD_CLIB=1; fi fi fi if test "x$OS_IS_WIN" = "x1"; then MATLAB_CMD=`cygpath -a -w "$MATLAB_CMD" | sed 's/\\\/\\//g'` echo "Windows MATLAB command: ${MATLAB_CMD}" fi AC_SUBST(BUILD_MATLAB) AC_SUBST(MATLAB_CMD) AC_SUBST(BUILD_CLIB) #------------------------------------------------- export_name=$target AC_SUBST(export_name) dnl Checks for programs. AC_PROG_INSTALL precompile_headers=no if test "x$OS_IS_WIN" = "x1"; then CXX=cl.exe CC=cl.exe else AC_PROG_CXX() AC_PROG_CC() AC_MSG_CHECKING(for ability to precompile headers) if test -n "$GCC"; then msg=`rm -f *h.gch; $CXX testpch.h &> /dev/null` if test -f testpch.h.gch; then precompile_headers=yes fi fi AC_MSG_RESULT(${precompile_headers}) #--------------------------------- # Fortran #--------------------------------- AC_PROG_F77() # if G77 is defined, then add a flag to turn off adding a second underscore # to procedures that have an underscore in the name if test -n "$G77"; then FFLAGS=$FFLAGS' -fno-second-underscore' fi dnl Checks for libraries. AC_F77_LIBRARY_LDFLAGS() case $ac_sys_system in Darwin*) FLIBS='-lg2c -lgcc'; SHARED_CTLIB=0;; esac AC_OBJEXT AC_EXEEXT fi AC_SUBST(precompile_headers) AC_SUBST(CXX_DEPENDS) AC_SUBST(FLIBS) AC_SUBST(OS_IS_DARWIN) AC_SUBST(OS_IS_WIN) AC_SUBST(OS_IS_CYGWIN) AC_SUBST(SHARED_CTLIB) AC_SUBST(mex_ext) # filename extensions for Fortran 77 if test -z "$F77_EXT"; then F77_EXT=f; fi AC_SUBST(F77_EXT) AC_LANG_CPLUSPLUS if test -z "$CXX_EXT"; then CXX_EXT=cpp; fi AC_SUBST(CXX_EXT) if test -z "$OBJ_EXT"; then OBJ_EXT=$OBJEXT; fi AC_SUBST(OBJ_EXT) if test -z "$EXE_EXT"; then EXE_EXT=$EXEEXT; fi AC_SUBST(EXE_EXT) dnl AC_LANG_FORTRAN77 local_math_libs='-lrecipes -lcvode' AC_SUBST(local_math_libs) math_libs='-lrecipes -lcvode -lctmath' AC_SUBST(math_libs) if test "$LAPACK_FTN_TRAILING_UNDERSCORE" = "y" then AC_DEFINE(LAPACK_FTN_TRAILING_UNDERSCORE) fi if test "$LAPACK_FTN_STRING_LEN_AT_END" = "y" then AC_DEFINE(LAPACK_FTN_STRING_LEN_AT_END) fi if test "$LAPACK_NAMES" = "lower" then AC_DEFINE(LAPACK_NAMES_LOWERCASE) fi # from the Python configure.in file... # Set info about shared libraries. AC_SUBST(SO) AC_SUBST(LDSHARED) # SO is the extension of shared libraries `(including the dot!) # -- usually .so, .sl on HP-UX, .dll on Cygwin AC_MSG_CHECKING(SO) if test -z "$SO" then case $ac_sys_system in hp*|HP*) SO=.sl;; CYGWIN*) SO=.dll;; Darwin*) SO=.dylib;; *) SO=.so;; esac fi AC_MSG_RESULT($SO) dnl Checks for header files. dnl Checks for typedefs, structures, and compiler characteristics. AC_LANG_CPLUSPLUS dnl AC_MSG_CHECKING(for the Standard Template Library) dnl Checks for library functions. AC_OUTPUT(../Cantera/Makefile \ ../Cantera/src/Makefile \ ../Cantera/src/zeroD/Makefile \ ../Cantera/src/oneD/Makefile \ ../Cantera/src/converters/Makefile \ ../Cantera/src/transport/Makefile \ ../Cantera/clib/src/Makefile \ ../Cantera/fortran/src/Makefile \ ../Cantera/fortran/f77demos/f77demos.mak \ ../Cantera/fortran/f77demos/isentropic.dsp \ ../Cantera/matlab/Makefile \ ../Cantera/matlab/setup_matlab.py \ ../Cantera/matlab/setup_winmatlab.py \ ../Cantera/python/Makefile \ ../Cantera/python/setup.py \ ../Cantera/cxx/Makefile \ ../Cantera/cxx/src/Makefile \ ../Cantera/cxx/demos/Makefile \ ../Cantera/user/Makefile \ ../Cantera/python/src/Makefile \ ../ext/lapack/Makefile \ ../ext/blas/Makefile \ ../ext/cvode/Makefile \ ../ext/math/Makefile \ ../ext/tpx/Makefile \ ../ext/Makefile \ ../ext/recipes/Makefile \ ../examples/Makefile \ ../examples/cxx/Makefile \ ../Makefile \ ../tools/Makefile \ ../tools/src/Makefile \ ../tools/src/sample.mak \ ../tools/src/finish_install.py \ ../tools/src/package4mac \ ../tools/templates/f77/demo.mak \ ../tools/templates/cxx/demo.mak \ ../tools/testtools/Makefile \ ../data/inputs/Makefile \ ../test_problems/Makefile \ ../test_problems/cxx_ex/Makefile \ ../test_problems/silane_equil/Makefile \ ../test_problems/surfkin/Makefile \ ../test_problems/diamondSurf/Makefile ) # ) if test "x${OS_IS_WIN}" = "x1"; then cp -f ../config.h ../Cantera/src fi echo if test "x${OS_IS_WIN}" = "x0"; then echo "Now type '${MAKE}' to build Cantera" else echo "Now start Visual Studio, open workspace 'win32/cantera.dsw'," echo "and build project 'all'. When this finishes, come back here and " echo "type 'make win' to make the Python and/or MATLAB interfaces." fi echo # $Log: configure.in,v