简单Fortran工程的 makefile 的模版
web81
posted @ 2009年3月13日 04:41
in CFD编程应用
, 3928 阅读
试着用automake生成fortran的make文件,总是搞不定。无奈只好通过google搜索,然后自己修改了一份makefile。存之……
#############################################################
# ________________________
# / Makefile for Fortran \
# | Compile on Linux Write |
# | by wangbo 2009.2.14 |
# | 2009.2.14 |
# \ IN NUAA /
# ------------------------
# \ /\ ___ /\
# \ // \/ \/ \\
# (( O O ))
# \\ / \ //
# \/ | | \/
# | | | |
# | | | |
# | o |
# | | | |
# |m| |m|
#############################################################
# Globle set
# project name
PRO_NAME = hover
# FPE
FPEFLAGS = -fpe3
# output
FFLAGS = -o
# compiler
FF = ifort
# files & objects
FILES= variable.f90 main.f90 output.f90 solver.f90 timestep.f90
OBJECTS= variable.o main.o output.o solver.o timestep.o
#############################################################
# default build
$(PRO_NAME): release
#############################################################
# Clean files
clean:
-rm -f *.o *.mod $(PRO_NAME) d$(PRO_NAME)
#############################################################
# Build Object file
$(OBJECTS) : $(FILES)
$(FF) $(LFLAGS) -c $(FILES)
#############################################################
# Release
release : LFLAGS= -O3 $(FPEFLAGS)
release : $(OBJECTS)
$(FF) $(LFLAGS) $(OBJECTS) $(FFLAGS) $(PRO_NAME)
@echo -e "\033[;31m$(PRO_NAME)\033[0m : \033[33mRelease is now up2dated!\033[0m"
#############################################################
# debug
debug : LFLAGS = -O0 -g $(FPEFLAGS)
debug : $(OBJECTS)
$(FF) -g $(LFLAGS) $(OBJECTS) $(FFLAGS) d$(PRO_NAME)
@echo -e "\033[;31m$(PRO_NAME)\033[0m : \033[33mDebug is now up2dated!\033[0m"
#############################################################
# clean && debug
# clean && release
cdebug : clean debug
crelease : clean $(PRO_NAME)
#############################################################
# make tags
tag : $(FILES)
rm -f tags
ctags -R *90
cscope : $(FILES)
rm -f cscope.*
cscope -Rbq *.f90
# ________________________
# / Makefile for Fortran \
# | Compile on Linux Write |
# | by wangbo 2009.2.14 |
# | 2009.2.14 |
# \ IN NUAA /
# ------------------------
# \ /\ ___ /\
# \ // \/ \/ \\
# (( O O ))
# \\ / \ //
# \/ | | \/
# | | | |
# | | | |
# | o |
# | | | |
# |m| |m|
#############################################################
# Globle set
# project name
PRO_NAME = hover
# FPE
FPEFLAGS = -fpe3
# output
FFLAGS = -o
# compiler
FF = ifort
# files & objects
FILES= variable.f90 main.f90 output.f90 solver.f90 timestep.f90
OBJECTS= variable.o main.o output.o solver.o timestep.o
#############################################################
# default build
$(PRO_NAME): release
#############################################################
# Clean files
clean:
-rm -f *.o *.mod $(PRO_NAME) d$(PRO_NAME)
#############################################################
# Build Object file
$(OBJECTS) : $(FILES)
$(FF) $(LFLAGS) -c $(FILES)
#############################################################
# Release
release : LFLAGS= -O3 $(FPEFLAGS)
release : $(OBJECTS)
$(FF) $(LFLAGS) $(OBJECTS) $(FFLAGS) $(PRO_NAME)
@echo -e "\033[;31m$(PRO_NAME)\033[0m : \033[33mRelease is now up2dated!\033[0m"
#############################################################
# debug
debug : LFLAGS = -O0 -g $(FPEFLAGS)
debug : $(OBJECTS)
$(FF) -g $(LFLAGS) $(OBJECTS) $(FFLAGS) d$(PRO_NAME)
@echo -e "\033[;31m$(PRO_NAME)\033[0m : \033[33mDebug is now up2dated!\033[0m"
#############################################################
# clean && debug
# clean && release
cdebug : clean debug
crelease : clean $(PRO_NAME)
#############################################################
# make tags
tag : $(FILES)
rm -f tags
ctags -R *90
cscope : $(FILES)
rm -f cscope.*
cscope -Rbq *.f90