########################################################################
#                                                                      #
#   CERM Cosmic Stand 904					       #
#                                                                      #
#   Auth: S. Colafranceschi                                            #
#                                                                      #
########################################################################

GLOBALDIR=      CAEN1527_monitoring/

PROGRAM=	$(GLOBALDIR)SetV0

PROGRAM2=	$(GLOBALDIR)HVmon

PROGRAM3=	$(GLOBALDIR)SetI0

PROGRAM4=	$(GLOBALDIR)SetTrip

PROGRAM5=	$(GLOBALDIR)HVprint

PROGRAM6=	$(GLOBALDIR)HVscan

PROGRAM7=	$(GLOBALDIR)SetV0_single

PROGRAM8=	$(GLOBALDIR)HVprint_single

PROGRAM9=	$(GLOBALDIR)SetTrip_single

PROGRAM10=	$(GLOBALDIR)SetI0_single

PROGRAM11=	$(GLOBALDIR)HVmon_full

PROGRAM12=	$(GLOBALDIR)SetPower

PROGRAM13=	$(GLOBALDIR)meteologging

PROGRAM14=	$(GLOBALDIR)HVscan_gap

PROGRAM15=	$(GLOBALDIR)SetI0_gap

PROGRAM16=	$(GLOBALDIR)SetTrip_gap

PROGRAM17=	$(GLOBALDIR)SetV0_gap

PROGRAM18=	$(GLOBALDIR)htmlout

PROGRAM19=	$(GLOBALDIR)SetPower_bt

PROGRAM20=	$(GLOBALDIR)htmlout2

PROGRAM21=      $(GLOBALDIR)HVtrends

PROGRAM22=      $(GLOBALDIR)HVtrends_sm

PROGRAM23=      $(GLOBALDIR)HVscan_sm

PROGRAM24=      $(GLOBALDIR)HVmon_full_sm

PROGRAM25=      $(GLOBALDIR)HVmon_full_gap

PROGRAM26=      $(GLOBALDIR)Channel_test

PROGRAM27=      $(GLOBALDIR)HVmon_full_sm_qc41

PROGRAM28=      $(GLOBALDIR)check_effective_gap

PROGRAM29=      $(GLOBALDIR)check_effective_sm


CC=		gcc
CPP=            g++

FLAGS=		-DUNIX -DLINUX

LFLAGS=

DIRLIB =        /usr/lib
LIBS=		-L $(DIRLIB) -lcaenhvwrapper -lncurses

INCLUDEDIR=	-I./$(GLOBALDIR) -I./include/ -I./home/gif/rpcupgrade/CAEN1527_monitoring-1.00/include

INSTALLDIR=	./

SOURCES=	$(GLOBALDIR)SetV0.c

SOURCES2=	$(GLOBALDIR)HVmon.c

SOURCES3=	$(GLOBALDIR)SetI0.c

SOURCES4=	$(GLOBALDIR)SetTrip.c

SOURCES5=	$(GLOBALDIR)HVprint.c

SOURCES6=	$(GLOBALDIR)HVscan.c

SOURCES7=	$(GLOBALDIR)SetV0_single.c

SOURCES8=	$(GLOBALDIR)HVprint_single.c

SOURCES9=	$(GLOBALDIR)SetTrip_single.c

SOURCES10=	$(GLOBALDIR)SetI0_single.c

SOURCES11=	$(GLOBALDIR)HVmon_full.c

SOURCES12=	$(GLOBALDIR)SetPower.c

SOURCES13=	$(GLOBALDIR)meteologging.c

SOURCES14=	$(GLOBALDIR)HVscan_gap.c

SOURCES15=	$(GLOBALDIR)SetI0_gap.c

SOURCES16=	$(GLOBALDIR)SetTrip_gap.c

SOURCES17=	$(GLOBALDIR)SetV0_gap.c

SOURCES18=	$(GLOBALDIR)htmlout.cpp

SOURCES19=	$(GLOBALDIR)SetPower_bt.c

SOURCES20=	$(GLOBALDIR)htmlout2.cpp

SOURCES21=      $(GLOBALDIR)HVtrends.c

SOURCES22=      $(GLOBALDIR)HVtrends_sm.c

