/[lmdze]/trunk/GNUmakefile
ViewVC logotype

Annotation of /trunk/GNUmakefile

Parent Directory Parent Directory | Revision Log Revision Log


Revision 94 - (hide 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 guez 69 # This is a makefile for GNU make.
2 guez 3
3 guez 61 # This makefile builds LMDZE.
4    
5 guez 62 # 1. Source files
6    
7 guez 94 compil_dir = .
8 guez 3
9 guez 94 VPATH := ${compil_dir}/.. $(addprefix ${compil_dir}/../, $(shell cat ${compil_dir}/directories))
10 guez 3
11 guez 94 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 guez 79 sources = ${src_ce0l_only} ${src_gcm_only} ${common_sources}
15 guez 3
16 guez 79 # 2. Objects and executable files
17 guez 71
18 guez 83 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 guez 79 execut = ce0l gcm
22 guez 62
23 guez 69 # 3. Compiler-dependent part
24 guez 70
25 guez 69 mode = debug
26 guez 81 include Compiler_options/${FC}_${mode}.mk
27 guez 3
28 guez 62 # 4. Rules
29    
30 guez 69 SHELL = bash
31 guez 78 .DELETE_ON_ERROR:
32 guez 69 .PHONY: all clean clobber depend
33 guez 79 all: ${execut} log
34    
35     ${execut}:
36     $(FC) $(LDFLAGS) $^ $(LDLIBS) -o $@
37    
38 guez 70 ce0l: ${obj_ce0l}
39 guez 3 gcm: ${obj_gcm}
40    
41 guez 94 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 guez 61
44 guez 94 TAGS: ${sources}
45     ctags -e --language-force=fortran $^
46 guez 3
47     clean:
48 guez 79 rm -f ${execut} ${objects} log
49 guez 3
50     clobber: clean
51 guez 94 rm -f *.mod ${compil_dir}/depend.mk TAGS ${compil_dir}/TAGS
52 guez 3
53 guez 79 log:
54     hostname >$@
55     ${FC} ${version_flag} >>$@ 2>&1
56 guez 69 echo -e "\nFC = ${FC}\n\nFFLAGS = ${FFLAGS}\n\nLDLIBS = ${LDLIBS}\n\nLDFLAGS = ${LDFLAGS}" >>$@
57 guez 62
58 guez 90 ifeq ($(findstring $(MAKECMDGOALS), clobber depend),)
59 guez 94 include ${compil_dir}/depend.mk
60 guez 78 endif
61 guez 3
62     -include grep.mk
63 guez 7 -include nag_rules.mk

  ViewVC Help
Powered by ViewVC 1.1.21