#!/bin/sh ############################################################################ # # Makefile to compile and link a C++ application to # Cantera. # ############################################################################# # addition to suffixes .SUFFIXES : .d # the name of the executable program to be created PROG_NAME = DH_graph_1 # the object files to be linked together. List those generated from Fortran # and from C/C++ separately OBJS = DH_graph_1.o # additional flags to be passed to the linker. If your program # requires other external libraries, put them here LINK_OPTIONS = @EXTRA_LINK@ ############################################################################# # Check to see whether we are in the msvc++ environment os_is_win = @OS_IS_WIN@ # Fortran libraries ifeq (@build_with_f2c@, 0) FORT_LIBS = @FLIBS@ else FORT_LIBS = endif # the C++ compiler CXX = @CXX@ # C++ compile flags CXX_FLAGS = @CXXFLAGS@ @CXX_INCLUDES@ # Ending C++ linking libraries LCXX_END_LIBS = @LCXX_END_LIBS@ # the directory where the Cantera libraries are located CANTERA_LIBDIR=@buildlib@ # required Cantera libraries CANTERA_LIBS = @LOCAL_LIBS@ -lctcxx # Dependencies for CANTERA_LIBS CANTERA_LIBS_DEP = @LOCAL_LIBS_DEP@ $(CANTERA_LIBDIR)/libctcxx.a # the directory where Cantera include files may be found. CANTERA_INCDIR=@ctroot@/build/include/cantera INCLUDES=-I$(CANTERA_INCDIR) -I$(CANTERA_INCDIR)/kernel # flags passed to the C++ compiler/linker for the linking step LCXX_FLAGS = -L$(CANTERA_LIBDIR) @LOCAL_LIB_DIRS@ @CXXFLAGS@ # How to compile C++ source files to object files .@CXX_EXT@.@OBJ_EXT@: $(CXX) -c $< $(INCLUDES) $(CXX_FLAGS) # How to compile the dependency file .cpp.d: @CXX_DEPENDS@ $(INCLUDES) $(CXX_FLAGS) $*.cpp > $*.d # List of dependency files to be created DEPENDS=$(OBJS:.o=.d) # Program Name PROGRAM = $(PROG_NAME)$(EXE_EXT) all: $(PROGRAM) .depends $(PROGRAM): $(OBJS) $(CANTERA_LIBS_DEP) $(CXX) -o $(PROGRAM) $(OBJS) $(LCXX_FLAGS) $(LINK_OPTIONS) \ $(CANTERA_LIBS) @LIBS@ $(FORT_LIBS) \ $(LCXX_END_LIBS) # Add an additional dependency to enhance stability $(OBJS): $(CANTERA_LIBDIR)/libctbase.a $(CANTERA_LIBDIR)/libthermo.a # depends target -> forces recalculation of dependencies depends: @MAKE@ .depends .depends: $(DEPENDS) cat $(DEPENDS) > .depends # Do the test -> For the windows vc++ environment, we have to skip checking on # whether the program is uptodate, because we don't utilize make # in that environment to build programs. test: ifeq ($(os_is_win), 1) else @ @MAKE@ -s $(PROGRAM) endif @ ./runtest clean: $(RM) $(OBJS) $(PROGRAM) $(DEPENDS) .depends ../../../bin/rm_cvsignore (if test -d SunWS_cache ; then \ $(RM) -rf SunWS_cache ; \ fi ) ifeq ($(wildcard .depends), .depends) include .depends endif