



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_Executefire2expand1x1
SRC1        := single_kernel_Executefire2expand1x1.cu

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

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

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

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

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

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

# ===== target 8 =====
EXE8        := single_kernel_Executefire4expand3x3
SRC8        := single_kernel_Executefire4expand3x3.cu

# ===== target 9 =====
EXE9        := single_kernel_Executefire4squeeze1x1
SRC9        := single_kernel_Executefire4squeeze1x1.cu

EXE10        := single_kernel_Executefire5expand1x1
SRC10        := single_kernel_Executefire5expand1x1.cu


EXE11        := single_kernel_Executefire5expand3x3
SRC11        := single_kernel_Executefire5expand3x3.cu


EXE12        := single_kernel_Executefire5squeeze1x1
SRC12        := single_kernel_Executefire5squeeze1x1.cu


EXE13        := single_kernel_Executefire6expand1x1
SRC13        := single_kernel_Executefire6expand1x1.cu


EXE14        := single_kernel_Executefire6expand3x3
SRC14        := single_kernel_Executefire6expand3x3.cu

EXE15        := single_kernel_Executefire6squeeze1x1
SRC15        := single_kernel_Executefire6squeeze1x1.cu

EXE16        := single_kernel_Executefire7expand1x1
SRC16        := single_kernel_Executefire7expand1x1.cu

EXE17        := single_kernel_Executefire7expand3x3
SRC17        := single_kernel_Executefire7expand3x3.cu

EXE18        := single_kernel_Executefire7squeeze1x1
SRC18        := single_kernel_Executefire7squeeze1x1.cu

EXE19        := single_kernel_Executefire8expand1x1
SRC19        := single_kernel_Executefire8expand1x1.cu

EXE20        := single_kernel_Executefire8expand3x3
SRC20        := single_kernel_Executefire8expand3x3.cu

EXE21        := single_kernel_Executefire8squeeze1x1
SRC21        := single_kernel_Executefire8squeeze1x1.cu

EXE22        := single_kernel_Executefire9expand1x1
SRC22        := single_kernel_Executefire9expand1x1.cu

EXE23        := single_kernel_Executefire9expand3x3
SRC23        := single_kernel_Executefire9expand3x3.cu

EXE24        := single_kernel_Executefire9squeeze1x1
SRC24        := single_kernel_Executefire9squeeze1x1.cu

EXE25        := single_kernel_ExecuteFirstLayer
SRC25        := single_kernel_ExecuteFirstLayer.cu

EXE26        := single_kernel_ExecuteTenthLayer
SRC26        := single_kernel_ExecuteTenthLayer.cu

EXE27        := single_kernel_global_pooling
SRC27        := single_kernel_global_pooling.cu

EXE28        := single_kernel_pooling1
SRC28        := single_kernel_pooling1.cu

EXE29        := single_kernel_pooling4
SRC29        := single_kernel_pooling4.cu

EXE30        := single_kernel_pooling8
SRC30        := single_kernel_pooling8.cu


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

all: $(EXE1)  $(EXE2)  $(EXE3)  $(EXE4) $(EXE5) $(EXE6) $(EXE7) $(EXE8) $(EXE9) $(EXE10) $(EXE11) $(EXE12) $(EXE13) $(EXE14) $(EXE15) $(EXE16) \
	$(EXE17) $(EXE18) $(EXE19) $(EXE20) $(EXE21) $(EXE22) $(EXE23) $(EXE24) $(EXE25) $(EXE26) $(EXE27) $(EXE28) $(EXE29) $(EXE30)         

$(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)

$(EXE18): $(SRC18)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE19): $(SRC19)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE20): $(SRC20)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE21): $(SRC21)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE22): $(SRC22)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE23): $(SRC23)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE24): $(SRC24)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE25): $(SRC25)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE26): $(SRC26)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE27): $(SRC27)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE28): $(SRC28)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE29): $(SRC29)
	$(NVCC) $(NVCCFLAGS) -o $@ $^ $(STATIC_LIBS)

$(EXE30): $(SRC30)
	$(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) $(EXE18) $(EXE19) $(EXE20) $(EXE21) $(EXE22) $(EXE23) $(EXE24) $(EXE25) $(EXE26) $(EXE27) $(EXE28) $(EXE29) $(EXE30)     
