#File:     Makefile for lpzrobots ODE simulation
#Author:   Georg Martius  <martius@informatik.uni-leipzig.de>
#Date:     Mai 2008

#Do not edit, this is copied to the simulations while installation! 
#Make your changes in Makefile.conf

# Installtion type: user
# This makefile assumes that you have the lpzrobots libaries (libselforg and lilode_tobots) 
# installed together with the includes files.

include Makefile.conf

CFILES = $(addsuffix .cpp, $(FILES))
OFILES = $(addsuffix .o, $(FILES))

EXEC = start
EXEC_OPT = start_opt
EXEC_PROF = start_prof

ODEROBOTSLIB := ode_robots
ODEROBOTSLIB_OPT := ode_robots_opt
ODEROBOTSLIB_PROF := ode_robots_prof
LIBODEROBOTS = lib$(ODEROBOTSLIB).a
LIBODEROBOTS_OPT = lib$(ODEROBOTSLIB_OPT).a
LIBODEROBOTS_PROF = lib$(ODEROBOTSLIB_PROF).a

SELFORGLIB = selforg
SELFORGLIB_OPT = selforg_opt
LIBSELFORG = lib$(SELFORGLIB).a

LIBS   = -lm \
	-l$(ODEROBOTSLIB) \
	-l$(SELFORGLIB) \
	-lode -L/opt/local/lib \
	-losgShadow -losgText -losgUtil -losgViewer -losgGA -losgDB -lOpenThreads -losg -lGL -lGLU -lglut \
	-lreadline -lncurses -lpthread

INC   = -I. -I/opt/local/include

CXX = g++
CPPFLAGS = -Wall  -g -pthread $(INC) 
CPPFLAGS_OPT = -Wall -pthread  -O3 -DNDEBUG $(INC)

normal: $(EXEC)

$(EXEC): Makefile Makefile.depend $(OFILES)
	$(CXX) $(CPPFLAGS) $(OFILES) $(LIBS) -o $(EXEC)

opt: $(EXEC_OPT)

$(EXEC_OPT): ODEROBOTSLIB = $(ODEROBOTSLIB_OPT)
$(EXEC_OPT): SELFORGLIB = $(SELFORGLIB_OPT)
$(EXEC_OPT): CPPFLAGS = $(CPPFLAGS_OPT)
$(EXEC_OPT): Makefile Makefile.depend $(OFILES)
	$(CXX) $(CPPFLAGS) $(OFILES) $(LIBS) -o $(EXEC_OPT)

prof: $(EXEC_PROF)

$(EXEC_PROF): ODEROBOTSLIB = $(ODEROBOTSLIB_PROF)
$(EXEC_PROF): Makefile Makefile.depend $(OFILES)
	$(CXX) $(CPPFLAGS) $(OFILES) $(LIBS) -o $(EXEC_PROF)

Makefile.depend: 
	makedepend $(CFLAGS) $(INC) $(CFILES) -f- > Makefile.depend 2>/dev/null

depend: 
	makedepend $(CFLAGS) $(INC) $(CFILES)  -f- > Makefile.depend 2>/dev/null

tags: 
	etags `find -name "*.[ch]"` 

clean:
	rm -f $(EXEC) $(EXEC_OPT) $(EXEC_PROF) *.o Makefile.depend

include Makefile.depend
