Test entry method templates: register EPs and reducers in initnode, not initproc...
[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      = $(TESTOPTS)
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)
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 mylib.o: mylib.C mylib.h mylib.decl.h mylib.def.h
52 pgm.o: pgm.C client.decl.h mylib.h mylib.decl.h mylib.def.h utils.h client.def.h
53
54 # Rule to generate dependency info for charm++ interface (ci) definition files
55 %.di: %.ci
56         $(info Generating dependencies for $<)
57         @$(CXX) -M $< > $@
58
59 %.ci.stamp: %.ci
60         $(CXX) $< && touch $@
61
62 # Include the generated files containing dependency info
63 -include $(INTF:.ci=.di)
64