main: shape.o circle.o triangle.o rect.o main.o listshapes.o
	g++ $^ -o main

shape.o : shape.cpp shape.h
	g++ -c shape.cpp -o shape.o

circle.o : circle.cpp circle.h shape.h
	g++ -c circle.cpp -o circle.o

rect.o : rect.cpp rect.h shape.h
	g++ -c rect.cpp -o rect.o

triangle.o : triangle.cpp triangle.h shape.h
	g++ -c triangle.cpp -o triangle.o

listshapes.o : listshapes.cpp listshapes.h shape.h
	g++ -c listshapes.cpp -o listshapes.o

main.o : main.cpp listshapes.h shape.h circle.h rect.h triangle.h
	g++ -c main.cpp -o main.o

