#----------------------------------------------------------------------
# Description of the different programs
#
#       make ascii2root     : *.dat  (ascii ) -> *.root (histos)
#       make plot_histo     : *.root (histos) -> *.root (canvas)
#	make quick_plot     : compare two histograms
#	make 1_sys_analysis :        Standard  likelihood analysis
#	make 2_sys_analysis :        Asymmetry likelihood analysis
#	make 3_sys_analysis : Double Asymmetry likelihood analysis
#
# Note : Depending on the computer you should use either,
#	 RPATH = $(ROOTSYS)/ or RPATH = $(ROOTSYS) without a /
#----------------------------------------------------------------------
.SUFFIXES:  .o .c .cxx .f .l  .s  .sh  .h  .a

#######################################################################
#======================================================================
# 1. ROOT (root library path to be set by th user) ====================
# RPATH = /afs/cern.ch/sw/root/v3.05.05/rh73_gcc296/root/
# RPATH = /home/cern/root/
RPATH = $(ROOTSYS)
RLIB  = -L$(RPATH)lib -lCore -lCint -lHist -lGraf -lGraf3d -lGpad \
	-lTree -lRint -lPostscript -lMatrix -lPhysics -lm -ldl \
	-lpthread -rdynamic
#======================================================================
# 2. ROOT-ine (personal ROOT routines) ================================
# 128 
#RiPATH   = $(PROG)/ROOT-ine
# lpnp110
#RiPATH  = /home/fayette/public/PrecisionMeasurents/src/ROOT-ine
#======================================================================
# 3. Common paths used in this framework ==============================
TXPATH   = ../../testX_paths
#======================================================================
# 4. Local directory name and *.cxx/*.h files =========================
DIRNAME   = Example
# *.cxx
MFILD1    = ascii2root
MFILD2    = plot_histo
MFILD3    = quick_plot
MFILD4    = old_1_sys_analysis
MFILD5    = old_2_sys_analysis
MFILD6    = 1_sys_analysis
MFILD7    = 2_sys_analysis
MFILD8    = 3_sys_analysis
MFILD9    = test
# *.h, Note : data.h is common to ascii2root AND plot_histo
DATAHDR   = data.h
SYSO1AHDR = old_1_sys_analysis.h
SYSO2AHDR = old_2_sys_analysis.h
SYS1AHDR  = 1_sys_analysis.h
SYS2AHDR  = 2_sys_analysis.h
SYS3AHDR  = 3_sys_analysis.h

#######################################################################
#======================================================================
# 1. C++ compiler and flags ===========================================
#    - Original lines
#      CXXFLAGS = -g -ansi -pedantic
#      CXXFLAGS = -O -Wall -fPIC -D_REENTRANT -I$(RPATH)include
#      CXXFLAGS = -g  -ansi -Wall -fPIC -D_REENTRANT -I$(RPATH)include
#      CXXFLAGS = -g
#      CXX      =  insure
#      CXX      =  codewizard
#    - Actual line, to use ROOT, ROOT-ine & testX path convention
CXXFLAGS = -O -Wall -fPIC -D_REENTRANT -I$(RPATH)include \
	-I$(TXPATH)
CXX      =  g++
CLD      =  $(CXX)
#======================================================================
# 2. Intruction to compile all C++ files ==============================
%.o: %.cxx
	$(CXX) $(CXXFLAGS) -c $<

#######################################################################
#======================================================================
# Instruction to create object ROOT-ine.o
#EXTER_OBJRI  = $(RiPATH)/ROOT-ine.o
#$(EXTER_OBJRI): $(RiPATH)/*.cxx $(RiPATH)/*.h 
#	cd $(RiPATH); make
#######################################################################
#======================================================================
# 1. ascii2root =======================================================
${MFILD1}.o: $(DATAHDR)
${MFILD1}.exe: ${MFILD1}.o $(EXTER_OBJRI)
	$(CLD) -o $@ ${MFILD1}.o $(EXTER_OBJRI) $(RLIB)
