#!/bin/sh -e
redo-ifchange config/cxx config/cxxflags config/cppflags
read cxx < config/cxx
read cxxflags < config/cxxflags
read cppflags < config/cppflags
if g++ -E --usage >/dev/null 2>&1
then
	redo-ifdelete -- "$(command -v g++)"
	${cxx} ${cxxflags} ${cppflags} -o "$1" -c "$2"
	g++ -E ${cxxflags} ${cppflags} "$2" --Hredo --Hredofile "$3" >/dev/null || true
	. "$3" || true
else
        ${cxx} ${cxxflags} ${cppflags} -o "$1" -c "$2" -MMD -MF "$3" 
        sed -e "s!^$1: *!!" -e 's/\\$//g' "$3" | xargs -r redo-ifchange --
fi
