#/usr/local/bin/bash
# Specify the compiler here.
C++C= g++
CCFLAGS= -g -Wall -O3
CFLAGS=$(CCFLAGS)
DFLAGS= -DNDEBUG
UTILSDIR= .
SHELL= /usr/local/bin/bash

TEMPLATE_CCS= \
	individual.cc nicherep.cc \
	niche.cc ecosystem.cc

SRCDIR= $(UTILSDIR)/src
INCDIR= $(UTILSDIR)/include
INCFLAGS= -I$(INCDIR) -I$(SRCDIR)

ALL_EXAMPLES= example-nlp example-benchmarks

LIBDIR= $(UTILSDIR)/lib
LIBFLAGS= -L$(LIBDIR)
LIBS= $(LIBFLAGS) -lm -lutils -lg++

.PHONY: all
all:	$(ALL_EXAMPLES)

.PRECIOUS : example%.o
example%.o:	example%.cc Makefile
	  $(C++C) -c $(INCFLAGS)  $(CCFLAGS) $(DFLAGS) $< -o $@

example%:	example%.o libutils Makefile
	$(C++C) $(CCFLAGS) $(DFLAGS) $< -o $@ $(LIBS)

.PHONY: doc
doc:	doc-niche doc-nlp-genome doc-routing

doc-niche:
	doc++ -p -d DOC-NICHE doc-niche.dxx

doc-nlp-genome:
	doc++ -p -d DOC-NLP doc-nlp-genome.dxx

doc-routing:
	doc++ -p -d DOC-ROUTING routing.dxx

####
libutils:	$(LIBDIR)/libutils.a

$(LIBDIR)/libutils.a:
	( pushd $(SRCDIR); make libutils; popd )

####
.PHONY: clean
clean:
	rm -f *~ *.bak *.out *.pixie *.o core l.out* mon.out *.a

.PHONY: allclean
allclean: clean
	rm -f $(ALL_EXAMPLES) $(LIBDIR)/libutils.a
	( pushd src; make allclean; popd )
