#Variables
include $(SCT_DAQ_ROOT)/build/Makefile.include
#Commands
include $(SCT_DAQ_ROOT)/build/Makefile.commands

.PHONEY : valgrind gdb

SRCS := $(wildcard *.cpp)
OBJS := $(SRCS:.cpp=.o ../src/SerializableWrappers.o)
BOOSTTESTLIBDIR := $(BOOSTDIR)/libs/test/build/bin/libboost_unit_test_framework.so/gcc/debug/runtime-link-dynamic/shared-linkable-true/threading-multi/

LDLIBS += -L$(BOOSTTESTLIBDIR) -lboost_unit_test_framework -lboost_thread
LDLIBS += -lSct -lSctData

CPPFLAGS += -DIS_SERIALIZABLE_BUG

LD_LIBRARY_PATH:=$(LD_LIBRARY_PATH):$(BOOSTTESTLIBDIR)

CPPFLAGS += $(ROOTINCLUDES)
LDLIBS += $(ROOTLIBS)

.PHONY: all c++ test java install clean distclean

all: c++ execute

c++: TestSuite

java:
install:
clean:
	-rm -f *.o TestSuite *.root

distclean: clean
	-rm -f *.d execute

execute: TestSuite
	rm -f *.root
	env SCT_PERSISTENT_DIR=/tmp ./TestSuite && touch $@

valgrind:
	rm -f *.root
	env SCT_PERSISTENT_DIR=/tmp valgrind ./TestSuite

gdb:
	rm -f *.root
	env SCT_PERSISTENT_DIR=/tmp gdb ./TestSuite

TestSuite: $(OBJS)
	$(BINCMD)

#Patterns
%.o: %.cpp
	$(CPPCMD)


#dependencies
%.d: %.cpp
	$(DEPENDCMD)

ifeq ($(INCLUDEDEPENDANCIES),)
include $(SRCS:.cpp=.d)
endif
