CC            = gcc
CFLAGS        =
SOURCES       = jacobi_functions.c jacobi_main.c
SOURCES_TEST  = run_test.c jacobi_functions.c
OBJS         := $(SOURCES:.c=.o)
OBJS_TEST     = $(SOURCES_TEST:.c=.o)
TARGET        = jacobi

$(TARGET) : $(OBJS)
	$(CC) $^  -g -o $@

%.o : %.c %.h
	$(CC) -c -g -o $@ $< $(CFLAGS)


test: $(TARGET) run_test 

run_test: $(OBJS_TEST)
	$(CC) $^ -o $@
	@./run_test
	@echo ""
	@./$(TARGET) 10 5 > /dev/null
	@cmp -s solution_test.dat solution.dat; \
	RETVAL=$$?; \
	if [ $$RETVAL -eq 0 ]; then \
		echo " Integration test: passed!"; \
	else \
		echo " Integration test: failed!"; \
	fi
    
.PHONY: clean run_test
clean:
	rm -rf *.o $(TARGET) run_test
