



NVCC        := nvcc
ARCH        := -arch=sm_75   # 按你的 GPU 改
# Includes
INCLUDES  += -I. -I$(CUDA_INSTALL_PATH)/include -I../../include

# 指定完整的 .a 文件（静态库）路径
# STATIC_LIBS := ../../lib/libmylib.a ./lib/libanother.a

NVCCFLAGS   := $(ARCH) -O2 -Xcompiler -fPIC -lcudart $(INCLUDES)
OBJDIR      := obj

# ===== target 1 =====
EXE1        := single_kernel___printDiffPtsMask
SRC1        := single_kernel___printDiffPtsMask.cu

# ===== target 2 =====
EXE2        := single_kernel___printEdges
SRC2        := single_kernel___printEdges.cu

# ===== target 3 =====
EXE3        := single_kernel___printEdgesOf
SRC3        := single_kernel___printEdgesOf.cu

# ===== target 4 =====
EXE4        := single_kernel___printGepEdges
SRC4        := single_kernel___printGepEdges.cu

# ===== target 5 =====
EXE5        := single_kernel___printOffsetMasks
SRC5        := single_kernel___printOffsetMasks.cu

# ===== target 6 =====
EXE6        := single_kernel_addEdges
SRC6        := single_kernel_addEdges.cu

# ===== target 7 =====
EXE7        := single_kernel_checkForErrors
SRC7        := single_kernel_checkForErrors.cu

# ===== target 8 =====
EXE8        := single_kernel_computeCurrPtsHash
SRC8        := single_kernel_computeCurrPtsHash.cu
# ===== target 9 =====
EXE9        := single_kernel_copyInv_loadInv_store2storeInv
SRC9        := single_kernel_copyInv_loadInv_store2storeInv.cu
# ===== target 10 =====
EXE10        := single_kernel_createOffsetMasks
SRC10        := single_kernel_createOffsetMasks.cu
# ===== target 11 =====
EXE11        := single_kernel_findCurrPtsEquivalents
SRC11        := single_kernel_findCurrPtsEquivalents.cu
# ===== target 12 =====
EXE12       := single_kernel_gepInv
SRC12       := single_kernel_gepInv.cu
# ===== target 13 =====
EXE13        := single_kernel_hcd
SRC13        := single_kernel_hcd.cu
# ===== target 14 =====
EXE14        := single_kernel_initialize
SRC14        := single_kernel_initialize.cu
# ===== target 15 =====
EXE15       := single_kernel_storeInv
SRC15       := single_kernel_storeInv.cu
# ===== target 16 =====
EXE16        := single_kernel_updateInfo
SRC16        := single_kernel_updateInfo.cu
# ===== target 17 =====
EXE17       := single_kernel_updatePtsInformation
SRC17       := single_kernel_updatePtsInformation.cu




# ===== 默认目标 =====
.PHONY: all clean

all: $(EXE1)  $(EXE2)  $(EXE3)  $(EXE4) $(EXE5) $(EXE6) $(EXE7)  $(EXE8)   $(EXE9) $(EXE10) $(EXE11) $(EXE12) $(EXE13) $(EXE14) $(EXE15) $(EXE16) $(EXE17)     

$(EXE1): $(SRC1)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE2): $(SRC2)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE3): $(SRC3)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE4): $(SRC4)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE5): $(SRC5)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE6): $(SRC6)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE7): $(SRC7)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE8): $(SRC8)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE9): $(SRC9)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE10): $(SRC10)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE11): $(SRC11)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE12): $(SRC12)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE13): $(SRC13)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE14): $(SRC14)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE15): $(SRC15)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE16): $(SRC16)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE17): $(SRC17)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)


clean:
	rm -f $(EXE1)  $(EXE2)  $(EXE3)  $(EXE4) $(EXE5) $(EXE6) $(EXE7)  $(EXE8)   $(EXE9) $(EXE10) $(EXE11) $(EXE12) $(EXE13) $(EXE14) $(EXE15) $(EXE16) $(EXE17) 
