-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
249 lines (178 loc) · 19.2 KB
/
Makefile
File metadata and controls
249 lines (178 loc) · 19.2 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
# Platform properties
INCLUDE_DIRS = . ..
DETECT := rt/build/detect
include rt/build/Platform.mk
# Sources
include rt/build/Common.mk
RT_PATH := rt
include rt/build/Products.mk
UTIL_PATH := util
include util/build/Products.mk
ASM_PATH := asm
include asm/build/Products.mk
JASMINE_PATH := jasmine
include jasmine/build/Products.mk
CLOVER_PATH := clover
include clover/build/Products.mk
DEBUG_OBJS := $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS) $(ASM_DEBUG_OBJS) $(JASMINE_DEBUG_OBJS) $(JASMINE_DEBUG_RULES_OBJ) $(CLOVER_DEBUG_OBJS)
DEBUG_HEADERS := $(RT_DEBUG_HEADERS) $(UTIL_DEBUG_HEADERS) $(ASM_DEBUG_HEADERS) $(JASMINE_DEBUG_HEADERS) $(CLOVER_DEBUG_HEADERS)
DEBUG_DEPFILES := $(RT_DEBUG_DEPFILES) $(UTIL_DEBUG_DEPFILES) $(ASM_DEBUG_DEPFILES) $(JASMINE_DEBUG_DEPFILES) $(CLOVER_DEBUG_DEPFILES)
RELEASE_OBJS := $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS) $(ASM_RELEASE_OBJS) $(JASMINE_RELEASE_OBJS) $(JASMINE_RELEASE_RULES_OBJ) $(CLOVER_RELEASE_OBJS)
RELEASE_HEADERS := $(RT_RELEASE_HEADERS) $(UTIL_RELEASE_HEADERS) $(ASM_RELEASE_HEADERS) $(JASMINE_RELEASE_HEADERS) $(CLOVER_RELEASE_HEADERS)
RELEASE_DEPFILES := $(RT_RELEASE_DEPFILES) $(UTIL_RELEASE_DEPFILES) $(ASM_RELEASE_DEPFILES) $(JASMINE_RELEASE_DEPFILES) $(CLOVER_RELEASE_DEPFILES)
include rt/build/CommonProducts.mk
# Build rules
all: debug release
$(DEBUG_MANIFEST): $(BUILD_CONFIG)
mkdir -p $(RT_DIRS_DEBUG) $(UTIL_DIRS_DEBUG) $(ASM_DIRS_DEBUG) $(JASMINE_DIRS_DEBUG) $(CLOVER_DIRS_DEBUG)
touch $@
$(RELEASE_MANIFEST): $(BUILD_CONFIG)
mkdir -p $(RT_DIRS_RELEASE) $(UTIL_DIRS_RELEASE) $(ASM_DIRS_RELEASE) $(JASMINE_DIRS_RELEASE) $(CLOVER_DIRS_RELEASE)
touch $@
include $(DEBUG_DEPFILE_INCLUDE)
include $(RELEASE_DEPFILE_INCLUDE)
libclrt.a-debug: CXX_FLAGS += -fvisibility=hidden -fno-sanitize=all
libclrt.a-release: CXX_FLAGS += -fvisibility=hidden -fno-sanitize=all
# Products
### rt targets
librt.a-debug: $(DEBUG_MANIFEST) $(RT_DEBUG_HEADERS) $(RT_DEBUG_OBJS)
cat $(RT_DEBUG_DEPFILES) > $(DEBUG_DEPFILE)
ar rcs $(DEBUG_BUILD)/librt.a $(RT_DEBUG_OBJS)
librt.so-debug: $(DEBUG_MANIFEST) $(RT_DEBUG_HEADERS) $(RT_DEBUG_OBJS)
cat $(RT_DEBUG_DEPFILES) > $(DEBUG_DEPFILE)
$(CXX_LINK_SHARED_DEBUG) $(DEBUG_BUILD)/librt.so $(RT_DEBUG_OBJS)
librt.a-release: $(RELEASE_MANIFEST) $(RT_RELEASE_HEADERS) $(RT_RELEASE_OBJS)
cat $(RT_RELEASE_DEPFILES) > $(RELEASE_DEPFILE)
ar rcs $(RELEASE_BUILD)/librt.a $(RT_RELEASE_OBJS)
librt.so-release: $(RELEASE_MANIFEST) $(RELEASE_HEADERS) $(RT_RELEASE_OBJS)
cat $(RT_RELEASE_DEPFILES) > $(RELEASE_DEPFILE)
$(CXX_LINK_SHARED_RELEASE) $(RELEASE_BUILD)/librt.so $(RT_RELEASE_OBJS)
librt_entry.a-debug: $(DEBUG_MANIFEST) $(RT_DEBUG_HEADERS) $(RT_DEBUG_OBJS) $(RT_ENTRY_DEBUG_OBJS)
cat $(RT_DEBUG_DEPFILES) > $(DEBUG_DEPFILE)
ar rcs $(DEBUG_BUILD)/librt_entry.a $(RT_DEBUG_OBJS) $(RT_ENTRY_DEBUG_OBJS)
librt_entry.so-debug: $(DEBUG_MANIFEST) $(RT_DEBUG_HEADERS) $(RT_DEBUG_OBJS) $(RT_ENTRY_DEBUG_OBJS)
cat $(RT_DEBUG_DEPFILES) > $(DEBUG_DEPFILE)
$(CXX_LINK_SHARED_DEBUG) $(DEBUG_BUILD)/librt_entry.so $(RT_DEBUG_OBJS) $(RT_ENTRY_DEBUG_OBJS)
librt_entry.a-release: $(RELEASE_MANIFEST) $(RT_RELEASE_HEADERS) $(RT_RELEASE_OBJS) $(RT_ENTRY_RT_RELEASE_OBJS)
cat $(RT_RELEASE_DEPFILES) > $(RELEASE_DEPFILE)
ar rcs $(RELEASE_BUILD)/librt_entry.a $(RT_RELEASE_OBJS) $(RT_ENTRY_RT_RELEASE_OBJS)
librt_entry.so-release: $(RELEASE_MANIFEST) $(RT_RELEASE_HEADERS) $(RT_RELEASE_OBJS) $(RT_ENTRY_RT_RELEASE_OBJS)
cat $(RT_RELEASE_DEPFILES) > $(RELEASE_DEPFILE)
$(CXX_LINK_SHARED_RELEASE) $(RELEASE_BUILD)/librt_entry.so $(RT_RELEASE_OBJS) $(RT_ENTRY_RT_RELEASE_OBJS)
### util targets
libutil.a-debug: $(DEBUG_MANIFEST) $(RT_DEBUG_HEADERS) $(UTIL_DEBUG_HEADERS) $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS)
cat $(RT_DEBUG_DEPFILES) $(UTIL_DEBUG_DEPFILES) > $(DEBUG_DEPFILE)
ar rcs $(DEBUG_BUILD)/libutil.a $(RT_RELEASE_OBJS) $(UTIL_DEBUG_OBJS)
libutil.so-debug: $(DEBUG_MANIFEST) $(RT_DEBUG_HEADERS) $(UTIL_DEBUG_HEADERS) $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS)
cat $(RT_DEBUG_DEPFILES) $(UTIL_DEBUG_DEPFILES) > $(DEBUG_DEPFILE)
$(CXX_LINK_SHARED_DEBUG) $(DEBUG_BUILD)/libutil.so $<
libutil.a-release: $(RELEASE_MANIFEST) $(RT_RELEASE_HEADERS) $(UTIL_RELEASE_HEADERS) $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS)
cat $(RT_RELEASE_DEPFILES) $(UTIL_RELEASE_DEPFILES) > $(RELEASE_DEPFILE)
ar -rcs $(RELEASE_BUILD)/libutil.a $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS)
libutil.so-release: $(RELEASE_MANIFEST) $(RT_RELEASE_HEADERS) $(UTIL_RELEASE_HEADERS) $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS)
cat $(RT_RELEASE_DEPFILES) $(UTIL_RELEASE_DEPFILES) > $(RELEASE_DEPFILE)
$(CXX_LINK_SHARED_RELEASE) $(RELEASE_BUILD)/libutil.so $<
test-util-debug: $(DEBUG_MANIFEST) $(RT_DEBUG_HEADERS) $(UTIL_DEBUG_HEADERS) $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS) $(UTIL_TEST_DEBUG_OBJS) $(RT_ENTRY_DEBUG_OBJS)
cat $(RT_DEBUG_DEPFILES) $(UTIL_DEBUG_DEPFILES) > $(DEBUG_DEPFILE)
$(LINK_TESTS) $(DEBUG_BUILD)/test-util.cpp $(UTIL_TEST_DEBUG_OBJS)
$(CXX_LINK_EXECUTABLE_DEBUG) $(DEBUG_BUILD)/test-util $(DEBUG_BUILD)/test-util.cpp $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS) $(UTIL_TEST_DEBUG_OBJS) $(RT_ENTRY_DEBUG_OBJS)
test-util-release: $(RELEASE_MANIFEST) $(RT_RELEASE_HEADERS) $(UTIL_RELEASE_HEADERS) $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS) $(UTIL_TEST_RELEASE_OBJS) $(RT_ENTRY_RELEASE_OBJS)
cat $(RT_RELEASE_DEPFILES) $(UTIL_RELEASE_DEPFILES) > $(RELEASE_DEPFILE)
$(LINK_TESTS) $(RELEASE_BUILD)/test-util.cpp $(UTIL_TEST_RELEASE_OBJS)
$(CXX_LINK_EXECUTABLE_RELEASE) $(RELEASE_BUILD)/test-util $(RELEASE_BUILD)/test-util.cpp $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS) $(UTIL_TEST_RELEASE_OBJS) $(RT_ENTRY_RELEASE_OBJS)
libelumalloc.a-debug: CXX_FLAGS += -DLIB_ELUMALLOC
libelumalloc.a-release: CXX_FLAGS += -DLIB_ELUMALLOC
libelumalloc.so-debug: CXX_FLAGS += -DLIB_ELUMALLOC
libelumalloc.so-release: CXX_FLAGS += -DLIB_ELUMALLOC
libelumalloc.a-debug: $(DEBUG_MANIFEST) $(RT_DEBUG_OBJS) $(DEBUG_BUILD)/include/$(UTIL_PATH)/elumalloc.h $(DEBUG_BUILD)/$(UTIL_PATH)/elumalloc.o $(DEBUG_BUILD)/$(UTIL_PATH)/io.o $(DEBUG_BUILD)/$(UTIL_PATH)/utf.o
ar rcs $(DEBUG_BUILD)/libelumalloc.a $(RT_DEBUG_OBJS) $(DEBUG_BUILD)/$(UTIL_PATH)/elumalloc.o $(DEBUG_BUILD)/$(UTIL_PATH)/io.o $(DEBUG_BUILD)/$(UTIL_PATH)/utf.o
libelumalloc.so-debug: $(DEBUG_MANIFEST) $(RT_DEBUG_OBJS) $(DEBUG_BUILD)/include/$(UTIL_PATH)/elumalloc.h $(DEBUG_BUILD)/$(UTIL_PATH)/elumalloc.o $(DEBUG_BUILD)/io.o $(DEBUG_BUILD)/$(UTIL_PATH)/utf.o
$(CXX_LINK_SHARED_DEBUG) $(DEBUG_BUILD)/libelumalloc.so $(RT_DEBUG_OBJS) $(DEBUG_BUILD)/$(UTIL_PATH)/elumalloc.o $(DEBUG_BUILD)/$(UTIL_PATH)/io.o $(DEBUG_BUILD)/$(UTIL_PATH)/utf.o
libelumalloc.a-release: $(RELEASE_MANIFEST) $(RT_RELEASE_OBJS) $(RELEASE_BUILD)/include/$(UTIL_PATH)/elumalloc.h $(RELEASE_BUILD)/$(UTIL_PATH)/elumalloc.o $(RELEASE_BUILD)/$(UTIL_PATH)/io.o $(RELEASE_BUILD)/$(UTIL_PATH)/utf.o
ar rcs $(RELEASE_BUILD)/libelumalloc.a $(RT_RELEASE_OBJS) $(RELEASE_BUILD)/$(UTIL_PATH)/elumalloc.o $(RELEASE_BUILD)/$(UTIL_PATH)/io.o $(RELEASE_BUILD)/$(UTIL_PATH)/utf.o
libelumalloc.so-release: $(RELEASE_MANIFEST) $(RT_RELEASE_OBJS) $(RELEASE_BUILD)/include/$(UTIL_PATH)/elumalloc.h $(RELEASE_BUILD)/$(UTIL_PATH)/elumalloc.o $(RELEASE_BUILD)/$(UTIL_PATH)/io.o $(RELEASE_BUILD)/$(UTIL_PATH)/utf.o
$(CXX_LINK_SHARED_RELEASE) $(RELEASE_BUILD)/libelumalloc.so $(RT_RELEASE_OBJS) $(RELEASE_BUILD)/$(UTIL_PATH)/elumalloc.o $(RELEASE_BUILD)/$(UTIL_PATH)/io.o $(RELEASE_BUILD)/$(UTIL_PATH)/utf.o
### asm targets
libasm.a-debug: $(DEBUG_MANIFEST) $(RT_DEBUG_HEADERS) $(UTIL_DEBUG_HEADERS) $(ASM_DEBUG_HEADERS) $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS) $(ASM_DEBUG_OBJS)
cat $(RT_DEBUG_DEPFILES) $(UTIL_DEBUG_DEPFILES) $(ASM_DEBUG_DEPFILES) > $(DEBUG_DEPFILE)
ar rcs $(DEBUG_BUILD)/libasm.a $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS) $(ASM_DEBUG_OBJS)
libasm.so-debug: $(DEBUG_MANIFEST) $(RT_DEBUG_HEADERS) $(UTIL_DEBUG_HEADERS) $(ASM_DEBUG_HEADERS) $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS) $(ASM_DEBUG_OBJS)
cat $(RT_DEBUG_DEPFILES) $(UTIL_DEBUG_DEPFILES) $(ASM_DEBUG_DEPFILES) > $(DEBUG_DEPFILE)
$(CXX_LINK_SHARED_DEBUG) $(DEBUG_BUILD)/libasm.so $<
libasm.a-release: $(RELEASE_MANIFEST) $(RT_RELEASE_HEADERS) $(UTIL_RELEASE_HEADERS) $(ASM_RELEASE_HEADERS) $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS) $(ASM_RELEASE_OBJS)
cat $(RT_RELEASE_DEPFILES) $(UTIL_RELEASE_DEPFILES) $(ASM_RELEASE_DEPFILES) > $(RELEASE_DEPFILE)
ar -rcs $(RELEASE_BUILD)/libasm.a $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS) $(ASM_RELEASE_OBJS)
libasm.so-release: $(RELEASE_MANIFEST) $(RT_RELEASE_HEADERS) $(UTIL_RELEASE_HEADERS) $(ASM_RELEASE_HEADERS) $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS) $(ASM_RELEASE_OBJS)
cat $(RT_RELEASE_DEPFILES) $(UTIL_RELEASE_DEPFILES) $(ASM_RELEASE_DEPFILES) > $(RELEASE_DEPFILE)
$(CXX_LINK_SHARED_RELEASE) $(RELEASE_BUILD)/libasm.so $<
test-asm-debug: $(DEBUG_MANIFEST) $(RT_DEBUG_HEADERS) $(UTIL_DEBUG_HEADERS) $(ASM_DEBUG_HEADERS) $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS) $(ASM_DEBUG_OBJS) $(TEST_HARNESS_DEBUG_OBJS) $(RT_ENTRY_DEBUG_OBJS) $(ASM_TEST_DEBUG_OBJS)
cat $(RT_DEBUG_DEPFILES) $(UTIL_DEBUG_DEPFILES) $(ASM_DEBUG_DEPFILES) > $(DEBUG_DEPFILE)
$(LINK_TESTS) $(DEBUG_BUILD)/test-asm.cpp $(ASM_TEST_DEBUG_OBJS)
$(CXX_LINK_EXECUTABLE_DEBUG) $(DEBUG_BUILD)/test-asm $(DEBUG_BUILD)/test-asm.cpp $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS) $(ASM_DEBUG_OBJS) $(TEST_HARNESS_DEBUG_OBJS) $(RT_ENTRY_DEBUG_OBJS) $(ASM_TEST_DEBUG_OBJS)
test-asm-release: $(RELEASE_MANIFEST) $(RT_RELEASE_HEADERS) $(UTIL_RELEASE_HEADERS) $(ASM_RELEASE_HEADERS) $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS) $(ASM_RELEASE_OBJS) $(TEST_HARNESS_RELEASE_OBJS) $(RT_ENTRY_RELEASE_OBJS) $(ASM_TEST_RELEASE_OBJS)
cat $(RT_RELEASE_DEPFILES) $(UTIL_RELEASE_DEPFILES) $(ASM_RELEASE_DEPFILES) > $(RELEASE_DEPFILE)
$(LINK_TESTS) $(RELEASE_BUILD)/test-asm.cpp $(ASM_TEST_RELEASE_OBJS)
$(CXX_LINK_EXECUTABLE_RELEASE) $(RELEASE_BUILD)/test-asm $(RELEASE_BUILD)/test-asm.cpp $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS) $(ASM_RELEASE_OBJS) $(TEST_HARNESS_RELEASE_OBJS) $(RT_ENTRY_RELEASE_OBJS) $(ASM_TEST_RELEASE_OBJS)
### jasmine targets
$(DEBUG_BUILD)/rulecompiler: $(DEBUG_MANIFEST) $(RT_DEBUG_HEADERS) $(UTIL_DEBUG_HEADERS) $(ASM_DEBUG_HEADERS) $(JASMINE_DEBUG_HEADERS) $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS) $(ASM_DEBUG_OBJS) $(JASMINE_DEBUG_OBJS) $(JASMINE_MATCHER_DEBUG_OBJS) $(RT_ENTRY_DEBUG_OBJS)
$(CXX_LINK_EXECUTABLE_DEBUG) $(DEBUG_BUILD)/rulecompiler $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS) $(ASM_DEBUG_OBJS) $(JASMINE_DEBUG_OBJS) $(JASMINE_MATCHER_DEBUG_OBJS) $(RT_ENTRY_DEBUG_OBJS)
$(JASMINE_DEBUG_RULES_OBJ): $(DEBUG_BUILD)/rulecompiler $(JASMINE_RULES_SOURCES)
$(DEBUG_BUILD)/rulecompiler $(JASMINE_RULES_SOURCES) $(@:.o=.cpp)
$(CXX_COMPILE_DEBUG) $@ $(@:.o=.cpp)
libjasmine.a-debug: $(DEBUG_MANIFEST) $(RT_DEBUG_HEADERS) $(UTIL_DEBUG_HEADERS) $(ASM_DEBUG_HEADERS) $(JASMINE_DEBUG_HEADERS) $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS) $(ASM_DEBUG_OBJS) $(JASMINE_DEBUG_OBJS) $(JASMINE_DEBUG_RULES_OBJ)
cat $(RT_DEBUG_DEPFILES) $(UTIL_DEBUG_DEPFILES) $(ASM_DEBUG_DEPFILES) $(JASMINE_DEBUG_DEPFILES) > $(DEBUG_DEPFILE)
ar rcs $(DEBUG_BUILD)/libjasmine.a $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS) $(ASM_DEBUG_OBJS) $(JASMINE_DEBUG_OBJS) $(JASMINE_DEBUG_RULES_OBJ)
libjasmine.so-debug: $(DEBUG_MANIFEST) $(RT_DEBUG_HEADERS) $(UTIL_DEBUG_HEADERS) $(ASM_DEBUG_HEADERS) $(JASMINE_DEBUG_HEADERS) $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS) $(ASM_DEBUG_OBJS) $(JASMINE_DEBUG_OBJS) $(JASMINE_DEBUG_RULES_OBJ)
cat $(RT_DEBUG_DEPFILES) $(UTIL_DEBUG_DEPFILES) $(ASM_DEBUG_DEPFILES) $(JASMINE_DEBUG_DEPFILES) > $(DEBUG_DEPFILE)
$(CXX_LINK_SHARED_DEBUG) $(DEBUG_BUILD)/libjasmine.so $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS) $(ASM_DEBUG_OBJS) $(JASMINE_DEBUG_OBJS) $(JASMINE_DEBUG_RULES_OBJ)
$(RELEASE_BUILD)/rulecompiler: $(RELEASE_MANIFEST) $(RT_RELEASE_HEADERS) $(UTIL_RELEASE_HEADERS) $(ASM_RELEASE_HEADERS) $(JASMINE_RELEASE_HEADERS) $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS) $(ASM_RELEASE_OBJS) $(JASMINE_RELEASE_OBJS) $(JASMINE_MATCHER_RELEASE_OBJS) $(RT_ENTRY_RELEASE_OBJS)
$(CXX_LINK_EXECUTABLE_RELEASE) $(RELEASE_BUILD)/rulecompiler $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS) $(ASM_RELEASE_OBJS) $(JASMINE_RELEASE_OBJS) $(JASMINE_MATCHER_RELEASE_OBJS) $(RT_ENTRY_RELEASE_OBJS)
$(JASMINE_RELEASE_RULES_OBJ): $(RELEASE_BUILD)/rulecompiler $(JASMINE_RULES_SOURCES)
$(RELEASE_BUILD)/rulecompiler $(JASMINE_RULES_SOURCES) $(@:.o=.cpp)
$(CXX_COMPILE_RELEASE) $@ $(@:.o=.cpp)
libjasmine.a-release: $(RELEASE_MANIFEST) $(RT_RELEASE_HEADERS) $(UTIL_RELEASE_HEADERS) $(ASM_RELEASE_HEADERS) $(JASMINE_RELEASE_HEADERS) $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS) $(ASM_RELEASE_OBJS) $(JASMINE_RELEASE_OBJS) $(JASMINE_RELEASE_RULES_OBJ)
cat $(RT_RELEASE_DEPFILES) $(UTIL_RELEASE_DEPFILES) $(ASM_RELEASE_DEPFILES) $(JASMINE_RELEASE_DEPFILES) > $(RELEASE_DEPFILE)
ar -rcs $(RELEASE_BUILD)/libjasmine.a $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS) $(ASM_RELEASE_OBJS) $(JASMINE_RELEASE_OBJS) $(JASMINE_RELEASE_RULES_OBJ)
libjasmine.so-release: $(RELEASE_MANIFEST) $(RT_RELEASE_HEADERS) $(UTIL_RELEASE_HEADERS) $(ASM_RELEASE_HEADERS) $(JASMINE_RELEASE_HEADERS) $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS) $(ASM_RELEASE_OBJS) $(JASMINE_RELEASE_OBJS) $(JASMINE_RELEASE_RULES_OBJ)
cat $(RT_RELEASE_DEPFILES) $(UTIL_RELEASE_DEPFILES) $(ASM_RELEASE_DEPFILES) $(JASMINE_RELEASE_DEPFILES) > $(RELEASE_DEPFILE)
$(CXX_LINK_SHARED_RELEASE) $(RELEASE_BUILD)/libjasmine.so $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS) $(ASM_RELEASE_OBJS) $(JASMINE_RELEASE_OBJS) $(JASMINE_RELEASE_RULES_OBJ)
test-jasmine-debug: $(DEBUG_MANIFEST) $(RT_DEBUG_HEADERS) $(UTIL_DEBUG_HEADERS) $(ASM_DEBUG_HEADERS) $(JASMINE_DEBUG_HEADERS) $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS) $(ASM_DEBUG_OBJS) $(JASMINE_DEBUG_OBJS) $(JASMINE_DEBUG_RULES_OBJ) $(TEST_HARNESS_DEBUG_OBJS) $(JASMINE_TEST_DEBUG_OBJS) $(RT_ENTRY_DEBUG_OBJS)
cat $(RT_DEBUG_DEPFILES) $(UTIL_DEBUG_DEPFILES) $(ASM_DEBUG_DEPFILES) $(JASMINE_DEBUG_DEPFILES) > $(DEBUG_DEPFILE)
$(LINK_TESTS) $(DEBUG_BUILD)/test-jasmine.cpp $(JASMINE_TEST_DEBUG_OBJS)
$(CXX_LINK_EXECUTABLE_DEBUG) $(DEBUG_BUILD)/test-jasmine $(DEBUG_BUILD)/test-jasmine.cpp $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS) $(ASM_DEBUG_OBJS) $(JASMINE_DEBUG_OBJS) $(JASMINE_DEBUG_RULES_OBJ) $(TEST_HARNESS_DEBUG_OBJS) $(JASMINE_TEST_DEBUG_OBJS) $(RT_ENTRY_DEBUG_OBJS)
test-jasmine-release: $(RELEASE_MANIFEST) $(RT_RELEASE_HEADERS) $(UTIL_RELEASE_HEADERS) $(ASM_RELEASE_HEADERS) $(JASMINE_RELEASE_HEADERS) $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS) $(ASM_RELEASE_OBJS) $(JASMINE_RELEASE_OBJS) $(JASMINE_RELEASE_RULES_OBJ) $(TEST_HARNESS_RELEASE_OBJS) $(JASMINE_TEST_RELEASE_OBJS) $(RT_ENTRY_RELEASE_OBJS)
cat $(RT_RELEASE_DEPFILES) $(UTIL_RELEASE_DEPFILES) $(ASM_RELEASE_DEPFILES) $(JASMINE_RELEASE_DEPFILES) > $(RELEASE_DEPFILE)
$(LINK_TESTS) $(RELEASE_BUILD)/test-jasmine.cpp $(JASMINE_TEST_RELEASE_OBJS)
$(CXX_LINK_EXECUTABLE_RELEASE) $(RELEASE_BUILD)/test-jasmine $(RELEASE_BUILD)/test-jasmine.cpp $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS) $(ASM_RELEASE_OBJS) $(JASMINE_RELEASE_OBJS) $(JASMINE_RELEASE_RULES_OBJ) $(TEST_HARNESS_RELEASE_OBJS) $(JASMINE_TEST_RELEASE_OBJS) $(RT_ENTRY_RELEASE_OBJS)
### clover targets
clover-std-debug: $(DEBUG_MANIFEST) $(CLOVER_STD_CL_SOURCES)
cp -r $(CLOVER_STD_CL_SOURCES) $(DEBUG_BUILD)/clover/std
clover-std-release: $(RELEASE_MANIFEST) $(CLOVER_STD_CL_SOURCES)
cp -r $(CLOVER_STD_CL_SOURCES) $(RELEASE_BUILD)/clover/std
libclrt.a-debug: $(DEBUG_MANIFEST) $(RT_DEBUG_HEADERS) $(UTIL_DEBUG_HEADERS) $(ASM_DEBUG_HEADERS) $(JASMINE_DEBUG_HEADERS) $(CLOVER_DEBUG_HEADERS) $(RT_DEBUG_OBJS) $(DEBUG_BUILD)/util/init.o $(DEBUG_BUILD)/util/io.o $(DEBUG_BUILD)/util/elumalloc.o $(DEBUG_BUILD)/clover/std/clrt.o
ar -rcs $(DEBUG_BUILD)/$(CLOVER_PATH)/libclrt.a $(RT_DEBUG_OBJS) $(DEBUG_BUILD)/util/init.o $(DEBUG_BUILD)/util/io.o $(DEBUG_BUILD)/util/elumalloc.o $(DEBUG_BUILD)/clover/std/clrt.o
libclrt.a-release: $(RELEASE_MANIFEST) $(RT_RELEASE_HEADERS) $(UTIL_RELEASE_HEADERS) $(ASM_RELEASE_HEADERS) $(JASMINE_RELEASE_HEADERS) $(CLOVER_RELEASE_HEADERS) $(RT_RELEASE_OBJS) $(RELEASE_BUILD)/util/init.o $(RELEASE_BUILD)/util/io.o $(RELEASE_BUILD)/util/elumalloc.o $(RELEASE_BUILD)/clover/std/clrt.o
ar -rcs $(RELEASE_BUILD)/$(CLOVER_PATH)/libclrt.a $(RT_RELEASE_OBJS) $(RELEASE_BUILD)/util/init.o $(RELEASE_BUILD)/util/io.o $(RELEASE_BUILD)/util/elumalloc.o $(RELEASE_BUILD)/clover/std/clrt.o
clover-debug: $(DEBUG_MANIFEST) $(RT_DEBUG_HEADERS) $(UTIL_DEBUG_HEADERS) $(ASM_DEBUG_HEADERS) $(JASMINE_DEBUG_HEADERS) $(CLOVER_DEBUG_HEADERS) $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS) $(ASM_DEBUG_OBJS) $(JASMINE_DEBUG_OBJS) $(CLOVER_DEBUG_OBJS) $(JASMINE_DEBUG_RULES_OBJ) $(RT_ENTRY_DEBUG_OBJS) $(CLOVER_CLI_DEBUG_OBJS) libclrt.a-debug clover-std-debug
cat $(RT_DEBUG_DEPFILES) $(UTIL_DEBUG_DEPFILES) $(ASM_DEBUG_DEPFILES) $(JASMINE_DEBUG_DEPFILES) $(CLOVER_DEBUG_DEPFILES) > $(DEBUG_DEPFILE)
$(CXX_LINK_EXECUTABLE_DEBUG) $(DEBUG_BUILD)/$(CLOVER_PATH)/clover $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS) $(ASM_DEBUG_OBJS) $(JASMINE_DEBUG_OBJS) $(CLOVER_DEBUG_OBJS) $(JASMINE_DEBUG_RULES_OBJ) $(RT_ENTRY_DEBUG_OBJS) $(CLOVER_CLI_DEBUG_OBJS)
clover-release: $(RELEASE_MANIFEST) $(RT_RELEASE_HEADERS) $(UTIL_RELEASE_HEADERS) $(ASM_RELEASE_HEADERS) $(JASMINE_RELEASE_HEADERS) $(CLOVER_RELEASE_HEADERS) $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS) $(ASM_RELEASE_OBJS) $(JASMINE_RELEASE_OBJS) $(CLOVER_RELEASE_OBJS) $(JASMINE_RELEASE_RULES_OBJ) $(RT_ENTRY_RELEASE_OBJS) $(CLOVER_CLI_RELEASE_OBJS) libclrt.a-release clover-std-release
cat $(RT_RELEASE_DEPFILES) $(UTIL_RELEASE_DEPFILES) $(ASM_RELEASE_DEPFILES) $(JASMINE_RELEASE_DEPFILES) $(CLOVER_RELEASE_DEPFILES) > $(RELEASE_DEPFILE)
$(CXX_LINK_EXECUTABLE_RELEASE) $(RELEASE_BUILD)/$(CLOVER_PATH)/clover $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS) $(ASM_RELEASE_OBJS) $(JASMINE_RELEASE_OBJS) $(CLOVER_RELEASE_OBJS) $(JASMINE_RELEASE_RULES_OBJ) $(RT_ENTRY_RELEASE_OBJS) $(CLOVER_CLI_RELEASE_OBJS)
test-clover-debug: $(DEBUG_MANIFEST) $(RT_DEBUG_HEADERS) $(UTIL_DEBUG_HEADERS) $(ASM_DEBUG_HEADERS) $(JASMINE_DEBUG_HEADERS) $(CLOVER_DEBUG_HEADERS) $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS) $(ASM_DEBUG_OBJS) $(JASMINE_DEBUG_OBJS) $(CLOVER_DEBUG_OBJS) $(JASMINE_DEBUG_RULES_OBJ) $(TEST_HARNESS_DEBUG_OBJS) $(CLOVER_TEST_DEBUG_OBJS) $(RT_ENTRY_DEBUG_OBJS)
cat $(RT_DEBUG_DEPFILES) $(UTIL_DEBUG_DEPFILES) $(ASM_DEBUG_DEPFILES) $(JASMINE_DEBUG_DEPFILES) $(CLOVER_DEBUG_DEPFILES) > $(DEBUG_DEPFILE)
$(LINK_TESTS) $(DEBUG_BUILD)/test-clover.cpp $(CLOVER_TEST_DEBUG_OBJS)
$(CXX_LINK_EXECUTABLE_DEBUG) $(DEBUG_BUILD)/test-clover $(DEBUG_BUILD)/test-clover.cpp $(RT_DEBUG_OBJS) $(UTIL_DEBUG_OBJS) $(ASM_DEBUG_OBJS) $(JASMINE_DEBUG_OBJS) $(CLOVER_DEBUG_OBJS) $(JASMINE_DEBUG_RULES_OBJ) $(TEST_HARNESS_DEBUG_OBJS) $(CLOVER_TEST_DEBUG_OBJS) $(RT_ENTRY_DEBUG_OBJS)
test-clover-release: $(RELEASE_MANIFEST) $(RT_RELEASE_HEADERS) $(UTIL_RELEASE_HEADERS) $(ASM_RELEASE_HEADERS) $(JASMINE_RELEASE_HEADERS) $(CLOVER_RELEASE_HEADERS) $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS) $(ASM_RELEASE_OBJS) $(JASMINE_RELEASE_OBJS) $(CLOVER_RELEASE_OBJS) $(JASMINE_RELEASE_RULES_OBJ) $(TEST_HARNESS_RELEASE_OBJS) $(CLOVER_TEST_RELEASE_OBJS) $(RT_ENTRY_RELEASE_OBJS)
cat $(RT_RELEASE_DEPFILES) $(UTIL_RELEASE_DEPFILES) $(ASM_RELEASE_DEPFILES) $(JASMINE_RELEASE_DEPFILES) $(CLOVER_RELEASE_DEPFILES) > $(RELEASE_DEPFILE)
$(LINK_TESTS) $(RELEASE_BUILD)/test-clover.cpp $(CLOVER_TEST_RELEASE_OBJS)
$(CXX_LINK_EXECUTABLE_RELEASE) $(RELEASE_BUILD)/test-clover $(RELEASE_BUILD)/test-clover.cpp $(RT_RELEASE_OBJS) $(UTIL_RELEASE_OBJS) $(ASM_RELEASE_OBJS) $(JASMINE_RELEASE_OBJS) $(CLOVER_RELEASE_OBJS) $(JASMINE_RELEASE_RULES_OBJ) $(TEST_HARNESS_RELEASE_OBJS) $(CLOVER_TEST_RELEASE_OBJS) $(RT_ENTRY_RELEASE_OBJS)
# Helpers
.PHONY: clean-debug clean-release clean
clean-debug:
rm -rf $(DEBUG_BUILD)
clean-release:
rm -rf $(RELEASE_BUILD)
clean:
rm -rf $(BUILD)
deps: $(DEBUG_DEPFILE) $(RELEASE_DEPFILE)