# Quick and dirty makefile
SOURCES=asteroid.cpp output.cpp commonplayer.cpp connection.cpp game.cpp gamestatus.cpp exampleplayer.cpp gameobject.cpp objectmanager.cpp scheduler.cpp debuglogger.cpp console.cpp konstanten.cpp
OBJECTS=$(SOURCES:.cpp=.o)
CFLAGS=-DWINDOWS -DNOMINMAX -D__USE_W32_SOCKETS 
LDFLAGS=-lws2_32

BINNAME=Asteraider

all: $(BINNAME)
debug: $(BINNAME)dbg

$(BINNAME): $(OBJECTS)
	g++ $(CFLAGS) $(OBJECTS) $(LDFLAGS) -o $(BINNAME)

$(BINNAME)dbg: $(OBJECTS)
	g++ -DDEBUG $(CFLAGS) $(OBJECTS) $(LDFLAGS) -o $(BINNAME)dbg 

asteroid.o: asteroid.cpp
	g++ $(CFLAGS) -c asteroid.cpp -o asteroid.o
            
output.o: output.cpp output.h
	g++ $(CFLAGS) -c output.cpp -o output.o

commonplayer.o: commonplayer.cpp commonplayer.h konstanten.h
	g++ $(CFLAGS) -c commonplayer.cpp -o commonplayer.o

connection.o: connection.cpp connection.h 
	g++ $(CFLAGS) -c connection.cpp -o connection.o

game.o: game.cpp game.h konstanten.h
	g++ $(CFLAGS) -c game.cpp -o game.o

gamestatus.o: gamestatus.cpp gamestatus.h konstanten.h
	g++ $(CFLAGS) -c gamestatus.cpp -o gamestatus.o

exampleplayer.o: exampleplayer.cpp exampleplayer.h konstanten.h
	g++ $(CFLAGS) -c exampleplayer.cpp -o exampleplayer.o

gameobject.o: gameobject.cpp gameobject.h konstanten.h
	g++ $(CFLAGS) -c gameobject.cpp -o gameobject.o

objectmanager.o: objectmanager.cpp objectmanager.h konstanten.h
	g++ $(CFLAGS) -c objectmanager.cpp -o objectmanager.o
	
scheduler.o: scheduler.cpp scheduler.h objectmanager.h gameobject.h konstanten.h
	g++ $(CFLAGS) -c scheduler.cpp -o scheduler.o

debuglogger.o: debuglogger.cpp debuglogger.h
	g++ $(CFLAGS) -c debuglogger.cpp -o debuglogger.o

console.o: console.cpp console.h
	g++ $(CFLAGS) -c console.cpp -o console.o
	
konstanten.o: konstanten.cpp konstanten.h
	g++ $(CFLAGS) -c konstanten.cpp -o konstanten.o
	
clean:
	rm -f $(BINNAME)
	rm -f *.gch
	rm -f *.o
