/[PAMELA software]/eventviewer/flight/Makefile
ViewVC logotype

Diff of /eventviewer/flight/Makefile

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.1 by mocchiut, Mon Mar 20 10:36:46 2006 UTC revision 1.25 by mocchiut, Tue Nov 4 11:14:53 2014 UTC
# Line 1  Line 1 
1  # FLIGHT EVENT VIEWER  # Flight Event Viewer software
2  # SOFTWARE VERSION  # SOFTWARE VERSION
3  VER= v1r00  VER= v10r03
 # REQUIRES CALOCOMMON and ROOT2PAW versions  
 COMMONVER=v1r9  
 R2PVER=v3r00  
 # installed calocommon version  
 COMPCOMVER=`echo ${COMMONVER} | tr -d [a-z:A-Z]`  
 INSTCOMVER=`${PAM_BIN}/calocommon |head -2 |tail -1 | tr -d [a-z:A-Z]`  
 COMPR2PVER=`echo ${R2PVER} | tr -d [a-z:A-Z]`  
 INSTR2PVER=`${PAM_BIN}/GroundDataConvert --version |head -2 |tail -1 | sed s/2//\1 | tr -d [a-z:A-Z]`  
4  # An almost general purpouse Makefile for PAMELA repository  # An almost general purpouse Makefile for PAMELA repository
5  # Let's start with some usefull definition for colorize the echo  # Let's start with some usefull definition for colorize the echo
6  RED='\E[1;31;40m'  RED='\E[1;31;40m'
7  GREEN='\E[1;32;40m'  GREEN='\E[1;32;40m'
8  YELLOW='\E[1;33;40m'  YELLOW='\E[1;33;40m'
9  BLUE='\E[1;34;40m'  BLUE='\E[1;34;40m'
10    WHITE='\E[1;37;40m'
11  VIOLET='\E[1;35;40m'  VIOLET='\E[1;35;40m'
12  CYAN='\E[1;36;40m'  CYAN='\E[1;36;40m'
 WHITE='\E[1;37;40m'  
13  # Here the echo definition to use them  # Here the echo definition to use them
14    EVIOLET=echo -e ${VIOLET}
15    ECYAN=echo -e ${CYAN}
16  ERED=echo -e ${RED}  ERED=echo -e ${RED}
17  EGREEN=echo -e ${GREEN}  EGREEN=echo -e ${GREEN}
18  EYELLOW=echo -e ${YELLOW}  EYELLOW=echo -e ${YELLOW}
19  EBLUE=echo -e ${BLUE}  EBLUE=echo -e ${BLUE}
 EVIOLET=echo -e ${VIOLET}  
 ECYAN=echo -e ${CYAN}  
20  EWHITE=echo -e ${WHITE}  EWHITE=echo -e ${WHITE}
21  # Reset the terminal  # Reset the terminal
22  RESET=tput sgr0  RESET=tput sgr0
23  # Here the variables used to override the standard make flags  # Here the variables used to override the standard make flags
24  # C  # C
25  CC=gcc  CC=gcc
26  #CFLAGS=-Wall -fPIC -O3 -g  #CFLAGS=-Wall -O -fPIC -pthread -g ${PAM_BIT}
27  CFLAGS=-Wall -fPIC -O3  CFLAGS=-Wall -O -fPIC -pthread ${PAM_BIT}
28  # Enviroment:  # Enviroment:
29  GCCVER=`gcc --version | head -1`  GCCVER=`gcc --version | head -1`
30  UNAMEA=`uname -a`  UNAMEA=`uname -a`
31  TODAY=`date`  TODAY=`date`
32  # F77  ifeq ($(GCC4),)
33    export GCCVERS=$(shell echo `gcc -dumpversion | sed 's/\./\ /g'`)
34    export GCCVERMAJ=$(word 1,$(GCCVERS))
35    export GCC4=$(shell echo `echo "${GCCVERMAJ} > 3" |bc -l`)
36    endif
37    ifeq ($(GCC4),1)
38    F77=gfortran
39    LG2C=-lgfortran
40    EXTRAOPT=
41    else
42  F77=g77  F77=g77
43  #F77FLAGS=  -Wall -Wno-globals -fPIC -fvxt -fno-automatic -fbounds-check -g -extend_source -static -fno-backslash  LG2C=-lg2c
44  F77FLAGS=  -Wall -Wno-globals -fPIC -fvxt -fno-automatic -fbounds-check -extend_source -static -fno-backslash  EXTRAOPT=-Wno-globals -fvxt
45    endif
46    #F77FLAGS=  -Wall -Wno-globals -fvxt -fno-automatic -fbounds-check -g -extend_source -static -fno-backslash ${PAM_BIT}
47    F77FLAGS=  -Wall -funroll-loops -fPIC $(EXTRAOPT) -fno-automatic -fbounds-check -extend_source -static -fno-backslash ${PAM_BIT}
48  # C++  # C++
49  CXX=g++  CXX=g++
50  #CXXFLAGS=-Wall -fPIC -O3 -g  #CXXFLAGS=-Wall -O -fPIC -pthread -g ${PAM_BIT}
51  CXXFLAGS=-Wall -fPIC -O3  CXXFLAGS=-Wall -O -fPIC -pthread ${PAM_BIT}
52  # ROOTCINT  # ROOTCINT
53  ROOTCINT=rootcint  ROOTCINT=rootcint
54  # Here the variables definig the local directories  # Here the variables definig the local directories
# Line 57  DIRDOC=doc Line 61  DIRDOC=doc
61  DIRMACROS=macros  DIRMACROS=macros
62  DIRCALIB=calib  DIRCALIB=calib
63  # Here the  PAMELA environmental variables to be checked  # Here the  PAMELA environmental variables to be checked
64  PAM_ENV= PAM_BIN_env PAM_LIB_env PAM_INC_env PAM_DOC_env PAM_MACROS_env PAM_CALIB_env PAM_YODA_env  PAM_ENV= PAM_BIN_env PAM_LIB_env PAM_INC_env PAM_DOC_env PAM_YODA_env
65    
66  # Here the local variables used to build the targets  # Here the local variables used to build the targets
67    # -- F77 - no libraries --
68  FSRCS=  FSRCS=
69  #${DIRSRC}/readb2maps.for \  FOBJS=$(FSRCS:${DIRSRC}%.for=${DIRLIB}%.o)
 #      ${DIRSRC}/ptlevel1.for \  
 #      ${DIRSRC}/track.for  
   
 FOBJS=$(FSRCS:${DIRSRC}%.for=${DIRBIN}%.o)  
 FLIBS=  
 #readb2maps ptlevel1 track  
 FULLFLIBS=$(FLIBS:%=${DIRLIB}/lib%_${VER}.so)  
 FULLLINKFLIBS=$(FLIBS:%=${DIRLIB}/lib%.so)  
