# /usr/share/doc/bliss/examples/Makefile
#
# Ad hoc Makefile for building and playing with the sample sources
# distributed within the debian package bliss.
#
# Recommended usage:
#  create a dedicated folder somewhere in your HOME directory;
#  link all the files in /usr/share/doc/bliss/examples in the dedicated folder;
#  launch this Makefile in the dedicated folder:
#  $ make
#  for a basic cleanup, consider the clean target:
#  $ make clean
#  for an entire cleanup, the maintainer-clean target:
#  $ make maintainer-clean
#  for other targets, just read the Makefile.
#
# written for Debian by Jerome Benoit <calculus@rezozer.net>
# on behalf of the Debian Science Team
# copyright: 2016-2023 Jerome Benoit <calculus@rezozer.net>
# distributed under the terms and conditions of GPL version 3 or later
#

SHELL=/bin/bash

default: all

PROGRAMS = \
	$(patsubst %.cc,%,$(wildcard *.cc))

RESULTFILES = \
	$(patsubst %.col,%-col.result,$(wildcard *.col)) \
	enumerate.result

DIFFFILES = \
	$(patsubst %.output,%.diff,$(wildcard *.output))

CXXFLAGS = $(shell pkg-config libbliss-cxx --cflags)
LDXXLIBS = $(shell pkg-config libbliss-cxx --libs)

CXXFLAGS += -Wall -g

all: build check

build: $(PROGRAMS)

checkclean:
	$(RM) $(DIFFFILES) $(RESULTFILES)

check-run: $(RESULTFILES)

check-res: $(DIFFFILES)

check: checkclean check-run check-res

clean: checkclean
	$(RM) $(PROGRAMS)

maintainer-clean: clean

% : %.cc
	$(CXX) $(CPPFLAGS) $(CXXFLAGS) -o $@ $< $(LDXXLIBS)

%-col.result : %.col bliss
	@echo "===8><--- $< ---"
	( set -o pipefail ; ./bliss $< | tee $@ )
	@echo "----------><8==="
	@echo

enumerate.result : enumerate
	@echo "===8><--- $< ---"
	( set -o pipefail ; ./enumerate | tee $@ )
	@echo "----------><8==="
	@echo

%.diff : %.result %.output
	@echo "===8><--- $* ---"
	( set -o pipefail ; diff -N $^ | tee $@ )
	@echo "----------><8==="
	@echo

.PRECIOUS: %.result

.DELETE_ON_ERROR:

.NOTPARALLEL:
