/[lmdze]/trunk/GNUmakefile
ViewVC logotype

Contents of /trunk/GNUmakefile

Parent Directory Parent Directory | Revision Log Revision Log


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

  ViewVC Help
Powered by ViewVC 1.1.21