SOURCES23=      $(GLOBALDIR)HVscan_sm.c

SOURCES24=      $(GLOBALDIR)HVmon_full_sm.c

SOURCES25=      $(GLOBALDIR)HVmon_full_gap.c

SOURCES26=      $(GLOBALDIR)Channel_test.c

SOURCES27=      $(GLOBALDIR)HVmon_full_sm_qc41.c

SOURCES28=      $(GLOBALDIR)check_effective_gap.c

SOURCES29=      $(GLOBALDIR)check_effective_sm.c

OBJECTS=	$(GLOBALDIR)SetV0.o

OBJECTS2=	$(GLOBALDIR)HVmon.o

OBJECTS3=	$(GLOBALDIR)SetI0.o

OBJECTS4=	$(GLOBALDIR)SetTrip.o

OBJECTS5=	$(GLOBALDIR)HVprint.o

OBJECTS6=	$(GLOBALDIR)HVscan.o

OBJECTS7=	$(GLOBALDIR)SetV0_single.o

OBJECTS8=	$(GLOBALDIR)HVprint_single.o

OBJECTS9=	$(GLOBALDIR)SetTrip_single.o

OBJECTS10=	$(GLOBALDIR)SetI0_single.o

OBJECTS11=	$(GLOBALDIR)HVmon_full.o

OBJECTS12=	$(GLOBALDIR)SetPower.o

OBJECTS13=	$(GLOBALDIR)meteologging.o

OBJECTS14=	$(GLOBALDIR)HVscan_gap.o

OBJECTS15=	$(GLOBALDIR)SetI0_gap.o

OBJECTS16=	$(GLOBALDIR)SetTrip_gap.o

OBJECTS17=	$(GLOBALDIR)SetV0_gap.o

OBJECTS18=	$(GLOBALDIR)htmlout.o

OBJECTS19=	$(GLOBALDIR)SetPower_bt.o

OBJECTS20=	$(GLOBALDIR)htmlout2.o

OBJECTS21=      $(GLOBALDIR)HVtrends.o

OBJECTS22=      $(GLOBALDIR)HVtrends_sm.o

OBJECTS23=      $(GLOBALDIR)HVscan_sm.o

OBJECTS24=      $(GLOBALDIR)HVmon_full_sm.o

OBJECTS25=      $(GLOBALDIR)HVmon_full_gap.o

OBJECTS26=      $(GLOBALDIR)Channel_test.o

OBJECTS27=      $(GLOBALDIR)HVmon_full_sm_qc41.o

OBJECTS28=      $(GLOBALDIR)check_effective_gap.o

OBJECTS29=      $(GLOBALDIR)check_effective_sm.o

INCLUDES=	CAENHVWrapper.h caenhvoslib.h

LIB=		Lib/libcaenhvwrapper.so.2.11 Lib/hscaenetlib.so.1.6

INSTALLDIRLIB=	/usr/lib

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

ARFLAGS=		r

CFLAGS=			$(FLAGS)

clean:
			rm -f $(OBJECTS) $(PROGRAM)
			rm -f $(OBJECTS2) $(PROGRAM2)
			rm -f $(OBJECTS3) $(PROGRAM3)
			rm -f $(OBJECTS4) $(PROGRAM4)
			rm -f $(OBJECTS5) $(PROGRAM5)
			rm -f $(OBJECTS6) $(PROGRAM6)
			rm -f $(OBJECTS7) $(PROGRAM7)
			rm -f $(OBJECTS8) $(PROGRAM8)
			rm -f $(OBJECTS9) $(PROGRAM9)
			rm -f $(OBJECTS10) $(PROGRAM10)
			rm -f $(OBJECTS11) $(PROGRAM11)
			rm -f $(OBJECTS12) $(PROGRAM12)
			rm -f $(OBJECTS13) $(PROGRAM13)
			rm -f $(OBJECTS14) $(PROGRAM14)
			rm -f $(OBJECTS15) $(PROGRAM15)
			rm -f $(OBJECTS16) $(PROGRAM16)
			rm -f $(OBJECTS17) $(PROGRAM17)
			rm -f $(OBJECTS18) $(PROGRAM18)
			rm -f $(OBJECTS19) $(PROGRAM19)
			rm -f $(OBJECTS20) $(PROGRAM20)
			rm -f $(OBJECTS21) $(PROGRAM21)
			rm -f $(OBJECTS22) $(PROGRAM22)
			rm -f $(OBJECTS23) $(PROGRAM23)
			rm -f $(OBJECTS24) $(PROGRAM24)
			rm -f $(OBJECTS25) $(PROGRAM25)
			rm -f $(OBJECTS26) $(PROGRAM26)
			rm -f $(OBJECTS27) $(PROGRAM27)
			rm -f $(OBJECTS28) $(PROGRAM28)
			rm -f $(OBJECTS29) $(PROGRAM29)

