File indexing completed on 2024-10-17 22:59:01
0001 include ${SADIR}/Makefile.config
0002
0003 CPPFLAGS := -I. -I${SRCDIR} -I../mkFit-external ${CPPFLAGS}
0004
0005 CMS_DIR := ${SRCDIR}/RecoTracker/MkFitCMS
0006
0007 LIB_CMS := ../libMicCMS.so
0008 MAIN := ../mkFit
0009 MAIN_DEPS := ${LIB_CMS}
0010 MAIN_LIBS := -lMicCore -lMicCMS
0011 WRMEMF := ../writeMemoryFile
0012 WMF_DICT_PCM := ../WriteMemFileDict_rdict.pcm
0013 SHELL_DICT_PCM := ../ShellDict_rdict.pcm
0014 ROOTOUT := WriteMemFileDict.cc ShellDict.cc
0015
0016 TGTS := ${LIB_CMS} ${MAIN}
0017
0018 ifdef WITH_ROOT
0019 MAIN_DEPS += ../libMicRntDump.so
0020 MAIN_LIBS += -lMicRntDump
0021 TGTS += ${WRMEMF} ${WMF_DICT_PCM} ${SHELL_DICT_PCM}
0022 endif
0023
0024 .PHONY: all clean distclean
0025
0026 all: ${TGTS}
0027
0028 SRCS := $(wildcard ${CMS_DIR}/src/*.cc) $(wildcard ${SACMS}/*.cc)
0029
0030 ifdef WITH_ROOT
0031 SRCS += ${SACMS}/tkNtuple/WriteMemoryFile.cc
0032 WriteMemFileDict.cc ${WMF_DICT_PCM} &: ${SACMS}/tkNtuple/DictsLinkDef.h
0033 rootcling ${CPPFLAGS} -I=${SRCDIR} -f WriteMemFileDict.cc $<
0034 mv WriteMemFileDict_rdict.pcm ${WMF_DICT_PCM}
0035
0036 SRCS += ShellDict.cc
0037 ShellDict.cc ${SHELL_DICT_PCM} &: ${SACMS}/ShellDict.h ${SACMS}/ShellLinkDef.h
0038 rootcling ${CPPFLAGS} -I=${SRCDIR} -f ShellDict.cc $^
0039 mv ShellDict_rdict.pcm ${SHELL_DICT_PCM}
0040 else
0041 SRCS := $(filter-out ${SACMS}/Shell.cc, ${SRCS})
0042 endif
0043
0044 SRCB := $(notdir ${SRCS})
0045 DEPS := $(SRCB:.cc=.d)
0046 OBJS := $(SRCB:.cc=.o)
0047
0048 CMS_OBJS := $(filter-out mkFit.o WriteMemoryFile.o, ${OBJS})
0049
0050 vpath %.cc ${CMS_DIR}/src ${SACMS} ${SACMS}/tkNtuple
0051
0052 ifeq ($(filter clean-local clean distclean, ${MAKECMDGOALS}),)
0053 include ${DEPS}
0054 endif
0055
0056 clean-local:
0057 -rm -f ${TGTS} *.d *.o *.om *.so *.pcm ${ROOTOUT}
0058 -rm -rf main.dSYM
0059 -rm -rf plotting/*.so plotting/*.d plotting/*.pcm
0060
0061 clean: clean-local
0062
0063 distclean: clean-local
0064 -rm -f *.optrpt
0065 -rm -f ${TGTS}
0066
0067 ${LIB_CMS}: ${CMS_OBJS}
0068 @mkdir -p $(@D)
0069 ${CXX} ${CXXFLAGS} ${VEC_HOST} ${CMS_OBJS} -shared -o $@ ${LDFLAGS_HOST} ${LDFLAGS}
0070
0071 ${MAIN}: ${MAIN_DEPS} mkFit.o
0072 ${CXX} ${CXXFLAGS} ${VEC_HOST} ${LDFLAGS} mkFit.o -o $@ ${LDFLAGS_HOST} -ltbb -L.. ${MAIN_LIBS} -Wl,-rpath=.
0073
0074 ${WRMEMF}: ${MAIN_DEPS} WriteMemoryFile.o WriteMemFileDict.o
0075 ${CXX} ${CXXFLAGS} ${LDFLAGS} WriteMemoryFile.o WriteMemFileDict.o -o $@ ${LDFLAGS_HOST} -ltbb -L.. ${MAIN_LIBS} -Wl,-rpath=.
0076
0077 ${OBJS}: %.o: %.cc %.d
0078 ${CXX} ${CPPFLAGS} ${CXXFLAGS} ${VEC_HOST} -c -o $@ $<
0079
0080 %.d: %.cc
0081 ${MAKEDEPEND} -o $@ $<
0082
0083 echo:
0084 @echo "CXX=${CXX}"
0085 @echo SRCS = ${SRCS}
0086 @echo DEPS = ${DEPS}
0087 @echo OBJS = ${OBJS}
0088 @echo MAIN_LIBS = ${MAIN_LIBS}
0089
0090 echo_cc_defs:
0091 ${CXX} -dM -E -mavx2 - < /dev/null
0092
0093 echo-srcs:
0094 @echo ${SRCS}
0095
0096 echo-flags:
0097 @echo "CPPFLAGS=${CPPFLAGS}"
0098
0099 echo-tbb:
0100 @echo "TBB_GCC=${TBB_GCC}, TBB_PREFIX=${TBB_PREFIX}, TBB_ROOT=${TBB_ROOT}"