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

Package:=SummaryWriter

#Lists of source files
HDRS := $(wildcard *.h) TestSummaryIS.h
SRCS := $(wildcard *.cpp)
XMLS := $(wildcard *.xml)

OBJS := $(SRCS:.cpp=.o)
BINS :=

#Flags
CPPFLAGS += $(ROOTINCLUDES)

#Phony Targets
.PHONY: all c++ java install clean install_lib install_headers distclean test install_xml

all: c++ test java
c++: lib$(Package).so install

test:
java: install_xml

TestSummaryIS.h: $(IncludeDir)/SummaryWriter/SummaryIS.xml
	is_generator.sh -cpp $<

install: install_lib install_headers install_xml

install_lib: $(LibDir)/lib$(Package).so

install_headers: $(IncludeDir)/$(Package) $(addprefix $(IncludeDir)/$(Package)/,$(HDRS))

install_xml: $(IncludeDir)/$(Package) $(addprefix $(IncludeDir)/$(Package)/,$(XMLS))

distclean: clean
	-rm -f *.cc *.hh *.cppidl *.d
clean:
	-rm -f *.o *.so

#real targets
lib$(Package).so: $(OBJS)
	$(LIBCMD)

$(LibDir)/lib$(Package).so: lib$(Package).so
	$(CPCMD)

$(IncludeDir)/$(Package)/%.h: %.h
	$(CPCMD)

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

%.o: %.cc
	$(CPPCMD)

%.cppidl: $(CURDIR)/%.idl
	@echo $^
	$(CPPIDLCMD) && touch $@

$(IncludeDir)/$(Package)/%: %
	$(CPCMD)

#Pre-requisites
$(IncludeDir)/$(Package):
	$(MKDIR)

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

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