70    
71  CSRCS=  # -- CPP - no libraries --
72  COBJS=$(CSRCS:${DIRMACROS}%.c=${DIRBIN}%.o)  CPPSRCS=${DIRSRC}/FEVpathtoc.cpp \
73  CLIBS=          ${DIRSRC}/FEVVerl2.cpp \
74  FULLCLIBS=$(CLIBS:%=${DIRLIB}/lib%_${VER}.so)          ${DIRSRC}/FEventViewerCore.cpp
75  FULLLINKCLIBS=$(CLIBS:%=${DIRLIB}/lib%.so)  CPPOBJS=$(CPPSRCS:${DIRSRC}%.cpp=${DIRLIB}%.o)
   
 CXXSRCS=  
 #${DIRSRC}/libptlevel1.C \  
 #       ${DIRSRC}/libtrack.C    \  
 #       ${DIRSRC}/libreadb2maps.C  
   
 FULLCXXLIBS=$(CXXSRCS:${DIRSRC}/%.C=${DIRLIB}/%_C_${VER}.so)  
   
 MACROSRCS=${DIRMACROS}/FEVpathtoc.cxx \  
           ${DIRMACROS}/FEVpamevcontrol.cxx \  
           ${DIRMACROS}/FEventViewer.cxx  
 MACROSLIBS=$(MACROSRCS:${DIRMACROS}/%.cxx=${DIRLIB}/%_cxx_${VER}.so)  
 MACROCLIBS=FEVpathtoc_cxx FEVpamevcontrol_cxx FEventViewer_cxx  
 FULLMACROCLIBS=$(MACROCLIBS:%=${DIRLIB}/%_${VER}.so)  
 FULLLINKMACROCLIBS=$(MACROCLIBS:%=${DIRLIB}/%.so)  
76    
77  HSRCS=  # -- C - no libraries --
78  FULLHLIBS=$(HSRCS:${DIRINC}/%.h=${DIRLIB}/%_h_${VER}.so)  CSRCS=
79    COBJS=$(CSRCS:${DIRSRC}%.c=${DIRLIB}%.o)
80    
81  CXXEXESRCS=${DIRSRC}/FEventViewer.cc  # -- CPP - ROOT libraries --
82  CXXEXEOBJS=$(CXXEXESRCS:${DIRSRC}%.cc=${DIRBIN}%.o)  LIBROOTSRCS=${DIRSRC}/FEVpamevcontrol.cpp
83    LIBROOTLIBS=$(LIBROOTSRCS:${DIRSRC}/%.cpp=${DIRLIB}/lib%_${VER}.so)
84    LIBROOTCLIBS=libFEVpamevcontrol
85    FULLROOTCLIBS=$(LIBROOTCLIBS:%=${DIRLIB}/%_${VER}.so)
86    
87    # -- CPP - NON-ROOT libraries --
88    LIBCPPSRCS=${DIRSRC}/color.cpp \
89               ${DIRSRC}/FEVdetector.cpp
90    LIBCPPLIBS=$(LIBCPPSRCS:${DIRSRC}/%.cpp=${DIRLIB}/lib%_${VER}.so)
91    LIBCPPCLIBS=libcolor libFEVdetector
92    FULLLIBCPPLIBS=$(LIBCPPCLIBS:%=${DIRLIB}/%_${VER}.so)
93    
94    # -- CPP - Executables --
95    CXXEXESRCS=${DIRSRC}/FEventViewer.cpp
96    CXXEXEOBJS=$(CXXEXESRCS:${DIRSRC}%.cpp=${DIRLIB}%.o)
97  CXXEXELIBS:=FEventViewer  CXXEXELIBS:=FEventViewer
98    
99  FULLLIBS=${FULLFLIBS} ${FULLCXXLIBS} ${FULLCLIBS} ${FULLHLIBS}  # -- list of tracker objects needed to link
100    TRKOBJS=${PAM_LIB}/libDarthVader.so ${PAM_LIB}/libGLTables.so ${PAM_LIB}/libsgp4.so  
101    #${PAM_LIB}/libTrkLevel2.so ${PAM_LIB}/libTrkLevel1.so ${PAM_LIB}/libGLTables.so ${PAM_LIB}/libRunInfo.so ${PAM_LIB}/libNDLevel2.so ${PAM_LIB}/libAcLevel2.so ${PAM_LIB}/libToFLevel2.so ${PAM_LIB}/libS4Level2.so ${PAM_LIB}/libCaloLevel2.so ${PAM_LIB}/libOrbitalInfo.so ${PAM_LIB}/libTrigLevel2.so
102    # -- directory where to find tracker headers needed to compile
103    SUBDIR=
104    SUBINC=-I${PAM_INC}
105    #SUBINC=$(shell for dir in `echo ${SUBDIR}`; do echo -I$${dir}/inc; done)
106    
107    # List of all libraries we want to install
108    FULLLIBS = ${FULLROOTCLIBS} ${FULLLIBCPPLIBS}
109    
110  EXESRCS = ${DIRBIN}/FEventViewer  # Other objects to install
111    EXESRCS=${DIRBIN}/FEventViewer
112    
113  INCSRCS= ${DIRINC}/feventviewer.h  INCSRCS=${DIRINC}/FEventViewer.h ${DIRINC}/FEVpamevcontrol.h ${DIRINC}/FEVpathtoc.h ${DIRINC}/feventvstruct.h ${DIRINC}/color.h
114    
115    MACROSSRCS=
 MACROSSRCS=${DIRMACROS}/FEventViewer.cxx ${DIRMACROS}/ffilter.cxx  
