#!/bin/sh # # $Source$ # $Author$ # $Revision$ # $Date$ # ####################################################################### # # Cantera Configuration File # # Edit this file to control how Cantera is built. Parameters can be set # here, or alternatively environment variables may be set before calling # this script. # # The default configuration uses GNU compilers (gcc/g++/g77) and # builds as much of Cantera and its language interfaces as it can # (e.g. if MATLAB is installed on your system, the MATLAB toolbox # will be built automatically, otherwise it will be skipped. On linux # or Mac OS X, this default configuration should work, and most # likely you don't need to edit this file at all - just run it. # # NOTE: if you DO make changes to this file, save it with another name # so that it will not be overwritten if you update the source # distribution. ####################################################################### # If you define this to be , then instead of running this # script as ./configure --prefix= you can just run it as # ./configure CANTERA_CONFIG_PREFIX=${CANTERA_CONFIG_PREFIX:=""} #---------------------------------------------------------------------- # MS-Windows Options #---------------------------------------------------------------------- # # These options only need to be set if you are building Cantera on # a Windows PC. # # Cantera will be installed by default in c:\cantera. Change this to # install it somewhere else. Use forward slashes in the path name. CANTERA_INSTALL_DIR=${CANTERA_INSTALL_DIR:="c:/cantera"} # On a PC running MS-Windows, Cantera can be built either using # Microsoft Visual Studio, with the Visual C++ and (optionally) # Visual Fortran compilers, or using the linux-like cygwin # environment with the g++ and g77 compilers. Set this to "y" to use # Visual Studio. USE_VISUAL_STUDIO=${USE_VISUAL_STUDIO:="y"} # If you are using Visual Studio, set this to the location of the # directory containing the Fortran libraries. This is only needed to # build the Matlab interface. FORTRAN_LIB_DIR="D:\Program Files\Microsoft Visual Studio\DF98\LIB" # # If you are using Visual Studio, set this variable to indicates # whether you want to use DLL's. Note you need this for MSVCv7.0 # but this is turned off for MSVCv6.0 # USE_DLL=yes #---------------------------------------------------------------------- # Language Interfaces #---------------------------------------------------------------------- # # Cantera has several programming language interfaces. Select the ones # you want to build. The default is to try to build all language # interfaces. The Python interface will be built by default, the # MATLAB interface will too if MATLAB is found, the Fortran 90/95 # interface will be built if a Fortran 90/95 compiler is found on your # system. You can customize these defaults by setting parameters in # this section. # # #----------------- Python -------------------------------------------- # # In addition to being one of the supported language interfaces, # Python is used internally by Cantera, both in the build process and # at run time (to process .cti input files). Therefore, you need to # have Python on your system; if you don't, first install it from # http://www.python.org before proceeding with the installation of # Cantera. # # If you plan to work in Python, or you want to use the graphical # MixMaster application, then you need the Cantera Python Package. If, # on the other hand, you will only use Cantera from some other # language (e.g. MATLAB or Fortran 90/95) and only need Python to # process .cti files, then you only need a minimal subset of the # package (actually, only one file). # Set PYTHON_PACKAGE to one of these two strings: # full install everything needed to use Cantera from Python # minimal install only enough to process .cti files PYTHON_PACKAGE=${PYTHON_PACKAGE:="full"} # Cantera needs to know where to find the Python interpreter. If # PYTHON_CMD is set to "default", then the configuration process will # look for the Python Interpreter somewhere on your PATH, either as # 'python2' or as 'python'. If it is not on the PATH, or has a # different name, set this to the full path to the Python interpreter. PYTHON_CMD=${PYTHON_CMD:="default"} # Set this to 'y' when site packages must be put in system directories # but Cantera tutorials must be put in user space. An alternative to # doing this is to put everything in user space by running this script # with the 'prefix' option, and defining environment variable PYTHONPATH # to tell Python where to find the Cantera package. # SET_PYTHON_SITE_PACKAGE_TOPDIR=${SET_PYTHON_SITE_PACKAGE_TOPDIR:="n"} PYTHON_SITE_PACKAGE_TOPDIR=${PYTHON_SITE_PACKAGE_TOPDIR:="/usr/local"} #----------- MATLAB -------------------------------------------------- # This variable controls whether the MATLAB toolbox will be built. It # should be set to one of these strings: # # "default" the 'configure' script will try to build a simple # MATLAB MEX file. If this succeeds, BUILD_MATLAB_TOOLBOX # will be set to "y", otherwise it will be set to "n". # # "y" build the MATLAB toolbox. # "n" do not build the MATLAB toolbox, even if MATLAB is # installed. # # Note that you may need to run 'mex -setup' within MATLAB to # configure it for your C++ compiler before running this script. BUILD_MATLAB_TOOLBOX=${BUILD_MATLAB_TOOLBOX:="default"} #----------- Fortran 90/95 -------------------------------------------------- # This variable controls whether the Fortran 90/95 interface will be # built. It should be set to one of these strings: # # "default" The 'configure' script will attempt to compile a small # Fortran 90/05 program; if this succeeds, # BUILD_F90_INTERFACE will be set to "y", and otherwise to "n". # "y" Build the Fortran 90/95 interface. # "n" Do not build the Fortran 90/95 interface, even if a # Fortran 90/95 compiler is installed. BUILD_F90_INTERFACE=${BUILD_F90_INTERFACE:="y"} # The Fortran 90/95 compiler. F90=${F90:=f95} # Compiler option flags for the Fortran 90/95 compiler. If you are # using the Absoft or the NAG compiler, additional options specific to # these compilers will be added automatically, and you do not need to # specify them here. Otherwise, add any required compiler-specific # flags here. F90FLAGS=${F90FLAGS:='-O2'} #---------------------------------------------------------------------- # Customizations / Extensions #---------------------------------------------------------------------- # # You can build your own libraries as part of the Cantera build process. # This allows you to derive your own classes from those provided by # Cantera and build them automatically along with the rest of Cantera. # All you need to do is specify the directory where your source code is # located. This capability is not yet fully functional, but should work # for C++ applications. USER_SRC_DIR="Cantera/user" # don't change this #---------------------------------------------------------------------- # Kernel Configuration #---------------------------------------------------------------------- # If you are only planning to use a portion of Cantera, you may only # need a stripped-down kernel. Set those features you want enabled to # 'y', and set those you want to skip to 'n' (actually anything but # 'y') or comment them out. Some features are dependent on others; for # example, enabling 'CK' automatically enables KINETICS and THERMO. # If you only need to use Cantera to evaluate thermodynamic, kinetic, # and transport properties, it is sufficient to enable only KINETICS # and TRANSPORT. # Note: if you are building the full Python interface or the MATLAB # interface, it is necessary to build the full kernel. # thermodynamic properties ENABLE_THERMO='y' # if set to 'y', the ck2cti program that converts Chemkin input files # to Cantera format will be built. If you don't use Chemkin format # files, or if you run ck2cti on some other machine, you can set this to 'n'. ENABLE_CK='y' # homogeneous and heterogeneous kinetics ENABLE_KINETICS='y' # transport properties ENABLE_TRANSPORT='y' # chemical equilibrium ENABLE_EQUIL='y' # stirred reactor models ENABLE_REACTORS='y' # One-dimensional flows ENABLE_FLOW1D='y' # ODE integrators and DAE solvers ENABLE_SOLVERS='y' # reaction path analysis ENABLE_RXNPATH='y' # non-ideal pure substance models for a few fluids imported from the # 'TPX' package. (http://adam.caltech.edu/software/tpx) ENABLE_TPX='y' #----------------------------------------------------------------- # BLAS and LAPACK #----------------------------------------------------------------- # # Cantera comes with Fortran versions of those parts of BLAS and # LAPACK it requires. But performance *may* be better if you use a # version of these libraries optimized for your machine hardware. If # you want to use your own libraries, set BLAS_LAPACK_LIBS to the # string that should be passed to the linker to link to these # libraries, and set BLAS_LAPACK_DIR to the directory where these # libraries are located. Otherwise, leave these lines commented out. # # (The settings shown here are appropriate if you are using the ATLAS # libraries.) # #BLAS_LAPACK_LIBS='-llapack -lf77blas -lcblas -latlas' #BLAS_LAPACK_DIR='/usr/lib' # # # The options below do not need to be set if you are using the default # libraries. # # Set to 'lower' or 'upper', depending on whether the procedure names # in the libraries are lowercase or uppercase. If you don't know, run # 'nm' on the library file (e.g. 'nm libblas.a') Note that the these options # apply to both the BLAS and LAPACK libraries. LAPACK_NAMES='lower' LAPACK_FTN_TRAILING_UNDERSCORE='y' # Currently this must be set to 'y'. LAPACK_FTN_STRING_LEN_AT_END='y' #------------------------------------------------------------------ # C++ compiler options #------------------------------------------------------------------ # the C++ compiler to use. # CXX=${CXX:=g++} # the C compiler to use. This is only used to compile CVODE and # the Python extension module. CC=${CC:=gcc} # C++ compiler flags CXXFLAGS=${CXXFLAGS:="-O2 -Wall"} # the C++ flags required for linking. Uncomment if additional flags # need to be passed to the linker. #LCXX_FLAGS="-framework vecLib" # Ending libraries to tack onto the linking of all C++ programs LCXX_END_LIBS=${LCXX_END_LIBS:="-lm"} # the compiler flag to use to compile code that will be inserted into shared # libraries. PIC=${PIC:=-fPIC} # the compiler option to create a shared library from object files SHARED=${SHARED:="-shared"} #------------------------------------------------------------------- # External procedures #------------------------------------------------------------------- # Cantera uses several external software packages, which are all in # the 'ext' directory.. These options control how these packages are # built. # For external procedures written in Fortran 77, both the original F77 # source code and C souce code generated by the 'f2c' program are # included. Set this to "y" if you want to build Cantera using the # f2c-generated C sources instead of using the F77 sources in the ext # directory. # The default is not to do this on all platforms except vc++. # Set this to "n" to never do this on any platform. # Note, if set to "y", Cantera does not need a fortran compiler, and # all fortran compiler parameters below are irrelevant. BUILD_WITH_F2C=${BUILD_WITH_F2C:="y"} # if you are building the external Fortran 77 procedures from the Fortran # source code, enter the compiler here. F77=${F77:=g77} # Fortran 77 compiler flags. Note that the Fortran compiler flags must be set # to produce object code compatible with the C/C++ compiler you are using. FFLAGS=${FFLAGS:='-O2'} # the additional Fortran flags required for linking, if any. Leave commented # out if no additional flags are required. #LFORT_FLAGS="-lF77 -lFI77" #------------------------------------------------------ # other programs #------------------------------------------------------ # the command to create a static library. ARCHIVE=${ARCHIVE:="ar ruv"} # linux # ARCHIVE=${ARCHIVE:="libtool -static -o"} # Mac OSX # the command to run 'ranlib' if it is needed. RANLIB=${RANLIB:="ranlib"} # the command to run the 'make' utility. The Cantera Makefiles are # compatible with the GNU make utility, so if your make utility # doesn't work, try GNU make. MAKE=${MAKE:=make} # file extensions CXX_EXT=${CXX_EXT:=cpp} F77_EXT=${F77_EXT:=f} F90_EXT=${F90_EXT:=f90} CT_SHARED_LIB=${CT_SHARED_LIB:=clib} # The font to use in reaction path diagrams. This must be a font name # recognized by the 'dot' program. On linux systems, this should be # lowercase 'helvetica'. RPFONT=${RPFONT:="Helvetica"} CANTERA_VERSION=${CANTERA_VERSION:="1.5.4"} #----------------------------------------------------------------------- #------------------- don't change anything below!! --------------------- #----------------------------------------------------------------------- export CANTERA_VERSION export USER_SRC_DIR export ARCHIVE export RANLIB export BLAS_LAPACK_LIBS export BLAS_LAPACK_DIR export BUILD_WITH_F2C export BUILD_F90 export BUILD_F90_INTERFACE export PYTHON_PACKAGE export BUILD_MATLAB_TOOLBOX #export MATLAB_CMD export CANTERA_ROOT export CT_SHARED_LIB export CXX export CXX_EXT export CXXFLAGS export CXX_INCLUDES export ENABLE_THERMO export ENABLE_KINETICS export ENABLE_TRANSPORT export ENABLE_CK export ENABLE_EQUIL export ENABLE_REACTORS export ENABLE_SOLVERS export ENABLE_RXNPATH export ENABLE_TPX export ENABLE_FLOW1D export EXE_EXT export F77 export F77_EXT export F90 export F90_EXT export FFLAGS export F77FLAGS export F90FLAGS export LAPACK_NAMES export LCXX_FLAGS export LCXX_END_LIBS export LFORT_FLAGS export LAPACK_FTN_STRING_LEN_AT_END export LAPACK_FTN_TRAILING_UNDERSCORE export LIB_DIR export FORT_MODULE_DIRECTORY export FORT_MODULE_PATH_COMMAND export OBJ_EXT #export PYTHON_CMD export SET_PYTHON_SITE_PACKAGE_DIR export PYTHON_SITE_PACKAGE_TOPDIR export PIC export SHARED export SOEXT export MAKE export RPFONT export USE_VISUAL_STUDIO export FORTRAN_LIB_DIR export CANTERA_INSTALL_DIR cd config chmod +x ./configure chmod +x ./config.guess chmod +x ./config.sub chmod +x ./install-sh # # Decide whether to add a prefix variable to the configure line # if (test "x$CANTERA_CONFIG_PREFIX" = "x") then CCPREFIX="" else CCPREFIX="--prefix="$CANTERA_CONFIG_PREFIX fi # # run the configure command in the config directory # ./configure $CCPREFIX $1 $2 $3 $4