-
Notifications
You must be signed in to change notification settings - Fork 1
/
makefile
73 lines (54 loc) · 3.08 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
#-------------------------------------------------------------------------------
PROG = ./run_script_dev
LIB = /home/ecaas/anaconda3/envs/nc-fortran/lib
INCS = /home/ecaas/anaconda3/envs/nc-fortran/include
BUILD_DIR := ./bld
SRC_DIRS := ./src
MODDIR := ./mod
ifneq ($(BUILD_DIR),)
$(shell test -d $(BUILD_DIR) || mkdir -p $(BUILD_DIR))
FCFLAGS+= -J $(BUILD_DIR)
endif
ifneq ($(MODDIR),)
$(shell test -d $(MODDIR) || mkdir -p $(MODDIR))
FCFLAGS+= -J $(MODDIR)
endif
OBJ = $(BUILD_DIR)/main.o $(BUILD_DIR)/mycmimMod.o $(BUILD_DIR)/initMod.o \
$(BUILD_DIR)/testMod.o $(BUILD_DIR)/writeMod.o $(BUILD_DIR)/paramMod.o $(BUILD_DIR)/dispmodule.o \
$(BUILD_DIR)/shr_kind_mod.o $(BUILD_DIR)/readMod.o
#-------------------------------------------------------------------------------
FC = gfortran
FFLAGS = -g -fcheck=all -fbacktrace -ffpe-trap=zero,invalid,overflow,underflow -O0 -Wall -ffree-line-length-'none'\
-Wl,-rpath=$(LIB) -J $(MODDIR)
#EXTRAFFLAGS = -Wno-unused-dummy-argument -Wno-unused-parameter -Wextra -ffpe-trap=zero,invalid,overflow,underflow
FINCLUDES = -I$(INCS)
$(PROG): $(OBJ)
$(FC) $(FFLAGS) $(OBJ) \
-L$(LIB) -lnetcdff -lnetcdf -lmfhdf -ldf -lhdf5_hl -lhdf5 -lrt -lpthread -lz -ldl -lm -lcurl \
-o $(PROG)
$(BUILD_DIR)/dispmodule.o: $(SRC_DIRS)/dispmodule.f90
$(FC) $(FFLAGS) -c $(FINCLUDES) $(SRC_DIRS)/dispmodule.f90 -o $@
$(BUILD_DIR)/mycmimMod.o: $(SRC_DIRS)/mycmimMod.f90 $(BUILD_DIR)/paramMod.o $(BUILD_DIR)/dispmodule.o $(BUILD_DIR)/initMod.o $(BUILD_DIR)/writeMod.o \
$(BUILD_DIR)/testMod.o $(BUILD_DIR)/readMod.o
$(FC) $(FFLAGS) -c $(FINCLUDES) $(SRC_DIRS)/mycmimMod.f90 -o $@
$(BUILD_DIR)/initMod.o: $(SRC_DIRS)/initMod.f90
$(FC) $(FFLAGS) -c $(FINCLUDES) $(SRC_DIRS)/initMod.f90 -o $@
$(BUILD_DIR)/testMod.o: $(SRC_DIRS)/testMod.f90 $(BUILD_DIR)/paramMod.o $(BUILD_DIR)/dispmodule.o $(BUILD_DIR)/initMod.o
$(FC) $(FFLAGS) -c $(FINCLUDES) $(SRC_DIRS)/testMod.f90 -o $@
$(BUILD_DIR)/writeMod.o: $(SRC_DIRS)/writeMod.f90 $(BUILD_DIR)/paramMod.o $(BUILD_DIR)/dispmodule.o $(BUILD_DIR)/initMod.o
$(FC) $(FFLAGS) -c $(FINCLUDES) $(SRC_DIRS)/writeMod.f90 -o $@
$(BUILD_DIR)/main.o: $(SRC_DIRS)/main.f90 $(BUILD_DIR)/mycmimMod.o $(BUILD_DIR)/initMod.o
$(FC) $(FFLAGS) -c $(FINCLUDES) $(SRC_DIRS)/main.f90 -o $@
$(BUILD_DIR)/paramMod.o: $(SRC_DIRS)/paramMod.f90 $(BUILD_DIR)/shr_kind_mod.o $(BUILD_DIR)/initMod.o $(BUILD_DIR)/dispmodule.o
$(FC) $(FFLAGS) -c $(FINCLUDES) $(SRC_DIRS)/paramMod.f90 -o $@
$(BUILD_DIR)/readMod.o: $(SRC_DIRS)/readMod.f90 $(BUILD_DIR)/dispmodule.o $(BUILD_DIR)/shr_kind_mod.o $(BUILD_DIR)/initMod.o
$(FC) $(FFLAGS) -c $(FINCLUDES) $(SRC_DIRS)/readMod.f90 -o $@
$(BUILD_DIR)/shr_kind_mod.o: $(SRC_DIRS)/shr_kind_mod.f90
$(FC) $(FFLAGS) -c $(FINCLUDES) $(SRC_DIRS)/shr_kind_mod.f90 -o $@
#-------------------------------------------------------------------------------
#-------------------------------------------------------------------------------
strip:
#-------------------------------------------------------------------------------
clean: strip
rm -f $(PROG) $(BUILD_DIR)/* $(MODDIR)/*
#-------------------------------------------------------------------------------