-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathMakefile
executable file
·69 lines (58 loc) · 1.64 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
TOP=$(shell pwd)
CONFFILE= $(TOP)/config/Makefile.inc
include $(CONFFILE)
DIRMODS= OceanCurrents OceanWaves
SOURCES = SimOcean.f90
OBJS=$(SOURCES:.f90=.o)
.PHONY : all dist plugin dust clobber
all: dist
dist:
@echo
@echo "*************************************************"
@echo "Ocean Plugin Makefile"
@echo "*************************************************"
@echo
@mkdir -p $(BUILDDIR)
@mkdir -p $(OBJDIR)
@mkdir -p $(MODDIR)
@mkdir -p $(LIBDIR)
@mkdir -p bin
for i in $(DIRMODS) ; do \
( cd $$i ; make dist) ; \
done
@echo "*************************************************"
@echo
@echo "Build Ocean binary."
@echo
@echo "*************************************************"
@$(if $(wildcard SimOcean.o),rm -f SimOcean.o,)
make $(EXEC)
plugin :
cd $(DIRPLUG); make plugin;
@echo "*************************************************"
@echo
@echo "Ocean shared library created."
@echo
@echo "*************************************************"
$(EXEC) : $(OBJS)
$(F90) $(FFLAGS) $(FOXFLAGS) $(H5FLAGS) -o $@ $^ $(LDFLAGS) -lOcean $(H5LDFLAGS) $(H5LIBS) $(LDFOXFLAGS)
#rm *.o
@echo "*************************************************"
@echo
@echo "Ocean updated in ./bin/."
@echo
@echo "*************************************************"
%.o : %.f90
$(F90) $(FFLAGS) $(FOXFLAGS) $(H5FLAGS) -c $< -o $@
$(AR) $(LIBDIR)/libOcean.a $(OBJDIR)/*.o
dust :
for i in $(DIRMODS) ; do \
( cd $$i ; make dust) ; \
done
$(foreach module,$(MODULES),cd $(module); cd - ; )
rm -fv *~ *.bak *.o *.mod *.original
clobber : dust
for i in $(DIRMODS) ; do \
( cd $$i ; make clobber) ; \
done
rm -rfv $(BUILDDIR)