install:
			install $(LIB) $(INSTALLDIRLIB)
			ln -sf $(INSTALLDIRLIB)/libcaenhvwrapper.so.2.11 $(INSTALLDIRLIB)/libcaenhvwrapper.so
			ln -sf $(INSTALLDIRLIB)/hscaenetlib.so.1.6 $(INSTALLDIRLIB)/libhscaenet.so
			/sbin/ldconfig
			make all
			rm -f $(OBJECTS)
			rm -f $(OBJECTS2)
			rm -f $(OBJECTS3)
			rm -f $(OBJECTS4)
			rm -f $(OBJECTS5)
			rm -f $(OBJECTS6)
			rm -f $(OBJECTS7)
			rm -f $(OBJECTS8)
			rm -f $(OBJECTS9)
			rm -f $(OBJECTS10)
			rm -f $(OBJECTS11)
			rm -f $(OBJECTS12)
			rm -f $(OBJECTS13)
			rm -f $(OBJECTS14)
			rm -f $(OBJECTS15)
			rm -f $(OBJECTS16)
			rm -f $(OBJECTS17)
			rm -f $(OBJECTS18)
			rm -f $(OBJECTS19)
			rm -f $(OBJECTS20)
			rm -f $(OBJECTS21)
			rm -f $(OBJECTS22)
			rm -f $(OBJECTS23)
			rm -f $(OBJECTS24)
			rm -f $(OBJECTS25)
			rm -f $(OBJECTS26)
			rm -f $(OBJECTS27)
			rm -f $(OBJECTS28)
			rm -f $(OBJECTS29)

all:			$(PROGRAM) $(PROGRAM2) $(PROGRAM3) $(PROGRAM4) $(PROGRAM5) $(PROGRAM6) $(PROGRAM7) $(PROGRAM8) $(PROGRAM9) $(PROGRAM10) $(PROGRAM11) $(PROGRAM12) $(PROGRAM13) $(PROGRAM14) $(PROGRAM15) $(PROGRAM16) $(PROGRAM17) $(PROGRAM18) $(PROGRAM19) $(PROGRAM20) $(PROGRAM21) $(PROGRAM22) $(PROGRAM23) $(PROGRAM24) $(PROGRAM25) $(PROGRAM26) $(PROGRAM27) $(PROGRAM28) $(PROGRAM29)

$(PROGRAM):		$(OBJECTS)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM) $(OBJECTS)\
			$(LIBS)

$(PROGRAM2):		$(OBJECTS2)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM2) $(OBJECTS2)\
			$(LIBS)

$(PROGRAM3):		$(OBJECTS3)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM3) $(OBJECTS3)\
			$(LIBS)

$(PROGRAM4):		$(OBJECTS4)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM4) $(OBJECTS4)\
			$(LIBS)			

$(PROGRAM5):		$(OBJECTS5)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM5) $(OBJECTS5)\
			$(LIBS)			

$(PROGRAM6):		$(OBJECTS6)
			$(CC) $(CFLAGS) $(LFLAGS) -lm -o $(PROGRAM6) $(OBJECTS6)\
			$(LIBS)			

$(PROGRAM7):		$(OBJECTS7)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM7) $(OBJECTS7)\
			$(LIBS)			

$(PROGRAM8):		$(OBJECTS8)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM8) $(OBJECTS8)\
			$(LIBS)

$(PROGRAM9):		$(OBJECTS9)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM9) $(OBJECTS9)\
			$(LIBS)

$(PROGRAM10):		$(OBJECTS10)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM10) $(OBJECTS10)\
			$(LIBS)