116    
117  CALIBFILES=  CALIBFILES=
118    
119  DOCFILES=${DIRDOC}/FEventViewer.README.pdf ${DIRDOC}/ffilter.cxx  DOCFILES=
120    
121  # Here the Variables used for info target  # Here the Variables used for info target
122  PACKAGE=PAMELA flight event viewer software  PACKAGE=
123  EXECUTABLES=FEventViewer  EXECUTABLES= ${EXESRCS}
124  LIBS= ${FLIBS} ${FOBJS} ${CLIBS} ${COBJS} ${CXXEXEOBJS}  LIBS= ${FULLLIBS}
125  DOCS=  DOCS=
126  SRCS= ${FSRCS} ${CRSCS} ${CXXEXESRCS}  SRCS=
127    #SRCS= ${FSRCS} ${CRSCS} ${CXXEXESRCS} ${LIBROOTSRCS} ${LIBCPPSRCS}
128  MACROS= ${MACROSSRCS}  MACROS= ${MACROSSRCS}
129    INCLUDE= ${INCSRCS}
130  #  #
131  TOBEDEL = junk  TOBEDEL = junk
132  ROOTINC=$$${shell root-config --incdir}  ROOTINC=$$${shell root-config --incdir}
133  NROOTINC=${shell root-config --incdir}  NROOTINC=${shell root-config --incdir}
134  # Let's start  # Let's start
135  all : test mkbindir mklibdir mkpathtoc ${FULLFLIBS} ${FULLCXXLIBS} ${MACROSLIBS} ${CXXEXELIBS}  #all: test mkbindir mklibdir mkverpath ${FOBJS} ${CPPOBJS} ${LIBROOTLIBS} ${LIBCPPLIBS} ${CXXEXELIBS}
136    all: prepare libs exe
137  all:  all:
138          @echo -e ${GREEN} ""          @echo -e ${GREEN} ""
139          @(${EGREEN} " Finished, now you can install the package \n  (use: make install or make upgrade or make forceinstall) "; ${RESET})          @(${EGREEN} " Finished, now you can install the package \n  (use: make install or make upgrade or make forceinstall) "; ${RESET})
140          @echo -e ${GREEN} ""          @echo -e ${GREEN} ""
         @if [ "$(shell ${PAM_BIN}/CaloLEVEL2 --version 2>/dev/null | grep version | tr -d [a-z:A-Z\ ])" ]; then (${EVIOLET} "WARNING: the installation will break dependencies of CALOLEVEL2"; ${RESET}); (${EVIOLET} "WARNING: re-compile CALOLEVEL2 package after the installation"; ${RESET}); echo -e ${GREEN} ""; fi        
141          @${RESET}          @${RESET}
142    
143  # Here some general rules to produce objects in our local dir  prepare: test mkbindir mklibdir mkverpath mkpathtoc
 # .o from fortran  
 ${DIRBIN}/%.o : ${DIRSRC}/%.for  
         @(${EGREEN} "Creating object file: "${WHITE} "$@"; ${RESET})  
         @${F77} ${F77FLAGS} -c -o $@ $< -I${DIRINC}  
   
 ${DIRBIN}/%.o: ${DIRSRC}/%.cc  
         @(${EGREEN} "Creating object file: "${WHITE} "$@"; ${RESET})  
         @cat ${DIRSRC}/`basename ${@} .o`.cc > ${DIRSRC}/temp.cc;  
         @echo ' ' >> ${DIRSRC}/temp.cc  
         @echo 'void info(){ printf("\nEventViewer package version: ${VER}\n\nCompiled on '${TODAY}' with: '${GCCVER}'\n\nOn: '${UNAMEA}'\n\n"); }' >> ${DIRSRC}/temp.cc  
         @${CXX} ${CXXFLAGS} -c -o $@ ${DIRSRC}/temp.cc -I${DIRINC} -I${PAM_INC} -I${PAM_YODA}/include/yoda/ `root-config --cflags`  
   
 # .o from C  
 ${DIRBIN}/%.o : ${DIRSRC}/%.c  
         @(${EGREEN} "Creating object file: "${WHITE} "$@"; ${RESET})  
         @${CC} ${CFLAGS} -c -o $@ $< -I${DIRINC}  
   
   
 # .so from .o fortran  
 ${FULLFLIBS}: ${FOBJS}  
         @(${EGREEN} "Creating library: "${WHITE} "$@"; ${RESET})  
         @${CXX} ${CXXFLAGS} -Xlinker -soname=$(@F) -shared -o $@ ${DIRBIN}/$(patsubst lib%_${VER}.so,%.o,$(@F)) -lg2c `cernlib mathlib`  
         @(${EGREEN} "Creating symlink from : "${WHITE} "$@"; ${RESET})  
         @(${EGREEN} "                   to : "${WHITE} "${DIRLIB}/`basename $@ _${VER}.so`.so"; ${RESET})  
         @ln -sf `basename $@` ${DIRLIB}/`basename $@ _${VER}.so`.so  
   
 # .so from .o c  
 ${FULLCLIBS}: ${COBJS}  
         @(${EGREEN} "Creating library: "${WHITE} "$@"; ${RESET})  
         @${CXX} ${CXXFLAGS} -Xlinker -soname=$(@F) -shared -o $@ $^ -lg2c `mysql_config --cflags --libs`  
         @(${EGREEN} "Creating symlink from : "${WHITE} "$@"; ${RESET})  
         @(${EGREEN} "                   to : "${WHITE} "${DIRLIB}/`basename $@ _${VER}.so`.so"; ${RESET})  
         @ln -sf `basename $@` ${DIRLIB}/`basename $@ _${VER}.so`.so  
