CC=gcc
CFLAGS = 
INCLUDES = -I/usr/local/include
LIBS = -L/usr/local/lib
RM = rm -f
RMDIR = rmdir
OUTDIR = out
TARGET = $(OUTDIR)/program.exe
TESTTARGET = $(OUTDIR)/test.exe
OBJS = $(OUTDIR)/functions.o
REALOBJS = $(OBJS) $(OUTDIR)/main.o
TESTOBJS = $(OBJS) $(OUTDIR)/testmain.o $(OUTDIR)/tests.o


all: $(OUTDIR) $(TARGET)

test: $(OUTDIR) $(TESTTARGET)

$(OUTDIR):
	mkdir $(OUTDIR)
	

$(TARGET): $(REALOBJS)
	$(CC) -o $@ $(REALOBJS) $(LIBS)

$(TESTTARGET): $(TESTOBJS)
	$(CC) -o $@ $(TESTOBJS) $(LIBS) -lcunit


$(OUTDIR)/%.o: %.c
	$(CC) $(CFLAGS) $(INCLUDES) -c -o $@ $<

clean:
	-$(RM) $(TARGET) $(TESTTARGET) $(REALOBJS) $(TESTOBJS)
	-$(RMDIR) $(OUTDIR)

.PHONY: clean all
