# --------------------------------------------------------------------------
# Wizardry Makefile
# Created by Eric Pietrocupo
# --------------------------------------------------------------------------

# -------------------------- defining macros -------------------------------
# Some of these macros can be change to fit your compilation needs
#
# if you are compiling on linux, look for the "LINUX user" Comments
# and follow orders.

# Name of the programm when compiled
WIZNAME = wizardry.exe
#LINUX user : Uncomment line below and comment line above
#WIZNAME = wizardry

# Header directory : Change according to the source location
# point on the header directory of the source code

HEADERS = ./header

# Compilation option : No need to change
# you can remove -O3 flag if you do not want optimization

OPTIONS = -O3 -ffast-math -W

# List of libraries : do not touch this one
# some compiler type library stdcxx as stdc++
# Required libraries
#    - Lib C    (stdcxx): supplied with compiler
#    - Lib Math (m) : supplied with compiler
#    - Allegro  (alleg) : Need to download and build it
#    - Dynamic Database Table (ddt) : My database library to download

#LIBRARIES = -lddt -lalleg -lm -lstdcxx
#LINUX & WINDOWS users : Uncomment line below and comment line above
LIBRARIES = -lddt -lalleg -lm -lstdc++

# additional linker options
LINKOPTIONS = -s 
#LINUX user : Uncomment line below and comment line above
#LINKOPTIONS = -s `allegro-config --libs`

# List of objects : do not touch this one
OBJECTS =  object/accesory.o object/account.o object/armor.o object/camp.o \
object/charactr.o object/city.o object/combat.o object/config.o \
object/encountr.o \
object/ennemy.o object/expandbl.o object/game.o object/item.o object/list.o \
object/manager.o object/maze.o object/menu.o object/opponent.o \
object/option.o object/party.o object/player.o \
object/shield.o object/weapon.o object/windata.o \
object/window.o object/winempty.o object/wininput.o object/winlist.o \
object/winmenu.o object/winmessa.o object/winquest.o object/wintitle.o \
object/draw.o object/general.o object/global.o object/init.o object/main.o \
object/mazeproc.o object/screen.o object/setup.o object/strmake.o \
object/wdatproc.o object/adventur.o object/race.o object/editor.o object/cclass.o \

all: $(WIZNAME)

$(WIZNAME): $(OBJECTS)
	gcc -o $(WIZNAME) $(OBJECTS) $(LIBRARIES) $(LINKOPTIONS)


object/accesory.o : class/accesory.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/accesory.cpp -o object/accesory.o

object/account.o : class/account.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/account.cpp -o object/account.o

object/adventur.o : class/adventur.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/adventur.cpp -o object/adventur.o

object/armor.o : class/armor.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/armor.cpp -o object/armor.o

object/camp.o : class/camp.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/camp.cpp -o object/camp.o

object/charactr.o : class/charactr.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/charactr.cpp -o object/charactr.o

object/city.o : class/city.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/city.cpp -o object/city.o

object/cclass.o : class/cclass.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/cclass.cpp -o object/cclass.o

object/combat.o : class/combat.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/combat.cpp -o object/combat.o

object/config.o : class/config.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/config.cpp -o object/config.o

#object/database.o : class/database.cpp
#	gcc -I$(HEADERS) $(OPTIONS) -c class/database.cpp -o object/database.o

#object/dbdata.o : class/dbdata.cpp
#	gcc -I$(HEADERS) $(OPTIONS) -c class/dbdata.cpp -o object/dbdata.o

#object/dbobject.o : class/dbobject.cpp
#	gcc -I$(HEADERS) $(OPTIONS) -c class/dbobject.cpp -o object/dbobject.o

#object/dbtag.o : class/dbtag.cpp
#	gcc -I$(HEADERS) $(OPTIONS) -c class/dbtag.cpp -o object/dbtag.o

object/editor.o : class/editor.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/editor.cpp -o object/editor.o

object/encountr.o : class/encountr.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/encountr.cpp -o object/encountr.o

object/ennemy.o : class/ennemy.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/ennemy.cpp -o object/ennemy.o

object/expandbl.o : class/expandbl.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/expandbl.cpp -o object/expandbl.o

object/game.o : class/game.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/game.cpp -o object/game.o

object/item.o : class/item.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/item.cpp -o object/item.o

object/list.o : class/list.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/list.cpp -o object/list.o

object/manager.o : class/manager.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/manager.cpp -o object/manager.o

object/maze.o : class/maze.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/maze.cpp -o object/maze.o

object/menu.o : class/menu.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/menu.cpp -o object/menu.o

object/opponent.o : class/opponent.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/opponent.cpp -o object/opponent.o

object/option.o : class/option.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/option.cpp -o object/option.o

object/party.o : class/party.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/party.cpp -o object/party.o

object/player.o : class/player.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/player.cpp -o object/player.o

object/race.o : class/race.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/race.cpp -o object/race.o

object/shield.o : class/shield.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/shield.cpp -o object/shield.o

object/weapon.o : class/weapon.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/weapon.cpp -o object/weapon.o

object/windata.o : class/windata.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/windata.cpp -o object/windata.o

object/window.o : class/window.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/window.cpp -o object/window.o

object/winempty.o : class/winempty.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/winempty.cpp -o object/winempty.o

object/wininput.o : class/wininput.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/wininput.cpp -o object/wininput.o

object/winlist.o : class/winlist.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/winlist.cpp -o object/winlist.o

object/winmenu.o : class/winmenu.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/winmenu.cpp -o object/winmenu.o

object/winmessa.o : class/winmessa.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/winmessa.cpp -o object/winmessa.o

object/winquest.o : class/winquest.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/winquest.cpp -o object/winquest.o

object/wintitle.o : class/wintitle.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c class/wintitle.cpp -o object/wintitle.o

object/draw.o : code/draw.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c code/draw.cpp -o object/draw.o

object/general.o : code/general.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c code/general.cpp -o object/general.o

object/global.o : code/global.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c code/global.cpp -o object/global.o

object/init.o : code/init.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c code/init.cpp -o object/init.o

object/main.o : code/main.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c code/main.cpp -o object/main.o

object/mazeproc.o : code/mazeproc.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c code/mazeproc.cpp -o object/mazeproc.o

object/screen.o : code/screen.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c code/screen.cpp -o object/screen.o

object/setup.o : code/setup.c
	gcc -I$(HEADERS) $(OPTIONS) -c code/setup.c -o object/setup.o

object/strmake.o : code/strmake.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c code/strmake.cpp -o object/strmake.o

object/wdatproc.o : code/wdatproc.cpp
	gcc -I$(HEADERS) $(OPTIONS) -c code/wdatproc.cpp -o object/wdatproc.o









