Back to home page

sPhenix code displayed by LXR

 
 

    


File indexing completed on 2025-12-16 09:18:06

0001 # === Toolchain ===
0002 CXX       = g++
0003 CXXSTD    = -std=c++20
0004 CXXWARN   = -Wall -Wextra -Wpedantic
0005 OPTFLAGS  = -O2
0006 PIC       = -fPIC
0007 
0008 # === ONNX Runtime ===
0009 # ORT_PREFIX ?= /sphenix/u/jzhang1/opt/onnxruntime
0010 ORT_PREFIX ?= $(OFFLINE_MAIN)
0011 ORT_INC     = $(ORT_PREFIX)/include
0012 ORT_LIBDIR  = $(ORT_PREFIX)/lib 
0013 
0014 # JSON_INC ?= /sphenix/u/jzhang1/opt/nlohmann/include
0015 JSON_INC ?= $(OFFLINE_MAIN)/include
0016 
0017 # 是否启用 ONNX(源码需配合宏,见下)1
0018 WITH_ONNX ?= 1
0019 
0020 # === Targets ===
0021 SRCS      = PtCalculator.cc
0022 OBJS      = $(SRCS:.cc=.o)
0023 TARGET_SO = libPtCalc.so
0024 
0025 # === Includes ===
0026 INCFLAGS  = -I.
0027 ifeq ($(WITH_ONNX),1)
0028         INCFLAGS += -I$(ORT_INC)
0029 endif
0030 ifneq ($(strip $(JSON_INC)),)
0031         INCFLAGS += -I$(JSON_INC)
0032 endif
0033 
0034 # === Flags ===
0035 CXXFLAGS  = $(CXXSTD) $(CXXWARN) $(OPTFLAGS) $(PIC) $(INCFLAGS)
0036 LDFLAGS   = -shared
0037 LDLIBS    =
0038 
0039 ifeq ($(WITH_ONNX),1)
0040         CXXFLAGS += -DPTCALC_WITH_ONNX=1
0041         LDFLAGS  += -Wl,-rpath,$(ORT_LIBDIR) -L$(ORT_LIBDIR)
0042         LDLIBS   += -lonnxruntime
0043 else
0044         CXXFLAGS += -DPTCALC_WITH_ONNX=0
0045 endif
0046 
0047 # === Rules ===
0048 all: $(TARGET_SO)
0049 
0050 $(TARGET_SO): $(OBJS)
0051         $(CXX) $(CXXFLAGS) -o $@ $^ $(LDFLAGS) $(LDLIBS)
0052         @echo "Built $@"
0053 
0054 %.o: %.cc
0055         $(CXX) $(CXXFLAGS) -c $< -o $@
0056 
0057 clean:
0058         rm -f $(OBJS) $(TARGET_SO)
0059 
0060 print-%:
0061         @echo '$*=$($*)'