$(PROGRAM11):		$(OBJECTS11)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM11) $(OBJECTS11)\
			$(LIBS)

$(PROGRAM12):		$(OBJECTS12)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM12) $(OBJECTS12)\
			$(LIBS)

$(PROGRAM13):		$(OBJECTS13)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM13) $(OBJECTS13)\
			$(LIBS)

$(PROGRAM14):		$(OBJECTS14)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM14) $(OBJECTS14)\
			$(LIBS)

$(PROGRAM15):		$(OBJECTS15)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM15) $(OBJECTS15)\
			$(LIBS)

$(PROGRAM16):		$(OBJECTS16)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM16) $(OBJECTS16)\
			$(LIBS)

$(PROGRAM17):		$(OBJECTS17)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM17) $(OBJECTS17)\
			$(LIBS)

$(PROGRAM18):		$(OBJECTS18)
			$(CPP) -o $(PROGRAM18) $(OBJECTS18)\

$(PROGRAM19):		$(OBJECTS19)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM19) $(OBJECTS19)\
			$(LIBS)

$(PROGRAM20):		$(OBJECTS20)
			$(CPP) -o $(PROGRAM20) $(OBJECTS20)\

$(PROGRAM21):           $(OBJECTS21)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM21) $(OBJECTS21)\
			$(LIBS)

$(PROGRAM22):           $(OBJECTS22)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM22) $(OBJECTS22)\
			$(LIBS)

$(PROGRAM23):           $(OBJECTS23)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM23) $(OBJECTS23)\
			$(LIBS)

$(PROGRAM24):           $(OBJECTS24)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM24) $(OBJECTS24)\
			$(LIBS)

$(PROGRAM25):           $(OBJECTS25)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM25) $(OBJECTS25)\
			$(LIBS)

$(PROGRAM26):           $(OBJECTS26)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM26) $(OBJECTS26)\
			$(LIBS)

$(PROGRAM27):           $(OBJECTS27)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM27) $(OBJECTS27)\
			$(LIBS)

$(PROGRAM28):           $(OBJECTS28)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM28) $(OBJECTS28)\
			$(LIBS)

$(PROGRAM29):           $(OBJECTS29)
			$(CC) $(CFLAGS) $(LFLAGS) -o $(PROGRAM29) $(OBJECTS29)\
			$(LIBS)

$(OBJECTS):		$(SOURCES)

$(OBJECTS2):		$(SOURCES2)

$(OBJECTS3):		$(SOURCES3)

$(OBJECTS4):		$(SOURCES4)

$(OBJECTS5):		$(SOURCES5)

$(OBJECTS6):		$(SOURCES6)

$(OBJECTS7):		$(SOURCES7)

$(OBJECTS8):		$(SOURCES8)

$(OBJECTS9):		$(SOURCES9)

$(OBJECTS10):		$(SOURCES10)

$(OBJECTS11):		$(SOURCES11)

$(OBJECTS12):		$(SOURCES12)

$(OBJECTS13):		$(SOURCES13)

$(OBJECTS14):		$(SOURCES14)

$(OBJECTS15):		$(SOURCES15)

$(OBJECTS16):		$(SOURCES16)

$(OBJECTS17):		$(SOURCES17)

$(OBJECTS18):		$(SOURCES18)

$(OBJECTS19):		$(SOURCES19)

$(OBJECTS20):		$(SOURCES20)

$(OBJECTS21):           $(SOURCES21)

$(OBJECTS22):           $(SOURCES22)

$(OBJECTS23):           $(SOURCES23)

$(OBJECTS24):           $(SOURCES24)

$(OBJECTS25):           $(SOURCES25)

$(OBJECTS26):           $(SOURCES26)

$(OBJECTS27):           $(SOURCES27)

$(OBJECTS28):           $(SOURCES28)

$(OBJECTS29):           $(SOURCES29)

$(GLOBALDIR)%.o:	$(GLOBALDIR)%.c
			$(CC) $(CFLAGS) $(INCLUDEDIR) -o $@ -c $<

$(GLOBALDIR)%.o:	$(GLOBALDIR)%.cpp
			$(CPP) $(INCLUDEDIR) -o $@ -c $<
 $<