144    
145    exe: prepare ${CXXEXELIBS}
146    
147  ${MACROSLIBS}: ${MACROSRCS}  libs: prepare ${LIBROOTLIBS} ${LIBCPPLIBS}
148          @(${EGREEN} "Compiling macro: "${WHITE} "$@"; ${RESET})  
149    # Here some general rules to produce objects in our local dir
150    ${DIRLIB}/%.o: ${DIRSRC}/%.cpp
151            @(${EGREEN} "Creating CPP object file: "${WHITE} "`basename $@`"; ${RESET})
152            @${CXX} ${CXXFLAGS} -c -o $@ ${DIRSRC}/`basename ${@} .o`.cpp -I${DIRINC} ${SUBINC} -I${PAM_YODA}/include/yoda/ -I${PAM_YODA}/include/utils/ `root-config --cflags`
153    
154    ${DIRLIB}/%.o: ${DIRSRC}/%.c
155            @(${EGREEN} "Creating C object file: "${WHITE} "`basename $@`"; ${RESET})
156            @${CXX} ${CXXFLAGS} -c -o $@ ${DIRSRC}/`basename ${@} .o`.c -I${DIRINC} ${SUBINC} -I${PAM_YODA}/include/yoda/ -I${PAM_YODA}/include/utils/ `root-config --cflags`
157    
158    ${DIRLIB}/%.o: ${DIRSRC}/%.for
159            @(${EGREEN} "Creating F77 object file: "${WHITE} "`basename $@`"; ${RESET})
160            @${F77} ${F77FLAGS} -c -o $@ ${DIRSRC}/`basename ${@} .o`.for -I${DIRINC}
161    
162    ${LIBROOTLIBS}: ${LIBROOTSRCS}
163            @(${EGREEN} "ROOTCINT - creating file: "${WHITE} "`basename $(@F) _${VER}.so | sed s/lib//`Dict.cpp"; ${RESET})
164  #  #
165  #       Create *Dict.cxx and *Dict.h  #       Create *Dict.cpp and *Dict.h
166  #  #
167          @${ROOTCINT} -f ${DIRMACROS}/`basename $(@F) _cxx_${VER}.so`Dict.cxx -c -I${ROOTINC} ${DIRINC}/`basename $(@F) _cxx_${VER}.so`fun.h ${DIRINC}/`basename $(@F) _cxx_${VER}.so`LinkDef.h          @${ROOTCINT} -f ${DIRSRC}/`basename $(@F) _${VER}.so | sed s/lib//`Dict.cpp -c -I${ROOTINC} -I${PAM_YODA}/include/yoda/ -I${PAM_YODA}/include/utils/ ${DIRINC}/`basename $(@F) _${VER}.so | sed s/lib//`.h ${DIRINC}/`basename $(@F) _${VER}.so | sed s/lib//`LinkDef.h
168  #  #
169  #       create .o  #       create .o
170  #  #
171          @cd ${DIRMACROS} &>/dev/null && ${CXX} ${CXXFLAGS} -c `basename $(@F) _cxx_${VER}.so`.cxx -I${PAM_INC} -I${DIRTOP}/${DIRINC} -I${DIRTOP} -I${PAM_YODA}/include/yoda/ -I${NROOTINC};          @(${EGREEN} "Compiling CPP file: "${WHITE} "`basename $(@F) _${VER}.so | sed s/lib//`.cpp"; ${RESET})
172          @cd ${DIRMACROS} &>/dev/null && ${CXX} ${CXXFLAGS} -c `basename $(@F) _cxx_${VER}.so`Dict.cxx -I${PAM_INC} -I${DIRTOP}/${DIRINC} -I${DIRTOP} -I${PAM_YODA}/include/yoda/ -I${NROOTINC};          @${CXX} ${CXXFLAGS} -c ${DIRTOP}/${DIRSRC}/`basename $(@F) _${VER}.so | sed s/lib//`.cpp  -o ${DIRTOP}/${DIRLIB}/`basename $(@F) _${VER}.so | sed s/lib//`.o -I${DIRTOP}/${DIRINC} -I${DIRTOP} ${SUBINC} -I${PAM_YODA}/include/yoda/ -I${PAM_YODA}/include/utils/ -I${NROOTINC};
173            @(${EGREEN} "Compiling CPP file: "${WHITE} "`basename $(@F) _${VER}.so | sed s/lib//`Dict.cpp"; ${RESET})
174            @${CXX} ${CXXFLAGS} -c ${DIRTOP}/${DIRSRC}/`basename $(@F) _${VER}.so | sed s/lib//`Dict.cpp -o ${DIRTOP}/${DIRLIB}/`basename $(@F) _${VER}.so | sed s/lib//`Dict.o -I${DIRTOP}/${DIRINC} -I${DIRTOP} ${SUBINC} -I${PAM_YODA}/include/yoda/ -I${PAM_YODA}/include/utils/ -I${NROOTINC};
175  #  #
176  #       create .so  #       create .so
177  #  #
178          @if [ "$@" == "${DIRLIB}/FEVpathtoc_cxx_${VER}.so" ] || [ "$@" == "${DIRLIB}/FEVpamevcontrol_cxx_${VER}.so" ]; then ${CXX} ${CXXFLAGS} -Xlinker -soname=$(@F) -shared -o $@ -lg2c -I${PAM_INC} -I${DIRTOP}/${DIRINC} -I${DIRTOP} -I${PAM_YODA}/include/yoda/ ${PAM_YODA}/lib/libyoda.so ${DIRTOP}/${DIRMACROS}/`basename $(@F) _cxx_${VER}.so`.o ${DIRTOP}/${DIRMACROS}/`basename $(@F) _cxx_${VER}.so`Dict.o `root-config --cflags --glibs` 1>/dev/null; fi          @(${EGREEN} "Creating shared library: "${WHITE} "`basename $@`"; ${RESET})
179  #          @${CXX} ${CXXFLAGS} -Xlinker -soname=$(@F) -shared -o $@ $(LG2C) -I${DIRTOP}/${DIRINC} -I${DIRTOP} -I${PAM_YODA}/include/yoda/ -I${PAM_YODA}/include/utils/ ${SUBINC} ${DIRTOP}/${DIRLIB}/`basename $(@F) _${VER}.so | sed s/lib//`.o ${DIRTOP}/${DIRLIB}/`basename $(@F) _${VER}.so | sed s/lib//`Dict.o 1>/dev/null
180          @if [ "$@" == "${DIRLIB}/FEventViewer_cxx_${VER}.so" ]; then ${CXX} ${CXXFLAGS} -Xlinker -soname=$(@F) -shared -o $@ -lg2c -I${PAM_INC} -I${DIRTOP}/${DIRINC} -I${DIRTOP} -I${PAM_YODA}/include/yoda/ ${PAM_YODA}/lib/libyoda.so ${DIRTOP}/${DIRMACROS}/`basename $(@F) _cxx_${VER}.so`.o ${DIRTOP}/${DIRMACROS}/`basename $(@F) _cxx_${VER}.so`Dict.o ${DIRTOP}/${DIRLIB}/FEVpathtoc_cxx_${VER}.so  ${DIRTOP}/${DIRLIB}/FEVpamevcontrol_cxx_${VER}.so `root-config --cflags --glibs` 1>/dev/null; fi          @ln -sf  ${DIRTOP}/${DIRLIB}/$(@F) ${DIRTOP}/${DIRLIB}/$(patsubst %_${VER}.so,%.so,$(@F))
   
