diff --git a/SConstruct b/SConstruct index d39b561cc..975b10048 100644 --- a/SConstruct +++ b/SConstruct @@ -577,8 +577,11 @@ elif env['env_vars']: else: print 'WARNING: failed to propagate environment variable', name -env.Append(CPPPATH=env['extra_inc_dirs'].split(':'), - LIBPATH=env['extra_lib_dirs'].split(':')) +env['extra_inc_dirs'] = [d for d in env['extra_inc_dirs'].split(':') if d] +env['extra_lib_dirs'] = [d for d in env['extra_lib_dirs'].split(':') if d] + +env.Append(CPPPATH=env['extra_inc_dirs'], + LIBPATH=env['extra_lib_dirs']) # Try to find a Fortran compiler: if env['f90_interface'] in ('y','default'): diff --git a/platform/posix/Cantera.mak.in b/platform/posix/Cantera.mak.in index 4009ea2f1..89c0fe330 100644 --- a/platform/posix/Cantera.mak.in +++ b/platform/posix/Cantera.mak.in @@ -27,17 +27,23 @@ CANTERA_VERSION=@cantera_version@ CANTERA_CORE_INCLUDES=-I@ct_incroot@ +CANTERA_EXTRA_INCLUDES=@mak_extra_includes@ + # Required Cantera libraries CANTERA_CORE_LIBS=@mak_threadflags@ -L@ct_libdir@ @mak_corelibs@ CANTERA_CORE_LIBS_DEP = @ct_libdir@/libcantera.a +CANTERA_EXTRA_LIBDIRS=@mak_extra_libdirs@ + CANTERA_CORE_FTN=-L@ct_libdir@ -lcantera_fortran @mak_corelibs@ CANTERA_FORTRAN_MODS=@ct_incroot@/cantera CANTERA_FORTRAN_SYSLIBS=@mak_fort_threadflags@ -lstdc++ +CANTERA_SYSLIBS=@mak_syslibs@ + ############################################################################### # BOOST ############################################################################### @@ -59,7 +65,7 @@ CANTERA_SUNDIALS_LIBS=@mak_sundials_libdir@ @mak_sundials_libs@ CANTERA_have_blas_lapack_dir=@mak_have_blas_lapack_dir@ ifeq ($(CANTERA_have_blas_lapack_dir), 1) -CANTERA_BLAS_LAPACK_LIBS=-L@blas_lapack_dir@ +CANTERA_BLAS_LAPACK_LIBS=-L@blas_lapack_dir@ @mak_blas_lapack_libs@ else CANTERA_BLAS_LAPACK_LIBS=@mak_blas_lapack_libs@ endif @@ -75,16 +81,17 @@ CANTERA_F2C_LIBS= @mak_f2c_lib@ ############################################################################### CANTERA_INCLUDES=$(CANTERA_CORE_INCLUDES) $(CANTERA_SUNDIALS_INCLUDE) \ - $(CANTERA_BOOST_INCLUDES) + $(CANTERA_BOOST_INCLUDES) $(CANTERA_EXTRA_INCLUDES) CANTERA_TOTAL_INCLUDES = $(CANTERA_INCLUDES) # Add this into the compilation environment to identify the version number CANTERA_DEFINES = -DCANTERA_VERSION=@cantera_version@ -CANTERA_LIBS=$(CANTERA_CORE_LIBS) $(CANTERA_SUNDIALS_LIBS) \ +CANTERA_LIBS=$(CANTERA_CORE_LIBS) \ + $(CANTERA_EXTRA_LIBDIRS) $(CANTERA_SUNDIALS_LIBS) \ $(CANTERA_BLAS_LAPACK_LIBS) $(CANTERA_BOOST_LIBS) \ - $(CANTERA_F2C_LIBS) + $(CANTERA_F2C_LIBS) $(CANTERA_SYSLIBS) CANTERA_TOTAL_LIBS=$(CANTERA_LIBS) @@ -93,7 +100,8 @@ CANTERA_TOTAL_LIBS_DEP= $(CANTERA_CORE_LIBS_DEP) \ $(CANTERA_BLAS_LAPACK_LIBS_DEP) -CANTERA_FORTRAN_LIBS=$(CANTERA_CORE_FTN) $(CANTERA_SUNDIALS_LIBS) \ +CANTERA_FORTRAN_LIBS=$(CANTERA_CORE_FTN) \ + $(CANTERA_EXTRA_LIBDIRS) $(CANTERA_SUNDIALS_LIBS) \ $(CANTERA_BLAS_LAPACK_LIBS) $(CANTERA_F2C_LIBS) \ $(CANTERA_BOOST_LIBS) $(CANTERA_FORTRAN_SYSLIBS) diff --git a/platform/posix/SConscript b/platform/posix/SConscript index 740884dc1..bca22a9cc 100644 --- a/platform/posix/SConscript +++ b/platform/posix/SConscript @@ -33,6 +33,12 @@ localenv['mak_corelibs'] = '-lcantera' if not env['single_library']: localenv['mak_corelibs'] += ' -lctmath -lexecstream' +localenv['mak_extra_includes'] = ['-I%s' % s for s in localenv['extra_inc_dirs']] +pc_incdirs.extend(localenv['extra_inc_dirs']) + +localenv['mak_extra_libdirs'] = ['-L%s' % s for s in localenv['extra_lib_dirs']] +pc_libdirs.extend(localenv['extra_lib_dirs']) + if env['use_sundials'] == 'n': localenv['mak_sundials_libs'] = '-lcvode' localenv['mak_sundials_libdir'] = '' @@ -80,6 +86,10 @@ elif not env['single_library']: else: localenv['mak_blas_lapack_libs'] = '' +if 'Accelerate' in localenv['FRAMEWORKS']: + localenv['mak_blas_lapack_libs'] += ' -framework Accelerate' + pc_cflags.append('-framework Accelerate') + localenv['mak_threadflags'] = localenv['thread_flags'] if '-pthread' in localenv['thread_flags']: localenv['mak_fort_threadflags'] = '-lpthread' @@ -91,6 +101,10 @@ else: # Handle f2c Linkage localenv['mak_f2c_lib'] = '-lctf2c' if localenv['build_with_f2c'] and not env['single_library'] else '' +if not localenv['build_with_f2c']: + localenv['mak_syslibs'] = ' '.join('-l%s' % s for s in localenv['FORTRANSYSLIBS']) + pc_libs.extend(localenv['FORTRANSYSLIBS']) + mak = build(localenv.SubstFile('Cantera.mak', 'Cantera.mak.in')) install('$inst_incdir', mak)