#Makefile for the Rustic Classics

#COMPILE = gcc -g3 -Ic:\djgpp\allegro -Ic:\djgpp\allegro\src
#COMPILE = gcc -m486 -O3 -ffast-math -fomit-frame-pointer -Ic:\djgpp\allegro -Ic:\djgpp\allegro\src 
#COMPILE = gcc -m486 -O3 -ffast-math -Ic:\djgpp\allegro -Ic:\djgpp\allegro\src 

#COMPILE = gcc -ggdb -fpermissive -m486 -ffast-math `allegro-config --libs`
#COMPILE = gcc -ggdb -fpermissive -m486 -ffast-math
#COMPILE = gcc -fpermissive -m486 -ffast-math -include settings.h
#COMPILE = gcc -ggdb -fpermissive -mcpu=k6 -ffast-math -include settings.h
#COMPILE = gcc -mcpu=pentium -include settings.h

#the two , choose for linux/dos
#COMPILE = gcc -O2 -mcpu=pentium -include settings.h
COMPILE = gcc -m486 -O3 -ffast-math -Ic:\djgpp\allegro -Ic:\djgpp\allegro\src 

objects = objs/vid.o objs/dvid.o objs/mvid.o objs/dvidw.o \
	objs/compont.o objs/panel.o objs/window.o objs/font.o objs/menus.o objs/textedit.o\
	objs/graflib.o objs/graffont.o objs/levellib.o

robjects = objs/player.o objs/game.o objs/default.o objs/menu.o \
	objs/beast.o objs/tron.o objs/nibbles.o objs/centiped.o \
	objs/tetris.o objs/pacman.o objs/joesnow.o objs/digger.o \
	objs/arkanoid.o objs/combat.o objs/jewel.o objs/dirtrace.o \
	objs/joesnowi.o

all : dosstuff #linuxstuff
.PHONY : all

linuxstuff : crustic grafedit lvledit
.PHONY : linuxstuff

dosstuff : crustic.exe grafedit.exe lvledit.exe
.PHONY : dosstuff

crustic.exe : $(objects) objs/rustic.o $(robjects)
	gcc -o crustic.exe $(objects) objs/rustic.o $(robjects) -lalleg
grafedit.exe : $(objects) objs/grafedit.o
	gcc -o grafedit.exe $(objects) objs/grafedit.o -lalleg
lvledit.exe : $(objects) objs/lvledit.o
	gcc -o lvledit.exe $(objects) objs/lvledit.o -lalleg

crustic : $(objects) objs/rustic.o $(robjects) 
	gcc -o crustic $(objects) objs/rustic.o $(robjects) `allegro-config --libs`
grafedit : $(objects) objs/grafedit.o
	gcc -o grafedit $(objects) objs/grafedit.o `allegro-config --libs`
lvledit : $(objects) objs/lvledit.o
	gcc -o lvledit $(objects) objs/lvledit.o `allegro-config --libs`

objs/vid.o : vid/vid.cpp vid/vid.h
	$(COMPILE) -c vid/vid.cpp -o objs/vid.o
objs/dvid.o : vid/dvid.cpp vid/dvid.h
	$(COMPILE) -c vid/dvid.cpp -o objs/dvid.o
objs/mvid.o : vid/mvid.cpp  vid/mvid.h
	$(COMPILE) -c vid/mvid.cpp -o objs/mvid.o
objs/dvidw.o : vid/dvidw.cpp vid/dvidw.h settings.h
	$(COMPILE) -c vid/dvidw.cpp -o objs/dvidw.o

objs/compont.o : gui/compont.cpp gui/classes.h
	$(COMPILE) -c gui/compont.cpp -o objs/compont.o
objs/panel.o : gui/panel.cpp gui/classes.h vid/svid.h
	$(COMPILE) -c gui/panel.cpp -o objs/panel.o 
objs/window.o : gui/window.cpp gui/classes.h settings.h vid/dvidw.h
	$(COMPILE) -c gui/window.cpp -o objs/window.o
objs/font.o : gui/font.cpp gui/classes.h
	$(COMPILE) -c gui/font.cpp -o objs/font.o
