# -*-Makefile-*-
libflash_test_test_ipmi_hiomap_SOURCES = \
	libflash/test/test-ipmi-hiomap.c \
	libflash/test/stubs.c \
	libflash/ipmi-hiomap.c

libflash_test_test_blocklevel_SOURCES = \
	libflash/test/test-blocklevel.c \
	libflash/test/stubs.c

libflash_test_test_flash_SOURCES = \
	libflash/test/test-flash.c \
	libflash/test/stubs.c \
	libflash/test/mbox-server.c

libflash_test_test_ecc_SOURCES = \
	libflash/test/test-ecc.c \
	libflash/test/stubs.c \
	libflash/test/mbox-server.c

libflash_test_test_mbox_SOURCES = \
	libflash/test/test-mbox.c \
	libflash/test/stubs.c \
	libflash/test/mbox-server.c

check_PROGRAMS = \
	libflash/test/test-ipmi-hiomap \
	libflash/test/test-blocklevel \
	libflash/test/test-flash \
	libflash/test/test-ecc \
	libflash/test/test-mbox

TEST_FLAGS = -D__TEST__ -MMD -MP

.PHONY: libflash-check libflash-coverage
libflash-check: $(check_PROGRAMS:%=%-check)
libflash-coverage: $(check_PROGRAMS:%=%-gcov-run)
clean: libflash-test-clean
check: libflash-check
coverage: libflash-coverage
strict-check: TEST_FLAGS += -D__STRICT_TEST__
strict-check: check

LCOV_EXCLUDE += $(check_PROGRAMS:%=%.c)

$(check_PROGRAMS:%=%-check) : %-check : %
	$(call QTEST, RUN-TEST , $(VALGRIND) $<, $<)

# Transform a prerequisite into something approximating a variable name. This
# is used to map check_PROGRAMS prerequisits to the corresponding _SOURCES
# variable.
#
# For example:
#
#   $(call prereq2var,libflash/test/test-mbox)
#
# Will output:
#
#   'libflash_test_test_mbox'
#
prereq2var = $(subst /,_,$(subst -,_,$(1)))

# Generate prerequisites from a target based on the target's corresponding
# _SOURCES variable.
#
# For example, with:
#
#   libflash_test_test_mbox_SOURCES = \
#       libflash/test/test-mbox.c \
#       libflash/test/stubs.c \
#       libflash/test/mbox-server.c
#   HOST_TRIPLE = x86_64-linux-gnu
#
# A call to target2prereq where the target is libflash/test/test-mbox:
#
#   $(call target2prereq,$@,$(HOST_TRIPLE)/)
#
# Will output:
#
#   x86_64-linux-gnu/libflash/test/test-mbox.o
#   x86_64-linux-gnu/libflash/test/stubs.o
#   x86_64-linux-gnu/libflash/test/mbox-server.o
target2prereq = $(patsubst %.c,%.o,$(addprefix $(2),$($(call prereq2var,$(1))_SOURCES)))

# Generate path stems for all applications in check_PROGRAMS. This is usef
#
# For example, with:
#
#   libflash_test_test_mbox_SOURCES = \
#       libflash/test/test-mbox.c \
#       libflash/test/stubs.c \
#       libflash/test/mbox-server.c
#   libflash_test_test_ecc_SOURCES = \
#       libflash/test/test-ecc.c \
#       libflash/test/stubs.c \
#       libflash/test/mbox-server.c
#   check_PROGRAMS = libflash/test/test-mbox libflash/test/test-ecc
#   HOST_TRIPLE = x86_64-linux-gnu
#
# A call to:
#
#   $(call objstem,$(check_PROGRAMS),$(HOST_TRIPLE)/)
#
# Will output:
#
#   x86_64-linux-gnu/libflash/test/test-mbox
#   x86_64-linux-gnu/libflash/test/stubs
#   x86_64-linux-gnu/libflash/test/mbox-server
#   x86_64-linux-gnu/libflash/test/test-ecc
#   x86_64-linux-gnu/libflash/test/stubs
#   x86_64-linux-gnu/libflash/test/mbox-server
objstem = $(patsubst %.c,%,$(addprefix $(2),$(foreach bin,$(1),$($(call prereq2var,$(bin))_SOURCES))))

