Test charm++/method_templates: include $TESTOPTS in arguments
[charm.git] / tests / charm++ / method_templates / Makefile
1 # Point this to your charm installation
2 CHARMHOME = ../../..
3
4 # Charm directory structure
5 CHARMBIN := $(CHARMHOME)/bin
6 CHARMINC := $(CHARMHOME)/include
7
8 # The relevant source files for this project
9 HDR       = mylib.h utils.h
10 SRC       = mylib.C pgm.C
11 OBJ       = $(SRC:.C=.o)
12 INTF      = mylib.ci pgm.ci   
13
14 # Specify the exe name and the arguments to run it with
15 NP        = 4
16 TARGET    = testTemplateEP
17 ARGS      = 
18
19 # Specify the compilers, run script, flags etc.
20 CXX       = $(CHARMBIN)/charmc
21 CXXFLAGS += -language charm++ $(OPTS)
22 CPPFLAGS += $(OPTS)
23 LDFLAGS  +=
24 EXEC      = ./charmrun
25 EXECFLAGS = +p$(NP) $(TESTOPTS)
26 ifdef $(NODELIST)
27   EXECFLAGS += ++nodelist $(NODELIST)
28 endif
29
30
31 ########### This stuff should be able take care of itself ############
32
33 .PHONY: all clean again test bgtest translateInterface
34
35 all: $(TARGET)
36
37 $(TARGET): $(OBJ) 
38         $(CXX) $(CPPFLAGS) $(CXXFLAGS) $(LDFLAGS) -o $@ $^
39
40 clean:
41         $(RM) $(wildcard *.decl.h *.def.h *.d *.di *.ci.stamp *.o) $(TARGET) charmrun 
42
43 again: 
44         $(MAKE) clean; $(MAKE)
45
46 test: all
47         @echo "########################################################################################"
48         $(EXEC) $(EXECFLAGS) ./$(TARGET) $(ARGS)
49
50
51 ####### Pattern rules
52 # Rule to generate dependency information for C++ source files
53 %.d: %.C
54         $(info Generating dependencies for $<)
55         @g++ -MM -MG $(CPPFLAGS) $(INCDIRS:%=-I%) -I$(CHARMINC) $< | perl $(CHARMBIN)/dep.pl $(CHARMINC) > $@
56 #       @$(SHELL) -ec 'g++ -MM -MG $(CPPFLAGS) $(INCDIRS:%=-I%) $< \
57 #       | sed '\''s/\($*\)\.o[ :]*/\1.o $@ : /g'\'' > $@; \
58 #       [ -s $@ ] || rm -f $@'
59
60 # Rule to generate dependency info for charm++ interface (ci) definition files
61 %.di: %.ci
62         $(info Generating dependencies for $<)
63         @$(CXX) -M $< > $@
64
65 %.ci.stamp: %.ci
66         $(CXX) $< && touch $@
67
68 # Include the generated files containing dependency info
69 -include $(SRC:.C=.d)
70 -include $(INTF:.ci=.di)
71