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
|
# Copyright (C) CNRS, INRIA, Université Bordeaux 1, Télécom SudParis
# See COPYING in top-level directory.
BITS=@TARGET_BITS@
CORE_DIRECTORY=@abs_top_builddir@/src/core
CORE_SRC_DIRECTORY=@abs_top_srcdir@/src/core
PPTRACE_DIRECTORY=@abs_top_srcdir@/src/pptrace
TEST_DIRECTORY=@abs_top_srcdir@/test/pptrace/automatic
ifeq "@HAVE_LIBBFD@" "1"
TESTS=errors binary tracing opcodes wait_open hijack
endif
DEBUG_LEVEL=0
ifeq "@PPTRACE_BINARY_TYPE@" "1"
LIBBIN=-lbfd -lopcodes
else
LIBBIN=-lelf
endif
PPTRACE_DEPS=errors.c\
binary.c
ADDITIONAL_DEPS=$(CORE_SRC_DIRECTORY)/ezt_demangle.c
errors_FLAGS=$(LIBBIN)
errors_DEPS=$(PPTRACE_DEPS)
binary_FLAGS=$(LIBBIN)
binary_DEPS=$(PPTRACE_DEPS)
wait_open_FLAGS=$(LIBBIN)
wait_open_DEPS=$(PPTRACE_DEPS)\
tracing.c
tracing_FLAGS=$(LIBBIN)
tracing_DEPS=$(PPTRACE_DEPS)\
tracing.c
opcodes_FLAGS=$(LIBBIN)
opcodes_DEPS=$(PPTRACE_DEPS)\
opcodes.c
hijack_FLAGS=$(LIBBIN)
hijack_DEPS= $(PPTRACE_DEPS)\
opcodes.c\
tracing.c\
hijack.c\
memory.c\
isize.c
TESTCASES_=$(patsubst %.c,%,$(wildcard $(TEST_DIRECTORY)/testcase/*.c))
TESTCASES=$(foreach testcase,$(TESTCASES_),$(foreach b,$(BITS),$(testcase).$(b) $(testcase).$(b).so))
TESTS_CHECK=$(foreach test,$(TESTS),$(test).check)
CFLAGS = -O0 -g -I$(PPTRACE_DIRECTORY) -I$(CORE_DIRECTORY) -I$(CORE_SRC_DIRECTORY) -D__PPTRACE_DEBUG_LEVEL=$(DEBUG_LEVEL)
.PHONY: check testcase
all:
distdir:
check: testcase $(TESTS)
testcase:
@make -C $(TEST_DIRECTORY)/testcase BITS='$(BITS)'
%.check: %
@echo -n " *** RUNNING TEST $<... "
@./$<.test || (echo "FAILED!"; false)
@echo "OK"
%:: $(TEST_DIRECTORY)/%.c
@echo CC $@
@$(CC) $(CFLAGS) $^ $(foreach d,$($@_DEPS),$(PPTRACE_DIRECTORY)/$d) $(ADDITIONAL_DEPS) -o $@ $($@_FLAGS)
@echo "#!/bin/sh" >$@.test
@echo "cd $$PWD" >>$@.test
@echo './$@ ${TESTCASES} $$*' >>$@.test
@echo 'RES=$$?' >>$@.test
@echo 'cd - >/dev/null' >>$@.test
@echo 'exit $$RES'>>$@.test
@chmod +x $@.test
install:
installcheck:
uninstall:
distclean: clean
clean:
@rm -f $(TESTS) $(foreach d,$(TESTS),$d.test)
@if [ -d $(TEST_DIRECTORY)/testcase ] ; then make -C $(TEST_DIRECTORY)/testcase BITS='$(BITS)' clean ; fi
|