SRCDIR=src
LIBDIR=lib
BINDIR=bin
TESTDIR = test
INCLUDEDIR=include
CC = gcc
AR = ar
CFLAGS=-Wall -pedantic -g
LDFLAGS=-lcunit -lm -lc
EXEC=$(BINDIR)/calc
TESTS=$(TESTDIR)/test_calc

all :   $(EXEC) $(TESTS)

$(EXEC) : $(SRCDIR)/main.o $(SRCDIR)/calc.o $(SRCDIR)/stringext.o
	$(CC)  -o $@ $^ $(LDFLAGS)

$(TESTS) : $(SRCDIR)/test_calc.o $(SRCDIR)/stringext.o
	$(CC)  -o $@ $^ $(LDFLAGS)

$(SRCDIR)/%.o : $(SRCDIR)/%.c
	$(CC) -o $@ -c $< $(CFLAGS) -I$(INCLUDEDIR)

$(SRCDIR)/test_%.o : $(SRCDIR)/test_%.c $(SRCDIR)/%.c
	$(CC) -o $@ -c $< $(CFLAGS) -I$(INCLUDEDIR)

clean :
	rm -rf $(BINDIR)/*
	rm -rf $(TESTDIR)/*
	rm -rf $(LIBDIR)/*
	rm -rf $(SRCDIR)/*.o
