# Last edited on 2023-10-23 10:01:56 by stolfi PROGDIR := .. PROG := make-weave-pattern.py LIBS := # Test arguments are separated by '/' # Each underscore in the arguments will be replaced by a space. TESTS := \ A/7/5/16 ALL_TESTS := \ A/7/9/16 all: all-tests all-tests: for tt in ${addprefix ',${addsuffix ',${TESTS}}} ; do \ ${MAKE} TEST_ARGS="$$tt" single-test; \ done ###################################################################### # Recursive make; the caller must define ${TEST_ARGS}. ifneq "/${TEST_ARGS}" "/" TEST_FIELDS := ${subst /, ,${TEST_ARGS}} NAME := ${word 1, ${TEST_FIELDS}} QX := ${word 2, ${TEST_FIELDS}} QY := ${word 3, ${TEST_FIELDS}} NB := ${word 4, ${TEST_FIELDS}} OUTDIR := out OUTNAME := ${OUTDIR}/${NAME} OUTHEIGHT := ${OUTNAME}.pgm OUTCOLORS := ${OUTNAME}.ppm single-test: ${OUTFILE} FULL_PROG := ${PROGDIR}/${PROG} FULL_LIBS := ${addprefix ${PROGDIR}/, ${LIBS}} single-test: ${OUTCOLORS} ${OUTHEIGHT} ${OUTCOLORS}: ${OUTHEIGHT} ${OUTHEIGHT}: ${FULL_PROG} ${FULL_LIBS} Makefile -mkdir -p ${OUTDIR} -rm -f ${OUTCOLORS} ${OUTHEIGHT} ${PROGDIR}/${PROG} \ ${addprefix -m , ${FULL_LIBS}} \ ${OUTNAME} ${QX} ${QY} ${NB} @if [[ ! -s ${OUTHEIGHT} ]]; then \ echo "** failed to create ${OUTHEIGHT}"; exit 1; \ fi @if [[ ! -s ${OUTCOLORS} ]]; then \ echo "** failed to create ${OUTCOLORS}"; exit 1; \ fi -display ${OUTCOLORS} ${OUTHEIGHT} endif # End of ${TEST} section. ######################################################################