diff --git a/Cantera/clib/src/ct.cpp b/Cantera/clib/src/ct.cpp index 4698c187f..3adef7a8d 100755 --- a/Cantera/clib/src/ct.cpp +++ b/Cantera/clib/src/ct.cpp @@ -393,6 +393,18 @@ extern "C" { return -10; } + int DLL_EXPORT th_elementPotentials(int n, int lenm, double* lambda) { + thermo_t* thrm = th(n); + int nel = thrm->nElements(); + if (lenm >= nel) { + equilibrate(*thrm, "TP"); + thrm->getElementPotentials(lambda); + return 0; + } + else + return -10; + } + int DLL_EXPORT th_setPressure(int n, double p) { try { if (p < 0.0) throw CanteraError("th_setPressure", diff --git a/Cantera/clib/src/ct.h b/Cantera/clib/src/ct.h index 150f608e6..3fbebc732 100755 --- a/Cantera/clib/src/ct.h +++ b/Cantera/clib/src/ct.h @@ -64,6 +64,7 @@ extern "C" { double DLL_IMPORT th_cp_mass(int n); double DLL_IMPORT th_cv_mass(int n); int DLL_IMPORT th_chemPotentials(int n, int lenm, double* murt); + int DLL_IMPORT th_elementPotentials(int n, int lenm, double* lambda); int DLL_IMPORT th_getEnthalpies_RT(int n, int lenm, double* h_rt); int DLL_IMPORT th_getEntropies_R(int n, int lenm, double* s_r); int DLL_IMPORT th_getCp_R(int n, int lenm, double* cp_r); diff --git a/Cantera/fortran/src/Makefile.in b/Cantera/fortran/src/Makefile.in index 7b7f13ea2..98b8983e9 100644 --- a/Cantera/fortran/src/Makefile.in +++ b/Cantera/fortran/src/Makefile.in @@ -10,11 +10,13 @@ SUFFIXES= -SUFFIXES= .cpp .d .o +SUFFIXES= .cpp .d .o .f90 .mod CXX_FLAGS = @CXXFLAGS@ $(CXX_OPT) -OBJS = fct.o fctxml.o +OBJS = fct.o fctxml.o fctxml_interface.o cantera_xml.o + +MODULES = fctxml.mod cantera_xml.mod DEPENDS = $(OBJS:.o=.d) @@ -24,6 +26,9 @@ FORT_LIBS = @FLIBS@ # the C++ compiler CXX = @CXX@ +# the Fortran 90/95 compiler +F90 = @F90@ + # external libraries EXT_LIBS = @LOCAL_LIBS@ @@ -43,14 +48,20 @@ CXX_INCLUDES = -I$(CANTERA_INCDIR) LCXX_FLAGS = -L$(CANTERA_LIBDIR) @CXXFLAGS@ # how to compile C++ source files to object files -.@CXX_EXT@.@OBJ_EXT@: +%.o : %.cpp $(CXX) -c $< $(CXX_INCLUDES) $(CXX_FLAGS) +%.o : %.f90 + $(F90) -c $< $(FORT_FLAGS) + +%.mod : %.f90 + $(F90) -c $< $(FORT_FLAGS) + LIB_NAME=libfct.a FTLIB = @buildlib@/$(LIB_NAME) - -lib: $(OBJS) $(LIB_DEPS) + +lib: $(MODULES) $(OBJS) $(LIB_DEPS) $(RM) $(FTLIB) @ARCHIVE@ $(FTLIB) $(OBJS) @@ -60,6 +71,9 @@ clean: install: @INSTALL@ $(FTLIB) @prefix@/lib/cantera +win-install: + @INSTALL@ ../../../lib/clib.lib @prefix@/lib/cantera + %.d: g++ -MM $(CXX_INCLUDES) $*.cpp > $*.d diff --git a/Cantera/fortran/src/fctxml.cpp b/Cantera/fortran/src/fctxml.cpp index 163ed304b..0ee94e6d7 100644 --- a/Cantera/fortran/src/fctxml.cpp +++ b/Cantera/fortran/src/fctxml.cpp @@ -1,25 +1,17 @@ -// Build as a DLL under Windows -#ifdef WIN32 -#define DLL_EXPORT __declspec(dllexport) -#pragma warning(disable:4786) -#pragma warning(disable:4503) -#else -#define DLL_EXPORT -#endif + +#include "flib_defs.h" // Cantera includes #include "ctml.h" #include "importCTML.h" #include "../../clib/src/Cabinet.h" -//#include "Storage.h" - // Values returned for error conditions #define ERR -999 #define DERR -999.999 -Cabinet* Cabinet::__storage = 0; +//Cabinet* Cabinet::__storage = 0; inline XML_Node* _xml(const integer* i) { return Cabinet::cabinet(false)->item(*i); @@ -41,14 +33,16 @@ extern "C" { } int DLL_EXPORT fxml_get_xml_file_(const char* file, ftnlen filelen) { - //try { + try { XML_Node* x = get_XML_File(string(file, filelen)); int ix = Cabinet::cabinet(false)->add(x); cout << "ix = " << ix << endl; return ix; - //} - //catch (CanteraError) { - //cout << "error...." << endl; return 23; } + } + catch (CanteraError) { + handleError(); + return -1; + } } int DLL_EXPORT fxml_clear_() { @@ -57,7 +51,7 @@ extern "C" { close_XML_File("all"); return 0; } - catch (CanteraError) { return -1; } + catch (CanteraError) { handleError(); return -1;} } int DLL_EXPORT fxml_del_(const integer* i) { @@ -78,14 +72,14 @@ extern "C" { return Cabinet::cabinet(false)->assign(*i,*j); } - int DLL_EXPORT fxml_preprocess_and_build_(const integer* i, - const char* file, ftnlen filelen) { - try { - get_CTML_Tree(_xml(i), string(file, filelen)); - return 0; - } - catch (CanteraError) { return -1; } - } +// int DLL_EXPORT fxml_preprocess_and_build_(const integer* i, +// const char* file, ftnlen filelen) { +// try { +// get_CTML_Tree(_xml(i), string(file, filelen)); +// return 0; +// } +// catch (CanteraError) { handleError(); return -1;} +// } @@ -102,7 +96,7 @@ extern "C" { throw CanteraError("fxml_attrib","node " " has no attribute '"+ky+"'"); } - catch (CanteraError) { return -1; } + catch (CanteraError) { handleError(); } return 0; } @@ -114,7 +108,7 @@ extern "C" { XML_Node& node = *_xml(i); node.addAttribute(ky, val); } - catch (CanteraError) { return -1; } + catch (CanteraError) { handleError(); } return 0; } @@ -125,7 +119,7 @@ extern "C" { XML_Node& node = *_xml(i); node.addComment(c); } - catch (CanteraError) { return -1; } + catch (CanteraError) { handleError(); } return 0; } @@ -135,7 +129,7 @@ extern "C" { const string v = node.name(); strncpy(tag, v.c_str(), taglen); } - catch (CanteraError) { return -1; } + catch (CanteraError) { handleError(); } return 0; } @@ -145,7 +139,7 @@ extern "C" { const string v = node.value(); strncpy(value, v.c_str(), valuelen); } - catch (CanteraError) { return -1; } + catch (CanteraError) { handleError(); } return 0; } @@ -155,7 +149,7 @@ extern "C" { XML_Node& c = node.child(string(loc, loclen)); return Cabinet::cabinet()->add(&c); } - catch (CanteraError) { return -1; } + catch (CanteraError) { handleError(); } return 0; } @@ -165,7 +159,7 @@ extern "C" { XML_Node& c = node.child(*m); return Cabinet::cabinet()->add(&c); } - catch (CanteraError) { return -1; } + catch (CanteraError) { handleError(); } return 0; } @@ -179,7 +173,7 @@ extern "C" { else throw CanteraError("fxml_find_id","id not found: "+string(id, idlen)); } - catch (CanteraError) { return -1; } + catch (CanteraError) { handleError(); } return 0; } @@ -194,7 +188,7 @@ extern "C" { throw CanteraError("fxml_findByName","name "+string(nm, nmlen) +" not found"); } - catch (CanteraError) { return -1; } + catch (CanteraError) { handleError(); } return 0; } @@ -203,7 +197,8 @@ extern "C" { XML_Node& node = *_xml(i); return node.nChildren(); } - catch (CanteraError) { return -1; } + catch (CanteraError) { handleError(); } + return 0; } int DLL_EXPORT fxml_addchild_(const integer* i, const char* name, @@ -214,7 +209,7 @@ extern "C" { string(value,valuelen)); return Cabinet::cabinet()->add(&c); } - catch (CanteraError) { return -1; } + catch (CanteraError) { handleError(); } return 0; } @@ -225,7 +220,7 @@ extern "C" { XML_Node& c = node.addChild(chld); return Cabinet::cabinet()->add(&c); } - catch (CanteraError) { return -1; } + catch (CanteraError) { handleError(); } return 0; } @@ -243,7 +238,7 @@ extern "C" { } return 0; } - catch (CanteraError) { return -1; } + catch (CanteraError) { handleError(); } return 0; } @@ -268,7 +263,7 @@ extern "C" { } //n = nv; } - catch (CanteraError) { return -1; } + catch (CanteraError) { handleError(); } return 0; } diff --git a/Cantera/python/Cantera/Phase.py b/Cantera/python/Cantera/Phase.py index 3f485567f..1c08020fc 100755 --- a/Cantera/python/Cantera/Phase.py +++ b/Cantera/python/Cantera/Phase.py @@ -288,4 +288,21 @@ class Phase: return Numeric.asarray(fs) else: return f - + + def selectElements(self, f, elements): + """Given an array 'f' of floating-point element properties, + return a Numeric array of those values corresponding to elements + listed in 'elements'. + >>> f = ph.elementPotentials() + >>> lam_o, lam_h = ph.selectElements(f, ['O', 'H']) + """ + if elements: + fs = [] + k = 0 + for s in elements: + k = self.elementIndex(s) + fs.append(f[k]) + return Numeric.asarray(fs) + else: + return f + diff --git a/Cantera/python/Cantera/ThermoPhase.py b/Cantera/python/Cantera/ThermoPhase.py index f6e781456..718d9f99d 100644 --- a/Cantera/python/Cantera/ThermoPhase.py +++ b/Cantera/python/Cantera/ThermoPhase.py @@ -130,6 +130,18 @@ class ThermoPhase(Phase): underlying kernel thermo manager.""" mu = _cantera.thermo_getarray(self._phase_id,20) return self.selectSpecies(mu, species) + + def elementPotentials(self, elements = []): + """Element potentials of the elements. + + This method returns an array containing the element potentials + [J/kmol]. The element potentials are only defined for + equilibrium states. This method first sets the composition to + a state of equilibrium holding T and P constant, then computes + the element potentials for this equilibrium state. """ + + lamb = _cantera.thermo_getarray(self._phase_id,21) + return self.selectElements(lamb, elements) def enthalpies_RT(self, species = []): """Pure species non-dimensional enthalpies. diff --git a/Cantera/python/setup.py.in b/Cantera/python/setup.py.in index 334162c73..fc055bbfa 100644 --- a/Cantera/python/setup.py.in +++ b/Cantera/python/setup.py.in @@ -7,6 +7,8 @@ except: libs = [] platform = sys.platform +flibs = '@FLIBS@' + bllibstr = "@BLAS_LAPACK_LIBS@" bllibs = bllibstr.replace('-l',' ') bllist = bllibs.split() diff --git a/Cantera/python/src/ctthermo_methods.cpp b/Cantera/python/src/ctthermo_methods.cpp index 3dbe8d1af..e3d6c1057 100644 --- a/Cantera/python/src/ctthermo_methods.cpp +++ b/Cantera/python/src/ctthermo_methods.cpp @@ -186,16 +186,22 @@ thermo_getarray(PyObject *self, PyObject *args) return NULL; int nsp = th_nSpecies(th); + int nel = phase_nElements(th); + int xlen = (job == 21 ? nel : nsp); // array attributes int iok = -22; + PyArrayObject* x = - (PyArrayObject*)PyArray_FromDims(1, &nsp, PyArray_DOUBLE); + (PyArrayObject*)PyArray_FromDims(1, &xlen, PyArray_DOUBLE); double* xd = (double*)x->data; switch (job) { case 20: iok = th_chemPotentials(th,nsp,xd); break; + case 21: + iok = th_elementPotentials(th,nel,xd); + break; case 23: iok = th_getEnthalpies_RT(th,nsp,xd); break; diff --git a/Makefile.in b/Makefile.in index 774fc7d7d..639459d4b 100755 --- a/Makefile.in +++ b/Makefile.in @@ -161,14 +161,9 @@ matlab: ifeq ($(build_matlab),1) cd Cantera/matlab; @MAKE@ else - @echo 'NOT installing the Matlab toolbox' + @echo 'NOT building the Matlab toolbox' endif -#win-matlab: -#ifeq ($(build_matlab),1) -# cd Cantera/matlab; @MAKE@ win -#endif - matlab-install: ifeq ($(build_matlab),1) cd Cantera/matlab; @MAKE@ install @@ -200,11 +195,13 @@ finish-install: chown -R @username@ @ct_demodir@/f77 ifeq ($(os_is_win),0) + +# if not a 'compact' installation, then add some symbolic links for convenience. +ifeq ($(compact_install),0) rm -fR @prefix@/cantera/demos rm -fR @prefix@/cantera/data rm -fR @prefix@/cantera/templates rm -fR @prefix@/cantera/tutorials -ifeq ($(compact_install),0) ln -s @ct_demodir@ @prefix@/cantera/demos ln -s @ct_datadir@ @prefix@/cantera/data ln -s @ct_templdir@ @prefix@/cantera/templates @@ -220,11 +217,6 @@ else @INSTALL@ @buildbin@/* @ct_bindir@ endif -#@INSTALL@ bin/ctmkmf @ct_bindir@/ctnew -#@INSTALL@ bin/cxx_examples @ct_demodir@/c++ - - - example_codes: (cd examples/cxx; @MAKE@) (cd Cantera/cxx; @MAKE@) @@ -272,6 +264,7 @@ endif changes: cvs2cl.pl --prune + cvs commit -m' ' ChangeLog export: changes @INSTALL@ -d $(export_dir) diff --git a/config.h.in b/config.h.in index 0bb091b98..3091a5549 100755 --- a/config.h.in +++ b/config.h.in @@ -70,4 +70,7 @@ typedef int ftnlen; // Fortran hidden string length type #undef INCL_PURE_FLUIDS +//--------------------- compile options ---------------------------- +#undef USE_PCH + #endif diff --git a/config/configure b/config/configure index f7ff7c20f..ca1406270 100755 --- a/config/configure +++ b/config/configure @@ -271,7 +271,7 @@ PACKAGE_STRING= PACKAGE_BUGREPORT= ac_unique_file="Cantera.README" -ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CVF_LIBDIR local_inst local_python_inst python_prefix ctversion homedir ct_libdir ct_incdir ct_incroot ct_bindir ct_datadir ct_demodir ct_templdir ct_mandir ct_tutdir ct_docdir ct_dir COMPACT_INSTALL CANTERA_LIBDIR CANTERA_INCDIR CT_TOOLS_BIN CANTERA_BINDIR CANTERA_EXAMPLES_DIR CANTERA_DATADIR build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os username ctroot buildinc buildlib buildbin MAKE ARCHIVE DO_RANLIB RANLIB SOEXT SHARED PIC LCXX_FLAGS LCXX_END_LIBS USERDIR INCL_USER_CODE KERNEL BUILD_CK LIB_DIR build_lapack build_blas BLAS_LAPACK_LIBS BLAS_LAPACK_DIR LOCAL_LIB_DIRS LOCAL_LIBS CANTERA_PARTICLES_DIR BUILD_PARTICLES CT_SHARED_LIB BUILD_F90 PYTHON_CMD WIN_PYTHON_CMD BUILD_PYTHON MATLAB_CMD BUILD_MATLAB BUILD_CLIB export_name INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT CC CFLAGS ac_ct_CC F77 FFLAGS ac_ct_F77 FLIBS precompile_headers CXX_DEPENDS OS_IS_DARWIN OS_IS_WIN OS_IS_CYGWIN SHARED_CTLIB mex_ext F77_EXT CXX_EXT OBJ_EXT EXE_EXT local_math_libs math_libs SO LDSHARED LIBOBJS LTLIBOBJS' +ac_subst_vars='SHELL PATH_SEPARATOR PACKAGE_NAME PACKAGE_TARNAME PACKAGE_VERSION PACKAGE_STRING PACKAGE_BUGREPORT exec_prefix prefix program_transform_name bindir sbindir libexecdir datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS CVF_LIBDIR local_inst local_python_inst python_prefix ctversion homedir ct_libdir ct_incdir ct_incroot ct_bindir ct_datadir ct_demodir ct_templdir ct_mandir ct_tutdir ct_docdir ct_dir COMPACT_INSTALL CANTERA_LIBDIR CANTERA_INCDIR CT_TOOLS_BIN CANTERA_BINDIR CANTERA_EXAMPLES_DIR CANTERA_DATADIR build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os username ctroot buildinc buildlib buildbin MAKE ARCHIVE DO_RANLIB RANLIB SOEXT SHARED PIC LCXX_FLAGS LCXX_END_LIBS USERDIR INCL_USER_CODE KERNEL BUILD_CK LIB_DIR build_lapack build_blas BLAS_LAPACK_LIBS BLAS_LAPACK_DIR LOCAL_LIB_DIRS LOCAL_LIBS CANTERA_PARTICLES_DIR BUILD_PARTICLES CT_SHARED_LIB BUILD_F90 F90 F77FLAGS PYTHON_CMD WIN_PYTHON_CMD BUILD_PYTHON MATLAB_CMD BUILD_MATLAB BUILD_CLIB export_name INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CXX CXXFLAGS LDFLAGS CPPFLAGS ac_ct_CXX EXEEXT OBJEXT CC CFLAGS ac_ct_CC F77 FFLAGS ac_ct_F77 FLIBS precompile_headers CXX_DEPENDS OS_IS_DARWIN OS_IS_WIN OS_IS_CYGWIN SHARED_CTLIB mex_ext F77_EXT CXX_EXT OBJ_EXT EXE_EXT local_math_libs math_libs SO LDSHARED LIBOBJS LTLIBOBJS' ac_subst_files='' # Initialize some variables set by options. @@ -1781,6 +1781,7 @@ fi + BUILD_CLIB=1 # # Python Interface @@ -3263,6 +3264,10 @@ 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 + cat >>confdefs.h <<\_ACEOF +#define USE_PCH 1 +_ACEOF + fi fi echo "$as_me:$LINENO: result: ${precompile_headers}" >&5 @@ -3385,7 +3390,7 @@ fi # Provide some information about the compiler. -echo "$as_me:3388:" \ +echo "$as_me:3393:" \ "checking for Fortran 77 compiler version" >&5 ac_compiler=`set X $ac_compile; echo $2` { (eval echo "$as_me:$LINENO: \"$ac_compiler --version &5\"") >&5 @@ -3562,7 +3567,7 @@ _ACEOF # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_verb" -(eval echo $as_me:3565: \"$ac_link\") >&5 +(eval echo $as_me:3570: \"$ac_link\") >&5 ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS @@ -3642,7 +3647,7 @@ _ACEOF # flags. ac_save_FFLAGS=$FFLAGS FFLAGS="$FFLAGS $ac_cv_prog_f77_v" -(eval echo $as_me:3645: \"$ac_link\") >&5 +(eval echo $as_me:3650: \"$ac_link\") >&5 ac_f77_v_output=`eval $ac_link 5>&1 2>&1 | grep -v 'Driving:'` echo "$ac_f77_v_output" >&5 FFLAGS=$ac_save_FFLAGS @@ -4576,6 +4581,8 @@ s,@CANTERA_PARTICLES_DIR@,$CANTERA_PARTICLES_DIR,;t t s,@BUILD_PARTICLES@,$BUILD_PARTICLES,;t t s,@CT_SHARED_LIB@,$CT_SHARED_LIB,;t t s,@BUILD_F90@,$BUILD_F90,;t t +s,@F90@,$F90,;t t +s,@F77FLAGS@,$F77FLAGS,;t t s,@PYTHON_CMD@,$PYTHON_CMD,;t t s,@WIN_PYTHON_CMD@,$WIN_PYTHON_CMD,;t t s,@BUILD_PYTHON@,$BUILD_PYTHON,;t t diff --git a/config/configure.in b/config/configure.in index 1fef3ec44..d8b5cc630 100755 --- a/config/configure.in +++ b/config/configure.in @@ -439,7 +439,8 @@ if test "$BUILD_F90_INTERFACE" != "n"; then BUILD_F90=1 fi AC_SUBST(BUILD_F90) - +AC_SUBST(F90) +AC_SUBST(F77FLAGS) BUILD_CLIB=1 # @@ -528,6 +529,7 @@ 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 + AC_DEFINE(USE_PCH) fi fi AC_MSG_RESULT(${precompile_headers}) diff --git a/configure b/configure index 3d34f11b8..6172bb282 100755 --- a/configure +++ b/configure @@ -247,11 +247,16 @@ SHARED=${SHARED:="-shared"} # 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} + +F90=${F90:=f95} # Fortran compiler flags FFLAGS=${FFLAGS:='-O2'} +# additional flags required to compile fixed-format F77 procedures +# in the 'ext' directory +#F77FLAGS=${F77FLAGS:='-w -dusty -fixed -save'} + # the additional Fortran flags required for linking, if any #LFORT_FLAGS="-lF77 -lFI77" @@ -335,6 +340,7 @@ export F77_EXT export F90 export F90_EXT export FFLAGS +export F77FLAGS export LAPACK_NAMES export LCXX_FLAGS export LCXX_END_LIBS diff --git a/ext/blas/Makefile.in b/ext/blas/Makefile.in index 0f77e1a82..591f17f83 100755 --- a/ext/blas/Makefile.in +++ b/ext/blas/Makefile.in @@ -7,7 +7,7 @@ BLASLIB = @buildlib@/libctblas.a SUFFIXES= SUFFIXES= .f .o -F_FLAGS = @FFLAGS@ $(F77_FLAGS) +F_FLAGS = @FFLAGS@ @F77FLAGS@ OBJS = \ dasum.o \ @@ -46,11 +46,12 @@ dtrmv.o \ dtrsm.o \ dtrsv.o \ dzasum.o \ -dznrm2.o \ idamax.o \ lsame.o \ xerbla.o +# dznrm2.o \ + #SRCS = $(OBJS:.o=.cpp) @@ -58,8 +59,8 @@ xerbla.o $(BLASLIB): $(OBJS) @ARCHIVE@ $(BLASLIB) $(OBJS) > /dev/null -.f.o: - @F77@ -c $< $(F77_INCLUDES) $(F_FLAGS) +%.o : %.f + @F77@ -c $< $(F_FLAGS) clean: $(RM) $(OBJS) $(BLASLIB) diff --git a/ext/lapack/Makefile.in b/ext/lapack/Makefile.in index 8c750284d..0a7a82ee2 100755 --- a/ext/lapack/Makefile.in +++ b/ext/lapack/Makefile.in @@ -7,7 +7,7 @@ LAPACKLIB = @buildlib@/libctlapack.a SUFFIXES= SUFFIXES= .f .o -F_FLAGS = @FFLAGS@ $(F77_FLAGS) +F_FLAGS = @FFLAGS@ @F77FLAGS@ OBJS = \ dbdsqr.o \ @@ -69,7 +69,7 @@ all: $(LAPACKLIB) $(LAPACKLIB): $(OBJS) @ARCHIVE@ $(LAPACKLIB) $(OBJS) > /dev/null -.f.o: +%.o : %.f @F77@ -c $< $(F77_INCLUDES) $(F_FLAGS) diff --git a/ext/math/Makefile.in b/ext/math/Makefile.in index b6c8b1dc4..ce5a25b0f 100755 --- a/ext/math/Makefile.in +++ b/ext/math/Makefile.in @@ -10,7 +10,7 @@ LIB = @buildlib@/libctmath.a SUFFIXES= SUFFIXES= .f .d .o -F_FLAGS = @FFLAGS@ $(F77_FLAGS) +F_FLAGS = @FFLAGS@ @F77FLAGS@ OBJS = \ mach.o \ @@ -40,10 +40,10 @@ SRCS = $(OBJS:.o=.cpp) $(LIB): $(OBJS) @ARCHIVE@ $(LIB) $(OBJS) > /dev/null -.cpp.o: +%.o : %.cpp @CXX@ -c $< @DEFS@ @CXXFLAGS@ $(INCLUDES) -.f.o: +%.o : %.f @F77@ -c $< $(F_FLAGS) clean: diff --git a/ext/recipes/Makefile.in b/ext/recipes/Makefile.in index 646a12422..31a31cfaf 100755 --- a/ext/recipes/Makefile.in +++ b/ext/recipes/Makefile.in @@ -7,10 +7,9 @@ LIB = @buildlib@/librecipes.a SUFFIXES= SUFFIXES= .f .d .o -F_FLAGS = @FFLAGS@ $(F77_FLAGS) +F_FLAGS = @FFLAGS@ @F77FLAGS@ OBJS = simp1.o simp2.o simp3.o simplx.o -#splie2.o splin2.o spline.o splint.o SRCS = $(OBJS:.o=.cpp) @@ -19,8 +18,8 @@ all: $(LIB) $(LIB): $(OBJS) @ARCHIVE@ $(LIB) $(OBJS) > /dev/null -.f.o: - @F77@ -c $< $(F77_INCLUDES) $(F_FLAGS) +%.o : %.f + @F77@ -c $< $(F_FLAGS) clean: $(RM) $(OBJS) $(LIB)