1NO_COLOR=\033[0m
2OK_COLOR=\033[32;01m
3ERROR_COLOR=\033[31;01m
4
5CGNSDIR = ..
6include $(CGNSDIR)/make.defs
7
8CGNSLIB = $(CGNSDIR)/$(LIBCGNS)
9
10COPTS  = $(CFLAGS) -I$(CGNSDIR) $(MPIINC) @BUILDOPTS@
11FOPTS  = $(FFLAGS) -I$(CGNSDIR) $(MPIINC)
12LDLIBS = $(CGNSLIB) $(BUILDLIBS)
13
14#----------
15
16CALL =	pcgns_ctest$(EXE) \
17	cexample$(EXE) \
18	benchmark$(EXE) \
19	benchmark_hdf5$(EXE) \
20	open_close$(EXE) \
21        comm_test$(EXE) \
22	test_base$(EXE) \
23	test_unstructured$(EXE) \
24	test_unstruc_quad$(EXE) \
25	test_zone$(EXE) \
26	test_general_readwrite$(EXE) \
27	thesis_benchmark$(EXE)
28
29FALL =	pcgns_ftest$(EXE) ftest_zone$(EXE) fexample$(EXE) benchmark_hdf5_f90$(EXE)
30
31ALL   = $(CALL) @FALL@
32TESTS = $(ALL)
33
34all : $(ALL)
35
36#----------
37
38test : $(TESTS)
39	@echo " "; \
40	status=0; \
41	echo "=== running parallel tests ==="; \
42	 for x in $(TESTS) ; do \
43	   if `$(MPIEXEC) ./$$x >/dev/null 2>&1` ; then \
44	     printf "$$x ... $(OK_COLOR) PASSED $(NO_COLOR) \n"; \
45	   else \
46	     printf "$$x ... $(ERROR_COLOR) *** FAILED *** $(NO_COLOR) \n"; \
47		status=1; \
48	   fi; \
49	 done; \
50	 echo "=== finished ==="; \
51         if test $$status == 1; then \
52           printf "$(ERROR_COLOR)"; \
53         else \
54           printf "$(OK_COLOR)"; \
55         fi; \
56         printf "$$status tests failed $(NO_COLOR) \n"; \
57	 exit $$status;
58
59#----------
60
61pcgns_ctest$(EXE) : pcgns_ctest.c $(CGNSLIB)
62	$(CC) $(COPTS) $(CEOUT)$@ pcgns_ctest.c $(LDLIBS) $(CLIBS)
63	$(STRIP) $@
64
65#----------
66
67cexample$(EXE) : cexample.c $(CGNSLIB)
68	$(CC) $(COPTS) $(CEOUT)$@ cexample.c $(LDLIBS) $(CLIBS)
69	$(STRIP) $@
70
71#----------
72
73benchmark$(EXE) : benchmark.c $(CGNSLIB)
74	$(CC) $(COPTS) $(CEOUT)$@ benchmark.c $(LDLIBS) $(CLIBS)
75	$(STRIP) $@
76
77#----------
78
79benchmark_hdf5$(EXE) : benchmark_hdf5.c $(CGNSLIB)
80	$(CC) $(COPTS) $(CEOUT)$@ benchmark_hdf5.c $(LDLIBS) $(CLIBS)
81	$(STRIP) $@
82
83#----------
84
85open_close$(EXE) : open_close.c $(CGNSLIB)
86	$(CC) $(COPTS) $(CEOUT)$@ open_close.c $(LDLIBS) $(CLIBS)
87	$(STRIP) $@
88
89#----------
90
91comm_test$(EXE) : comm_test.c $(CGNSLIB)
92	$(CC) $(COPTS) $(CEOUT)$@ comm_test.c $(LDLIBS) $(CLIBS)
93	$(STRIP) $@
94
95#----------
96
97test_base$(EXE) : test_base.c $(CGNSLIB)
98	$(CC) $(COPTS) $(CEOUT)$@ test_base.c $(LDLIBS) $(CLIBS)
99	$(STRIP) $@
100
101#----------
102
103test_unstructured$(EXE) : test_unstructured.c $(CGNSLIB)
104	$(CC) $(COPTS) $(CEOUT)$@ test_unstructured.c $(LDLIBS) $(CLIBS)
105	$(STRIP) $@
106
107#----------
108
109test_unstruc_quad$(EXE) : test_unstruc_quad.c $(CGNSLIB)
110	$(CC) $(COPTS) $(CEOUT)$@ test_unstruc_quad.c $(LDLIBS) $(CLIBS)
111	$(STRIP) $@
112
113#----------
114
115test_zone$(EXE) : test_zone.c $(CGNSLIB)
116	$(CC) $(COPTS) $(CEOUT)$@ test_zone.c $(LDLIBS) $(CLIBS)
117	$(STRIP) $@
118
119
120#----------
121
122test_general_readwrite$(EXE) : test_general_readwrite.c $(CGNSLIB)
123	$(CC) $(COPTS) $(CEOUT)$@ test_general_readwrite.c $(LDLIBS) $(CLIBS)
124	$(STRIP) $@
125
126#----------
127
128thesis_benchmark$(EXE) : thesis_benchmark.c $(CGNSLIB)
129	$(CC) $(COPTS) $(CEOUT)$@ thesis_benchmark.c $(LDLIBS) $(CLIBS)
130	$(STRIP) $@
131
132#----------
133
134pcgns_ftest$(EXE) : pcgns_ftest.F90 $(CGNSLIB)
135	$(F77) $(FOPTS) $(FEOUT)$@ pcgns_ftest.F90 $(LDLIBS) $(FLIBS)
136	$(STRIP) $@
137
138#----------
139
140ftest_zone$(EXE) : ftest_zone.F90 $(CGNSLIB)
141	$(F77) $(FOPTS) $(FEOUT)$@ ftest_zone.F90 $(LDLIBS) $(FLIBS)
142	$(STRIP) $@
143
144#----------
145
146fexample$(EXE) : fexample.F90 $(CGNSLIB)
147	$(F77) $(FOPTS) $(FEOUT)$@ fexample.F90 $(LDLIBS) $(FLIBS)
148	$(STRIP) $@
149
150#----------
151
152benchmark_hdf5_f90$(EXE) : benchmark_hdf5_f90.F90 $(CGNSLIB)
153	$(F77) $(FOPTS) $(FEOUT)$@ benchmark_hdf5_f90.F90 $(LDLIBS) $(FLIBS)
154	$(STRIP) $@
155
156#----------
157
158clean :
159	-$(RM) *.$(O) *.mod *.MOD
160
161allclean : clean
162	-$(RM) $(ALL)
163	-$(RM) *~ *.bak
164	-$(RM) *.cgns *.cg?
165
166