cantera/configure
2004-07-14 11:24:12 +00:00

380 lines
11 KiB
Bash
Executable file

#!/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.
#
# NOTE: if you 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 <prefix>, then instead of running this
# script as ./configure --prefix=<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 Visual Fortran
# compilers, or using the linux-like cygwin environment with the
# g++ and g77 compilers.
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"
#----------------------------------------------------------------------
# Language Interfaces
#----------------------------------------------------------------------
#
# Cantera provides interfaces for several languages. Set to 'y' to
# build the specified interface.
#------------ Python -------------------------------------------------
# Cantera uses Python to process .cti input files, so if you plan to
# use these, you need to have Python on your system. (If you will only
# use CTML input files, then you don't need Python at all.)
# You only need to build the full Cantera Python interface if you plan
# to use Cantera from Python. If so, Python 2.0 or greater is
# required, and the Numeric extensions for Python are needed too. See
# file INSTALLING for more details.
#
# The configure process will attempt to find the Python interpreter on
# your system. However, if there is more than one and you want a
# specific interpreter to be used, then define PYTHON_CMD to be the
# full path to the desired Python interpreter. This allows you, for
# example, to build your own private Python interpreter and use it
# instead of the system Python interpreter.
#PYTHON_CMD=${PYTHON_CMD:="python"}
# Set to one of the following:
# full everything needed to use Cantera from Python
# minimal only enough to process .cti files
# none don't use Python at all; only CTML input files can be used.
PYTHON_PACKAGE=${PYTHON_PACKAGE:="full"}
# Use when site packages must be put in system directories but Cantera
# tutorials must be put in user space. Note: an alternative to doing
# this is to put everything in user space, and define 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 --------------------------------------------------
# Set this to "y" if you want to build the Matlab toolbox. Matlab must
# be installed on your system first, since the build process runs a
# Matlab script. If this is set to "y" but Matlab is not found, the
# Matlab toolbox will not be built.
BUILD_MATLAB_TOOLBOX=${BUILD_MATLAB_TOOLBOX:="y"}
#----------------------------------------------------------------------
# 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.
# thermodynamic properties
ENABLE_THERMO='y'
# if set to 'y', the ck2cti program that converts Chemkin input files
# to Cantera format will be built
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.
# BLAS_LAPACK_LIBS='-llapack -lf77blas -lcblas -latlas'
# BLAS_LAPACK_DIR='/usr/lib/atlas'
#
# 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
LCXX_FLAGS="-L /usr/lib/atlas"
# 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"}
#-------------------------------------------------------------------
# Fortran compiler options
#-------------------------------------------------------------------
# Note: the Fortran 90 interface is currently not available. Hopefully
# it will be back at a future date...
# Cantera uses some external procedures written in Fortran 77.
# In addition, Cantera implements an interface for Fortran 90
# application programs. The parameters in this section apply
# to both.
# the Fortran 77 and Fortran 90 compilers. You only need a Fortran 90
# compiler if you are building the Fortran 90 interface.
F77=${F77:=g77}
F90=${F90:=f90}
# Fortran compiler flags
FFLAGS=${FFLAGS:='-O2'}
# the additional Fortran flags required for linking, if any
#LFORT_FLAGS="-lF77 -lFI77"
# Fortran 90 module directory
## FORT_MODULE_DIRECTORY=${FORT_MODULE_DIRECTORY:=$CANTERA_ROOT/include/fortran}
# Fortran 90 module search path command
## FORT_MODULE_PATH_CMD=${FORT_MODULE_PATH_CMD:="-I$FORT_MODULE_DIRECTORY"}
#------------------------------------------------------
# other programs
#------------------------------------------------------
# the command to create a static library
ARCHIVE=${ARCHIVE:="ar ruv"}
# 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}
#OBJ_EXT=
#EXE_EXT=
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_F90
export BUILD_FORTRAN_90_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 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