File indexing completed on 2025-03-08 03:06:51
0001
0002
0003
0004
0005 CCSOURCES=$(wildcard ../../src/*.cc)
0006 ALPAKACCSOURCES=$(wildcard ../../src/alpaka/*.dev.cc)
0007 CCOBJECTS_CPU=$(patsubst ../../src/alpaka/%.dev.cc, %_cpu.o, $(ALPAKACCSOURCES)) $(patsubst ../../src/%.cc, %_cpu.o, $(CCSOURCES))
0008 CCOBJECTS_CUDA=$(patsubst ../../src/alpaka/%.dev.cc, %_cuda.o, $(ALPAKACCSOURCES)) $(patsubst ../../src/%.cc, %_cuda.o, $(CCSOURCES))
0009 CCOBJECTS_ROCM=$(patsubst ../../src/alpaka/%.dev.cc, %_rocm.o, $(ALPAKACCSOURCES)) $(patsubst ../../src/%.cc, %_rocm.o, $(CCSOURCES))
0010
0011 LSTSOURCES=../../src/alpaka/LST.cc
0012 LSTOBJECTS_CPU=$(patsubst ../../src/alpaka/%.cc, %_cpu.o, $(LSTSOURCES))
0013 LSTOBJECTS_CUDA=$(patsubst ../../src/alpaka/%.cc, %_cuda.o, $(LSTSOURCES))
0014 LSTOBJECTS_ROCM=$(patsubst ../../src/alpaka/%.cc, %_rocm.o, $(LSTSOURCES))
0015
0016
0017 ifeq ($(BACKEND),)
0018 LIB_CPU=liblst_cpu.so
0019 LIB_CUDA=liblst_cuda.so
0020 endif
0021
0022 ifneq ($(findstring cpu,$(BACKEND)),)
0023 LIB_CPU=liblst_cpu.so
0024 endif
0025 ifneq ($(findstring cuda,$(BACKEND)),)
0026 LIB_CUDA=liblst_cuda.so
0027 endif
0028 ifneq ($(findstring rocm,$(BACKEND)),)
0029 LIB_ROCM=liblst_rocm.so
0030 endif
0031 ifneq ($(findstring all,$(BACKEND)),)
0032 LIB_CPU=liblst_cpu.so
0033 LIB_CUDA=liblst_cuda.so
0034 LIB_ROCM=liblst_rocm.so
0035 endif
0036
0037 LIBS=$(LIB_CPU) $(LIB_CUDA) $(LIB_ROCM)
0038
0039
0040
0041
0042
0043
0044 GENCODE_CUDA := -gencode arch=compute_70,code=[sm_70,compute_70] -gencode arch=compute_89,code=[sm_89,compute_89]
0045
0046 CXX = g++
0047 CXXFLAGS_CPU = -march=native -mtune=native -Ofast -fno-reciprocal-math -fopenmp-simd -g -Wall -Woverloaded-virtual -fPIC -fopenmp -I..
0048 CXXFLAGS_CUDA = -O3 -g --compiler-options -Wall --compiler-options -Woverloaded-virtual --compiler-options -fPIC --compiler-options -fopenmp -dc -lineinfo --ptxas-options=-v --cudart shared $(GENCODE_CUDA) --use_fast_math --default-stream per-thread -I..
0049 CXXFLAGS_ROCM = -O3 -g -Wall -Woverloaded-virtual -fPIC -I${ROCM_ROOT}/include -I..
0050 CMSSWINCLUDE := -I${TRACKLOOPERDIR}/../../../ -I${CMSSW_BASE}/src -I${FMT_ROOT}/include
0051 ifdef CMSSW_RELEASE_BASE
0052 CMSSWINCLUDE := ${CMSSWINCLUDE} -I${CMSSW_RELEASE_BASE}/src
0053 endif
0054 ALPAKAINCLUDE = -I${ALPAKA_ROOT}/include -I/${BOOST_ROOT}/include -std=c++20 ${CMSSWINCLUDE}
0055 ALPAKASERIAL = -DALPAKA_ACC_CPU_B_SEQ_T_SEQ_ENABLED -DALPAKA_DISABLE_VENDOR_RNG -DALPAKA_DEFAULT_HOST_MEMORY_ALIGNMENT=128
0056 ALPAKACUDA = -DALPAKA_ACC_GPU_CUDA_ENABLED -DALPAKA_ACC_GPU_CUDA_ONLY -DALPAKA_DISABLE_VENDOR_RNG -DALPAKA_DEFAULT_HOST_MEMORY_ALIGNMENT=128 --expt-relaxed-constexpr
0057 ALPAKAROCM = -DALPAKA_ACC_GPU_HIP_ENABLED -DALPAKA_ACC_GPU_HIP_ONLY -DALPAKA_DISABLE_VENDOR_RNG -DALPAKA_DEFAULT_HOST_MEMORY_ALIGNMENT=128 -DGNU_GCC -D_GNU_SOURCE --target=x86_64-redhat-linux-gnu --gcc-toolchain=$(patsubst %/bin/gcc,%,$(shell command -v gcc))
0058 ROOTINCLUDE = -I$(ROOT_ROOT)/include
0059 ROOTCFLAGS = -pthread -m64 $(ROOTINCLUDE)
0060 PTCUTFLAG =
0061 LSTWARNINGSFLAG =
0062 LSTSTANDALONEFLAG = -DLST_STANDALONE
0063 CMSSW_WERRORS_CPU = -Werror=pointer-arith -Werror=overlength-strings -Werror=return-type -Werror=missing-braces -Werror=unused-value -Werror=unused-label \
0064 -Werror=address -Werror=format -Werror=sign-compare -Werror=write-strings -Werror=delete-non-virtual-dtor -Werror=strict-aliasing -Werror=narrowing \
0065 -Werror=unused-but-set-variable -Werror=reorder -Werror=unused-variable -Werror=conversion-null -Werror=return-local-addr -Wnon-virtual-dtor -Werror=switch \
0066 -Werror=main -Werror=overflow -Werror=format-contains-nul -Werror=type-limits -Wreturn-type -Wextra -Wpessimizing-move -Wclass-memaccess -Wunused \
0067 -Wparentheses -Wno-vla -Wno-non-template-friend -Wno-long-long -Wno-cast-function-type -Wno-unused-but-set-parameter -Wno-ignored-qualifiers \
0068 -Wno-unused-parameter -Wno-unused-local-typedefs -Wno-attributes
0069 CMSSW_WERRORS_CUDA = $(patsubst %,-Xcompiler %,$(CMSSW_WERRORS_CPU))
0070 CMSSW_WERRORS_ROCM = $(CMSSW_WERRORS_CPU)
0071 T5CUTFLAGS = $(T5DNNFLAG) $(T5RZCHI2FLAG)
0072
0073 LD_CPU = g++
0074 SOFLAGS_CPU = -g -shared -fPIC
0075 ALPAKABACKEND_CPU = $(ALPAKASERIAL)
0076 COMPILE_CMD_CPU = $(LD_CPU) -c
0077
0078 LD_CUDA = nvcc
0079 SOFLAGS_CUDA = -g -shared --compiler-options -fPIC --cudart shared $(GENCODE_CUDA)
0080 ALPAKABACKEND_CUDA = $(ALPAKACUDA)
0081 COMPILE_CMD_CUDA = $(LD_CUDA) -x cu
0082
0083 LD_ROCM = hipcc
0084 SOFLAGS_ROCM = -g -shared -fPIC
0085 ALPAKABACKEND_ROCM = $(ALPAKAROCM)
0086 COMPILE_CMD_ROCM = $(LD_ROCM) -c
0087
0088 CUTVALUEFLAG =
0089 CUTVALUEFLAG_FLAGS = -DCUT_VALUE_DEBUG
0090
0091 %_cpu.o: ../../src/alpaka/%.dev.cc
0092 $(COMPILE_CMD_CPU) $(CXXFLAGS_CPU) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(LSTSTANDALONEFLAG) $(CMSSW_WERRORS_CPU) $(T5CUTFLAGS) $(ALPAKAINCLUDE) $(ALPAKABACKEND_CPU) $< -o $@
0093
0094 %_cuda.o: ../../src/alpaka/%.dev.cc
0095 $(COMPILE_CMD_CUDA) $(CXXFLAGS_CUDA) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(LSTSTANDALONEFLAG) $(CMSSW_WERRORS_CUDA) $(T5CUTFLAGS) $(ALPAKAINCLUDE) $(ALPAKABACKEND_CUDA) $< -o $@
0096
0097 %_rocm.o: ../../src/alpaka/%.dev.cc
0098 $(COMPILE_CMD_ROCM) $(CXXFLAGS_ROCM) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(LSTSTANDALONEFLAG) $(CMSSW_WERRORS_ROCM) $(T5CUTFLAGS) $(ALPAKAINCLUDE) $(ALPAKABACKEND_ROCM) $< -o $@
0099
0100 %_cpu.o: ../../src/alpaka/%.cc
0101 $(COMPILE_CMD_CPU) $(CXXFLAGS_CPU) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(LSTSTANDALONEFLAG) $(CMSSW_WERRORS_CPU) $(T5CUTFLAGS) $(ALPAKAINCLUDE) $(ALPAKABACKEND_CPU) $< -o $@
0102
0103 %_cuda.o: ../../src/alpaka/%.cc
0104 $(COMPILE_CMD_CUDA) $(CXXFLAGS_CUDA) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(LSTSTANDALONEFLAG) $(CMSSW_WERRORS_CUDA) $(T5CUTFLAGS) $(ALPAKAINCLUDE) $(ALPAKABACKEND_CUDA) $< -o $@
0105
0106 %_rocm.o: ../../src/alpaka/%.cc
0107 $(COMPILE_CMD_ROCM) $(CXXFLAGS_ROCM) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(LSTSTANDALONEFLAG) $(CMSSW_WERRORS_ROCM) $(T5CUTFLAGS) $(ALPAKAINCLUDE) $(ALPAKABACKEND_ROCM) $< -o $@
0108
0109 %_cpu.o: ../../src/%.cc
0110 $(COMPILE_CMD_CPU) $(CXXFLAGS_CPU) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(LSTSTANDALONEFLAG) $(CMSSW_WERRORS_CPU) $(T5CUTFLAGS) $(ALPAKAINCLUDE) $(ALPAKABACKEND_CPU) $< -o $@
0111
0112 %_cuda.o: ../../src/%.cc
0113 $(COMPILE_CMD_CUDA) $(CXXFLAGS_CUDA) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(LSTSTANDALONEFLAG) $(CMSSW_WERRORS_CUDA) $(T5CUTFLAGS) $(ALPAKAINCLUDE) $(ALPAKABACKEND_CUDA) $< -o $@
0114
0115 %_rocm.o: ../../src/%.cc
0116 $(COMPILE_CMD_ROCM) $(CXXFLAGS_ROCM) $(ROOTINCLUDE) $(CUTVALUEFLAG) $(LSTWARNINGSFLAG) $(LSTSTANDALONEFLAG) $(CMSSW_WERRORS_ROCM) $(T5CUTFLAGS) $(ALPAKAINCLUDE) $(ALPAKABACKEND_ROCM) $< -o $@
0117
0118 $(LIB_CPU): $(CCOBJECTS_CPU) $(LSTOBJECTS_CPU)
0119 $(LD_CPU) $(SOFLAGS_CPU) $^ -o $@
0120
0121 $(LIB_CUDA): $(CCOBJECTS_CUDA) $(LSTOBJECTS_CUDA)
0122 $(LD_CUDA) $(SOFLAGS_CUDA) $^ -o $@
0123
0124 $(LIB_ROCM): $(CCOBJECTS_ROCM) $(LSTOBJECTS_ROCM)
0125 $(LD_ROCM) $(SOFLAGS_ROCM) $^ -o $@
0126
0127 explicit: $(LIBS)
0128
0129 explicit_cutvalue: CUTVALUEFLAG = $(CUTVALUEFLAG_FLAGS)
0130 explicit_cutvalue: $(LIBS)
0131
0132 clean:
0133 rm -f *.opp
0134 rm -f *.o
0135 rm -f *.d
0136 rm -f *.so
0137
0138 .PHONY: clean explicit explicit_cutvalue format check check-fix
0139
0140 format:
0141 clang-format --style=file:../.clang-format -i *.cc *.h
0142
0143
0144
0145 TIDYINCLUDEFLAGS := $(shell g++ -E -x c++ - -v < /dev/null 2>&1 | awk '/#include <...>/,/^End of search/{if (/^ / && !/x86_64-redhat-linux-gnu\/[0-9.]+\/include$$/) print "-I"$$1}' | tr '\n' ' ')
0146 TIDYFLAGS := --language=c++ $(CXXFLAGS_CPU) $(ALPAKAINCLUDE) $(ALPAKASERIAL) $(ROOTCFLAGS) $(DUPLICATED) $(TIDYINCLUDEFLAGS)
0147
0148 check:
0149 clang-tidy --config-file=../.clang-tidy *.cc *.h -- $(TIDYFLAGS)
0150
0151 check-fix:
0152 clang-tidy --config-file=../.clang-tidy --format-style=file:../.clang-format --fix --fix-errors --fix-notes *.cc *.h -- $(TIDYFLAGS)