VERSION=2.1.6-generic

# EDIT THESE SETTINGS

GLPREFIX=/usr
PLIBPREFIX=/usr
ODEPREFIX=/usr
CXX=g++
LIBDIRNAME=lib

# END OF CUSTOM SETTINGS

CXXFLAGS=\
  -I$(GLPREFIX)/include \
  -I$(ODEPREFIX)/include \
  -I$(PLIBPREFIX)/include \
  -I../src-common \
  -I. \
  -DGAMEVERSION=$(VERSION) \
  -O2 -g -Wall

LFLAGS=\
  -L$(PLIBPREFIX)/$(LIBDIRNAME) \
  -L/usr/X11R6/$(LIBDIRNAME)


OBJS=\
  staticworldobject.o \
  dynamicobject.o \
  soundenginealsa.o \
  controllerpad.o \
  controllerkey.o \
  carobject.o \
  intro.o \
  vectortext.o \
  postscore.o \
  ogl.o \
  main.o


LIBS=\
  $(ODEPREFIX)/$(LIBDIRNAME)/libode.a \
  -lplibssgaux -lplibssg -lplibsg -lplibpu -lplibfnt -lplibul \
  -lglut -lGLU -lGL -lasound


all: stormbaancoureur


stormbaancoureur: $(OBJS) $(ODEPREFIX)/$(LIBDIRNAME)/libode.a
	$(CXX) -o stormbaancoureur $(OBJS) $(LFLAGS) $(LIBS)

staticworldobject.o: ../src-common/staticworldobject.cxx ../src-common/staticworldobject.h ../src-common/worldobject.h
	$(CXX) -c $(CXXFLAGS) ../src-common/staticworldobject.cxx

dynamicobject.o: ../src-common/dynamicobject.cxx ../src-common/dynamicobject.h ../src-common/worldobject.h
	$(CXX) -c $(CXXFLAGS) ../src-common/dynamicobject.cxx

carobject.o: carobject.cxx carobject.h
	$(CXX) -c $(CXXFLAGS) carobject.cxx

controllerpad.o: controllerpad.cxx controller.h ../src-common/joydb.h
	$(CXX) -c $(CXXFLAGS) controllerpad.cxx

controllerkey.o: controllerkey.cxx
	$(CXX) -c $(CXXFLAGS) controllerkey.cxx

intro.o: intro.cxx intro.h
	$(CXX) -c $(CXXFLAGS) intro.cxx

vectortext.o: ../src-common/vectortext.cxx ../src-common/vectortext.h
	$(CXX) -c $(CXXFLAGS) ../src-common/vectortext.cxx

postscore.o: postscore.cxx postscore.h
	$(CXX) -c $(CXXFLAGS) postscore.cxx

soundenginealsa.o: ../src-common/soundenginealsa.cxx ../src-common/soundenginealsa.h ../src-common/soundfeed.h ../src-common/soundclip.h
	$(CXX) -c $(CXXFLAGS) ../src-common/soundenginealsa.cxx

ogl.o: ../src-common/ogl.cxx 
	$(CXX) -c $(CXXFLAGS) ../src-common/ogl.cxx

main.o: main.cxx ../src-common/usercam.h ../src-common/trackingcam.h ../src-common/soundenginealsa.h cratewall.h controller.h intro.h plodegui.h doorstand.h carpettrack.h spikejump.h ferriswheel.h turntable.h sturmbahn.h ../src-common/modelmap.h starsky.h carobject.h respawnpoint.h
	$(CXX) -c $(CXXFLAGS) main.cxx

debugrun: stormbaancoureur
	PLODE_DATADIR=`pwd` gdb ./stormbaancoureur

run: stormbaancoureur
	PLODE_DATADIR=`pwd` ./stormbaancoureur

clean:
	rm -f *.o stormbaancoureur

