
CC          = gcc
CLINKER     = gcc
CCC         = g++
CCLINKER    = $(CCC)
INCLUDE_DIR = 
LIB_LIST    =  -lGL -lglut -lGLU -lm -lpthread -lXi -lXmu
#-lefence
CFLAGS  = $(INCLUDE_DIR)
CCFLAGS = $(CFLAGS)
OPTFLAGS    = -g
LIB_PATH    = -L/usr/X11R6/lib
LIBS = $(LIB_PATH) $(LIB_LIST)

raw_sources = 	moto_geometry.cc \
		moto_animate.cc \
		moto_behave.cc \
		driver_geometry.cc \
		driver_animate.cc \
		driver_behave.cc \
		gl_draw.cc \
		gl_interface.cc \
		scenery.cc \
		general.cc \
		point3f.cc \
		road_manager.cc \
		manager.cc \
		pilot_manager.cc \
		agent.cc \
		agent_gas.cc \
		agent_breaks.cc \
		agent_hbar.cc \
		agent_lean.cc \
		agent_steering.cc \
		agent_update.cc \
		main.cc

sources=$(addprefix src/,$(raw_sources))

# objects are the same as the source files with .cc replaced with .o
objects = $(addprefix lib/,$(raw_sources:.cc=.o))

default: moto

moto: $(objects) 
	$(CCLINKER) $(OPTFLAGS) -o moto $(objects) $(LIBS)

lib/%.o : src/%.cc src/%.h
	$(CCC) $(CCFLAGS) $(INCLUDE_DIRS) -c $< -o $@

lib/%.o : src/%.c src/%.h
	$(CC) $(CFLAGS) $(INCLUDE_DIRS) -c $< $(OUTPUT_OPTION)

lib/%.o : src/%.cc
	$(CCC) $(CCFLAGS) $(INCLUDE_DIRS) -c $< -o $@

lib/%.o : src/%.c
	$(CC) $(CFLAGS) $(INCLUDE_DIRS) -c $< $(OUTPUT_OPTION)

clean :
	rm lib/*.o
	rm moto



