forked from drnimbusrain/hemco
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
133 lines (115 loc) · 3.72 KB
/
Makefile
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
#------------------------------------------------------------------------------
# Harvard-NASA Emissions Component (HEMCO) !
#------------------------------------------------------------------------------
#BOP
#
# !MODULE: Makefile (in the HEMCO/src directory)
#
# !DESCRIPTION: Calls makefiles in the subdirectories src\/Core,
# src\/Extensions, src\/Interfaces to compile the HEMCO source code into
# library files and to create an executable.
#\\
#\\
# !REMARKS:
# To build the programs, call "make" with the following syntax:
#
# make -jN TARGET [ OPTIONAL-FLAGS ]
#
# To display a complete list of options, type "make help".
#
# !REVISION HISTORY:
# 14 Jul 2014 - R. Yantosca - Initial version
#EOP
#------------------------------------------------------------------------------
#BOC
###############################################################################
### ###
### Initialization section ###
### ###
###############################################################################
# Directories
ROOT :=..
SRC :=.
BIN :=$(ROOT)/bin
DOC :=$(ROOT)/doc
HCO :=$(SRC)/Core
HCOI :=$(SRC)/Interfaces
HCOX :=$(SRC)/Extensions
HCOR :=$(SRC)/StandAlone_Run
HELP :=$(ROOT)/Help
LIB :=$(ROOT)/lib
MOD :=$(ROOT)/mod
# Include header file, which returns various Makefile variables, defines
# the compilation rules, and sets the correct C-preprocessor switches.
include $(ROOT)/Makefile_header.mk
###############################################################################
### ###
### Makefile targets: type "make help" for a complete list! ###
### ###
###############################################################################
.PHONY: all check clean distclean debug test
.PHONY: exe slowclean
#-----------------------------------------
# Targets for building code
#-----------------------------------------
all:
@$(MAKE) lib
check:
@$(MAKE) -C $(HCOI) all
clean:
@$(MAKE) -C $(HCO) clean
@$(MAKE) -C $(HCOI) clean
@$(MAKE) -C $(HCOX) clean
slowclean:
@$(MAKE) -C $(HCO) slowclean
@$(MAKE) -C $(HCOI) slowclean
@$(MAKE) -C $(HCOX) slowclean
exe: check
lib:
@$(MAKE) libHCO
@$(MAKE) libHCOX
@$(MAKE) libHCOI
@$(MAKE) exe
libHCO:
@$(MAKE) -C $(HCO) lib
libHCOI:
@$(MAKE) -C $(HCOI) lib
libHCOX:
@$(MAKE) -C $(HCOX) lib
#-----------------------------------------
# Targets for debugging and help screen
#-----------------------------------------
debug:
@echo "%%% Makefile variable settings %%%"
@echo "SHELL : $(SHELL)"
@echo "%%% Directories %%%"
@echo "ROOT : $(ROOT)"
@echo "HCO : $(HCO)"
@echo "HCOI : $(HCOI)"
@echo "HCOX : $(HCOX)"
@echo "HCOR : $(HCOR)"
@echo "HELP : $(HELP)"
@echo "DOC : $(DOC)"
@echo "LIB : $(LIB)"
@echo "MOD : $(MOD)"
@echo "RUN : $(RUN)"
@echo "%%% For the NcdfUtilities %%%"
@echo "NCU_BIN : $(NCU_BIN)"
@echo "NCU_MOD : $(NCU_MOD)"
@echo "NCU_LIB : $(NCU_LIB)"
@echo "%%% For netCDF library paths %%%"
@echo "BIN_NETCDF : $(BIN_NETCDF)"
@echo "INC_NETCDF : $(INC_NETCDF)"
@echo "LIB_NETCDF : $(LIB_NETCDF)"
@echo "%%%% Compilation commands %%%"
@echo "CC : $(CC)"
@echo "R8 : $(R8)"
@echo "FREEFORM : $(FREEFORM)"
@echo "F90 : $(F90)"
@echo "%%% Linking commands %%%"
@echo "NC_LINK : $(NC_LINK)"
@echo "LINK : $(LINK)"
@echo "LD : $(LD)"
help:
@$(MAKE) -C $(HELP) help
#EOC