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

#INCLUDES = -I$(SCT_DAQ_ROOT)
HDRS = $(wildcard *.h)

LDFLAGS += `xml2-config --libs`
LDLIBS += -lpthread -lSct
CPPFLAGS += `xml2-config --cflags`

# o files to build into the shared library
CONFOBJS = configuration.o log.o

SRCS = configuration.cc create.cc doAll.cc test.cc powerDump.cc log.cc checkSCTConfig.cc

BINS = checkSCTConfig

.PHONY: all install clean distclean java install_headers install_example

all: c++

c++: install test doAll create powerDump lookup query checkSCTConfig

install: libs bins install_headers install_example

test: test.o
	$(CXX) -o $@ $^ $(LDFLAGS) $(LDLIBS) -lsctconf
doAll: doAll.o
	$(CXX) -o $@ $^ $(LDFLAGS) $(LDLIBS) -lsctconf
checkSCTConfig: checkSCTConfig.o
	$(CXX) -o $@ $^ $(LDFLAGS) $(LDLIBS) -lsctconf
create: create.o
	$(CXX) -o $@ $^ $(LDFLAGS) $(LDLIBS) -lsctconf
powerDump: powerDump.o
	$(CXX) -o $@ $^ $(LDFLAGS) $(LDLIBS) -lsctconf

sctconf.so: $(CONFOBJS)
	$(CXX) -shared -o $@ $^ $(LDPATH) $(LDLIBS) 

java:
lookup: lookup.o
query: query.o


bins: $(BinDir) $(addprefix $(BinDir)/,$(BINS))

libs: $(LibDir) $(LibDir)/libsctconf.so

$(LibDir)/libsctconf.so: sctconf.so
	$(CPCMD)

$(LibDir):
	mkdir -p $(LibDir)

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

install_example: $(ConfigDir)/rods/exampleRod.xml

$(BinDir)/%: %
	$(CPCMD)

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

$(ConfigDir)/rods/%: %
	$(CPCMD)

$(IncludeDir)/sctConf:
	$(MKDIR)

clean:
	$(RM) test doAll create powerDump lookup query *.o *~ core

distclean: clean
	-$(RM) -f *.d

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

%.o: %.cc
	$(CPPCMD)

%.d: %.c
	$(DEPENDCMD)

%.d: %.cpp
	$(DEPENDCMD)

%.d: %.cxx
	$(DEPENDCMD)

%.d: %.cc
	$(DEPENDCMD)