181    
182  #${MACROSLIBS}: ${MACROSRCS}  ${LIBCPPLIBS}: ${LIBCPPSRCS} ${LIBSRCS} ${COBJS} ${FOBJS}
183  #       @(${EGREEN} "Compiling macro: "${WHITE} "$@"; ${RESET})  #
184  #       @echo '.include ${DIRTOP}/${DIRINC}' > build_so.txt  #       create .o
185  #       @echo '.include ${PAM_INC}' >> build_so.txt  #
186  #       @echo 'TString *junk=new TString();' >> build_so.txt          @(${EGREEN} "Compiling CPP file: "${WHITE} "`basename $(@F) _${VER}.so | sed s/lib//`.cpp"; ${RESET})
187  #       @echo '*junk=gSystem->GetDynamicPath();' >> build_so.txt          @${CXX} ${CXXFLAGS} -c ${DIRTOP}/${DIRSRC}/`basename $(@F) _${VER}.so | sed s/lib//`.cpp -o ${DIRTOP}/${DIRLIB}/`basename $(@F) _${VER}.so | sed s/lib//`.o -I${DIRTOP}/${DIRINC} ${SUBINC} -I${PAM_YODA}/include/yoda/ -I${PAM_YODA}/include/utils/ -I${NROOTINC};
188  #       @echo '*junk+=":${DIRLIB}";' >> build_so.txt  #
189  #       @echo 'gSystem->SetDynamicPath(junk.Data());' >> build_so.txt  #       create .so
190  #       @echo 'char *lmac = gSystem->ExpandPathName("$$PAM_INC");'>>build_so.txt  #
191  #       @echo 'gInterpreter->AddIncludePath(lmac);'>>build_so.txt          @(${EGREEN} "Creating shared library: "${WHITE} "`basename $@`"; ${RESET})
192  #       @echo 'char *pamyoda = gSystem->ExpandPathName("$$PAM_YODA");' >>build_so.txt          @${CXX} ${CXXFLAGS} -Xlinker -soname=$(@F) -shared -o $@ $(LG2C) -I${DIRTOP}/${DIRINC} -I${DIRTOP} ${SUBINC} ${SUBINC} -I${PAM_YODA}/include/yoda/ -I${PAM_YODA}/include/utils/ ${DIRTOP}/${DIRLIB}/`basename $(@F) _${VER}.so | sed s/lib//`.o ${FOBJS} ${COBJS} 1>/dev/null
193  #       @echo 'stringstream incy;' >>build_so.txt          @ln -sf  ${DIRTOP}/${DIRLIB}/$(@F) ${DIRTOP}/${DIRLIB}/$(patsubst %_${VER}.so,%.so,$(@F))
 #       @echo 'incy.str("");' >>build_so.txt  
 #       @echo 'incy << pamyoda << "/include/yoda/";' >>build_so.txt  
 #       @echo 'gInterpreter->AddIncludePath(incy.str().c_str());' >>build_so.txt  
 #       @echo 'incy.str("");' >>build_so.txt  
 #       @echo 'incy << pamyoda << "/event/";'>>build_so.txt  
 #       @echo 'gInterpreter->AddIncludePath(incy.str().c_str());'>>build_so.txt  
 #       @echo 'gSystem->cd("'${DIRMACROS}'");' >> build_so.txt  
 #       @echo 'char *pamyodalib = gSystem->ExpandPathName("$$PAM_YODA");' >>build_so.txt  
 #       @echo 'stringstream libYODA;'>>build_so.txt  
 #       @echo 'libYODA.str("");' >>build_so.txt  
 #       @echo 'libYODA << pamyodalib << "/lib/libyoda.so";'>>build_so.txt  
 #       @echo 'gSystem->Load(libYODA.str().c_str());'>>build_so.txt  
 #       @echo 'libYODA.str("");' >>build_so.txt  
 ##      @echo 'libYODA << "${DIRTOP}/${DIRLIB}/libtrack_${VER}.so";'>>build_so.txt  
 ##      @echo 'gSystem->Load(libYODA.str().c_str());'>>build_so.txt  
 ##      @echo 'libYODA.str("");' >>build_so.txt  
 ##      @echo 'libYODA << "${DIRTOP}/${DIRLIB}/libtrack_C_${VER}.so";'>>build_so.txt  
 ##      @echo 'gSystem->Load(libYODA.str().c_str());'>>build_so.txt  
 ##      @echo 'libYODA.str("");' >>build_so.txt  
 ##      @echo 'libYODA << "${DIRTOP}/${DIRLIB}/libptlevel1_${VER}.so";'>>build_so.txt  
 ##      @echo 'gSystem->Load(libYODA.str().c_str());'>>build_so.txt  
 ##      @echo 'libYODA.str("");' >>build_so.txt  
 ##      @echo 'libYODA << "${DIRTOP}/${DIRLIB}/libptlevel1_C_${VER}.so";'>>build_so.txt  
 ##      @echo 'gSystem->Load(libYODA.str().c_str());'>>build_so.txt  
 ##      @echo 'libYODA.str("");' >>build_so.txt  
 ##      @echo 'libYODA << "${DIRTOP}/${DIRLIB}/libreadb2maps_${VER}.so";'>>build_so.txt  
 ##      @echo 'gSystem->Load(libYODA.str().c_str());'>>build_so.txt  
 ##      @echo 'libYODA.str("");' >>build_so.txt  
 ##      @echo 'libYODA << "${DIRTOP}/${DIRLIB}/libreadb2maps_C_${VER}.so";'>>build_so.txt  
 ##      @echo 'gSystem->Load(libYODA.str().c_str());'>>build_so.txt  
 ##      @echo 'libYODA.str("");' >>build_so.txt  
 ##      @echo 'libYODA << "${PAM_LIB}/caloclasses_h.so";'>>build_so.txt  
 ##      @echo 'gSystem->Load(libYODA.str().c_str());'>>build_so.txt  
 ##      @echo 'libYODA.str("");' >>build_so.txt  
 ##      @echo 'libYODA << "${PAM_LIB}/aclev1class_h.so";'>>build_so.txt  
 ##      @echo 'gSystem->Load(libYODA.str().c_str());'>>build_so.txt  
 #       if [ "$@" != "${DIRLIB}/FEVpathtoc_c_"${VER}".so" ]; then \  
 #       echo 'libYODA.str("");' >>build_so.txt ; \  
 #       echo 'libYODA << "'${DIRTOP}/${DIRLIB}'/FEVpathtoc_c_'${VER}'.so";'>>build_so.txt ; \  
 #       echo 'gSystem->Load(libYODA.str().c_str());'>>build_so.txt ; \  
 #       fi;  
 #       if [ "$@" != "${DIRLIB}/FEVpathtoc_cxx_"${VER}".so" ]; then \  
 #       ${CXX} ${CXXFLAGS} -Xlinker -soname=$(@F) -shared -o $@ ${DIRMACROS}/`basename $(@F) _cxx_${VER}.so`.cxx -lg2c -I${PAM_INC} -I${DIRTOP}/${DIRINC} -I${DIRTOP} -I${PAM_YODA}/include/yoda/ ${PAM_YODA}/lib/libyoda.so ${DIRTOP}/${DIRLIB}/FEVpathtoc_cxx_${VER}.so `root-config --cflags --glibs` 1>/dev/null; \  
 #       else \  
 #       ${CXX} ${CXXFLAGS} -Xlinker -soname=$(@F) -shared -o $@ ${DIRMACROS}/`basename $(@F) _cxx_${VER}.so`.cxx -lg2c -I${PAM_INC} -I${DIRTOP}/${DIRINC} -I${DIRTOP} -I${PAM_YODA}/include/yoda/ ${PAM_YODA}/lib/libyoda.so `root-config --cflags --glibs` 1>/dev/null; \  
 #       fi  
 #       @echo '.debug' >> build_so.txt  
 #       @echo '.L $(patsubst %_c_${VER}.so,%.c++,$(@F))' >> build_so.txt  
 #       @echo '.q' >> build_so.txt  
 #       @root -l -b 1>/dev/null  < build_so.txt  
 #       @mv -f ${DIRMACROS}/$(patsubst %_c_${VER}.so,%_c.so,$(@F)) ${DIRLIB}/$(@F)  
 #       @rm -f build_so.txt  
