1 ###############################################################################
3 # Sample Makefile for compiling programs using Prop.
4 # The places where you have to change are marked with ???
5 # C++ files are assumed to be named as .C.
7 # Use 'make depends' to generate file dependencies
9 ###############################################################################
11 ###############################################################################
13 # C++ compiler setup (assume g++)
15 ###############################################################################
17 CC_INCLUDE = -I../include
18 CC_OPTS = $(CC_INCLUDE) -O6
20 ###############################################################################
23 # The options are: use strict checking, generate report, verbose level 2.
25 ###############################################################################
26 PROP = prop # replace with absolute path if necessary
27 PROP_OPTS = -strict -report -v2 $(CC_INCLUDE)
28 PROP_LIBRARY_PATH = ??? # replace with the path of the libprop.a library
31 LD_OPTS = $(EXTRA_LIBRARIES) -L$(PROP_LIBRARY_PATH) -lprop -lg++ -lm
33 ###############################################################################
35 # This is the name of the target program
37 ###############################################################################
40 ###############################################################################
42 # This is where you should put the prop include files (.ph files)
44 ###############################################################################
47 ###############################################################################
49 # This are the prop source files (.pC files)
51 ###############################################################################
54 ###############################################################################
56 # These are the normal .h files (not generated by prop)
58 ###############################################################################
61 ###############################################################################
63 # These are the normal .C files (not generated by prop)
65 ###############################################################################
69 # .h files generated by prop
71 GEN_H_SRC=$(PROP_H_SRC:.ph=.h)
74 # .C files generated by prop
76 GEN_C_SRC=$(PROP_C_SRC:.pC=.C)
79 # all files generated by prop
81 GEN_SRC= $(GEN_H_SRC) $(GEN_C_SRC)
86 H_SRC= $(GEN_H_SRC) $(NORMAL_H_SRC)
91 C_SRC= $(GEN_C_SRC) $(NORMAL_C_SRC)
96 SRC= $(H_SRC) $(C_SRC)
104 # How to compile and link the program
108 $(TARGET): $(SRC) $(OBJ)
109 $(CC) $(CC_OPTS) $(OBJ) -o $@ $(LD_OPTS)
112 # Regenerate source only
117 # Remove object files only
123 # Remove all object files and generated code
134 # Generate dependencies
137 @echo Remaking prop dependency
138 $(PROP) -M $(PROP_OPTS) $(PROP_C_SRC) $(PROP_H_SRC) >depends1 || rm -f depends1
139 @echo Remaking g++ dependency
140 $(CC) -MM $(CC_OPTS) $(C_SRC) >depends2 || rm -f depends2
146 $(PROP) $(PROP_OPTS) $<
148 $(PROP) $(PROP_OPTS) $<
150 $(CC) -c $(CC_OPTS) $<