Merge branch 'dyn_pc_integration' of ssh://wasabi.cs.wisc.edu/p/paradyn/development...
[dyninst.git] / testsuite / make.module.tmpl
1 #
2 # make.module.tmpl for test suite
3 # Not intended to be a seperate makefile, but to be used in conjunction with
4 # higher level, platform-specific makefiles in the build directories
5
6 RM = rm -f
7 RMDIR ?= rmdir
8 M_GCC ?= purify $(GCC)
9 M_GXX ?= $(GXX)
10 DEPCC ?= $(GCC)
11 DEPENDFLAGS ?= -MM -MT
12 DEPENDDIR = ./depends
13 VPATH   = ../src $(DEPENDDIR) ../src/dyninst
14
15 IFLAGS = -I../../dyninstAPI/h -I../../symtabAPI/h -I../../dynutil/h -I../../instructionAPI/h -I../../proccontrol/h -I../../external
16 LFLAGS = -L../../common/$(PLATFORM) -L../../symtabAPI/$(PLATFORM) -L../../instructionAPI/$(PLATFORM) -L../../proccontrol/$(PLATFORM) -L../../dyninstAPI/$(PLATFORM)
17
18 #######################################################################
19 ### We don't want all of the CFLAGS stuff that came from make.config.
20 ### Strip away most of it.
21 #######################################################################
22
23 CFLAGS = $(UNIFIED_TEST_DEF:%=%_test) $(ARCH_FLAGS) $(AC_DEF) $(FIRST_INCLUDE) -I$(INCLUDE_DEST) $(IFLAGS) -I../src -g $(BOOST_INCDIR)
24 CXXFLAGS = $(CFLAGS)
25 CXXFLAGS += $(PLATFORM_CXXFLAGS)
26 CFLAGS_NATIVE = $(CFLAGS)
27 CXXFLAGS_NATIVE = $(CXXFLAGS)
28 MUTATEE_CFLAGS_NATIVE ?= $(CFLAGS)
29 MUTATEE_CXXFLAGS_NATIVE ?= $(CXXFLAGS)
30
31
32 #######################################################################
33 ###  Generate compiler id strings
34 ###
35 ###  COMPILERT_NATIVE_CC, COMPILERT_NATIVE_CXX must be defined prior to
36 ###  inclusion of this file.  gcc/g++ are handled here as platform-indep
37 ###
38 #######################################################################
39
40 EMPTY:=
41 BLANK:=$(EMPTY) $(EMPTY)
42 LPAREN:=(
43 RPAREN:=)
44 COMMA=,
45 RSQBRACK:=[
46 LSQBRACK:=]
47
48 COMPILERT_GCC = $(shell $(M_GCC) -v 2>&1 | grep version | head -1)
49 COMPILER1_GCC = $(subst $(BLANK),_,$(COMPILERT_GCC))
50 COMPILER2_GCC = $(subst $(LPAREN),_,$(COMPILER1_GCC))
51 COMPILER3_GCC = $(subst $(RSQBRACK),_,$(COMPILER2_GCC))
52 COMPILER4_GCC = $(subst $(LSQBRACK),_,$(COMPILER3_GCC))
53 COMPILER_GCC = $(subst $(RPAREN),_,$(COMPILER4_GCC))
54 MUTATEE_CFLAGS_GNU += -DCOMPILER='"$(COMPILER_GCC)"'
55 MUTATEE_LDFLAGS_GNU += $(LDFLAGS) -L.
56
57 COMPILERT_GXX = $(shell $(M_GCC) -v 2>&1 | grep version | head -1)
58 COMPILER1_GXX = $(subst $(BLANK),_,$(COMPILERT_GXX))
59 COMPILER2_GXX = $(subst $(LPAREN),_,$(COMPILER1_GXX))
60 COMPILER3_GXX = $(subst $(RSQBRACK),_,$(COMPILER2_GXX))
61 COMPILER4_GXX = $(subst $(LSQBRACK),_,$(COMPILER3_GXX))
62 COMPILER_GXX = $(subst $(RPAREN),_,$(COMPILER4_GXX))
63 MUTATEE_CXXFLAGS_GNU += -DCOMPILER='"$(COMPILER_GXX)"'
64
65 COMPILER1_NATIVE_CC = $(subst $(BLANK),_,$(COMPILERT_NATIVE_CC))
66 COMPILER2_NATIVE_CC = $(subst $(LPAREN),_,$(COMPILER1_NATIVE_CC))
67 COMPILER_NATIVE_CC = $(subst $(RPAREN),_,$(COMPILER2_NATIVE_CC))
68 MUTATEE_CFLAGS_NATIVE += -DCOMPILER='"$(COMPILER_NATIVE_CC)"'
69 MUTATEE_LDFLAGS_NATIVE += $(LDFLAGS) -L.
70
71 COMPILER1_NATIVE_CXX = $(subst $(BLANK),_,$(COMPILERT_NATIVE_CXX))
72 COMPILER2_NATIVE_CXX = $(subst $(LPAREN),_,$(COMPILER1_NATIVE_CXX))
73 COMPILER_NATIVE_CXX = $(subst $(RPAREN),_,$(COMPILER2_NATIVE_CXX))
74 MUTATEE_CXXFLAGS_NATIVE += -DCOMPILER='"$(COMPILER_NATIVE_CXX)"'
75
76 TEST_DEST = $(TO_CORE)/$(PROGRAM_DEST)/testprogs_new2
77 LIB_DEST = $(TO_CORE)/$(LIBRARY_DEST)
78
79 LIBDIR += -L$(LIBRARY_DEST) $(LFLAGS)
80
81 #######################################################################
82 ###  Basic definitions (filename prefixes)
83 #######################################################################
84
85 FORALL_MUTATORS =  
86
87 FORALL_MUTATEES = mutatee_util
88
89 SRCS_LIBTESTSUITE = test_lib.C \
90                     test_lib_soExecution.C \
91                     ParameterDict.C \
92                     TestData.C \
93                     TestMutator.C \
94                     TestOutputDriver.C \
95                     StdOutputDriver.C \
96                     ResumeLog.C \
97                     test_info_new.C
98
99 SRCS_TEMPLATES = test_driver_templates.C 
100
101 OBJS_LIBTESTSUITE = $(SRCS_LIBTESTSUITE:%.C=%.o)
102 OBJS_TEMPLATES = $(SRCS_TEMPLATES:%.C=%.o)
103
104 ifdef USE_LIBTESTSUITE_EXT_A
105 LIBTESTSUITE = libtestSuite.a
106 else
107 LIBTESTSUITE = libtestSuite.so
108 endif
109
110 TESTDRIVER_LDFLAGS += $(DEMANGLER_EXEC_LINK)
111 #######################################################
112 # Dyninst infrastructure components
113 #######################################################
114 SRCS_DYNINSTCOMP_LIB = dyninst/dyninst_comp.C \
115                        dyninst/test_lib_mutateeStart.C \
116                        dyninst/Callbacks.C \
117                        dyninst/Process_data.C \
118                        dyninst/ParseThat.C \
119                        dyninst/test_lib_test7.C \
120                        dyninst/test_lib_test9.C
121 OBJS_DYNINSTCOMP_LIB = $(notdir $(SRCS_DYNINSTCOMP_LIB:%.C=%.o))
122 SRCS_DYNINSTTESTLIB = dyninst/libtestA.c \
123                       dyninst/libtestB.c \
124                       dyninst/libTest12.c
125
126 #                      dyninst/libInstMe.c \
127 #                      dyninst/libLoadMe.c \
128
129 dyninst_MUTATOR_FLAGS = -L. -ltestdyninst -ldyninstAPI
130
131 ifdef M_ABI
132 DYNINST_TESTLIBS = $(notdir $(SRCS_DYNINSTTESTLIB:%.c=%.so))
133 DYNINST_STATIC_TESTLIBS = $(notdir $(SRCS_DYNINSTTESTLIB:%.c=%.a))
134 DYNINST_TESTLIBS_ABI = $(addsuffix _$(M_ABI).so, $(notdir $(SRCS_DYNINSTTESTLIB:%.c=%)))
135 DYNINST_STATIC_TESTLIBS_ABI = $(addsuffix _$(M_ABI).a, $(notdir $(SRCS_DYNINSTTESTLIB:%.c=%)))
136 else
137 DYNINST_TESTLIBS = $(notdir $(SRCS_DYNINSTTESTLIB:%.c=%.so))
138 DYNINST_STATIC_TESTLIBS = $(notdir $(SRCS_DYNINSTTESTLIB:%.c=%.a))
139 DYNINST_TESTLIBS_ABI =
140 DYNINST_STATIC_TESTLIBS_ABI = 
141 endif
142
143 ifdef USE_LIBTESTSUITE_EXT_A
144 LIBDYNINSTCOMP = libtestdyninst.a
145 else
146 LIBDYNINSTCOMP = libtestdyninst.so
147 endif
148
149 dyninst_MUTATOR_LIB = $(LIBDYNINSTCOMP)
150 dyninst_COMPONENT_LIB = $(LIBDYNINSTCOMP)
151
152
153 #######################################################
154 # Symtab infrastructure components
155 #######################################################
156 SRCS_SYMTABCOMP_LIB = symtab/symtab_comp.C
157 OBJS_SYMTABCOMP_LIB = $(notdir $(SRCS_SYMTABCOMP_LIB:%.C=%.o))
158 symtab_MUTATOR_FLAGS = -L. -ltestsymtab -lcommon
159
160 ifdef USE_LIBTESTSUITE_EXT_A
161 LIBSYMTABCOMP = libtestsymtab.a
162 else
163 LIBSYMTABCOMP = libtestsymtab.so
164 endif
165
166 symtab_MUTATOR_LIB = $(LIBSYMTABCOMP)
167 symtab_COMPONENT_LIB = $(LIBSYMTABCOMP)
168
169 #######################################################
170 # Instruction infrastructure components
171 #######################################################
172 SRCS_INSTRUCTIONCOMP_LIB = instruction/instruction_comp.C
173 OBJS_INSTRUCTIONCOMP_LIB = $(notdir $(SRCS_INSTRUCTIONCOMP_LIB:%.C=%.o))
174 instruction_MUTATOR_FLAGS = -L. -ltestinstruction -linstructionAPI -lcommon
175
176 ifdef USE_LIBTESTSUITE_EXT_A
177 LIBINSTRUCTIONCOMP = libtestinstruction.a
178 else
179 LIBINSTRUCTIONCOMP = libtestinstruction.so
180 endif
181
182 instruction_MUTATOR_LIB = $(LIBINSTRUCTIONCOMP)
183 instruction_COMPONENT_LIB = $(LIBINSTRUCTIONCOMP)
184
185 #######################################################
186 # ProcControlAPI infrastructure components
187 #######################################################
188 SRCS_PROCCONTROLCOMP_LIB = proccontrol/proccontrol_comp.C
189 OBJS_PROCCONTROLCOMP_LIB = $(notdir $(SRCS_PROCCONTROLCOMP_LIB:%.C=%.o))
190 proccontrol_MUTATOR_FLAGS = -L. -ltestproccontrol -lpcontrol -lcommon
191
192 ifdef USE_LIBTESTSUITE_EXT_A
193 LIBPROCCONTROLCOMP = libtestproccontrol.a
194 else
195 LIBPROCCONTROLCOMP = libtestproccontrol.so
196 endif
197
198 proccontrol_MUTATOR_LIB = $(LIBPROCCONTROLCOMP)
199 proccontrol_COMPONENT_LIB = $(LIBPROCCONTROLCOMP)
200
201
202 ######################################################################
203 ### Main target
204 ######################################################################
205
206 default: testlibs mutators mutatees_minimum drivers output_drivers components
207         @echo "**********************************************************"
208         @echo "* Build complete."
209         @echo "*"
210         @echo "* High optimization mutatees were not built, use 'make all'"
211         @echo "* to build them."
212         @echo "**********************************************************"
213
214 all: testlibs mutators mutatees drivers output_drivers components
215
216 # test_info_new.gen.o is special-cased because it makes use of the
217 # COMPILER_CONTROL_DEFS to determine which mutatees to enable for compilers
218 # that are not present at all sites.
219 test_info_new.gen.o: test_info_new.gen.C
220         $(CXX) -c -o $@ $(CXXFLAGS) $(COMPILER_CONTROL_DEFS) -I../src/ test_info_new.gen.C
221
222 #######################################################################
223 ###  A list of all the targets we're building, for install purposes
224 #######################################################################
225
226 ALL_TARGETS_DEST                = $(addprefix $(TEST_DEST)/,$(ALL_TARGETS))
227 LIBTESTSUITE_DEST               = $(addprefix $(TEST_DEST)/,$(LIBTESTSUITE))
228
229 #######################################################################
230 ###  Some pattern rules
231 #######################################################################
232
233 CXXTFLAGS := $(filter-out -fno-implicit-templates, $(CXXFLAGS))
234
235 #######################################################################
236 ###  High level targets
237 #######################################################################
238
239 MUTATOR_LDFLAGS := $(LDFLAGS) $(LIBDIR) $(MUTATOR_LIBS) $(MUTATOR_LDFLAGS) -lpthread
240 MUTATOR_SO_LDFLAGS = $(filter-out -liberty, $(MUTATOR_LDFLAGS))
241 MUTATEE_NATIVE_FC_LDFLAGS += $(LDFLAGS)
242 MUTATEE_NATIVE_CXX_OMP_LDFLAGS += $(LDFLAGS)
243 TESTDRIVER_LDFLAGS += $(LDFLAGS)
244
245 # all: testlibs mutators mutatees drivers
246 # See also an addition to the 'all' rule at the end of the file
247
248 ### Automatically generated variables; generated by makemake.py
249
250 include make.mutators.gen
251
252 include make.solo_mutatee.gen
253
254 mutatees:
255
256 mutators:
257
258 components:
259
260 testlibs:
261
262 #######################################################################
263 ###  Filter results, if needed
264 #######################################################################
265
266 MINIMUM_BUILD_FILTER = %_max %_high %_low
267 BUILD_FILTER =
268 ifdef SKIP_BUILD_RTLIB_32
269    BUILD_FILTER += %_32_none_max %_32_none_high %_32_none_low %_32_none_none %_32_pic_max %_32_pic_high %_32_pic_low %_32_pic_none
270 endif
271
272 include $(TO_CORE)/make.components
273
274 ifneq ($(wildcard ../src/dyninst), )
275 ifneq ($(findstring dyninstAPI,$(fullSystem)),)
276 mutatees: $(filter-out $(BUILD_FILTER), $(dyninst_SOLO_MUTATEES))
277 mutatees_minimum: $(filter-out $(BUILD_FILTER), $(filter-out $(MINIMUM_BUILD_FILTER), $(dyninst_SOLO_MUTATEES)))
278 mutators: $(dyninst_MUTATORS_SO)
279 components: $(LIBDYNINSTCOMP)
280 testlibs: $(DYNINST_TESTLIBS) $(DYNINST_STATIC_TESTLIBS)
281 ifndef SKIP_BUILD_RTLIB_32
282 testlibs: $(DYNINST_TESTLIBS_ABI) $(DYNINST_STATIC_TESTLIBS_ABI)
283 dyninst_targs = $(DYNINST_TESTLIBS_ABI) $(DYNINST_STATIC_TESTLIBS_ABI)
284 endif
285 dyninst_targs += $(filter-out $(BUILD_FILTER), $(filter-out $(MINIMUM_BUILD_FILTER), $(dyninst_SOLO_MUTATEES)))
286 dyninst_targs += $(dyninst_MUTATORS_SO) $(LIBDYNINSTCOMP) $(DYNINST_TESTLIBS) $(DYNINST_STATIC_TESTLIBS)
287 endif
288 endif
289
290 ifneq ($(wildcard ../src/symtab), )
291 ifneq ($(findstring symtabAPI,$(fullSystem)),)
292 mutatees: $(filter-out $(BUILD_FILTER), $(symtab_SOLO_MUTATEES))
293 mutatees_minimum: $(filter-out $(BUILD_FILTER), $(filter-out $(MINIMUM_BUILD_FILTER), $(symtab_SOLO_MUTATEES)))
294 mutators: $(symtab_MUTATORS_SO)
295 components: $(LIBSYMTABCOMP)
296 testlibs:
297 symtab_targs = $(filter-out $(BUILD_FILTER), $(filter-out $(MINIMUM_BUILD_FILTER), $(symtab_SOLO_MUTATEES)))
298 symtab_targs = $(symtab_MUTATORS_SO) $(LIBSYMTABCOMP)
299 endif
300 endif
301
302 ifneq ($(wildcard ../src/instruction), )
303 ifneq ($(findstring instructionAPI,$(fullSystem)),)
304 mutatees: $(filter-out $(BUILD_FILTER), $(instruction_SOLO_MUTATEES))
305 mutatees_minimum: $(filter-out $(BUILD_FILTER), $(filter-out $(MINIMUM_BUILD_FILTER), $(instruction_SOLO_MUTATEES)))
306 mutators: $(instruction_MUTATORS_SO)
307 ifneq ($(instruction_MUTATORS_SO), )
308 components: $(LIBINSTRUCTIONCOMP)
309 testlibs:
310 instruction_targs = $(LIBINSTRUCTIONCOMP)
311 endif
312 instruction_targs += $(filter-out $(BUILD_FILTER), $(filter-out $(MINIMUM_BUILD_FILTER), $(instruction_SOLO_MUTATEES)))
313 instruction_targs += $(instruction_MUTATORS_SO) $(LIBINSTRUCTIONCOMP)
314 endif
315 endif
316
317 ifneq ($(wildcard ../src/proccontrol), )
318 ifneq ($(findstring proccontrol,$(fullSystem)),)
319 mutatees: $(filter-out $(BUILD_FILTER), $(proccontrol_SOLO_MUTATEES)) 
320 mutatees_minimum: $(filter-out $(BUILD_FILTER), $(filter-out $(MINIMUM_BUILD_FILTER), $(proccontrol_SOLO_MUTATEES)))
321 mutators: $(proccontrol_MUTATORS_SO)
322 ifneq ($(proccontrol_MUTATORS_SO), )
323 components: $(LIBPROCCONTROLCOMP)
324 testlibs: $(PROCCONTROL_TESTLIBS) $(PROCCONTROL_TESTLIBS_ABI) $(DYNINST_TESTLIBS)
325 proccontrol_targs = $(LIBPROCCONTROLCOMP) $(PROCCONTROL_TESTLIBS) $(PROCCONTROL_TESTLIBS_ABI) $(DYNINST_TESTLIBS)
326 endif
327 proccontrol_targs += $(filter-out $(BUILD_FILTER), $(filter-out $(MINIMUM_BUILD_FILTER), $(proccontrol_SOLO_MUTATEES)))
328 proccontrol_targs += $(proccontrol_MUTATORS_SO)
329 endif
330 endif
331
332 common_infra: drivers output_drivers
333
334 dyninstAPI: common_infra $(dyninst_targs) $(symtab_targs) $(instruction_targs) $(proccontrol_targs)
335
336 symtabAPI: common_infra $(symtab_targs)
337
338 instructionAPI: common_infra $(instruction_targs)
339
340 proccontrol: common_infra $(proccontrol_targs)
341
342 install: default
343
344 symlink: all
345
346 clean: clean_solo_mutatees dyninst_clean_solo_mutatees
347         @$(RM) *.da *.bb. *.bbg 
348         @$(RM) $(TESTLIBS) $(TESTLIBS_ABI) $(LIBTESTSUITE) test_driver runTests libTest12.so
349         @$(RM) $(dyninst_MUTATORS_SO)
350         @$(RM) $(symtab_MUTATORS_SO)
351         @$(RM) $(symtab_SOLO_MUTATEES)
352         @$(RM) $(instruction_MUTATORS_SO)
353         @$(RM) $(instruction_SOLO_MUTATEES)
354         @$(RM) $(proccontrol_MUTATORS_SO)
355         @$(RM) $(proccontrol_SOLO_MUTATEES)
356         @$(RM) $(OUTPUT_DRIVERS)
357         @$(RM) $(LIBDYNINSTCOMP)
358         @$(RM) $(LIBSYMTABCOMP)
359         @$(RM) $(LIBINSTRUCTIONCOMP)
360         @$(RM) $(LIBPROCCONTROLCOMP)
361         @$(RM) $(DYNINST_TESTLIBS) $(DYNINST_STATIC_TESTLIBS) $(DYNINST_TESTLIBS_ABI) $(DYNINST_STATIC_TESTLIBS_ABI)
362         @$(RM) *.o
363         @$(RM) test11
364         @$(RM) imagefile
365         @$(RM) core core.*
366         @$(RM) -r _dyninstsaved*
367         @$(RM) *.ii *.ti
368         @$(RM) .__afs*
369  
370
371 distclean: clean
372         @if [ -d $(DEPENDDIR) ]; then \
373           $(RM) $(DEPENDDIR)/*.dep; \
374           rmdir $(DEPENDDIR); \
375          fi
376
377 specclean:
378         $(RM) *.gen *.pl tuples test_info_new.gen.C
379
380 ifdef M_ABI
381 $(CALL35_1_OBJ_ABI): $(CALL35_1_SRC_ABI)
382         $(M_GCC) $(M_ABI_FLAG) -c $< $(CFLAGS) $(MUTATEE_CFLAGS_GNU) -o $@ 
383 endif
384
385 testlibs: $(LIBTESTSUITE)
386
387 drivers: test_driver runTests
388
389 .PHONY: clean install distclean mutators mutatees testlibs gnu_mutatees native_mutatees echo all
390
391 #######################################################################
392 ###  Build command for test libraries
393 #######################################################################
394
395 $(dyninst_OBJS_ALL_MUTATORS): %.o : dyninst/%.C $(DEPENDDIR)/%.dep
396         @echo Compiling $<
397         $(HIDE_COMP)$(CXX) -c -o $@ -fPIC $(CXXFLAGS) -I../src/ -I../src/dyninst ../src/dyninst/$*.C
398 $(symtab_OBJS_ALL_MUTATORS): %.o : symtab/%.C $(DEPENDDIR)/%.dep
399         @echo Compiling $<
400         $(HIDE_COMP)$(CXX) -c -o $@ -fPIC $(CXXFLAGS) -I../src/ -I../src/symtab ../src/symtab/$*.C
401 $(instruction_OBJS_ALL_MUTATORS): %.o : instruction/%.C $(DEPENDDIR)/%.dep
402         @echo Compiling $<
403         $(HIDE_COMP)$(CXX) -c -o $@ -fPIC $(CXXFLAGS) -I../src/ -I../src/instruction ../src/instruction/$*.C
404 $(proccontrol_OBJS_ALL_MUTATORS): %.o : proccontrol/%.C $(DEPENDDIR)/%.dep
405         @echo Compiling $<
406         $(HIDE_COMP)$(CXX) -c -o $@ -fPIC $(CXXFLAGS) -I../src/ -I../src/proccontrol ../src/proccontrol/$*.C
407
408 TESTLIB_CC ?= $(CC)
409
410 $(DYNINST_TESTLIBS): %.so : dyninst/%.c $(DEPENDDIR)/%.dep
411 ifdef MAKE_SHARED_LIB
412         @echo Compiling $<
413         $(HIDE_COMP)$(TESTLIB_CC) -c $(CFLAGS) $(CFLAGS_TESTLIBS) $(filter %.c, $^) -o $*.o
414         $(HIDE_COMP)$(MAKE_SHARED_LIB) $(TESTLIB_FLAGS) $*.o -o $@
415 else
416         @echo Compiling $<
417         $(HIDE_COMP)$(TESTLIB_CC) $(TESTLIB_FLAGS) -I../src/ $(filter %.c,$^) -o $@
418 endif
419
420 $(DYNINST_STATIC_TESTLIBS): %.a : dyninst/%.c $(DEPENDDIR)/%.dep
421         @echo Compiling $<
422         $(HIDE_COMP)$(TESTLIB_CC) -c $(CFLAGS) $(CFLAGS_TESTLIBS) $(filter %.c, $^) -o $*.o
423         $(HIDE_COMP)$(AR) rcs $@ $*.o
424
425 ifdef M_ABI
426 $(DYNINST_TESTLIBS_ABI): %_$(M_ABI).so : dyninst/%.c $(DEPENDDIR)/%.dep
427 ifdef MAKE_SHARED_LIB
428         @echo Compiling $<
429         $(HIDE_COMP)$(TESTLIB_CC) -c $(CFLAGS) $(CFLAGS_TESTLIBS) $(filter %.c, $^) -o $*.o
430         $(HIDE_COMP)$(MAKE_SHARED_LIB) $(TESTLIB_FLAGS) $*.o -o $@
431 else
432         @echo Compiling $<
433         $(HIDE_COMP)$(CC) $(TESTLIB_FLAGS) $(M_ABI_FLAG) -I../src/ $(filter %.c,$^) -o $@
434 endif
435
436 ifdef cap_instruction_api
437     INSNAPI_LINK = -linstructionAPI
438 endif
439
440 $(DYNINST_STATIC_TESTLIBS_ABI): %_$(M_ABI).a : dyninst/%.c $(DEPENDDIR)/%.dep
441         @echo Compiling $<
442         $(HIDE_COMP)$(CC) -c $(CFLAGS) $(CFLAGS_TESTLIBS) $(filter %.c, $^) -o $*.o
443         $(HIDE_COMP)$(AR) rcs $@ $*.o
444 endif
445
446 $(OBJS_TEMPLATES): %.o : ../src/%.C
447         @echo Compiling $<
448         $(HIDE_COMP)$(M_GXX) -c -o $@ $(CXXTFLAGS) -I../src/ ../src/$*.C
449
450 test_lib_templates.o : ../src/test_lib_templates.C
451         @echo Compiling $<
452         $(HIDE_COMP)$(M_GXX) -c -o $@ -fPIC $(CXXTFLAGS) -I../src/ ../src/$*.C
453
454 $(OBJS_DYNINSTCOMP_LIB): %.o : ../src/dyninst/%.C $(DEPENDDIR)/%.dep
455         @echo Compiling $<
456         $(HIDE_COMP)$(M_GXX) -c -o $@ -fPIC $(CXXFLAGS) -I../src/ ../src/dyninst/$*.C
457
458 $(OBJS_SYMTABCOMP_LIB): %.o : ../src/symtab/%.C $(DEPENDDIR)/%.dep
459         @echo Compiling $<
460         $(HIDE_COMP)$(M_GXX) -c -o $@ -fPIC $(CXXFLAGS) -I../src/ ../src/symtab/$*.C
461
462 $(OBJS_INSTRUCTIONCOMP_LIB): %.o : ../src/instruction/%.C $(DEPENDDIR)/%.dep
463         @echo Compiling $<
464         $(HIDE_COMP)$(M_GXX) -c -o $@ -fPIC $(CXXFLAGS) -I../src/ ../src/instruction/$*.C
465
466 $(OBJS_PROCCONTROLCOMP_LIB): %.o : ../src/proccontrol/%.C $(DEPENDDIR)/%.dep
467         @echo Compiling $<
468         $(HIDE_COMP)$(M_GXX) -c -o $@ -fPIC $(CXXFLAGS) -I../src/ ../src/proccontrol/$*.C
469
470 $(OBJS_LIBTESTSUITE): %.o : ../src/%.C $(DEPENDDIR)/%.dep
471         @echo Compiling $<
472         $(HIDE_COMP)$(M_GXX) -c -o $@ -fPIC $(CXXFLAGS) -I../src/ ../src/$*.C
473
474 $(LIBDYNINSTCOMP) : $(OBJS_DYNINSTCOMP_LIB) $(LIBTESTSUITE)
475         @echo Compiling $<
476         $(HIDE_COMP)$(CXX) -shared $(TESTSUITE_FLAGS) $(LIBDIR) $(OBJS_DYNINSTCOMP_LIB) -o $@ -L. -ltestSuite -ldyninstAPI -lsymtabAPI \
477 -lcommon -linstructionAPI
478
479 $(LIBSYMTABCOMP) : $(OBJS_SYMTABCOMP_LIB) $(LIBTESTSUITE)
480         @echo Compiling $<
481         $(HIDE_COMP)$(CXX) -shared $(TESTSUITE_FLAGS) $(LIBDIR) $(OBJS_SYMTABCOMP_LIB) -o $@ -L. -ltestSuite -lsymtabAPI -lcommon
482
483 $(LIBINSTRUCTIONCOMP) : $(OBJS_INSTRUCTIONCOMP_LIB) $(LIBTESTSUITE)
484         @echo Compiling $<
485         $(HIDE_COMP)$(CXX) -shared $(TESTSUITE_FLAGS) $(LIBDIR) $(OBJS_INSTRUCTIONCOMP_LIB) -o $@ -L. -ltestSuite -linstructionAPI -lcommon
486
487 $(LIBPROCCONTROLCOMP) : $(OBJS_PROCCONTROLCOMP_LIB) $(LIBTESTSUITE)
488         @echo Compiling $<
489         $(HIDE_COMP)$(CXX) -shared $(TESTSUITE_FLAGS) $(LIBDIR) $(OBJS_PROCCONTROLCOMP_LIB) -o $@ -L. -ltestSuite -lpcontrol -lcommon
490
491 $(LIBTESTSUITE) : $(OBJS_LIBTESTSUITE) test_lib_templates.o test_lib.h
492         @echo Compiling $<
493         $(HIDE_COMP)$(CXX) -shared $(TESTSUITE_FLAGS) $(LIBDIR) $(LIBS_LIBTESTSUITE) $(OBJS_LIBTESTSUITE) test_lib_templates.o -o $@
494
495 #
496 # Native Fortran mutatees
497
498 # There is no real advantage to generality here since there is only one fortran mutatee
499 # (ie for test1), thus all constituent files are built explicitly
500
501 ifdef NATIVE_FC 
502 test1.mutatee_$(NATIVE_FC).o: ../src/test1.mutateeFort.F
503         $(NATIVE_FC)  $(MUTATEE_NATIVE_FFLAGS) -c -o $@ $^ 
504 test1.mutateeFortC_$(NATIVE_FC).o: ../src/test1.mutateeFortC.c
505         $(NATIVE_FORTRAN_CC) $(MUTATEE_NATIVE_FC_CFLAGS) -c $(filter %.c,$^) -o $@
506
507 $(MUTATEES_NATIVE_FC): test%.mutatee_$(NATIVE_FC) : test%.mutatee_$(NATIVE_FC).o test1.mutateeFortC_$(NATIVE_FC).o test1.mutateeCommon_$(NATIVE_FORTRAN_CC).o mutatee_util_$(NATIVE_FORTRAN_CC).o $(DEPENDDIR)/test%.mutatee_$(NATIVE_FC).dep
508         $(NATIVE_FC) -o $@ $(filter %.o,$^) $(MUTATEE_NATIVE_FC_LDFLAGS) $(MUTATEE_LIBS) 
509 endif
510
511 # Native OpenMP mutatees
512 # There is no real advantage to generality here since there is only one OpenMP mutatee
513 # (ie for test16), thus all constituent files are built explicitly
514 ifdef NATIVE_CXX_OMP 
515 test16.mutatee_$(NATIVE_CXX_OMP).o: ../src/test16.mutatee.c
516         $(NATIVE_CXX_OMP)  $(MUTATEE_NATIVE_CXX_CFLAGS) -o $@ $^ 
517
518 $(MUTATEES_NATIVE_CXX_OMP): test%.mutatee_$(NATIVE_CXX_OMP) : test%.mutatee_$(NATIVE_CXX_OMP).o $(DEPENDDIR)/test%.mutatee_$(NATIVE_CXX_OMP).dep
519         $(NATIVE_CXX_OMP) $(MUTATEE_NATIVE_CXX_OMP_LDFLAGS) -o $@ $(filter %.o,$^) $(MUTATEE_LIBS) 
520
521 #$(MUTATEES_NATIVE_CXX_OMP): ../src/test16.mutatee.c
522 #       $(NATIVE_CXX_OMP)  $(MUTATEE_NATIVE_CXX_CFLAGS) -o $@ $^ 
523
524 endif
525
526
527 # Install directory
528 $(TEST_DEST): 
529         mkdir $(TEST_DEST)
530
531 #######################################################################
532 ###  Generic Mutator build rule:
533 ###
534 ###  resorts to pattern matching test% (matches test1, test2, ... etc)
535 ###  to generate correct, minimal set of prerequisites for each test.
536 ###  It would be nicer to just match something simpler that wasn't 
537 ###  name-dependant, but gnu make is not making this easy.
538 ###
539 #######################################################################
540
541 MUTATEE_DEFS := -Dgnu_cc=_gcc -Dgnu_cxx=_g++
542
543 ifdef M_ABI
544 MUTATEE_DEFS += -Dgnu_abi_cc=_gcc_$(M_ABI) -Dgnu_abi_cxx=_g++_$(M_ABI) -Dm_abi
545 endif
546
547 ifdef M_G77
548 MUTATEE_DEFS += -Dgnu_fc=_g77
549 endif
550
551 ifdef NATIVE_CC
552 MUTATEE_DEFS += -Dnative_cc=_$(NATIVE_CC)
553 endif
554
555 ifdef NATIVE_CXX
556 MUTATEE_DEFS += -Dnative_cxx=_$(NATIVE_CXX)
557 endif
558
559 ifdef NATIVE_FC
560 MUTATEE_DEFS += -Dnative_fc=_$(NATIVE_FC)
561 endif
562
563 runTests.o: ../src/runTests.C $(DEPENDDIR)/runTests.dep
564         @echo Compiling $<
565         $(HIDE_COMP)$(CXX) -c -o $@ $(CXXFLAGS) $(MUTATEE_DEFS) ../src/runTests.C
566 runTests_static.o: ../src/runTests.C $(DEPENDDIR)/runTests.dep
567         @echo Compiling $<
568         $(HIDE_COMP)$(CXX) -c -o $@ $(CXXFLAGS) $(MUTATEE_DEFS) -DSTATIC_TEST_DRIVER ../src/runTests.C
569
570 runTests-utils.o: ../src/runTests-utils.C $(DEPENDDIR)/runTests-utils.dep
571         @echo Compiling $<
572         $(HIDE_COMP)$(CXX) -c -o $@ $(CXXFLAGS) $(MUTATEE_DEFS) ../src/runTests-utils.C
573
574 runTests: runTests.o runTests-utils.o test_driver_templates.o 
575         @echo Linking $@
576         $(HIDE_COMP)$(CXX) $(CXXFLAGS) -o $@ runTests.o runTests-utils.o test_driver_templates.o 
577 runTests_static: runTests_static.o runTests-utils.o test_driver_templates.o 
578         @echo Linking $@
579         $(HIDE_COMP)$(CXX) $(CXXFLAGS) -o runTests runTests_static.o runTests-utils.o test_driver_templates.o 
580
581 test_driver.o: ../src/test_driver.C $(DEPENDDIR)/test_driver.dep
582         @echo Compiling $<
583         $(HIDE_COMP)$(CXX) -c -o $@ $(CXXFLAGS) $(MUTATEE_DEFS) ../src/test_driver.C
584
585 test_driver_static.o: ../src/test_driver.C $(DEPENDDIR)/test_driver_static.dep
586         @echo Compiling $<
587         $(HIDE_COMP)$(CXX) -c -o $@ -DSTATIC_TEST_DRIVER $(CXXFLAGS) $(MUTATEE_DEFS) ../src/test_driver.C
588
589 test_driver: test_driver.o test_driver_templates.o test_info_new.gen.o $(DEPENDDIR)/test_driver.dep $(LIBTESTSUITE)
590         @echo Linking $@ $(TESTDRIVER_LDFLAGS)
591         $(CXX) -o $@ test_driver.o test_driver_templates.o test_info_new.gen.o -L. -ltestSuite $(MUTATOR_LDFLAGS) $(LIBS) -lcommon $(TESTDRIVER_LDFLAGS); $(TESTDRIVER_EXTRA_LINK_STEP)
592         
593
594 ######################################################################
595 ### Output Drivers
596 ######################################################################
597
598 OUTPUT_DRIVERS = DatabaseOutputDriver.so
599
600 DatabaseOutputDriver.o : ../src/DatabaseOutputDriver.C # $(DEPENDDIR)/DatabaseOutputDriver.dep
601         @echo Compiling $<
602         $(HIDE_COMP)$(M_GXX) -c -o $@ -fPIC $(CXXFLAGS) -I../src/ ../src/$*.C
603
604 DatabaseOutputDriver.so: DatabaseOutputDriver.o $(LIBTESTSUITE) # $(DEPENDDIR)/DatabaseOutputDriver.dep
605         @echo Linking $@
606         $(HIDE_COMP)$(CXX) -o $@ -shared $(filter %.o,$^) $(MUTATOR_SO_LDFLAGS) $(LIBDIR) $(LIBS) -L. -ltestSuite
607 ifndef NO_OPT_FLAG
608 ifdef STRIP_SO
609         $(STRIP_SO) $@
610 endif
611 endif
612
613 .PHONY: output_drivers
614 output_drivers: $(OUTPUT_DRIVERS)
615
616 #######################################################################
617 ###  Depends
618 #######################################################################
619
620 DEPS_MUTATORS           += $(DEPENDDIR)/test_driver.dep
621 DEPS_MUTATORS           += $(DEPENDDIR)/runTests.dep $(DEPENDDIR)/runTests-utils.dep
622 DEPS_SYMTAB_MUTATORS    += $(addprefix $(DEPENDDIR)/,$(symtab_OBJS_ALL_MUTATORS:%.o=%.dep))
623 DEPS_DYNINST_MUTATORS    += $(addprefix $(DEPENDDIR)/,$(dyninst_OBJS_ALL_MUTATORS:%.o=%.dep))
624 DEPS_INSTRUCTION_MUTATORS    += $(addprefix $(DEPENDDIR)/,$(instruction_OBJS_ALL_MUTATORS:%.o=%.dep))
625 DEPS_PROCCONTROL_MUTATORS    += $(addprefix $(DEPENDDIR)/,$(proccontrol_OBJS_ALL_MUTATORS:%.o=%.dep))
626
627 DEPS_MUTATEES_GCC       += $(addprefix $(DEPENDDIR)/,$(addsuffix _gcc.dep, $(MUTATEES_C)))
628 DEPS_MUTATEES_GXX       += $(addprefix $(DEPENDDIR)/,$(addsuffix _g++.dep, $(MUTATEES_CXX)))
629 DEPS_MUTATEES_GXX       += $(addprefix $(DEPENDDIR)/,$(addsuffix _g++.dep, $(MUTATEES_CXX_ONLY)))
630 DEPS_DYNINST_TESTLIBS   = $(addprefix $(DEPENDDIR)/,$(DYNINST_TESTLIBS:%.so=%.dep))
631 DEPS_LIBTESTSUITE        = $(addprefix $(DEPENDDIR)/,$(SRCS_LIBTESTSUITE:%.C=%.dep))
632 DEPS_DYNINSTCOMP       =  $(addprefix $(DEPENDDIR)/,$(notdir $(SRCS_DYNINSTCOMP_LIB:%.C=%.dep)))
633 DEPS_SYMTABCOMP        = $(addprefix $(DEPENDDIR)/,$(notdir $(SRCS_SYMTABCOMP_LIB:%.C=%.dep)))
634 DEPS_INSTRUCTIONCOMP        = $(addprefix $(DEPENDDIR)/,$(notdir $(SRCS_INSTRUCTIONCOMP_LIB:%.C=%.dep)))
635 DEPS_PROCCONTROLCOMP        = $(addprefix $(DEPENDDIR)/,$(notdir $(SRCS_PROCCONTROLCOMP_LIB:%.C=%.dep)))
636
637 ifdef M_G77
638 DEPS_MUTATEES_G77       += $(addprefix $(DEPENDDIR)/,$(addsuffix _g77.dep, $(MUTATEES_FORTRAN)))
639 endif
640
641 ifdef NATIVE_FC
642 DEPS_MUTATEES_NATIVE_FC += $(addprefix $(DEPENDDIR)/,$(addsuffix _$(NATIVE_FC).dep, $(MUTATEES_FORTRAN)))
643 endif
644
645 ifdef NATIVE_CXX_OMP
646 DEPS_MUTATEES_NATIVE_CXX_OMP += $(addprefix $(DEPENDDIR)/,$(addsuffix _$(NATIVE_CXX_OMP).dep, $(MUTATEES_OPENMP)))
647 endif
648
649 ifdef NATIVE_CC
650 DEPS_MUTATEES_NATIVE_CC += $(addprefix $(DEPENDDIR)/,$(addsuffix _$(NATIVE_CC).dep, $(MUTATEES_C)))
651 endif
652
653 ifdef NATIVE_CXX
654 DEPS_MUTATEES_NATIVE_CXX += $(addprefix $(DEPENDDIR)/,$(addsuffix _$(NATIVE_CXX).dep, $(MUTATEES_CXX)))
655 DEPS_MUTATEES_NATIVE_CXX += $(addprefix $(DEPENDDIR)/,$(addsuffix _$(NATIVE_CXX).dep, $(MUTATEES_CXX_ONLY)))
656 endif
657
658 depend: $(DEPS_MUTATORS)
659
660 depend_dir:
661         @echo "mut deps: $(DEPS_MUTATORS)"
662         @if [ -d $(DEPENDDIR) ]; then \
663           echo "Directory \"$(DEPENDDIR)\" already exists..."; \
664          else \
665           mkdir -p $(DEPENDIR); \
666           echo "Made \"$(DEPENDDIR)\" directory..."; \
667          fi
668
669 $(DEPENDDIR)/test_driver_static.dep: test_driver.C
670         @mkdir -p $(DEPENDDIR)
671         $(DEPCC) $(CXXFLAGS) $< $(MUTATOR_CXXFLAGS) -DSTATIC_TEST_DRIVER $(DEPENDFLAGS) $*.o > $@
672
673 $(DEPS_MUTATORS): $(DEPENDDIR)/%.dep : %.C
674         @mkdir -p $(DEPENDDIR)
675         $(DEPCC) $(CXXFLAGS) $< $(MUTATOR_CXXFLAGS) $(DEPENDFLAGS) $*.o > $@
676
677 $(DEPS_SYMTAB_MUTATORS): $(DEPENDDIR)/%.dep : symtab/%.C
678         @mkdir -p $(DEPENDDIR)
679         $(DEPCC) $(CXXFLAGS) $< $(MUTATOR_CXXFLAGS) $(DEPENDFLAGS) $*.o > $@
680
681 $(DEPS_INSTRUCTION_MUTATORS): $(DEPENDDIR)/%.dep : instruction/%.C
682         @mkdir -p $(DEPENDDIR)
683         $(DEPCC) $(CXXFLAGS) $< $(MUTATOR_CXXFLAGS) $(DEPENDFLAGS) $*.o > $@
684
685 $(DEPS_PROCCONTROL_MUTATORS): $(DEPENDDIR)/%.dep : proccontrol/%.C
686         @mkdir -p $(DEPENDDIR)
687         $(DEPCC) $(CXXFLAGS) $< $(MUTATOR_CXXFLAGS) $(DEPENDFLAGS) $*.o > $@
688
689 $(DEPS_DYNINST_MUTATORS): $(DEPENDDIR)/%.dep : dyninst/%.C
690         @mkdir -p $(DEPENDDIR)
691         $(DEPCC) $(CXXFLAGS) $< $(MUTATOR_CXXFLAGS) $(DEPENDFLAGS) $*.o > $@
692
693 $(DEPS_MUTATEES_GCC): $(DEPENDDIR)/test%.mutatee_gcc.dep : test%.mutatee.c $(SRCS_FORALL_MUTATEES)
694         @mkdir -p $(DEPENDDIR)
695         $(M_GCC) $(CFLAGS) $< $(MUTATEE_CFLAGS) $(DEPENDFLAGS) test$*.mutatee_gcc.o > $@
696
697 $(DEPS_MUTATEES_GXX): $(DEPENDDIR)/test%.mutatee_g++.dep : $(wildcard test%.mutatee.*) $(SRCS_FORALL_MUTATEES)
698         @mkdir -p $(DEPENDDIR)
699         $(M_GXX) $(CXXFLAGS) $< $(MUTATEE_CXXFLAGS) $(DEPENDFLAGS) test$*.mutatee_gxx.o > $@
700
701 $(DEPS_MUTATEES_G77): $(DEPENDDIR)/test%.mutatee_g77.dep : test%.mutateeFort.F $(SRCS_FORALL_MUTATEES)
702         @mkdir -p $(DEPENDDIR)
703         $(M_G77) $(CFLAGS) $< $(MUTATEE_CFLAGS) $(DEPENDFLAGS) test$*.mutateeFort_g77.o > $@
704
705
706 # Use gcc to generate deps for native compilers
707
708 ifdef NATIVE_CC
709 $(DEPS_MUTATEES_NATIVE_CC): $(DEPENDDIR)/test%.mutatee_$(NATIVE_CC).dep : test%.mutatee.c $(SRCS_FORALL_MUTATEES)
710         @mkdir -p $(DEPENDDIR)
711         $(M_GCC) $(CFLAGS) $< $(MUTATEE_CFLAGS) $(DEPENDFLAGS) test$*.mutatee_$(NATIVE_CC).o > $@
712 endif
713
714 ifdef NATIVE_CXX
715 $(DEPS_MUTATEES_NATIVE_CXX): $(DEPENDDIR)/test%.mutatee_$(NATIVE_CXX).dep : $(wildcard test%.mutatee.*) $(SRCS_FORALL_MUTATEES)
716         @mkdir -p $(DEPENDDIR)
717         $(M_GXX) $(CXXFLAGS) $< $(MUTATEE_CXXFLAGS) $(DEPENDFLAGS) test$*.mutatee_$(NATIVE_CXX).o > $@
718 endif
719
720 ifdef NATIVE_FC
721 $(DEPS_MUTATEES_NATIVE_FC): $(DEPENDDIR)/test%.mutatee_$(NATIVE_FC).dep : test%.mutateeFort.F $(SRCS_FORALL_MUTATEES)
722         @mkdir -p $(DEPENDDIR)
723         $(M_G77) $(CFLAGS) $< $(MUTATEE_CFLAGS) $(DEPENDFLAGS) test$*.mutateeFort_$(NATIVE_FC).o > $@
724 endif
725
726 ifdef NATIVE_CXX_OMP
727 $(DEPS_MUTATEES_NATIVE_CXX_OMP): $(DEPENDDIR)/test%.mutatee_$(NATIVE_CXX_OMP).dep : test%.mutatee.c $(SRCS_FORALL_MUTATEES)
728         @mkdir -p $(DEPENDDIR)
729         $(M_GXX) $(CFLAGS) $< $(MUTATEE_CFLAGS) $(DEPENDFLAGS) test$*.mutatee_$(NATIVE_CXX_OMP).o > $@
730 endif
731
732
733 $(DEPS_DYNINST_TESTLIBS): $(DEPENDDIR)/lib%.dep : ../src/dyninst/lib%.c 
734         @mkdir -p $(DEPENDDIR)
735         $(DEPCC) $(CXXFLAGS) $< $(MUTATOR_CXXFLAGS) $(DEPENDFLAGS) lib$*.so > $@
736
737 $(DEPS_LIBTESTSUITE): $(DEPENDDIR)/%.dep : %.C
738         @mkdir -p $(DEPENDDIR)
739         $(DEPCC) $(CXXFLAGS) -I../src $< $(MUTATOR_CXXFLAGS) $(DEPENDFLAGS) $*.o > $@
740
741 $(DEPS_DYNINSTCOMP): $(DEPENDDIR)/%.dep : dyninst/%.C
742         @mkdir -p $(DEPENDDIR)
743         $(DEPCC) $(CXXFLAGS) -I../src -I../src/dyninst $< $(MUTATOR_CXXFLAGS) $(DEPENDFLAGS) $*.o > $@
744
745 $(DEPS_SYMTABCOMP): $(DEPENDDIR)/%.dep : symtab/%.C
746         @mkdir -p $(DEPENDDIR)
747         $(DEPCC) $(CXXFLAGS) -I../src -I../src/symtab $< $(MUTATOR_CXXFLAGS) $(DEPENDFLAGS) $*.o > $@
748
749 $(DEPS_INSTRUCTIONCOMP): $(DEPENDDIR)/%.dep : instruction/%.C
750         @mkdir -p $(DEPENDDIR)
751         $(DEPCC) $(CXXFLAGS) -I../src -I../src/instruction $< $(MUTATOR_CXXFLAGS) $(DEPENDFLAGS) $*.o > $@
752
753 $(DEPS_PROCCONTROLCOMP): $(DEPENDDIR)/%.dep : proccontrol/%.C
754         @mkdir -p $(DEPENDDIR)
755         $(DEPCC) $(CXXFLAGS) -I../src -I../src/proccontrol $< $(MUTATOR_CXXFLAGS) $(DEPENDFLAGS) $*.o > $@
756
757 # do not include dep files for "clean" targets
758 ifneq ($(MAKECMDGOALS),clean)
759 ifneq ($(MAKECMDGOALS),distclean)
760 ifneq ($(MAKECMDGOALS),echo)
761
762 -include $(DEPS_MUTATORS)
763 # -include $(DEPS_MUTATEES_GCC)
764 # -include $(DEPS_MUTATEES_GXX)
765 # -include $(DEPS_TESTLIBS)
766
767 ifdef M_G77
768 # -include $(DEPS_MUTATEES_G77)
769 endif
770
771 ifdef NATIVE_CC
772 # -include $(DEPS_MUTATEES_NATIVE_CC)
773 endif
774
775 ifdef NATIVE_CXX
776 -include $(DEPS_MUTATEES_NATIVE_CXX)
777 endif
778
779 ifdef NATIVE_FC
780 -include $(DEPS_MUTATEES_NATIVE_FC)
781 endif
782
783 ifdef NATIVE_CXX_OMP
784 -include $(DEPS_MUTATEES_NATIVE_CXX_OMP)
785 endif
786
787 endif
788 endif
789 endif