CC=gcc LD=ld SOURCES=$(wildcard test_*.c) OBJS=$(patsubst %.c,%.o, $(SOURCES)) BINARIES=$(patsubst %.o, %, $(OBJS)) DEPS=$(wildcard ../*.o) all: checks checks: $(BINARIES) $(SOURCES) for test_bin in $(BINARIES); do echo "Running $${test_bin}.c"; ./$$test_bin && echo "OK" || echo "fail"; done ../%.o: make -C .. %.o: %.c $(CC) -I.. $(CFLAGS) -c -o $@ $< test_%: test_%.o ../rpn_lib.o ../rpn_jit.o ../rpn_parse.o ../rpn_if.o ../rpn_if_default.o $(CC) -I.. $(CFLAGS) -o $@ $^ .PHONY: clean clean: -rm -v $(BINARIES) $(OBJS)