#
# www.racer.nl Makefile by Aivils Stoss
#

#
# False targets.
#
.PHONY: dummy

TOPDIR=$(PWD)
MAKE=/usr/bin/make
RM=/bin/rm -f
MV=/bin/mv
SED=/bin/sed

LIBFMOD=fmod-3.6
LIBSDL=SDL

#DEFCFLAGS=-O2 -Wno-deprecated -DQ_USE_FMOD -DQ_USE_SDL_VIDEO
DEFCFLAGS=-O2 -Wno-deprecated -DQ_USE_FMOD
DEFLIBS=-L/usr/X11R6/lib -lGL -lGLU -lm -l$(LIBFMOD)

export TOPDIR DEFCFLAGS DEFLIBS MAKE RM

BINARIES=src/racer/main/racer src/racer/carlab/carlab src/racer/modeler/modeler \
 src/racer/pacejka/pacejka src/racer/tracked/tracked
#
# Get things started.
#
first_rule: sub_dirs
depend: dep_dirs
distclean: dist_dirs

# uncomment next line for carlab make
#OPT_SUB_DIRS=src/racer/carlab src/racer/modeler src/racer/pacejka src/racer/tracked

SUB_DIRS=src/libs/qlib src/libs/d3 src/libs/nlib src/libs/ode src/racer/libu \
 src/racer/lib src/racer/main $(OPT_SUB_DIRS)

DEP_DIRS=src/racer/libu src/racer/lib src/racer/main $(OPT_SUB_DIRS)

#
# A rule to make subdirectories
#
subdir-list = $(patsubst %,_subdir_%,$(SUB_DIRS))
sub_dirs: dummy $(subdir-list)

ifdef SUB_DIRS
$(subdir-list) : dummy
	$(MAKE) -C $(patsubst _subdir_%,%,$@)
endif


# A rule to make depend subdirectories
#
depdir-list = $(patsubst %,_depdir_%,$(DEP_DIRS))
dep_dirs: dummy $(depdir-list)

ifdef DEP_DIRS
$(depdir-list) : dummy
	$(MAKE) -C $(patsubst _depdir_%,%,$@) depend
endif

#
# A make option for cleaning up junk
#
clean:
	find . \( -name '*.[aos]' -o -name '*~' \)\
	-type f -print | xargs $(RM)
	$(RM) $(BINARIES)

distdir-list = $(patsubst %,_distdir_%,$(DEP_DIRS))
dist_dirs: dummy clean $(distdir-list)

ifdef DEP_DIRS
$(distdir-list) : dummy
	$(SED) -e /\#\ DO\ NOT\ DELETE/q $(patsubst _distdir_%,%,$@)/makefile > $(patsubst _distdir_%,%,$@)/makefile.org
	$(MV) $(patsubst _distdir_%,%,$@)/makefile.org $(patsubst _distdir_%,%,$@)/makefile
	$(RM) $(patsubst _distdir_%,%,$@)/makefile.bak
endif
