#File:     Makefile for selforg simulations for development setup
#Author:   Georg Martius  <martius@informatik.uni-leipzig.de>
#Date:     Oct 2009

# add files to compile in the conf file
include Makefile.conf

EXEC_OPT = $(EXEC)_opt

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

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

LIBS   += -lm -L$(SELFORG)/ -l$(SELFORGLIB) -lpthread
INC    += -I$(SELFORG)/include

# -pg for profiling
CPPFLAGS = -Wall -I. -g -pthread $(INC)
## Optimisation
CPPFLAGS_OPT = -Wall -I. -O3 -pthread -DUNITTEST -DNDEBUG $(INC)

# cc = g++ $(CFLAGS) $(INC) -c
# cc = g++ $(CFLAGS) -c -O -g3 -pg
CXX = g++

#CC = g++ -g3 -pg  

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

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


libselforg: 
	cd $(SELFORG) && make

libselforg_opt: 
	cd $(SELFORG) && make opt


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

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

todo:
	find -name "*.[ch]*" -exec grep -Hni "TODO" {} \;

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

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

include Makefile.depend
