CXX = g++
CFLAGS = -Wall -ansi -g -pedantic
LDFLAGS = -lSDL -lSDL_image -lSDL_ttf -lSDL_mixer -lboost_filesystem
OUTPUT = Shoot_em_up

all: $(OUTPUT)

Colour.o: Colour.cpp Colour.hpp global.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

Time_Manager.o: Time_Manager.cpp Time_Manager.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

Keyboard.o: Keyboard.cpp Keyboard.hpp global.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

Texture.o: Texture.cpp Texture.hpp Colour.hpp global.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

Animation.o: Animation.cpp Animation.hpp global.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

Visualisation.o: Visualisation.cpp Visualisation.hpp Colour.hpp exception.hpp global.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

TextRender.o: TextRender.cpp TextRender.hpp global.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

Sound.o: Sound.cpp Sound.hpp global.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

menu.o: menu.cpp menu.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

World.o: World.cpp World.hpp Highscore.hpp global.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

Level.o: Level.cpp Level.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

UI.o: UI.cpp UI.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

Background.o: Background.cpp Background.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

World_Entities.o: World_Entities.cpp World_Entities.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

Player.o: Player.cpp Player.hpp global.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

Interpolation.o: Interpolation.cpp Interpolation.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

Position.o: Position.cpp Position.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

Collision.o: Collision.cpp Collision.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

Ship1.o: Ship1.cpp Ship1.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

Ship2.o: Ship2.cpp Ship2.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

Ship3.o: Ship3.cpp Ship3.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

Bullet.o: Bullet.cpp Bullet.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

Bullet1.o: Bullet1.cpp Bullet1.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

Bullet2.o: Bullet2.cpp Bullet2.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

Bullet3.o: Bullet3.cpp Bullet3.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

Explosion.o: Explosion.cpp Explosion.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

Output.o: Output.cpp Output.hpp
	$(CXX) -o $@ $(CFLAGS) -c $<

$(OUTPUT): main.cpp Output.o Colour.o Time_Manager.o Keyboard.o Texture.o Animation.o Visualisation.o TextRender.o Sound.o menu.o Background.o Player.o Position.o Interpolation.o Collision.o Ship1.o Ship2.o Ship3.o Bullet.o Bullet1.o Bullet2.o Bullet3.o Explosion.o World_Entities.o Level.o UI.o World.o
	$(CXX) -o $@ $(CFLAGS) $(LDFLAGS) $^

clean :
	rm -f *.o $(OUTPUT) *~

install :
	mv Shoot_em_up ..


