/[lmdze]/trunk/GNUmakefile
ViewVC logotype

Contents of /trunk/GNUmakefile

Parent Directory Parent Directory | Revision Log Revision Log


Revision 82 - (show annotations)
Wed Mar 5 14:57:53 2014 UTC (10 years, 2 months ago) by guez
File size: 1595 byte(s)
Changed all ".f90" suffixes to ".f".
1 # This is a makefile for GNU make.
2
3 # This makefile builds LMDZE.
4
5 # 1. Source files
6
7 src_root = .
8
9 VPATH := ${src_root} $(addprefix ${src_root}/, $(shell cat ${src_root}/directories))
10
11 common_sources := $(shell cat ${src_root}/common_sources)
12 src_ce0l_only := $(shell cat ${src_root}/src_ce0l_only)
13 src_gcm_only := $(shell cat ${src_root}/src_gcm_only)
14 sources = ${src_ce0l_only} ${src_gcm_only} ${common_sources}
15
16 # 2. Objects and executable files
17
18 obj_ce0l := $(addsuffix .o, $(sort $(basename ${common_sources} ${src_ce0l_only})))
19
20 obj_gcm := $(addsuffix .o, $(sort $(basename ${common_sources} ${src_gcm_only})))
21
22 objects := $(addsuffix .o, $(basename ${sources}))
23 execut = ce0l gcm
24
25 # 3. Compiler-dependent part
26
27 mode = debug
28 include Compiler_options/${FC}_${mode}.mk
29
30 # 4. Rules
31
32 SHELL = bash
33 .DELETE_ON_ERROR:
34 .PHONY: all clean clobber depend
35 all: ${execut} log
36
37 ${execut}:
38 $(FC) $(LDFLAGS) $^ $(LDLIBS) -o $@
39
40 ce0l: ${obj_ce0l}
41 gcm: ${obj_gcm}
42
43 depend ${src_root}/depend.mk:
44 makedepf90 -free -Wmissing -Wconfused $(addprefix -I, ${VPATH}) -nosrc $(addprefix -u , netcdf numer_rec_95 netcdf95 nr_util jumble) ${sources} >${src_root}/depend.mk
45
46 ${src_root}/TAGS: ${sources}
47 ctags -e --language-force=fortran -f $@ $^
48
49 clean:
50 rm -f ${execut} ${objects} log
51
52 clobber: clean
53 rm -f *.mod ${src_root}/depend.mk ${src_root}/TAGS
54
55 log:
56 hostname >$@
57 ${FC} ${version_flag} >>$@ 2>&1
58 echo -e "\nFC = ${FC}\n\nFFLAGS = ${FFLAGS}\n\nLDLIBS = ${LDLIBS}\n\nLDFLAGS = ${LDFLAGS}" >>$@
59
60 ifneq ($(MAKECMDGOALS), clobber)
61 include ${src_root}/depend.mk
62 endif
63
64 -include grep.mk
65 -include nag_rules.mk

  ViewVC Help
Powered by ViewVC 1.1.21