194    
195  ${CXXEXELIBS}: ${CXXEXEOBJS}  ${CXXEXELIBS}: ${LIBROOTSRCS} ${CPPOBJS} ${COBJS} ${CXXEXEOBJS}
196          @(${EGREEN} "Creating exec file: "${WHITE} "$@"; ${RESET})          @(${EGREEN} "Creating exec file: "${WHITE} "$@"; ${RESET})
197          @${CXX} ${CXXFLAGS} -o ${DIRBIN}/$@ ${DIRBIN}/$@.o -I${DIRINC} -I${PAM_INC} -I${PAM_YODA}/include/yoda/ ${PAM_YODA}/lib/libyoda.so ${DIRTOP}/${DIRLIB}/FEVpathtoc_cxx_${VER}.so ${DIRTOP}/${DIRLIB}/FEVpamevcontrol_cxx_${VER}.so ${DIRTOP}/${DIRLIB}/$@_cxx_${VER}.so `root-config --cflags --glibs`  #       @${CXX} ${CXXFLAGS} -o ${DIRBIN}/$@ ${DIRLIB}/$@.o ${FULLROOTCLIBS} ${FULLLIBCPPLIBS} ${CPPOBJS} ${FOBJS} ${TRKOBJS} ${PAM_YODA}/lib/libyoda.so -I${DIRINC} ${SUBINC} -I${PAM_YODA}/include/yoda/ -lThread `root-config --cflags --glibs` `cernlib mathlib`
198  #       @${CXX} ${CXXFLAGS} -o ${DIRBIN}/$@ ${DIRBIN}/$@.o -I${DIRINC} -I${PAM_INC} -I${PAM_YODA}/include/yoda/ ${PAM_LIB}/caloclasses_h.so ${PAM_YODA}/lib/libyoda.so ${DIRTOP}/${DIRLIB}/FEVpathtoc_c_${VER}.so ${PAM_LIB}/aclev1class_h.so ${DIRTOP}/${DIRLIB}/libreadb2maps_${VER}.so ${DIRTOP}/${DIRLIB}/libreadb2maps_C_${VER}.so ${DIRTOP}/${DIRLIB}/libtrack_${VER}.so ${DIRTOP}/${DIRLIB}/libtrack_C_${VER}.so ${DIRTOP}/${DIRLIB}/libptlevel1_${VER}.so ${DIRTOP}/${DIRLIB}/libptlevel1_C_${VER}.so ${DIRTOP}/${DIRLIB}/$@_c_${VER}.so `root-config --cflags --glibs`  ##      @${CXX} ${CXXFLAGS} -o ${DIRBIN}/$@ ${DIRLIB}/$@.o ${FULLROOTCLIBS} ${FULLLIBCPPLIBS} ${TRKOBJS} ${CPPOBJS} ${COBJS} ${FOBJS} ${PAM_YODA}/lib/libyoda.so ${PAM_YODA}/lib/libutils.so ${PAM_LIB}/libPamLevel2.so -lThread `root-config --cflags --glibs` `cernlib mathlib`
199  #       @rm -f ${DIRSRC}/temp.cc  #       echo 'nuclei is ${NUCLEI}'
200            @${CXX} ${CXXFLAGS} -o ${DIRBIN}/$@ ${DIRLIB}/$@.o ${FULLROOTCLIBS} ${FULLLIBCPPLIBS} ${TRKOBJS} ${CPPOBJS} ${COBJS} ${FOBJS} ${PAM_YODA}/lib/libyoda.so ${PAM_LIB}/libPamLevel2.so -lThread `root-config --cflags --glibs` `doc/cernlib_pam mathlib`;
201    
202  # A small target to check environmental variables  # A small target to check environmental variables
203  %_env:  %_env:
204          @${test_env}          @${test_env}
205    
206  .PHONY: install installdoc installlib installmacros installinc  .PHONY: install installdoc installlib installmacros installinc installexe installcmacro
207  .PHONY: clean depclean info mkbindir mklibdir testcern testpamenv test testcalocommon testroot2paw testmysql  .PHONY: clean depclean info mkbindir mklibdir testcern testpamenv test
208    
209  mkbindir: ${DIRBIN}  mkbindir: ${DIRBIN}
210  ${DIRBIN}:  ${DIRBIN}:
# Line 273  ${DIRLIB}: Line 215  ${DIRLIB}:
215          @${test_and_mk}          @${test_and_mk}
216    
217  # Here what has to be deleted in clean target  # Here what has to be deleted in clean target
218  clean: TOBEDEL=${DIRMACROS}/*.o ${DIRMACROS}/*Dict.cxx ${DIRMACROS}/*Dict.h ${FOBJS} ${FULLLIBS} ${DIRBIN}/${CXXEXELIBS} ${COBJS} ${CXXEXEOBJS} ${FULLLINKFLIBS} ${FULLLINKCLIBS}  clean: TOBEDEL= ${DIRSRC}/*.o ${DIRSRC}/*Dict.cpp ${DIRSRC}/*Dict.h ${FOBJS} ${FULLLIBS} ${DIRBIN}/${CXXEXELIBS} ${CPPOBJS} ${CXXEXEOBJS} ${FULLLINKCLIBS} ${FULLMACROCLIBS} ${FULLLINKMACROCLIBS} ${DIRSRC}/FEVVerl2.cpp ${DIRSRC}/FEVpathtoc.cpp
219  clean:  clean:
220          @${test_and_rm}          @${test_and_rm}
221    
# Line 288  forceinstall: install Line 230  forceinstall: install
230  upgrade: FORCE=-u  upgrade: FORCE=-u
231  upgrade: install  upgrade: install
232    
233  install: installlib installinc installmacros installcalib installdoc installexe installcmacro  install: installlib installinc installmacros installcalib installdoc installcmacro installexe installplugins
234    
235  installlib: LINK=y  installlib: LINK=y
236  installlib: TOBEMOVED= $(FULLLIBS:${DIRLIB}%=${PAM_LIB}%)  installlib: TOBEMOVED= $(FULLLIBS:${DIRLIB}%=${PAM_LIB}%)
# Line 327  installdoc: ORIGIN=${DIRDOC} Line 269  installdoc: ORIGIN=${DIRDOC}
269  installdoc:  installdoc:
270          @${test_and_cp}          @${test_and_cp}
271    
272    installplugins:
273            @if [ "${FEV_PLUGIN}" != "" ]; then cd ${FEV_PLUGIN}; ln -sf ${PAM_LIB}/libCaloViewer.so ./; ln -sf ${PAM_LIB}/libCaloEnergy.so ./; ln -sf ${PAM_LIB}/libCaloProfile.so ./; ln -sf ${PAM_LIB}/libCaloPreSampler.so ./; ln -sf ${PAM_LIB}/libCaloNuclei.so  ./; ln -sf ${PAM_LIB}/libCaloFranzini.so  ./; ln -sf ${PAM_LIB}/libCaloDoubleShower.so  ./; ln -sf ${PAM_LIB}/libCaloAxis.so ./;  ln -sf ${PAM_LIB}/libTrkNuclei.so; ln -sf ${PAM_LIB}/libToFNuclei.so; fi
274    
275    mkverpath:
276            @echo '#include <TSystem.h>' >  ${DIRTOP}/${DIRSRC}/FEVVerl2.cpp; echo ' const char *FEVInfo(bool print){ if ( print ) printf("\nEvent Viewer flight package version: ${VER}\n\nCompiled on '${TODAY}' with: '${GCCVER}'\n\nOn: '${UNAMEA}'\n\n"); return("${VER}"); }' >>  ${DIRTOP}/${DIRSRC}/FEVVerl2.cpp
277            @sleep 0.8
278    
279    mkpathtoc:
280            @if [ "${PAM_CCO}" == "" ]; then echo '#include <TSystem.h>' >  ${DIRTOP}/${DIRSRC}/FEVpathtoc.cpp; echo ' const char *pathtocalibration(){ return((const char*)gSystem->Getenv("PAM_CALIB"));}' >>  ${DIRTOP}/${DIRSRC}/FEVpathtoc.cpp; echo ' const char *pathtoinclude(){ return((const char*)gSystem->Getenv("PAM_INC"));}' >>  ${DIRTOP}/${DIRSRC}/FEVpathtoc.cpp;  fi
281            @if [ "${PAM_CCO}" != "" ]; then echo '#include <TSystem.h>' >  ${DIRTOP}/${DIRSRC}/FEVpathtoc.cpp; echo ' const char *pathtocalibration(){ return((const char*)"'${PAM_CALIB}'/");}' >>  ${DIRTOP}/${DIRSRC}/FEVpathtoc.cpp; echo ' const char *pathtocalibration(){ return((const char*)"'${PAM_INC}'/");}' >>  ${DIRTOP}/${DIRSRC}/FEVpathtoc.cpp; fi
282            @sleep 0.5
283    
284    
285    
286    
287    
288  info:  info:
289          @echo " "          @echo " "
290          @${EGREEN} "Infos for package :" ${WHITE} ${PACKAGE}          @${EGREEN} "Infos for package :" ${WHITE} ${PACKAGE}
# Line 336  info: Line 294  info:
294          @${EGREEN} "             DOCS :" ${WHITE} ${DOCS}          @${EGREEN} "             DOCS :" ${WHITE} ${DOCS}
295          @${EGREEN} "             SRCS :" ${WHITE} ${SRCS}          @${EGREEN} "             SRCS :" ${WHITE} ${SRCS}
296          @${EGREEN} "           MACROS :" ${WHITE} ${MACROS}          @${EGREEN} "           MACROS :" ${WHITE} ${MACROS}
297            @${EGREEN} "          INCLUDE :" ${WHITE} ${INCLUDE}
298          @echo " "          @echo " "
299          @${RESET}          @${RESET}
300    
301  test: testpamenv  test: testpamenv
 #test: testpamenv testcernlib testmysql testcalocommon testroot2paw  
302    
303  testpamenv: ${PAM_ENV}  testpamenv: ${PAM_ENV}
304    
 testcernlib: cernlib root-config  
   
 testmysql: mysql_config  
   
 testcalocommon: '${PAM_BIN}'/calocommon  
         @if [ ${INSTCOMVER} -lt ${COMPCOMVER} ]; then ${ERED} " ERROR: EventViewer ${VER} requires package CALOCOMMON version ${COMMONVER} "; ${RESET} ; exit 1; fi  
   
 testroot2paw: '${PAM_BIN}'/GroundDataConvert  
         @if [ ${INSTR2PVER} -lt ${COMPR2PVER} ]; then ${ERED} " ERROR: EventViewer ${VER} requires package root2paw version ${R2PVER} "; ${RESET} ; exit 1; fi  
   
 mysql_config: OPT=--cflags  
 mysql_config:  
         @$(test_cmd)  
   
 mkpathtoc:  
         @if [ "${PAM_CCO}" == "" ]; then echo '#include <TSystem.h>' >  ${DIRTOP}/${DIRMACROS}/FEVpathtoc.cxx; echo ' const char *pathtocalibration(){ return((const char*)gSystem->Getenv("PAM_CALIB"));}' >>  ${DIRTOP}/${DIRMACROS}/FEVpathtoc.cxx; fi  
         @if [ "${PAM_CCO}" != "" ]; then echo '#include <TSystem.h>' >  ${DIRTOP}/${DIRMACROS}/FEVpathtoc.cxx; echo ' const char *pathtocalibration(){ return((const char*)"'${PAM_CALIB}'/");}' >>  ${DIRTOP}/${DIRMACROS}/FEVpathtoc.cxx; fi  
         @sleep 0.5  
   
   
 '${PAM_BIN}'/calocommon:  
         @$(test_cmd)  
   
 '${PAM_BIN}'/GroundDataConvert: OPT=--version  
 '${PAM_BIN}'/GroundDataConvert:  
         @$(test_cmd)  
   
 cernlib:  
         @${test_cmd}  
305    
306  root-config: OPT=--cflags  root-config: OPT=--cflags
307  root-config:  root-config:

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.25

  ViewVC Help
Powered by ViewVC 1.1.23