1EXE                 = basic_lib.exe
2EXE_MPI				= basic_lib_MPI.exe
3
4COMPILATOR          = g++
5COMPILATOR_MPI = mpic++
6SUNAME = $(shell uname)
7OSS=$(findstring MINGW32,$(SUNAME))
8ifneq "$(strip $(OSS))" ""
9COMPILATOR_MPI = g++
10endif
11
12COMPILATOR_OPTIONS  = -O2 -ansi
13COMPILATOR_OPTIONS_MPI = $(COMPILATOR_OPTIONS) -DUSE_MPI
14L1                  = $(NOMAD_HOME)/lib/nomad.a
15L1_MPI				= $(NOMAD_HOME)/lib/nomad.MPI.a
16LIBS                = $(L1) -lm
17LIBS_MPI			= $(L1_MPI) -lm -lmpi
18INCLUDE             = -I$(NOMAD_HOME)/src -I.
19COMPILE             = $(COMPILATOR) $(COMPILATOR_OPTIONS) $(INCLUDE) -c
20COMPILE_MPI			= $(COMPILATOR_MPI) $(COMPILATOR_OPTIONS_MPI) $(INCLUDE) -c
21OBJS                = basic_lib.o
22OBJS_MPI            = basic_lib_MPI.o
23
24
25ifndef NOMAD_HOME
26define ECHO_NOMAD
27	@echo Please set NOMAD_HOME environment variable!
28	@false
29endef
30endif
31
32
33$(EXE): $(L1) $(OBJS)
34	$(ECHO_NOMAD)
35	@echo "   building the scalar version ..."
36	@echo "   exe file : "$(EXE)
37	@$(COMPILATOR) -o  $(EXE) $(OBJS) $(LIBS) $(COMPILATOR_OPTIONS)
38	@strip  $(EXE)
39
40$(EXE_MPI): $(L1_MPI) $(OBJS_MPI)
41	$(ECHO_NOMAD)
42	@echo "   building the MPI version ..."
43	@echo "   exe file : "$(EXE_MPI)
44	@$(COMPILATOR_MPI) -o  $(EXE_MPI) $(OBJS_MPI) $(LIBS_MPI) $(COMPILATOR_OPTIONS_MPI)
45	@strip  $(EXE_MPI)
46
47basic_lib.o: basic_lib.cpp
48	$(ECHO_NOMAD)
49	@$(COMPILE) basic_lib.cpp
50
51basic_lib_MPI.o: basic_lib.cpp
52	$(ECHO_NOMAD)
53	@$(COMPILE_MPI) basic_lib.cpp -o basic_lib_MPI.o
54
55$(L1) $(L1_MPI): ;
56	$(ECHO_NOMAD)
57
58mpi: $(EXE_MPI)
59
60all: $(EXE) $(EXE_MPI)
61
62clean: ;
63	@echo "   cleaning obj files"
64	@rm -f $(OBJS) $(OBJS_MPI)
65
66del: ;
67	@echo "   cleaning trash files"
68	@rm -f core *~
69	@echo "   cleaning obj files"
70	@rm -f $(OBJS) $(OBJS_MPI)
71	@echo "   cleaning exe file"
72	@rm -f $(EXE) $(EXE_MPI)
73
74
75