##! smake
#include $(ROOT)/usr/include/make/commondefs

# Suffix order
.SUFFIXES: .cpp .c .o

# Executable
PRJ=racer

# Object files
APPOBJS=main.o mrun.o menu.o intro.o selcar.o seltrk.o selrpl.o credits.o\
 replay.o qwin32.o
ROBJS=../lib/rview.o\
 ../lib/rmanager.o ../lib/rscene.o ../lib/rcamera.o ../lib/rcontrol.o\
 ../lib/rchair.o ../lib/recol.o ../lib/recue.o ../lib/rplugin.o\
 ../lib/rnetwork.o ../lib/rmessage.o ../lib/rpredict.o\
 ../lib/raudio.o ../lib/rtime.o ../lib/rskidmark.o\
 ../lib/rtrackv.o ../lib/rtrackf.o ../lib/rtrack.o ../lib/rsun.o\
 ../lib/rtrackcam.o ../lib/rspline.o\
 ../lib/rrobot.o ../lib/rcar.o ../lib/rwheel.o ../lib/rpacejka.o ../lib/rwing.o\
 ../lib/rsusp.o ../lib/rrod.o ../lib/rbody.o ../lib/rengine.o ../lib/rgearbox.o\
 ../lib/rdifferential.o ../lib/rsteer.o\
 ../lib/rmodel.o ../lib/renv.o ../lib/rgfx.o ../lib/rtimeline.o ../lib/rrigid.o\
 ../lib/rreplay.o ../lib/rdriveline.o\
 ../lib/rdriver.o ../lib/rstats.o ../lib/rconsole.o ../lib/rmusic.o\
 ../lib/rsmd.o ../lib/rfilter.o ../lib/rprofile.o ../lib/rflat.o ../lib/rversion.o
RUOBJS=../libu/rbutton.o ../libu/rlistbox.o ../libu/rwindow.o ../libu/track.o ../libu/ui.o\
 ../libu/rcheck.o
QOBJS=qdxjoy.o qdxeffect.o qdxinput.o qimage.o qevent.o qinfo.o qfont.o
DOBJS=dparticle.o itriell.o
OOBJS=
OBJS=$(APPOBJS) $(RUOBJS) $(ROBJS) $(QOBJS) $(DOBJS) $(OOBJS)

# Compiling
CC=g++
ODE_FLAGS=
DBG_CFLAGS=-g -DDEBUG
CFLAGS_WARN=-Wall -Wpointer-arith -Wcast-qual -Wcast-align -Wconversion -Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Wlong-long -Woverloaded-virtual -Winline
# Unwanted warnings:
#  -Wwrite-strings: QLib uses string ClassName() which should be cstring ClassName().
#  -Wtraditional: include/qlib/debug.h uses literal string macros (#arg)
#  -Waggregate-return: some DVector3 operations return full DVector3 structs
#  -Wshadow: too much variable shadowing going on.
CFLAGS_NOT=-Wwrite-strings -Wtraditional -Waggregate-return -Wshadow
# Obsolete warnings not accepted by gcc though defined in 'man gcc' (cc1plus)
CFLAGS_OBS=-Wredundants-decls -Wenum-clash
CFLAGS_INCL=-I../../../include -I../../../include/linux
CFLAGS=$(DEFCFLAGS) -O3 $(CFLAGS_INCL) $(CFLAGS_WARN) $(ODE_FLAGS) $(DBG_CFLAGS)

# Linking
LDIRS=-L../../../lib -L/usr/X11R6/lib
LFLAGS=$(LDIRS) -lD3 -lraceru -lracer -lQN $(DEFLIBS) -lODE -lQjpeg -lXxf86vm
# -lefence

.cpp.o:
	$(CC) $(CFLAGS) -o $*.o -c $<

default all: $(PRJ)
	@echo $(PRJ) updated.

targets: $(PRJ)

$(PRJ): $(OBJS) ../../../lib/libracer.a ../../../lib/libQN.a ../../../lib/libQ.a
	$(CC) -o $(PRJ) $(OBJS) $(LFLAGS)

#include $(COMMONRULES)

depend:
	makedepend -I../../../include -I../../../include/linux -I/usr/include/g++ *.cpp ../lib/*.cpp ../libu/*.cpp
# DO NOT DELETE
