cantera/tools/templates/f90/demo.mak.in
2009-07-23 22:52:43 +00:00

99 lines
2.3 KiB
Bash

#!/bin/sh
# This Makefile builds a Fortran 90 application that uses Cantera. By
# default, the main program file is 'demo.f90,' which prints out some
# properties of a reacting gas mixture.
# To build program 'demo', simply type 'make', or 'make -f <this
# file>' if this file is named something other than 'Makefile.'
# Once you have verified that the demo runs, edit this file to replace
# object file 'demo.o' with your own object file or files.
#------------------------ edit this block ---------------------------------
# the name of the executable program to be created
PROG_NAME = demo
# the object files to be linked together.
OBJS = demo.o
# additional flags to be passed to the linker. If your program
# requires other external libraries, put them here
LINK_OPTIONS = @LCXX_FLAGS@ @EXTRA_LINK@
#---------------------------------------------------------------------------
# You probably don't need to edit anything below.
# the C++ compiler
CXX = @CXX@
# C++ compile flags
CXX_FLAGS = @CXXFLAGS@
# external libraries
EXT_LIBS = -lfct -lclib @LOCAL_LIBS@ -lctcxx -lstdc++ @F90LIBS@
# the Fortran 90/95 compiler
F90 = @F90@
# Fortran libraries used to link fortran main programs
# using the CXX linker
FLIBS=@LCXX_FLIBS@ @FLIBS@
# Fortran compile flags
FORT_FLAGS = @F90FLAGS@
# the directory where the Cantera libraries are located
CANTERA_LIBDIR=@ct_libdir@
# the directory where Cantera include files may be found.
CANTERA_INCDIR=@ct_incroot@
# the directory where Cantera Fortran 90 modules may be found.
CANTERA_MODULE_DIR=@ct_incroot@/cantera
# flags passed to the C++ compiler/linker for the linking step
LCXXFLAGS = -L$(CANTERA_LIBDIR) @LOCAL_LIB_DIRS@
# how to compile C++ source files to object files
%.o : %.cpp
$(CXX) -c $< -I$(CANTERA_INCDIR) $(CXX_FLAGS)
# how to compile Fortran 90/95 source files to object files
%.o : %.f90
$(F90) -c $< -I$(CANTERA_MODULE_DIR) $(FORT_FLAGS)
PROGRAM = $(PROG_NAME)$(EXE_EXT)
DEPENDS = $(OBJS:.o=.d)
all: $(PROGRAM)
$(PROGRAM): $(OBJS)
$(CXX) -o $(PROGRAM) $(OBJS) $(LCXXFLAGS) $(CANTERA_LIBS) $(LINK_OPTIONS) \
$(EXT_LIBS) $(FLIBS) @LIBS@
%.d : %.cpp
g++ -MM -I$(CANTERA_INCDIR) $*.cpp > $*.d
clean:
$(RM) $(OBJS) $(PROGRAM)
depends: $(DEPENDS)
cat *.d > .depends
$(RM) $(DEPENDS)
TAGS:
etags *.h *.cpp
ifeq ($(wildcard .depends), .depends)
include .depends
endif