GAMEDIR=$(DESTDIR)/usr/share/games/stormbaancoureur
install: stormbaancoureur
	# Directories
	mkdir -p $(DESTDIR)/usr/games/
	mkdir -p $(GAMEDIR)/images/
	mkdir -p $(GAMEDIR)/sounds/
	mkdir -p $(GAMEDIR)/shaders/
	mkdir -p $(GAMEDIR)/models/
	# Binary
	install stormbaancoureur $(DESTDIR)/usr/games/stormbaancoureur
	# Images
	install -m 644 images/info_carpet_smooth.rgb $(GAMEDIR)/images/info_carpet_smooth.rgb
	install -m 644 images/info_door_smooth.rgb $(GAMEDIR)/images/info_door_smooth.rgb
	install -m 644 images/info_jump_smooth.rgb $(GAMEDIR)/images/info_jump_smooth.rgb
	install -m 644 images/spot.tga $(GAMEDIR)/images/spot.tga
	# Sounds
	install -m 644 sounds/rpm_graph.txt $(GAMEDIR)/sounds/rpm_graph.txt
	install -m 644 sounds/camaro_s16_le.wav $(GAMEDIR)/sounds/camaro_s16_le.wav
	install -m 644 sounds/detonationnorm_s16_le.wav $(GAMEDIR)/sounds/detonationnorm_s16_le.wav
        # Shaders
	install -m 644 shaders/bramlight.fp $(GAMEDIR)/shaders/bramlight.fp
	install -m 644 shaders/bramlight.vp $(GAMEDIR)/shaders/bramlight.vp
	# Models (car parts)
	install -m 644 models/coilspring.3ds $(GAMEDIR)/models/coilspring.3ds
	install -m 644 models/fivespoke.3ds $(GAMEDIR)/models/fivespoke.3ds
	install -m 644 models/frame.3ds $(GAMEDIR)/models/frame.3ds
	install -m 644 models/leafspring.3ds $(GAMEDIR)/models/leafspring.3ds
	install -m 644 models/rearaxle.3ds $(GAMEDIR)/models/rearaxle.3ds
	install -m 644 models/spindle.3ds $(GAMEDIR)/models/spindle.3ds
	install -m 644 models/wishbone.3ds $(GAMEDIR)/models/wishbone.3ds
	# Models (other)
	install -m 644 models/baseplate.3ds $(GAMEDIR)/models/baseplate.3ds
	install -m 644 models/carpet.3ds $(GAMEDIR)/models/carpet.3ds
	install -m 644 models/crate.3ds $(GAMEDIR)/models/crate.3ds
	install -m 644 models/cratejump.3ds $(GAMEDIR)/models/cratejump.3ds
	install -m 644 models/crate_low.3ds $(GAMEDIR)/models/crate_low.3ds
	install -m 644 models/door.3ds $(GAMEDIR)/models/door.3ds
	install -m 644 models/doorstand.3ds $(GAMEDIR)/models/doorstand.3ds
	install -m 644 models/ferriswheelcart.3ds $(GAMEDIR)/models/ferriswheelcart.3ds
	install -m 644 models/ferriswheelstand.3ds $(GAMEDIR)/models/ferriswheelstand.3ds
	install -m 644 models/ferriswheelwheel.3ds $(GAMEDIR)/models/ferriswheelwheel.3ds
	install -m 644 models/finishdoor.3ds $(GAMEDIR)/models/finishdoor.3ds
	install -m 644 models/finishplank.3ds $(GAMEDIR)/models/finishplank.3ds
	install -m 644 models/floppy.3ds $(GAMEDIR)/models/floppy.3ds
	install -m 644 models/grid.3ds $(GAMEDIR)/models/grid.3ds
	install -m 644 models/highjump.3ds $(GAMEDIR)/models/highjump.3ds
	install -m 644 models/jumpboard.3ds $(GAMEDIR)/models/jumpboard.3ds
	install -m 644 models/monoramp.3ds $(GAMEDIR)/models/monoramp.3ds
	install -m 644 models/piston.3ds $(GAMEDIR)/models/piston.3ds
	install -m 644 models/ramp.3ds $(GAMEDIR)/models/ramp.3ds
	install -m 644 models/rod.3ds $(GAMEDIR)/models/rod.3ds
	install -m 644 models/spikegate.3ds $(GAMEDIR)/models/spikegate.3ds
	install -m 644 models/terrain3.3ds $(GAMEDIR)/models/terrain3.3ds
	install -m 644 models/track.3ds $(GAMEDIR)/models/track.3ds
	install -m 644 models/turntable_ramp.3ds $(GAMEDIR)/models/turntable_ramp.3ds
	install -m 644 models/turntable_wheel.3ds $(GAMEDIR)/models/turntable_wheel.3ds

deb:
	strip stormbaancoureur
	fakeroot dpkg-buildpackage -b

