include make.inc
include ../../make.inc

# INFO: Options for program, see README
#USE_SPIN_VALIDATION_ONLY = yes

# INFO: Turn on useful debug printouts
#override CFLAGS+= -DDEBUG_MODE

# INFO: Initialization of option  ' USE_SPIN_VALIDATION_ONLY'
ifdef USE_SPIN_VALIDATION_ONLY
  override CFLAGS += -D_SPIN_VALIDATION_ONLY_
endif

HEPMC_LIBS     = -L$(HEPMCLOCATION)/lib -lHepMC
TAUOLA_LIBS    = -L$(PREFIX)/lib -L../lib -lTauolaTauSpinner -lTauolaFortran -lTauolaCxxInterface

LHAPDF_LIBS    = -L$(LHAPDFLOCATION)/lib -lLHAPDF

# library for the SPIN2 example. Look for SPIN2 for all commented changes of Makefile
#SPIN2_LIBS     = -Lexample-VBF/SPIN2/lib -lSpin2

TAU_SPINNER_HEPMC_INTERFACE = read_particles_from_TAUOLA.o

# Additional objects used by the example
# This variable can be set by other examples in sub-directories
ifneq ($(OBJ), )
  OBJ = distr.o ggHXtautau.o
endif

all:
	@make tau-reweight-test.exe

%.o: %.f
	$(F77) $(FCFLAGS) -c $< -o $@

%.o: %.cxx
	$(CC) $(CFLAGS) -c $< -o $@ -I../include -I. $(ROOTINC) \
	-I$(HEPMCLOCATION)/include    \
	-I$(PREFIX)/include           \
	-I$(MCTESTERLOCATION)/include \
	-I$(LHAPDFLOCATION)/include   \
#	-Iexample-VBF/SPIN2/include   

%.exe: %.o $(TAU_SPINNER_HEPMC_INTERFACE) $(OBJ)
ifneq ($(HEPMCLOCATION), )
	$(CC) -o $@ $^ $(HEPMC_LIBS) $(TAUOLA_LIBS) $(ROOTLIB) $(MC_TESTER_LIBS) $(LHAPDF_LIBS) $(TAUSPINNER_LIBS)         \
	-Wl,-rpath,$(PWD)/lib              \
	-Wl,-rpath,$(HEPMCLOCATION)/lib    \
	-Wl,-rpath,$(PREFIX)/lib           \
	-Wl,-rpath,$(ROOTLIBPATH)          \
	-Wl,-rpath,$(MCTESTERLOCATION)/lib \
	-Wl,-rpath,$(LHAPDFLOCATION)/lib   \
	-lgfortran
#                             $(SPIN2_LIBS) \
	-Wl,-rpath,-Lexample-VBF/SPIN2/lib \
	-lgfortran
else
	@echo "Examples require compiling TAUOLA with HepMC interface"
	@false
endif

clean:
	rm -f *.o *.exe $(TAU_SPINNER_HEPMC_INTERFACE)

Clean: clean
	rm -f make.inc

make.inc:
	@echo ""
	@echo "Execute ./configure first"
	@echo ""
	@false

../../make.inc:
	@echo ""
	@echo "Compile TauSpinner library first"
	@echo ""
	@false