${MFILD1}: ${MFILD1}.exe
	./${MFILD1}.exe
#======================================================================
# 2. plot_histo =======================================================
${MFILD2}.o: $(DATAHDR)
${MFILD2}.exe: ${MFILD2}.o $(EXTER_OBJRI)
	$(CLD) -o $@ ${MFILD2}.o $(EXTER_OBJRI) $(RLIB)
${MFILD2}: ${MFILD2}.exe
	./${MFILD2}.exe
#======================================================================
# 3. quick_plot =======================================================
${MFILD3}.o:
${MFILD3}.exe: ${MFILD3}.o $(EXTER_OBJRI)
	$(CLD) -o $@ ${MFILD3}.o $(EXTER_OBJRI) $(RLIB)
${MFILD3}: ${MFILD3}.exe
	./${MFILD3}.exe
#======================================================================
# 4. systematics analysis 1 - standard - OLD FASHION ==================
${MFILD4}.o: $(SYSO1AHDR)
${MFILD4}.exe: ${MFILD4}.o $(EXTER_OBJRI)
	$(CLD) -o $@ ${MFILD4}.o $(EXTER_OBJRI) $(RLIB)
${MFILD4}: ${MFILD4}.exe
	./${MFILD4}.exe
#======================================================================
# 5. systematics analysis 2 - Asym method - OLD FASHION ===============
${MFILD5}.o: $(SYSO2AHDR)
${MFILD5}.exe: ${MFILD5}.o $(EXTER_OBJRI)
	$(CLD) -o $@ ${MFILD5}.o $(EXTER_OBJRI) $(RLIB)
${MFILD5}: ${MFILD5}.exe
	./${MFILD5}.exe
#======================================================================
# 6. systematics analysis 1 - standard ================================
${MFILD6}.o: $(SYS1AHDR)
${MFILD6}.exe: ${MFILD6}.o $(EXTER_OBJRI)
	$(CLD) -o $@ ${MFILD6}.o $(EXTER_OBJRI) $(RLIB)
${MFILD6}: ${MFILD6}.exe
	./${MFILD6}.exe
#======================================================================
# 7. systematics analysis 2 - Asym method =============================
${MFILD7}.o: $(SYS2AHDR)
${MFILD7}.exe: ${MFILD7}.o $(EXTER_OBJRI)
	$(CLD) -o $@ ${MFILD7}.o $(EXTER_OBJRI) $(RLIB)
${MFILD7}: ${MFILD7}.exe
	./${MFILD7}.exe
#======================================================================
# 8. systematics analysis 2 - DAsym method ============================
${MFILD8}.o: $(SYS3AHDR)
${MFILD8}.exe: ${MFILD8}.o $(EXTER_OBJRI)
	$(CLD) -o $@ ${MFILD8}.o $(EXTER_OBJRI) $(RLIB)
${MFILD8}: ${MFILD8}.exe
	./${MFILD8}.exe
#======================================================================
# 9. Testing program - quickplot like structure =======================
${MFILD9}.o:
${MFILD9}.exe: ${MFILD9}.o $(EXTER_OBJRI)
	$(CLD) -o $@ ${MFILD9}.o $(EXTER_OBJRI) $(RLIB)
${MFILD9}: ${MFILD9}.exe
	./${MFILD9}.exe
#======================================================================
rclean:
	rm -f *.o *.so *Dict*
clean:
	(rm -f *.o *.a *~ *.exe core.* lmap *.dvi *.aux *.log)
Clean:
	(rm -f *.o *.a *~ *.exe core.* lmap *.dvi *.aux *.log ./saved_data_h_files/*h;\
 make clean)
#======================================================================
gtar: clean
	(cd ../; gtar -cvzf $(DIRNAME).tar.gz $(DIRNAME) )
