CPP = g++
OBJECTS = dassrull.o hamster.o rasstex.o hamstertop.o gl.o demo.o window.o roachtunnell.o scene.o endscene.o module.o minifmod.o texture.o jpeg.o roachintro.o light.o text.o font.o blur.o rass.o eh.o
CFLAGS = -ggdb -DDEBUG
LIBS = -lglut -lGLU -lGL -L/usr/X11R6/lib -lpthread -ljpeg
#CFLAGS = -march=pentium4 -mmmx -msse -msse2 -O4 -fomit-frame-pointer -ffast-math
CFLAGS = -march=i686 -O2 -fomit-frame-pointer
#CFLAGS = -march=i686 -O4 -fomit-frame-pointer -ffast-math
STATIC_LIBS = libminifmod.a /usr/X11R6/lib/libXxf86vm.a

all: 	fyll

.cpp.o: dassrull.o
	$(CPP) $(CFLAGS) -c $<

module.c: module.h data/modul.xm util/bin2h
	util/bin2h data/modul.xm MODULE c > module.c

module.h: data/modul.xm util/bin2h
	util/bin2h data/modul.xm MODULE h > module.h

dassrull.c: dassrull.h data/dassrull.jpg util/bin2h
	util/bin2h data/dassrull.jpg DASSRULL c > dassrull.c

dassrull.h:  data/dassrull.jpg util/bin2h
	util/bin2h data/dassrull.jpg DASSRULL h > dassrull.h

hamster.c: hamster.h data/hamster.jpg util/bin2h
	util/bin2h data/hamster.jpg HAMSTER c > hamster.c

hamster.h:  data/hamster.jpg util/bin2h
	util/bin2h data/hamster.jpg HAMSTER h > hamster.h

hamstertop.c: hamstertop.h data/hamstertop.jpg util/bin2h
	util/bin2h data/hamstertop.jpg HAMSTERTOP c > hamstertop.c

hamstertop.h:  data/hamstertop.jpg util/bin2h
	util/bin2h data/hamstertop.jpg HAMSTERTOP h > hamstertop.h

rasstex.c: rasstex.h data/rass.jpg util/bin2h
	util/bin2h data/rass.jpg RASSTEX c > rasstex.c

rasstex.h: data/rass.jpg util/bin2h
	util/bin2h data/rass.jpg RASSTEX h > rasstex.h

libminifmod.a: minifmod.c
	cd minifmod; make -f makefile.linux

fyll:	main.o $(OBJECTS) $(STATIC_LIBS)
	$(CPP) $(LIBS) -o roachtro main.o $(OBJECTS) $(STATIC_LIBS)
	strip roachtro
	upx -9 roachtro
	cp roachtro ../

clean:
	rm hamster.h dassrull.h *o minifmod/*.o libminifmod.a
