CFLAGS += -std=c99 -pedantic -Wall -rdynamic
ALL_CFLAGS = -I../../libfiu/ -L../../libfiu/ \
-D_XOPEN_SOURCE=600 -D_GNU_SOURCE -fPIC -DFIU_ENABLE=1 $(CFLAGS)
ifdef DEBUG
ALL_CFLAGS += -g
endif
ifdef PROFILE
ALL_CFLAGS += -g -pg -fprofile-arcs -ftest-coverage
endif
ifneq ($(V), 1)
NICE_CC = @echo " CC $@"; $(CC)
NICE_RUN = @echo " RUN $<"; \
LD_LIBRARY_PATH=../../libfiu/ \
LD_PRELOAD="../../preload/run/fiu_run_preload.so \
../../preload/posix/fiu_posix_preload.so"
NICE_GEN = @echo " GEN $@"; ./generate-test
else
NICE_CC = $(CC)
NICE_RUN = LD_LIBRARY_PATH=../../libfiu/ \
LD_PRELOAD="../../preload/run/fiu_run_preload.so \
../../preload/posix/fiu_posix_preload.so"
NICE_GEN = ./generate-test
endif
default: tests
all: tests
CONF := $(wildcard tests/*.conf)
GEN_BIN := $(patsubst %.conf,%.bin,$(CONF))
tests: $(patsubst %,%-run,$(GEN_BIN))
%-run: %
$(NICE_RUN) ./$<
# .bin from .c
%.bin: %.c build-flags
$(NICE_CC) $(ALL_CFLAGS) $< -lfiu -o $@
# .c from .conf
%.c: %.conf generate-test
$(NICE_GEN) -c $< -o $@
# Useful for manually generating the C-files, that otherwise get deleted as
# intermediates.
c-files: $(patsubst %.conf,%.c,$(CONF))
BF = $(ALL_CFLAGS) ~ $(PREFIX)
build-flags: .force-build-flags
@if [ x"$(BF)" != x"`cat build-flags 2>/dev/null`" ]; then \
if [ -f build-flags ]; then \
echo "build flags changed, rebuilding"; \
fi; \
echo "$(BF)" > build-flags; \
fi
#
# Cleanup
#
clean:
rm -f $(GEN_BIN) $(patsubst %.bin,%.c,$(GEN_BIN))
rm -f *.bb *.bbg *.da *.gcov *.gcda *.gcno gmon.out build-flags
FORCE:
.PHONY: default all clean \
tests c-tests py-tests \
.force-build-flags