SOMETHING_TEST_ROOT := $(dir $(lastword $(MAKEFILE_LIST))) .PHONY: something_test_clean complete_test: $(SOMETHING_TEST_ROOT)test_done $(SOMETHING_TEST_ROOT)test_done: $(SOMETHING_TEST_ROOT)test.P ./blabla.hpp $(CC) $(CFLAGS) $(SOMETHING_TEST_ROOT)test.cpp -o $(SOMETHING_TEST_ROOT)a.out @$(SOMETHING_TEST_ROOT)a.out @if [ "`$(SOMETHING_TEST_ROOT)a.out | diff -q - $(SOMETHING_TEST_ROOT)good`" ]; then echo "[UNITTEST] something TEST FAILED"; else touch $(SOMETHING_TEST_ROOT)test_done; fi clean: something_test_clean something_test_clean: rm -f $(SOMETHING_TEST_ROOT)test_done rm -f $(SOMETHING_TEST_ROOT)a.out