include ../MakefileCommonOpt

NAME	= JetCore

CSUFF = cc
HSUFF = hh

INCLUDE += $(ROOTCFLAGS) -I../ 

LIBDIR = ../libs

SRCS = CalchepPartonTextInput.cc CommonUtils.cc GetJets.cc HepMCInput.cc  JetAlgorithm.cc  OutputVarUtils.cc  InputMaker.cc InputMaker_Ntuple.cc Jet.cc JetCollection.cc JetMomentMap.cc JetTool.cc LorentzVector.cc NtupleMaker.cc  JetBuilder.cc StdTextInput.cc JetGlobals.cc JetHistory.cc JetNegEnergyTool.cc LheInput.cc

# compile stdhep only if requested
ifdef DO_STDHEP
SRCS+= StdHepInput.cc
COMPILE_STDHEP = -DDO_STDHEP
STDHEP_LIBS = STDHEP/lib/libstdhepC.a STDHEP/lib/libFmcfio.a
else
COMPILE_STDHEP =
STDHEP_LIBS = 
endif

ifdef DO_PYTHIA
HEADERS += Pythia.h
INCLUDE += -I$(PYTHIA8DIR)/include
SRCS +=  PythiaInput.cc
endif


OBJS = $(patsubst %.$(CSUFF),%.o,$(SRCS)) 
HEADERS = $(patsubst %.$(CSUFF),%.$(HSUFF),$(SRCS)) 
DYNLIB	= lib$(NAME).so

# this sets the path for the objects files :
vpath %.o $(LIBDIR)
vpath %.so $(LIBDIR)

all : $(STDHEP_LIBS) $(DYNLIB)

$(DYNLIB): $(OBJS) $(NAME)Dict.o
	$(LD) $(SOFLAGS) $(LDFLAGS) $(patsubst %,$(LIBDIR)/%,$^) $(ROOTLIBS) $(OutPutOpt) $(LIBDIR)/$@ \
	$(EXPLLINKLIBS) $(STDHEP_LIBS)
	@echo "$@ done"

$(NAME)Dict.cpp:  $(HEADERS) $(NAME)LinkDef.hpp
	@echo "Generating dictionary $@...  $^"
	@rootcint   -f $@ -c -I../ $(COMPILE_STDHEP) $^

$(NAME)Dict.o:	$(NAME)Dict.cpp
	$(CXX) $(CXXFLAGS) $(INCLUDE) -c $^ -o $(LIBDIR)/$@

%.o : %.$(CSUFF) %.$(HSUFF) 
	$(CXX) $(CXXFLAGS) $(INCLUDE) -c $< -o $(LIBDIR)/$@

$(STDHEP_LIBS):
	$(MAKE) -C STDHEP "F77=$(F77)"

clean: 
	rm -f *.o *.so	*Dict.*
	rm -f $(patsubst %, $(LIBDIR)/%, $(OBJS)) $(LIBDIR)/$(NAME)Dict.o $(LIBDIR)/$(DYNLIB)

realclean: clean
	$(MAKE) -C STDHEP clean

