# Project: Wurmz!

CC   = gcc
OBJ  = obj/game.o obj/network.o obj/packet.o obj/client.o obj/server.o\
       obj/engine.o obj/input.o obj/weapons.o obj/gfx.o obj/player.o\
       obj/init.o obj/sound.o obj/loadpng.o obj/rules.o obj/render.o\
       obj/netio.o obj/maths.o obj/ai.o obj/items.o obj/demos.o obj/console.o\
       obj/ai_waypt.o obj/ai_st_enemy.o obj/ai_st_none.o obj/ai_st_run.o\
       obj/2xsai.o obj/viewports.o obj/it_medikit.o obj/it_weappack.o\
       obj/it_flag.o obj/it_domflag.o obj/it_pad.o obj/level.o obj/ai_lua.o\
       obj/ai_lua_wrap.o $(RES)
LIBS = `allegro-config --libs release` -lpng -lz
INCS =  -Iinclude -I/usr/include -I/usr/include/lua50

ifdef DEBUG

LIBS =  -lagl `allegro-config --libs debug` -lpng -lz -lfmod-3.73 -llua50 -llualib50
BIN  = WurmzD
CFLAGS = $(INCS)  -g3

else

LIBS =  -lGLU -lGL -lagl `allegro-config --libs release` -lpng -lz -lfmod-3.73 -llua50 -llualib50
BIN  = Wurmz
CFLAGS = $(INCS)  -s -O3 -funroll-loops -march=i686 -fomit-frame-pointer

endif

.PHONY: clean

all: $(BIN)

clean:
	rm -f $(OBJ) $(BIN)

$(BIN): $(OBJ)
	$(CC) $(OBJ) -o "$(BIN)" $(LIBS) $(CFLAGS)

obj/game.o: src/game.cpp
	$(CC) -c src/game.cpp -o obj/game.o $(CFLAGS)

obj/network.o: src/network.cpp
	$(CC) -c src/network.cpp -o obj/network.o $(CFLAGS)

obj/packet.o: src/packet.cpp
	$(CC) -c src/packet.cpp -o obj/packet.o $(CFLAGS)

obj/client.o: src/client.cpp
	$(CC) -c src/client.cpp -o obj/client.o $(CFLAGS)

obj/server.o: src/server.cpp
	$(CC) -c src/server.cpp -o obj/server.o $(CFLAGS)

obj/engine.o: src/engine.cpp
	$(CC) -c src/engine.cpp -o obj/engine.o $(CFLAGS)

obj/input.o: src/input.cpp
	$(CC) -c src/input.cpp -o obj/input.o $(CFLAGS)

obj/weapons.o: src/weapons.cpp
	$(CC) -c src/weapons.cpp -o obj/weapons.o $(CFLAGS)

obj/gfx.o: src/gfx.cpp
	$(CC) -c src/gfx.cpp -o obj/gfx.o $(CFLAGS)

obj/player.o: src/player.cpp
	$(CC) -c src/player.cpp -o obj/player.o $(CFLAGS)

obj/init.o: src/init.cpp
	$(CC) -c src/init.cpp -o obj/init.o $(CFLAGS)

obj/sound.o: src/sound.cpp
	$(CC) -c src/sound.cpp -o obj/sound.o $(CFLAGS)

obj/loadpng.o: src/loadpng.cpp
	$(CC) -c src/loadpng.cpp -o obj/loadpng.o $(CFLAGS)

obj/rules.o: src/rules.cpp
	$(CC) -c src/rules.cpp -o obj/rules.o $(CFLAGS)

obj/render.o: src/render.cpp
	$(CC) -c src/render.cpp -o obj/render.o $(CFLAGS)

obj/netio.o: src/netio.cpp
	$(CC) -c src/netio.cpp -o obj/netio.o $(CFLAGS)

obj/maths.o: src/maths.cpp
	$(CC) -c src/maths.cpp -o obj/maths.o $(CFLAGS)

obj/ai.o: src/ai.cpp
	$(CC) -c src/ai.cpp -o obj/ai.o $(CFLAGS)

obj/items.o: src/items.cpp
	$(CC) -c src/items.cpp -o obj/items.o $(CFLAGS)

obj/demos.o: src/demos.cpp
	$(CC) -c src/demos.cpp -o obj/demos.o $(CFLAGS)

obj/console.o: src/console.cpp
	$(CC) -c src/console.cpp -o obj/console.o $(CFLAGS)

obj/ai_waypt.o: src/ai_waypt.cpp
	$(CC) -c src/ai_waypt.cpp -o obj/ai_waypt.o $(CFLAGS)

obj/ai_st_enemy.o: src/ai_st_enemy.cpp
	$(CC) -c src/ai_st_enemy.cpp -o obj/ai_st_enemy.o $(CFLAGS)

obj/ai_st_none.o: src/ai_st_none.cpp
	$(CC) -c src/ai_st_none.cpp -o obj/ai_st_none.o $(CFLAGS)

obj/ai_st_run.o: src/ai_st_run.cpp
	$(CC) -c src/ai_st_run.cpp -o obj/ai_st_run.o $(CFLAGS)

obj/2xsai.o: src/2xsai.cpp
	$(CC) -c src/2xsai.cpp -o obj/2xsai.o $(CFLAGS)

obj/viewports.o: src/viewports.cpp
	$(CC) -c src/viewports.cpp -o obj/viewports.o $(CFLAGS)

obj/it_medikit.o: src/it_medikit.cpp
	$(CC) -c src/it_medikit.cpp -o obj/it_medikit.o $(CFLAGS)

obj/it_weappack.o: src/it_weappack.cpp
	$(CC) -c src/it_weappack.cpp -o obj/it_weappack.o $(CFLAGS)

obj/it_flag.o: src/it_flag.cpp
	$(CC) -c src/it_flag.cpp -o obj/it_flag.o $(CFLAGS)

obj/it_domflag.o: src/it_domflag.cpp
	$(CC) -c src/it_domflag.cpp -o obj/it_domflag.o $(CFLAGS)

obj/it_pad.o: src/it_pad.cpp
	$(CC) -c src/it_pad.cpp -o obj/it_pad.o $(CFLAGS)

obj/level.o: src/level.cpp
	$(CC) -c src/level.cpp -o obj/level.o $(CFLAGS)

obj/ai_lua.o: src/ai_lua.cpp
	$(CC) -c src/ai_lua.cpp -o obj/ai_lua.o $(CFLAGS)

obj/ai_lua_wrap.o: src/ai_lua_wrap.cpp
	$(CC) -c src/ai_lua_wrap.cpp -o obj/ai_lua_wrap.o $(CFLAGS)

