# makefile for basic SIMLIB examples
# expects simlib.so in ..
# Linux

# installed library home:
SIMLIB_DIR=..

# dependencies:
SIMLIB_DEPEND=$(SIMLIB_DIR)/simlib.so $(SIMLIB_DIR)/simlib.h
SIMLIB_DEPEND2D=$(SIMLIB_DEPEND) $(SIMLIB_DIR)/simlib2D.h
SIMLIB_DEPEND3D=$(SIMLIB_DEPEND) $(SIMLIB_DIR)/simlib3D.h

# compiler: 
CXX=g++

# options:
# Warning: -- should be with optimization (problem with Process-switching)
CXXFLAGS=-g -O2 -I$(SIMLIB_DIR)
# Debian GCC 3.4.2 & 2.3.2.ds1 is O.K.
#CXXFLAGS=-g -I$(SIMLIB_DIR)
# profiling support:
#CXXFLAGS=-O2 -pg -static -I$(SIMLIB_DIR)

# Implicit Rule to compile modules
% : %.cc
	$(CXX) $(CXXFLAGS) -o $@  $< $(SIMLIB_DIR)/simlib.so -lm

# models
ALL_MODELS= bessel centrala ctest kolo kolo2 kostky kostky2 lorenz micek micek2 \
	model2 model3 model4 model5 multiexp pocsit procesor test3D topeni \
	model2-timeout

# rules:
all: $(ALL_MODELS)

#
bessel:   bessel.cc $(SIMLIB_DEPEND)
centrala: centrala.cc $(SIMLIB_DEPEND)
ctest:    ctest.cc $(SIMLIB_DEPEND)
kolo:     kolo.cc $(SIMLIB_DEPEND)
kolo2:    kolo2.cc $(SIMLIB_DEPEND)
kostky:   kostky.cc $(SIMLIB_DEPEND)
kostky2:  kostky2.cc $(SIMLIB_DEPEND)
lorenz:   lorenz.cc $(SIMLIB_DEPEND)
micek:    micek.cc $(SIMLIB_DEPEND)
micek2:   micek2.cc $(SIMLIB_DEPEND)
model2:   model2.cc $(SIMLIB_DEPEND)
model2-timeout: model2-timeout.cc $(SIMLIB_DEPEND)
model3:   model3.cc $(SIMLIB_DEPEND)
model4:   model4.cc $(SIMLIB_DEPEND)
model5:   model5.cc $(SIMLIB_DEPEND)
multiexp: multiexp.cc $(SIMLIB_DEPEND)
pocsit:   pocsit.cc $(SIMLIB_DEPEND)
procesor: procesor.cc $(SIMLIB_DEPEND)
test3D:   test3D.cc $(SIMLIB_DEPEND3D)
topeni:   topeni.cc $(SIMLIB_DEPEND)

#
run: all
	@echo "Running all examples..."
	@echo "echo" $(ALL_MODELS) | sed -e "s/ /;.\//g" | sh

plot: run
	if [ "$(DISPLAY)"="" ]; then open -sw gnuplot all.plt; else gnuplot all.plt; fi

clean:
	@echo "Deleting all executable examples..."
	rm -f $(ALL_MODELS) *~

clean-data:
	@echo "Deleting all simulation results..."
	rm -f *.dat *.out

clean-all: clean clean-data

REFOUT=reference-outputs/*.dat reference-outputs/*.out reference-outputs/*.sh

pack:
	cp Makefile Makefile.Linux
	tar czf examples.tar.gz *.cc *.plt *.txt Makefile.* $(REFOUT)

#


syntax highlighted by Code2HTML, v. 0.9.1