# file: Makefile
#

LFLAGS     = -L$(PIX_LIB)/PixModuleGroup -lPixModuleGroup \
             -L$(PIX_LIB)/PixController -lPixController -lRodPixController \
             -lTpllPixController -lPixScanConfig -lPixScan\
             -L$(PIX_LIB)/PixModule -lPixModule \
             -L$(PIX_LIB)/PixMcc -lPixMcc \
             -L$(PIX_LIB)/PixFe -lPixFe \
             -L$(PIX_LIB)/PixConfDBInterface -lPixConfDBInterface \
             -L$(PIX_LIB)/PixDbInterface -lPixDbInterface \
             -L$(PIX_LIB)/PixBoc -lPixBoc \
             -L$(ROD_DAQ)/RodCrate -lRodModule -lTimModule -lBocCard \
	     -L$(PIX_LIB)/Config -lConfig \
             -L$(PIX_LIB)/Histo -lHisto \
             -L$(PIX_LIB)/Bits -lBits \
             -L$(VME_INTERFACE) -lRCCVmeInterface \
             -L$(VME_INTERFACE) -lBaseException \
	     -L$(DAQ_LIB_DIR) -lvme_rcc -lcmem_rcc -lio_rcc -lrcc_error -lgetinput -lpthread 
#	     -L$(PIX_LIB)/PixTrigController -lTimPixTrigController \

LFLSHARED  = -L$(DAQ_BASE)/lib -lPixLib -lVmeInterface -lPixAnalysis -L$(QTDIR)/lib  -lQtCore  -lQt3Support\
             -lusbpixdll
#             -L$(DAQ_LIB_DIR) -lvme_rcc -lcmem_rcc -lio_rcc -lrcc_error -lgetinput -lpthread


CFLAGS     = -g -DTSTAMP -DI_AM_LINUX_HOST -DPIXEL_ROD -DCF__LINUX -funsigned-char -Wall \
             -I. -I$(PIX_LIB) \
             -I$(ROD_DAQ)/CommonWithDsp \
             -I$(ROD_DAQ) \
             -I$(ROD_DAQ)/CommonWithDsp/Pixel \
             -I$(VME_INTERFACE) -I$(DAQ_INCL_DIR)\
             -I$(ROD_DAQ)/Dsp/Code -I$(USBCMN)/inc

all:SingleEvents BoCScan ScanTest TurboDaqDBTest RootDBTest ModuleGroup_Wizard DumpCfg DataTaking DataTaking_daq PixBocTest

SingleEvents: SingleEvents.cxx ../PixController/libRodPixController.a \
              ../PixController/libPixScanConfig.a
	g++ $(CFLAGS) $(shell root-config --cflags) SingleEvents.cxx -o SingleEvents -L$(PIX_LIB)/PixConfDBInterface -lRootDB \
	$(LFLAGS) $(shell root-config --glibs) 

BoCScan: BoCScan.cxx ../PixController/libRodPixController.a \
              ../PixController/libPixScanConfig.a
	g++ $(CFLAGS) $(shell root-config --cflags) BoCScan.cxx -o BoCScan -L$(PIX_LIB)/PixConfDBInterface -lRootDB \
	$(LFLAGS) $(shell root-config --glibs) 

OutputLinkScan: OutputLinkScan.cxx ../PixController/libRodPixController.a \
              ../PixController/libPixScanConfig.a
	g++ $(CFLAGS) $(shell root-config --cflags) OutputLinkScan.cxx -o OutputLinkScan $(LFLSHARED) $(shell root-config --glibs) 

DataTaking: DataTaking.cxx ../PixController/libRodPixController.a \
	      ../PixTrigController/libTimPixTrigController.a \
              ../PixController/libPixScanConfig.a 
	g++ $(CFLAGS) $(shell root-config --cflags) DataTaking.cxx -o DataTaking -L$(PIX_LIB)/PixConfDBInterface -lRootDB \
	$(LFLAGS) $(shell root-config --glibs) 

