--- calo/flight/CaloFranzini/Makefile 2007/12/04 12:05:27 1.1.1.1 +++ calo/flight/CaloFranzini/Makefile 2018/09/01 13:48:19 1.9 @@ -1,6 +1,6 @@ # Calorimeter "Franzini" method plugin # SOFTWARE VERSION -VER= v0r00 +VER= v1r01 # An almost general purpouse Makefile for PAMELA repository # Let's start with some usefull definition for colorize the echo RED='\E[1;31;40m' @@ -23,20 +23,33 @@ # Here the variables used to override the standard make flags # C CC=gcc -#CFLAGS=-Wall -O -fPIC -pthread -g -CFLAGS=-Wall -O -fPIC -pthread +#CFLAGS=-Wall -fPIC -pthread -g ${PAM_BIT} +CFLAGS=-Wall -O4 -fPIC -pthread ${PAM_BIT} # Enviroment: GCCVER=`gcc --version | head -1` UNAMEA=`uname -a` TODAY=`date` # F77 +ifeq ($(GCC4),) +export GCCVERS=$(shell echo `gcc -dumpversion | sed 's/\./\ /g'`) +export GCCVERMAJ=$(word 1,$(GCCVERS)) +export GCC4=$(shell echo `echo "${GCCVERMAJ} > 3" |bc -l`) +endif +ifeq ($(GCC4),1) +F77=gfortran +LG2C=-lgfortran +EXTRAOPT= +else F77=g77 -#F77FLAGS= -Wall -Wno-globals -fvxt -fno-automatic -fbounds-check -g -extend_source -static -fno-backslash -F77FLAGS= -Wall -Wno-globals -fvxt -fno-automatic -fbounds-check -extend_source -static -fno-backslash +LG2C=-lg2c +EXTRAOPT=-Wno-globals -fvxt +endif +#F77FLAGS= -Wall -Wno-globals -fvxt -fno-automatic -fbounds-check -g -extend_source -static -fno-backslash ${PAM_BIT} +F77FLAGS= -Wall -funroll-loops -fPIC $(EXTRAOPT) -fno-automatic -fbounds-check -extend_source -static -fno-backslash ${PAM_BIT} # C++ CXX=g++ -#CXXFLAGS=-Wall -O -fPIC -pthread -g -CXXFLAGS=-Wall -O -fPIC -pthread +#CXXFLAGS=-Wall -fPIC -pthread -g ${PAM_BIT} +CXXFLAGS=-Wall -O4 -fPIC -pthread ${PAM_BIT} # ROOTCINT ROOTCINT=rootcint # Here the variables definig the local directories @@ -55,7 +68,7 @@ FSRCS= FOBJS=$(FSRCS:${DIRSRC}/F77/%.f=${DIRLIB}/%.o) #------------------------------------------------- -CSRCS= +CSRCS=${DIRSRC}/Calib.cpp COBJS=$(CSRCS:${DIRSRC}%.cpp=${DIRLIB}/%.o) #------------------------------------------------- # librerie utilizzabili da root (ci deve essere anche il ***LinkDef.h ) @@ -82,14 +95,14 @@ #------------------------------------------------- # eseguibile -CXXEXESRCS= +CXXEXESRCS=${DIRSRC}/CaloCreateMatrix.cpp CXXEXEOBJS=$(CXXEXESRCS:${DIRSRC}%.cpp=${DIRLIB}%.o) -CXXEXELIBS:= +CXXEXELIBS:=CaloCreateMatrix -OTHERLIBS=${PAM_LIB}/libCaloLevel0.so ${PAM_LIB}/libCaloLevel1.so ${PAM_LIB}/libCaloLevel2.so ${PAM_LIB}/libCaloCore.so ${PAM_LIB}/libcaloclasses.so +OTHERLIBS=$(PAM_LIB)/libDarthVader.so $(PAM_LIB)/libPamLevel2.so #------------------------------------------------- # variabili per l'installazione -EXESRCS= +EXESRCS=${DIRBIN}/CaloCreateMatrix INCSRCS=${DIRINC}/CaloFranzini.h MACROSSRCS= CALIBFILES= @@ -130,7 +143,7 @@ ${LIBF77LIBS}: ${LIBF77OBJS} @(${EYELLOW} " F77 shared library --------------------------") @(${EGREEN} "Creating library: "${WHITE} "$@"; ${RESET}) - @${CXX} ${CXXFLAGS} -Xlinker -soname=$(@F) -shared -o $@ $^ -lg2c `doc/cernlib_pam mathlib` + @${CXX} ${CXXFLAGS} -Xlinker -soname=$(@F) -shared -o $@ $^ $(LG2C) `doc/cernlib_pam mathlib` ${LIBROOTLIBS}: ${LIBROOTSRCS} ${FOBJS} @@ -155,7 +168,7 @@ # create .so # @(${EGREEN} "Compiling shared library: "${WHITE} "$@"; ${RESET}) - @${CXX} ${CXXFLAGS} -Xlinker -soname=$(@F) -shared -o $@ -lg2c -I${DIRTOP}/${DIRINC} -I${DIRTOP} -I${PAM_YODA}/include/yoda -I${PAM_INC} ${DIRTOP}/${DIRSRC}/`basename $(@F) _${VER}.so | sed s/lib//`.o ${DIRTOP}/${DIRSRC}/`basename $(@F) _${VER}.so | sed s/lib//`Dict.o ${LIBROOTOBJS} `doc/cernlib_pam mathlib` 1>/dev/null + @${CXX} ${CXXFLAGS} -Xlinker -soname=$(@F) -shared -o $@ $(LG2C) -I${DIRTOP}/${DIRINC} -I${DIRTOP} -I${PAM_YODA}/include/yoda -I${PAM_INC} ${DIRTOP}/${DIRSRC}/`basename $(@F) _${VER}.so | sed s/lib//`.o ${DIRTOP}/${DIRSRC}/`basename $(@F) _${VER}.so | sed s/lib//`Dict.o ${LIBROOTOBJS} `doc/cernlib_pam mathlib` 1>/dev/null # @ln -sf ${DIRTOP}/${DIRLIB}/$(@F) ${DIRTOP}/${DIRLIB}/$(patsubst %_${VER}.so,%.so,$(@F)) ${LIBCPPLIBS}: ${LIBCPPSRCS} @@ -168,13 +181,13 @@ # create .so # @(${EGREEN} "Compiling shared library: "${WHITE} "$@"; ${RESET}) - @${CXX} ${CXXFLAGS} -Xlinker -soname=$(@F) -shared -o $@ -lg2c -I${DIRTOP}/${DIRINC} -I${DIRTOP} -I${PAM_YODA}/include/yoda/ -I${PAM_INC} ${DIRTOP}/${DIRSRC}/`basename $(@F) _${VER}.so | sed s/lib//`.o 1>/dev/null + @${CXX} ${CXXFLAGS} -Xlinker -soname=$(@F) -shared -o $@ $(LG2C) -I${DIRTOP}/${DIRINC} -I${DIRTOP} -I${PAM_YODA}/include/yoda/ -I${PAM_INC} ${DIRTOP}/${DIRSRC}/`basename $(@F) _${VER}.so | sed s/lib//`.o 1>/dev/null ${CXXEXELIBS}: ${COBJS} ${FOBJS} ${CXXEXEOBJS} @(${EVIOLET} "* * * * * * * * * * * * * * * * * * * * * * * * * * * * * *") @(${EGREEN} "Creating exec file: "${WHITE} "$@"; ${RESET}) - @${CXX} ${CXXFLAGS} -o ${DIRBIN}/$@ ${DIRLIB}/$@.o -I${DIRTOP}/${DIRINC} -I${PAM_INC} -I${PAM_YODA}/include/yoda/ ${PAM_YODA}/lib/libyoda.so ${FOBJS} ${COBJS} ${FULLLIBS} ${OTHERLIBS} -lThread `root-config --cflags --glibs` `doc/cernlib_pam mathlib` ; + @${CXX} ${CXXFLAGS} -o ${DIRBIN}/$@ ${DIRLIB}/$@.o -I${DIRTOP}/${DIRINC} -I${PAM_INC} -I${PAM_YODA}/include/yoda/ ${PAM_YODA}/lib/libyoda.so ${PAM_LIB}/libAcLevel2.so ${PAM_LIB}/libCaloLevel1.so ${PAM_LIB}/libToFLevel2.so ${PAM_LIB}/libTrkLevel2.so ${COBJS} ${FULLLIBS} ${OTHERLIBS} -lgfortran -lThread `root-config --cflags --glibs` `doc/cernlib_pam mathlib` ; # A small target to check environmental variables %_env: