###########################################################################
#
# FairCom Corporation makefile for c-treeACE c-treeDB C++ API Tutorials
#
###########################################################################

# c-treeACE base directory
ACEBASEDIR=../../../..

# Subdirectory in which files for this API are located
APIDIR=cpp.nav/multithreaded/static

# Directories in which c-tree header files are located
GLIBINC=$(shell pkg-config --cflags glib-2.0 | xargs)
INCDIRS=-I$(ACEBASEDIR)/include -I$(ACEBASEDIR)/include/sdk/$(APIDIR) $(GLIBINC)

# Compile options
CFLAGS=-g -m32 $(INCDIRS) -ldl -o $@

# Directories in which c-tree libraries are located
LIBDIRS=-L$(ACEBASEDIR)/lib/$(APIDIR)

# System libraries required for link
SYSLIBS=-lpthread -ldl -lm -lglib-2.0

# Directory in which tutorial source code is located
SRCDIR=..

# Directory in which tutorial binaries are created
OUTDIR=..

ALL: \
	$(OUTDIR)/ctpp_tutorial1 \
	$(OUTDIR)/ctpp_tutorial2 \
	$(OUTDIR)/ctpp_tutorial3 \
	$(OUTDIR)/ctpp_tutorial4

$(OUTDIR)/ctpp_tutorial1: $(SRCDIR)/ctpp_tutorial1.cpp
	g++ $(CFLAGS) $? $(LIBDIRS) -lmtclient $(SYSLIBS)

$(OUTDIR)/ctpp_tutorial2: $(SRCDIR)/ctpp_tutorial2.cpp
	g++ $(CFLAGS) $? $(LIBDIRS) -lmtclient $(SYSLIBS)

$(OUTDIR)/ctpp_tutorial3: $(SRCDIR)/ctpp_tutorial3.cpp
	g++ $(CFLAGS) $? $(LIBDIRS) -lmtclient $(SYSLIBS)

$(OUTDIR)/ctpp_tutorial4: $(SRCDIR)/ctpp_tutorial4.cpp
	g++ $(CFLAGS) $? $(LIBDIRS) -lmtclient $(SYSLIBS)

clean:
	rm -f $(OUTDIR)/ctpp_tutorial1
	rm -f $(OUTDIR)/ctpp_tutorial2
	rm -f $(OUTDIR)/ctpp_tutorial3
	rm -f $(OUTDIR)/ctpp_tutorial4
