#---*- Makefile -*-------------------------------------------------------
#$Author: saulius $
#$Date: 2017-05-14 14:06:43 +0300 (Sun, 14 May 2017) $
#$Revision: 3521 $
#$URL: svn+ssh://saulius-grazulis.lt/home/saulius/svn-repositories/paskaitos/VU/software/trunk/bioinformatika-III-assignments/Makefile $
#------------------------------------------------------------------------

# Generate individual dependencies for each test.

TEST_DIR ?= tests/cases
OUTP_DIR ?= tests/outputs

TEST_CASES_INP ?= $(wildcard ${TEST_DIR}/*.inp)
TEST_CASES_OPT ?= $(wildcard ${TEST_DIR}/*.opt)
TEST_CASES_SH  ?= $(wildcard ${TEST_DIR}/*.sh)

OUTPUTS ?= $(sort \
	${TEST_CASES_INP:${TEST_DIR}/%.inp=${OUTP_DIR}/%.out} \
	${TEST_CASES_OPT:${TEST_DIR}/%.opt=${OUTP_DIR}/%.out} \
	${TEST_CASES_SH:${TEST_DIR}/%.sh=${OUTP_DIR}/%.out})

DIFFS   ?= ${OUTPUTS:%.out=%.diff}

#------------------------------------------------------------------------------
# Library sources and libraries:

EXE_DIR ?= exe
LIB_DIR ?= lib

SRC_DIR ?= src
LIB_SRC_DIRS  ?= $(wildcard ${SRC_DIR}/*)

LIBS ?= ${LIB_SRC_DIRS:${SRC_DIR}/%=${LIB_DIR}/%.dll}

#------------------------------------------------------------------------------

DEPENDS ?= ${DIFFS:${OUTP_DIR}/%.diff=${OUTP_DIR}/.%.d}

include ${DEPENDS}

${OUTP_DIR}/.%.d:
	date +"# %F %T %Z" > $@
	echo $* \
	| perl -lne " \
		chomp; \
		\$$s = \$$_; \
		\$$s =~ /(.*)_\d+/; \
		print \"${OUTP_DIR}/\".\$$_.\".diff\", \": \", \
		      \"${EXE_DIR}/\".\$$1.\".exe\"" \
	>> $@
	echo $* \
	| perl -lne " \
		chomp; \
		\$$s = \$$_; \
		\$$s =~ /(.*)_\d+/; \
		print \"${OUTP_DIR}/\".\$$_.\".diff\", \": \", \
		      \"${LIBS}\"" \
	>> $@
