Removed old tree unit test
[libcds.git] / build / Makefile
1 # Makefile 
2
3
4 .PHONY: all
5 .SUFFIXES:.cpp .c .ro
6
7 # make_distrib.pl substitutes the correct version
8 VERSION=2.2.0
9
10 # boost_thread lib used by test application. 
11 # You may change the library name
12 LD_BOOST_THREAD_LIB=-lboost_thread -lboost_system 
13
14 ifeq ($(platform),mingw)
15     LD_TEST_COMMON_LIBS=-lcds -lrtm
16     LD_TEST_COMMON_DEBUG_LIBS=-lcds-debug -lrtm
17     BASE_OPT = -D_REENTRANT -D_FILE_OFFSET_BITS=64 -I..
18     # -Wa,--hash-size=2048
19     CPP_BUILD_CDS_OPT=-DCDS_BUILD_LIB
20 else
21 ifeq ($(platform),darwin)
22     LD_TEST_COMMON_LIBS=-lcds
23     LD_TEST_COMMON_DEBUG_LIBS=-lcds-debug
24 else
25     LD_TEST_COMMON_LIBS=-lcds -lpthread -lrt
26     LD_TEST_COMMON_DEBUG_LIBS=-lcds-debug -lpthread -lrt
27 endif
28     BASE_OPT = -D_REENTRANT -D_POSIX_PTHREAD_SEMANTICS -D_FILE_OFFSET_BITS=64 -I..
29     CPP_BUILD_CDS_OPT=
30 endif
31
32 COMP_OPT = -c $(CFLAGS) $(BASE_OPT)
33 CPP_COMP_OPT = -MMD -std=c++11 -c $(CXXFLAGS) $(BASE_OPT)
34
35 COMPILER_ROOT = $(shell dirname `dirname \`which        $(CXX)\``)
36
37 LD_OPTS = $(LDFLAGS)
38
39
40
41 ####################################
42 # cds library
43
44 include ../projects/source.libcds.mk
45 CDS_OBJS := $(addprefix $(OBJ_PATH)/,$(notdir $(CDS_SOURCES)))
46 CDS_OBJS := $(CDS_OBJS:%.cpp=%.o)
47 CDS_OBJS_DEPS := $(CDS_OBJS:%.o=%.d)
48 CDS_SOURCES := $(CDS_SOURCES:%.cpp=../%.cpp)
49
50 ifeq ($(platform),mingw)
51     CDS_DEBUG_LIB=libcds-debug.dll
52     CDS_RELEASE_LIB=libcds.dll
53 else
54 ifeq ($(platform),darwin)
55     CDS_DEBUG_LIB=libcds-debug.dylib
56     CDS_RELEASE_LIB=libcds.dylib
57 else
58     CDS_DEBUG_LIB=libcds-debug.so
59     CDS_RELEASE_LIB=libcds.so
60 endif
61 endif
62
63 -include $(CDS_OBJS_DEPS)
64 $(CDS_OBJS): $(OBJ_PATH)/%.o: ../src/%.cpp
65         $(CXX) $(CPP_COMP_OPT) $(CPP_BUILD_CDS_OPT) -o $@ $<
66
67 ifeq ($(platform),mingw)
68 $(CDS_DEBUG_LIB): $(BIN_PATH)/$(CDS_DEBUG_LIB)
69
70 $(BIN_PATH)/$(CDS_DEBUG_LIB) : $(CDS_OBJS)
71         $(CXX) $(LD_OPTS) -Wl,--out-implib,$(BIN_PATH)/$(CDS_DEBUG_LIB).a $(CDS_OBJS) -o $@ $(LDLIBS)
72
73 $(CDS_RELEASE_LIB) : $(BIN_PATH)/$(CDS_RELEASE_LIB)
74
75 $(BIN_PATH)/$(CDS_RELEASE_LIB) : $(CDS_OBJS)
76         $(CXX) $(LD_OPTS) $(CDS_OBJS) -Wl,--out-implib,$(BIN_PATH)/$(CDS_RELEASE_LIB).a -o $@ $(LDLIBS)
77     
78 debug : $(CDS_DEBUG_LIB)
79 release : $(CDS_RELEASE_LIB)
80 else
81 $(CDS_DEBUG_LIB).$(VERSION) : $(CDS_OBJS)
82         $(CXX) $(LD_OPTS) $(CDS_PLATFORM_DEBUG_LDFLAGS) $(CDS_OBJS) -o $@ $(LDLIBS)
83         mv ./$(CDS_DEBUG_LIB).$(VERSION) $(BIN_PATH)/$(CDS_DEBUG_LIB).$(VERSION)
84         ln -sf $(CDS_DEBUG_LIB).$(VERSION) $(BIN_PATH)/$(CDS_DEBUG_LIB)
85
86 $(CDS_RELEASE_LIB).$(VERSION) : $(CDS_OBJS)
87         $(CXX) $(LD_OPTS) $(CDS_OBJS) $(CDS_PLATFORM_RELEASE_LDFLAGS) -o $@ $(LDLIBS)
88         mv ./$(CDS_RELEASE_LIB).$(VERSION) $(BIN_PATH)/$(CDS_RELEASE_LIB).$(VERSION)
89         ln -sf $(CDS_RELEASE_LIB).$(VERSION) $(BIN_PATH)/$(CDS_RELEASE_LIB)
90     
91 debug : $(CDS_DEBUG_LIB).$(VERSION)
92 release : $(CDS_RELEASE_LIB).$(VERSION)
93     
94 endif
95     
96 all: debug release
97
98 ##########################################
99 # Make tests
100
101 OBJ_TEST_PATH=$(OBJ_PATH)
102
103 include ../projects/source.test-common.mk
104 CDS_TESTCOMMON_SOURCES := $(CDS_TESTCOMMON_SOURCES:%.cpp=../%.cpp)
105 TEST_COMMON_OBJS := $(CDS_TESTCOMMON_SOURCES:%.cpp=%.o)
106 TEST_COMMON_OBJS_DEPS := $(TEST_COMMON_OBJS:%.o=%.d)
107
108 TEST_COMMONHDR_SRC_DIR=../tests
109 -include $(TEST_COMMON_OBJS_DEPS)
110 $(TEST_COMMON_OBJS) : %.o : %.cpp
111         $(CXX) $(CPP_COMP_OPT) -I$(TEST_COMMONHDR_SRC_DIR) $< -o $@
112
113
114 include ../projects/source.test-hdr.mk
115 CDS_TESTHDR_SOURCES := $(CDS_TESTHDR_SOURCES:%.cpp=../%.cpp)
116 TESTHDR_OBJS := $(CDS_TESTHDR_SOURCES:%.cpp=%.o)
117 TESTHDR_OBJS_DEPS := $(TESTHDR_OBJS:%.o=%.d)
118
119 TESTHDR_SRC_DIR=../tests/test-hdr
120 -include $(TESTHDR_OBJS_DEPS)
121 $(TESTHDR_OBJS): %.o: %.cpp
122         $(CXX) $(CPP_COMP_OPT) -I$(TESTHDR_SRC_DIR) -I$(TEST_COMMONHDR_SRC_DIR) $< -o $@
123
124 TEST_SRC_DIR=../tests/unit
125 TEST_DATA_DIR=`pwd`/../tests/data
126
127 CDSUNIT_COMMON_FILE=
128
129 include ../projects/source.unit.map.mk
130 CDSUNIT_MAP_SOURCES := $(CDSUNIT_MAP_SOURCES:%.cpp=../%.cpp)
131 CDSUNIT_MAP_OBJS := $(CDSUNIT_MAP_SOURCES:%.cpp=%.o)
132
133 include ../projects/source.unit.set.mk
134 CDSUNIT_SET_SOURCES := $(CDSUNIT_SET_SOURCES:%.cpp=../%.cpp)
135 CDSUNIT_SET_OBJS := $(CDSUNIT_SET_SOURCES:%.cpp=%.o)
136
137 include ../projects/source.unit.misc.mk
138 CDSUNIT_MISC_SOURCES := $(CDSUNIT_MISC_SOURCES:%.cpp=../%.cpp)
139 CDSUNIT_MISC_OBJS := $(CDSUNIT_MISC_SOURCES:%.cpp=%.o)
140
141 TEST_OBJ_FILE := $(CDSUNIT_COMMON_FILE) $(CDSUNIT_MAP_OBJS) $(CDSUNIT_SET_OBJS) \
142         $(CDSUNIT_STACK_OBJS) $(CDSUNIT_MISC_OBJS)
143 TEST_OBJ_FILE_DEPS := $(TEST_OBJ_FILE:%.o=%.d)
144
145 -include $(TEST_OBJ_FILE_DEPS)
146 $(TEST_OBJ_FILE): %.o: %.cpp
147         $(CXX) $(CPP_COMP_OPT) -I$(TEST_SRC_DIR) -I$(TEST_COMMONHDR_SRC_DIR) $< -o $@
148
149 CDSUNIT_MAP_EXE=$(BIN_PATH)/cdsu-map
150 CDSUNIT_SET_EXE=$(BIN_PATH)/cdsu-set
151 CDSUNIT_MISC_EXE=$(BIN_PATH)/cdsu-misc
152 CDSUNIT_EXE_FILES= $(CDSUNIT_MAP_EXE) $(CDSUNIT_SET_EXE) $(CDSUNIT_MISC_EXE)
153
154 unit-map: $(CDSUNIT_MAP_EXE)
155 unit-set: $(CDSUNIT_SET_EXE)
156
157 ifeq ($(platform),mingw)
158 make_test : $(BIN_PATH)/test-hdr $(CDSUNIT_EXE_FILES)
159         cd $(TEST_DATA_DIR); perl -X split.pl
160         cp -f $(TEST_DATA_DIR)/test.conf $(TEST_DATA_DIR)/test-debug.conf $(TEST_DATA_DIR)/dictionary.txt $(BIN_PATH)
161 else
162 make_test : $(BIN_PATH)/test-hdr $(CDSUNIT_EXE_FILES)
163         cd $(TEST_DATA_DIR); perl -X split.pl
164         ln -sf $(TEST_DATA_DIR)/test.conf $(TEST_DATA_DIR)/test-debug.conf $(TEST_DATA_DIR)/dictionary.txt $(BIN_PATH)
165 endif
166
167 $(BIN_PATH)/test-hdr : $(TEST_COMMON_OBJS) $(TESTHDR_OBJS) $(TESTHDR_OBJS_NO_OFFSETOF_WARN)
168         $(CXX) $(LD_OPTS) -L$(BIN_PATH) \
169         $(TESTHDR_OBJS) $(TESTHDR_OBJS_NO_OFFSETOF_WARN) $(TEST_COMMON_OBJS) \
170         -o $@ $(LD_BOOST_THREAD_LIB) $(LD_TEST_COMMON_LIBS) $(LDLIBS)
171
172 $(CDSUNIT_MAP_EXE) : $(CDSUNIT_MAP_OBJS) $(CDSUNIT_COMMON_FILE) $(TEST_COMMON_OBJS)
173         $(CXX) $(LD_OPTS) -L$(BIN_PATH) $(CDSUNIT_MAP_OBJS) $(CDSUNIT_COMMON_FILE) $(TEST_COMMON_OBJS) -o $@ $(LD_BOOST_THREAD_LIB) $(LD_TEST_COMMON_LIBS) $(LDLIBS)
174
175 $(CDSUNIT_SET_EXE) : $(CDSUNIT_SET_OBJS) $(CDSUNIT_COMMON_FILE) $(TEST_COMMON_OBJS)
176         $(CXX) $(LD_OPTS) -L$(BIN_PATH) $(CDSUNIT_SET_OBJS) $(CDSUNIT_COMMON_FILE) $(TEST_COMMON_OBJS) -o $@ $(LD_BOOST_THREAD_LIB) $(LD_TEST_COMMON_LIBS) $(LDLIBS)
177
178 $(CDSUNIT_MISC_EXE) : $(CDSUNIT_MISC_OBJS) $(CDSUNIT_COMMON_FILE) $(TEST_COMMON_OBJS)
179         $(CXX) $(LD_OPTS) -L$(BIN_PATH) $(CDSUNIT_MISC_OBJS) $(CDSUNIT_COMMON_FILE) $(TEST_COMMON_OBJS) -o $@ $(LD_BOOST_THREAD_LIB) $(LD_TEST_COMMON_LIBS) $(LDLIBS)
180
181
182 CDSUNIT_MAP_EXE_DBG=$(CDSUNIT_MAP_EXE)-d
183 CDSUNIT_SET_EXE_DBG=$(CDSUNIT_SET_EXE)-d
184 CDSUNIT_MISC_EXE_DBG=$(CDSUNIT_MISC_EXE)-d
185 CDSUNIT_EXE_DBG_FILES= $(CDSUNIT_MAP_EXE_DBG) $(CDSUNIT_SET_EXE_DBG) $(CDSUNIT_MISC_EXE_DBG)
186
187 unit-map-dbg: $(CDSUNIT_MAP_EXE_DBG)
188 unit-set-dbg: $(CDSUNIT_SET_EXE_DBG)
189
190 ifeq ($(platform),mingw)
191 make_debug_test : $(BIN_PATH)/test-hdr-debug $(CDSUNIT_EXE_DBG_FILES)
192         cd $(TEST_DATA_DIR); perl -X split.pl
193         cp -f $(TEST_DATA_DIR)/test.conf $(TEST_DATA_DIR)/test-debug.conf $(TEST_DATA_DIR)/dictionary.txt $(BIN_PATH)
194 else
195 make_debug_test : $(BIN_PATH)/test-hdr-debug $(CDSUNIT_EXE_DBG_FILES)
196         cd $(TEST_DATA_DIR); perl -X split.pl
197         ln -sf $(TEST_DATA_DIR)/test.conf $(TEST_DATA_DIR)/test-debug.conf $(TEST_DATA_DIR)/dictionary.txt $(BIN_PATH)
198 endif
199
200 $(BIN_PATH)/test-hdr-debug : $(TESTHDR_OBJS) $(TESTHDR_OBJS_NO_OFFSETOF_WARN) $(TEST_COMMON_OBJS)
201         $(CXX) $(LD_OPTS) -L$(BIN_PATH) \
202         $(TESTHDR_OBJS) $(TESTHDR_OBJS_NO_OFFSETOF_WARN) $(TEST_COMMON_OBJS) \
203         -o $@ $(LD_BOOST_THREAD_LIB) $(LD_TEST_COMMON_DEBUG_LIBS) $(LDLIBS)
204
205 $(CDSUNIT_MAP_EXE_DBG) : $(CDSUNIT_MAP_OBJS) $(CDSUNIT_COMMON_FILE) $(TEST_COMMON_OBJS)
206         $(CXX) $(LD_OPTS) -L$(BIN_PATH) $(CDSUNIT_MAP_OBJS) $(CDSUNIT_COMMON_FILE) $(TEST_COMMON_OBJS) -o $@ $(LD_BOOST_THREAD_LIB) $(LD_TEST_COMMON_DEBUG_LIBS) $(LDLIBS)
207
208 $(CDSUNIT_SET_EXE_DBG) : $(CDSUNIT_SET_OBJS) $(CDSUNIT_COMMON_FILE) $(TEST_COMMON_OBJS)
209         $(CXX) $(LD_OPTS) -L$(BIN_PATH) $(CDSUNIT_SET_OBJS) $(CDSUNIT_COMMON_FILE) $(TEST_COMMON_OBJS) -o $@ $(LD_BOOST_THREAD_LIB) $(LD_TEST_COMMON_DEBUG_LIBS) $(LDLIBS)
210
211 $(CDSUNIT_MISC_EXE_DBG) : $(CDSUNIT_MISC_OBJS) $(CDSUNIT_COMMON_FILE) $(TEST_COMMON_OBJS)
212         $(CXX) $(LD_OPTS) -L$(BIN_PATH) $(CDSUNIT_MISC_OBJS) $(CDSUNIT_COMMON_FILE) $(TEST_COMMON_OBJS) -o $@ $(LD_BOOST_THREAD_LIB) $(LD_TEST_COMMON_DEBUG_LIBS) $(LDLIBS)
213
214 test: make_test 
215 test_debug: make_debug_test
216
217 test_hdr: $(BIN_PATH)/test-hdr
218 test_hdr_debug: $(BIN_PATH)/test-hdr-debug
219
220 ##########################################
221 #
222 clean: 
223         rm -f $(OBJ_PATH)/debug/*
224         rm -f $(OBJ_PATH)/release/*
225         rm -f $(TEST_COMMON_OBJS) $(TESTHDR_OBJS) $(TESTHDR_OBJS_NO_OFFSETOF_WARN) $(TEST_OBJ_FILE)
226         rm -f $(TEST_COMMON_OBJS_DEPS) $(TESTHDR_OBJS_DEPS) $(TESTHDR_OBJS_NO_OFFSETOF_WARN_DEPS) $(TEST_OBJ_FILE_DEPS)
227         rm -f $(BIN_PATH)/libcds*
228         rm -f $(BIN_PATH)/cdsu-*
229         rm -f $(BIN_PATH)/test-hdr
230