OUT=libscomp.a VERSION=0.1.0 TESTS=test/input test/exec all: $(OUT) libscomm_amalg.c libscomm_amalg.h $(OUT): input.o exec.o $(AR) rcs $(OUT) input.o exec.o tests: $(TESTS) for i in $(TESTS); do ./$$i -v; done libscomm_amalg.h: exec.h input.h echo '#pragma once' > libscomm_amalg.h echo '#define LIBSCOMM_VERSION "${VERSION}"' >> libscomm_amalg.h cat input.h exec.h | \ sed 's/#pragma .*//g; s/#include ".*//g' \ >> libscomm_amalg.h libscomm_amalg.c: exec.c input.c echo '#include "libscomm_amalg.h"' > libscomm_amalg.c cat exec.c input.c | sed 's/#include ".*//g' \ >> libscomm_amalg.c TEST_EXEC=test/exec.o exec.o test/exec: $(TEST_EXEC) $(CC) -Wall $(TEST_EXEC) -o test/exec TEST_INPUT=test/input.o input.o test/input: $(TEST_INPUT) $(CC) -Wall $(TEST_INPUT) -o test/input .c.o: $(CC) -g -std=c89 -Wall -c $< -o $@ clean: $(RM) $(TESTS) $(OUT) *.o