CC = g++
CFLAGS = -Wall
LDFLAGS = 
OBJECTS = stack.o
TESTS = teststack.o

all: program

main.o: main.cpp stack.h
	@echo "creating main.o";
	@$(CC) -c $(CFLAGS) $(LDFLAGS) -o main.o main.cpp
stack.o: stack.cpp stack.h
	@echo "creating stack.o"; 
	@$(CC) -c $(CFLAGS) $(LDFLAGS) -o stack.o stack.cpp

test.o: test.cpp
	@echo "creating test.o"; 
	@$(CC) -c $(CFLAGS) $(LDFLAGS) -o test.o test.cpp

teststack.o: teststack.cpp
	@echo "creating teststack.o"; 
	@$(CC) -c $(CFLAGS) $(LDFLAGS) -o teststack.o teststack.cpp

program: $(OBJECTS) main.o
	@$(CC) $(CFLAGS) $(LDFLAGS) -o program main.o $(OBJECTS)

test: $(OBJECTS) $(TESTS) test.o
	@$(CC) $(CFLAGS) $(LDFLAGS) -o test test.o $(OBJECTS) $(TESTS) -lcppunit

clean:
	@rm -f *.o;
	@rm -f program;
	@rm -f test;

