########################################################################
#
#
#########################################################################

CC	=	g++

#COPTS	=	-fPIC -DLINUX -O2 -std=c++17 -lpthread
COPTS	=	-fPIC -DLINUX -g -O2 -Wall -std=c++17 -lpthread

CAENLIBS	=	-lCAENDigitizer

ROOTLIBS = `root-config --cflags --glibs`

OBJS = ClassDigitizer.o MultiBuilder.o

ALL = test test_indep DataGenerator EventKenshikushi DataReaderScript

#########################################################################

all	:	$(ALL)

clean	:
		/bin/rm -f $(OBJS) $(ALL)

MultiBuilder.o : MultiBuilder.cpp MultiBuilder.h
		$(CC) $(COPTS) -c MultiBuilder.cpp

ClassDigitizer.o : ClassDigitizer.cpp ClassDigitizer.h RegisterAddress.h macro.h ClassData.h
		$(CC) $(COPTS) -c ClassDigitizer.cpp

test	:	test.cpp ClassDigitizer.o
		@echo "--------- making test"
		$(CC) $(COPTS) -o test test.cpp ClassDigitizer.o  $(CAENLIBS)  $(ROOTLIBS)

test_indep : test_indep.cpp RegisterAddress.h macro.h
		@echo "--------- making test_indep"
		$(CC) $(COPTS) -o test_indep test_indep.cpp $(CAENLIBS) 

DataGenerator : DataGenerator.cpp ClassDigitizer.o 
		@echo "--------- making DataGenerator"
		$(CC) $(COPTS) -o DataGenerator DataGenerator.cpp ClassDigitizer.o $(CAENLIBS)

DataReaderScript : DataReaderScript.cpp ClassData.h MultiBuilder.o
		@echo "--------- making DataReaderScript"
		$(CC) $(COPTS) -o DataReaderScript DataReaderScript.cpp ClassData.h MultiBuilder.o $(CAENLIBS)

EventKenshikushi : EventKenshikushi.cpp ClassData.h MultiBuilder.o
		@echo "--------- making EventKenshikushi"
		$(CC) $(COPTS) -o EventKenshikushi EventKenshikushi.cpp MultiBuilder.o $(CAENLIBS) $(ROOTLIBS)