DataTaking_daq: DataTaking_daq.cxx ../PixController/libRodPixController.a \
	      ../PixController/libPixTimRawController.a \
              ../PixController/libPixScanConfig.a 
	g++ $(CFLAGS) $(shell root-config --cflags) DataTaking_daq.cxx -o DataTaking_daq -L$(PIX_LIB)/PixConfDBInterface -lRootDB \
	$(LFLAGS) $(shell root-config --glibs) 

ScanTest: ScanTest.cxx ../PixController/libRodPixController.a \
              ../PixController/libPixScanConfig.a
	g++ $(CFLAGS) $(shell root-config --cflags) ScanTest.cxx -o ScanTest -L$(PIX_LIB)/PixConfDBInterface -lRootDB \
	$(LFLAGS) $(shell root-config --glibs) 

ConfigEx: ConfigEx.cxx ConfigEx.h ../libPixLib.so 
	g++ $(CFLAGS) $(shell root-config --cflags) ConfigEx.cxx -o ConfigEx \
	$(LFLSHARED) $(shell root-config --glibs) 

RootDBTest_v2_0: RootDBTest_v2_0 ../libPixLib.so 
	g++ $(CFLAGS) $(shell root-config --cflags) RootDBTest_v2_0.cxx -o RootDBTest_v2_0 \
	$(LFLSHARED) $(shell root-config --glibs) 

NewScanTest: NewScanTest.cxx ../PixController/libRodPixController.a \
              ../PixController/libPixScanConfig.a
	g++ $(CFLAGS) $(shell root-config --cflags) NewScanTest.cxx -o NewScanTest -L$(PIX_LIB)/PixConfDBInterface -lRootDB \
	$(LFLSHARED) $(shell root-config --glibs) 

MultiScanTest: MultiScanTest.cxx ../PixController/libRodPixController.a \
              ../PixController/libPixScanConfig.a
	g++ $(CFLAGS) $(shell root-config --cflags) MultiScanTest.cxx -o MultiScanTest -L$(PIX_LIB)/PixConfDBInterface -lRootDB \
	$(LFLAGS) $(shell root-config --glibs) 

TurboDaqDBTest: TurboDaqDBTest.cxx
	g++ $(CFLAGS) TurboDaqDBTest.cxx -o TurboDaqDBTest $(LFLAGS)

ModuleGroup_Wizard: ModuleGroup_Wizard.cxx
	g++ $(CFLAGS) $(shell root-config --cflags) ModuleGroup_Wizard.cxx  -o ModuleGroup_Wizard -L$(PIX_LIB)/PixConfDBInterface -lRootDB \
	$(LFLAGS) $(shell root-config --glibs)

RootDBTest: RootDBTest_v2_0.cxx
	g++ $(CFLAGS) $(shell root-config --cflags) RootDBTest_v2_0.cxx  -o RootDBTest \
	$(LFLSHARED) $(shell root-config --glibs)

DumpCfg: DumpCfg.cxx
	g++ $(CFLAGS) $(shell root-config --cflags) DumpCfg.cxx  -o DumpCfg -L$(PIX_LIB)/PixConfDBInterface -lRootDB \
	$(LFLAGS) $(shell root-config --glibs)

FEI4cfgTransf: FEI4cfgTransf.cxx
	g++ $(CFLAGS) $(shell root-config --cflags)  FEI4cfgTransf.cxx -o FEI4cfgTransf $(LFLSHARED) \
	$(shell root-config --glibs)

PixBocTest: PixBocTest.cxx ../PixController/libRodPixController.a \
	     ../PixBoc/libPixBoc.a ../PixController/libPixScanConfig.a
	g++ $(CFLAGS) $(shell root-config --cflags) PixBocTest.cxx -o PixBocTest -L$(PIX_LIB)/PixConfDBInterface -lRootDB \
	$(LFLAGS) $(shell root-config --glibs) 

testUSBPixDevice: testUSBPixDevice.cxx
	g++ $(CFLAGS) testUSBPixDevice.cxx -o testUSBPixDevice -L$(USBCMN)/lib -lsiusb

clean:
	rm -f SingleEvents ScanTest TurboDaqDBTest RootDBTest ModuleGroup_Wizard DumpCfg PixBocTest