objs/menus.o : gui/menus.cpp gui/classes.h
	$(COMPILE) -c gui/menus.cpp -o objs/menus.o
objs/textedit.o : gui/textedit.cpp gui/classes.h
	$(COMPILE) -c gui/textedit.cpp -o objs/textedit.o

objs/rustic.o : rustic/rustic.cpp rustic/menu.h rustic/game.h
	$(COMPILE) -c rustic/rustic.cpp -o objs/rustic.o
objs/player.o : rustic/player.cpp rustic/rustic.h
	$(COMPILE) -c rustic/player.cpp -o objs/player.o
objs/game.o : rustic/game.cpp rustic/menu.h rustic/high.h
	$(COMPILE) -c rustic/game.cpp -o objs/game.o
objs/menu.o : rustic/menu.cpp rustic/menu.h
	$(COMPILE) -c rustic/menu.cpp -o objs/menu.o
objs/default.o : rustic/default.cpp rustic/default.h
	$(COMPILE) -c rustic/default.cpp -o objs/default.o

objs/beast.o : rustic/beast.cpp rustic/game.h
	$(COMPILE) -c rustic/beast.cpp -o objs/beast.o
objs/tron.o : rustic/tron.cpp rustic/game.h
	$(COMPILE) -c rustic/tron.cpp -o objs/tron.o
objs/nibbles.o : rustic/nibbles.cpp rustic/game.h
	$(COMPILE) -c rustic/nibbles.cpp -o objs/nibbles.o
objs/centiped.o : rustic/centiped.cpp rustic/game.h
	$(COMPILE) -c rustic/centiped.cpp -o objs/centiped.o
objs/tetris.o : rustic/tetris.cpp rustic/game.h
	$(COMPILE) -c rustic/tetris.cpp -o objs/tetris.o
objs/pacman.o : rustic/pacman.cpp rustic/game.h
	$(COMPILE) -c rustic/pacman.cpp -o objs/pacman.o
objs/joesnow.o : rustic/joesnow.cpp rustic/game.h
	$(COMPILE) -c rustic/joesnow.cpp -o objs/joesnow.o
objs/digger.o : rustic/digger.cpp rustic/game.h
	$(COMPILE) -c rustic/digger.cpp -o objs/digger.o
objs/arkanoid.o : rustic/arkanoid.cpp rustic/game.h
	$(COMPILE) -c rustic/arkanoid.cpp -o objs/arkanoid.o
objs/combat.o : rustic/combat.cpp rustic/game.h
	$(COMPILE) -c rustic/combat.cpp -o objs/combat.o
objs/jewel.o : rustic/jewel.cpp rustic/game.h
	$(COMPILE) -c rustic/jewel.cpp -o objs/jewel.o
objs/dirtrace.o : rustic/dirtrace.cpp rustic/game.h
	$(COMPILE) -c rustic/dirtrace.cpp -o objs/dirtrace.o
objs/joesnowi.o : rustic/joesnowi.cpp rustic/game.h
	$(COMPILE) -c rustic/joesnowi.cpp -o objs/joesnowi.o

objs/grafedit.o : graflib/grafedit.cpp graflib/graflib.h
	$(COMPILE) -c graflib/grafedit.cpp -o objs/grafedit.o
objs/lvledit.o : graflib/lvledit.cpp graflib/levellib.h graflib/graflib.h
	$(COMPILE) -c graflib/lvledit.cpp -o objs/lvledit.o
objs/graflib.o : graflib/graflib.cpp graflib/graflib.h
	$(COMPILE) -c graflib/graflib.cpp -o objs/graflib.o
objs/graffont.o : graflib/graffont.cpp graflib/graflib.h graflib/graffont.h
	$(COMPILE) -c graflib/graffont.cpp -o objs/graffont.o
objs/levellib.o : graflib/levellib.cpp graflib/levellib.h
	$(COMPILE) -c graflib/levellib.cpp -o objs/levellib.o

.PHONY : clean
clean : 
	-rm fract $(objects)
	