# Record the host platform triple to separate test vs production objects.
HOST_TRIPLE = $(shell $(HOSTCC) -dumpmachine)

# Mirror the skiboot directory structure under a directory named after the host
# triple in the skiboot root directory, and place the built objects in this
# mirrored structure.
$(HOST_TRIPLE)/%.o : %.c
	@mkdir -p $(dir $@)
	$(call Q, HOSTCC ,$(HOSTCC) $(HOSTCFLAGS) $(TEST_FLAGS) -Wno-suggest-attribute=const -g -c -o $@ $<, $@)

# Use GNU make metaprogramming dynamically define targets and prequisites for
# binaries listed in check_PROGRAMS.
#
# Secondary expansion[1] allows us to use the target automatic variable ($@) in
# the prequisite list. Knowing the target we can map to the corresponding
# _SOURCES variable to learn what to build and link. Finally, make sure the
# artifacts are output under the $(HOST_TRIPLE) directory to separate them from
# objects intended for skiboot proper.
#
# [1] https://www.gnu.org/software/make/manual/html_node/Secondary-Expansion.html#Secondary-Expansion
.SECONDEXPANSION:
$(check_PROGRAMS) : $$(call target2prereq,$$@,$(HOST_TRIPLE)/)
	$(call Q, HOSTCC , $(HOSTCC) $(HOSTCFLAGS) $(TEST_FLAGS) -Wno-suggest-attribute=const -O0 -g -o $@ $^, $@)

.PHONY: libflash-test-clean
libflash-test-clean: OBJ_STEMS = $(call objstem,$(check_PROGRAMS),$(HOST_TRIPLE)/)
libflash-test-clean: libflash-test-gcov-clean
	$(RM) $(check_PROGRAMS)
	$(RM) $(OBJ_STEMS:%=%.o)
	$(RM) $(OBJ_STEMS:%=%.d)

# gcov support: Build objects under $(HOST_TRIPLE)/gcov/
$(check_PROGRAMS:%=%-gcov-run) : %-run: %
	$(call QTEST, TEST-COVERAGE ,$< , $<)

$(HOST_TRIPLE)/gcov/%.o : %.c
	@mkdir -p $(dir $@)
	$(call Q, HOSTCC ,$(HOSTCC) $(HOSTCFLAGS) $(HOSTGCOVCFLAGS) $(TEST_FLAGS) -Wno-suggest-attribute=const -g -c -o $@ $<, $@)

.SECONDEXPANSION:
$(check_PROGRAMS:%=%-gcov) : $$(call target2prereq,$$(patsubst %-gcov,%,$$@),$(HOST_TRIPLE)/gcov/)
	$(call Q, HOSTCC , $(HOSTCC) $(HOSTCFLAGS) $(HOSTGCOVCFLAGS) $(TEST_FLAGS) -Wno-suggest-attribute=const -O0 -g -o $@ $^, $@)

.PHONY: libflash-test-gcov-clean
libflash-test-gcov-clean: GCOV_OBJ_STEMS = $(call objstem,$(check_PROGRAMS),$(HOST_TRIPLE)/gcov/)
libflash-test-gcov-clean:
	$(RM) $(check_PROGRAMS:%=%-gcov)
	$(RM) $(GCOV_OBJ_STEMS:%=%.o)
	$(RM) $(GCOV_OBJ_STEMS:%=%.d)
	$(RM) $(GCOV_OBJ_STEMS:%=%.gcda)
	$(RM) $(GCOV_OBJ_STEMS:%=%.gcno)

-include $(patsubst %,%.d,$(call objstem,$(check_PROGRAMS),$(HOST_TRIPLE)/))
-include $(patsubst %,%.d,$(call objstem,$(check_PROGRAMS),$(HOST_TRIPLE)/gcov/))
