Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2025-03-08 03:06:51

0001 # Simple makefile
0002 
0003 EXES := bin/lst_cpu bin/lst_cuda
0004 
0005 SOURCES=$(wildcard code/core/*.cc)
0006 OBJECTS_CPU=$(SOURCES:.cc=_cpu.o)
0007 OBJECTS_CUDA=$(SOURCES:.cc=_cuda.o)
0008 OBJECTS_ROCM=$(SOURCES:.cc=_rocm.o)
0009 OBJECTS=$(OBJECTS_CPU) $(OBJECTS_CUDA) $(OBJECTS_ROCM)
0010 
0011 CXX         = g++
0012 CXXFLAGS    = -g -O2 -Wall -fPIC -Woverloaded-virtual -Wno-unused-function -fno-var-tracking -std=c++20
0013 INCLUDEFLAGS= -ILST -I$(shell pwd) -Icode -Icode/core -I${ALPAKA_ROOT}/include -I/${BOOST_ROOT}/include $(shell rooutil-config --include) -I$(shell root-config --incdir) -I${TRACKLOOPERDIR}/../../../ -I${CMSSW_BASE}/src -I${FMT_ROOT}/include -I../interface/ -I../interface/alpaka/ -I../src/ -I../src/alpaka/ 
0014 ifdef CMSSW_RELEASE_BASE
0015 INCLUDEFLAGS:= ${INCLUDEFLAGS} -I${CMSSW_RELEASE_BASE}/src
0016 endif
0017 LDFLAGS     = -g -O2 $(LSTLIB) -L${TRACKLOOPERDIR}/LST $(shell rooutil-config --libs) $(shell root-config --libs)
0018 LDFLAGS_CUDA= -L${CUDA_HOME}/lib64 -lcudart
0019 LDFLAGS_ROCM= -L${ROCM_ROOT}/lib -lamdhip64
0020 ALPAKAFLAGS = -DALPAKA_DEBUG=0
0021 CUDAINCLUDE = -I${CUDA_HOME}/include
0022 ROCMINCLUDE = -I${ROCM_ROOT}/include 
0023 ALPAKA_CPU  = -DALPAKA_ACC_CPU_B_SEQ_T_SEQ_ENABLED -DALPAKA_DISABLE_VENDOR_RNG -DALPAKA_DEFAULT_HOST_MEMORY_ALIGNMENT=128
0024 ALPAKA_CUDA = -DALPAKA_ACC_GPU_CUDA_ENABLED -DALPAKA_HOST_ONLY -DALPAKA_DISABLE_VENDOR_RNG -DALPAKA_DEFAULT_HOST_MEMORY_ALIGNMENT=128
0025 ALPAKA_ROCM = -DALPAKA_ACC_GPU_HIP_ENABLED -DALPAKA_HOST_ONLY -DALPAKA_DISABLE_VENDOR_RNG -D__HIP_PLATFORM_HCC__ -D__HIP_PLATFORM_AMD__ -DALPAKA_DEFAULT_HOST_MEMORY_ALIGNMENT=128
0026 EXTRAFLAGS  = -ITMultiDrawTreePlayer -Wunused-variable -lTMVA -lEG -lGenVector -lXMLIO -lMLP -lTreePlayer -fopenmp
0027 DOQUINTUPLET =
0028 CUTVALUEFLAG =
0029 CUTVALUEFLAG_FLAGS = -DCUT_VALUE_DEBUG
0030 
0031 PRIMITIVEFLAG = 
0032 PRIMITIVEFLAG_FLAGS = -DPRIMITIVE_STUDY
0033 
0034 all: rooutil efficiency $(EXES)
0035 
0036 cutvalue: CUTVALUEFLAG = ${CUTVALUEFLAG_FLAGS}
0037 cutvalue: rooutil efficiency $(EXES)
0038 
0039 primitive: PRIMITIVEFLAG = ${PRIMITIVEFLAG_FLAGS}
0040 primitive: rooutil efficiency $(EXES)
0041 
0042 cutvalue_primitive: CUTVALUEFLAG = ${CUTVALUEFLAG_FLAGS}
0043 cutvalue_primitive: PRIMITIVEFLAG = ${PRIMITIVEFLAG_FLAGS}
0044 cutvalue_primitive: rooutil efficiency $(EXES)
0045 
0046 
0047 bin/lst_cpu: LSTLIB=-llst_cpu
0048 bin/lst_cpu: bin/lst_cpu.o $(OBJECTS_CPU)
0049         $(CXX) $(LDFLAGS) $(EXTRAFLAGS) $(INCLUDEFLAGS) $(ALPAKAFLAGS) $^ $(ROOTLIBS) $(CUTVALUEFLAG) $(PRIMITIVEFLAG) $(DOQUINTUPLET) $(ALPAKA_CPU) -o $@
0050 bin/lst_cuda: LSTLIB=-llst_cuda
0051 bin/lst_cuda: bin/lst_cuda.o $(OBJECTS_CUDA)
0052         $(CXX) $(LDFLAGS) $(EXTRAFLAGS) $(INCLUDEFLAGS) $(ALPAKAFLAGS) $^ $(ROOTLIBS) $(CUTVALUEFLAG) $(PRIMITIVEFLAG) $(DOQUINTUPLET) $(ALPAKA_CUDA) $(LDFLAGS_CUDA) -o $@
0053 bin/lst_rocm: LSTLIB=-llst_rocm
0054 bin/lst_rocm: bin/lst_rocm.o $(OBJECTS_ROCM)
0055         $(CXX) $(LDFLAGS) $(EXTRAFLAGS) $(INCLUDEFLAGS) $(ALPAKAFLAGS) $^ $(ROOTLIBS) $(CUTVALUEFLAG) $(PRIMITIVEFLAG) $(DOQUINTUPLET) $(ALPAKA_ROCM) $(LDFLAGS_ROCM) -o $@
0056 
0057 %_cpu.o: %.cc rooutil
0058         $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) $(INCLUDEFLAGS) $(ALPAKAFLAGS) $(CUTVALUEFLAG) $(PRIMITIVEFLAG) $(DOQUINTUPLET) $(ALPAKA_CPU) $< -c -o $@
0059 %_cuda.o: %.cc rooutil
0060         $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) $(INCLUDEFLAGS) $(ALPAKAFLAGS) $(CUTVALUEFLAG) $(PRIMITIVEFLAG) $(DOQUINTUPLET) $(ALPAKA_CUDA) $(CUDAINCLUDE) $< -c -o $@
0061 %_rocm.o: %.cc rooutil
0062         $(CXX) $(CXXFLAGS) $(EXTRAFLAGS) $(INCLUDEFLAGS) $(ALPAKAFLAGS) $(CUTVALUEFLAG) $(PRIMITIVEFLAG) $(DOQUINTUPLET) $(ALPAKA_ROCM) $(ROCMINCLUDE) $< -c -o $@
0063 
0064 rooutil:
0065         $(MAKE) -C code/rooutil/
0066 
0067 efficiency: rooutil
0068         $(MAKE) -C efficiency/
0069 
0070 clean:
0071         rm -f $(OBJECTS) bin/*.o $(EXES) bin/lst
0072         rm -f code/rooutil/*.so code/rooutil/*.o
0073         rm -f bin/lst.o
0074         rm -f LST/*.o
0075         cd efficiency/ && make clean
0076 
0077 .PHONY: rooutil efficiency