Makefile 547 Bytes
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# 编译器,未指定则优先考虑 nvcc
CXX_COMPILER ?= $(if $(shell which nvcc 2>/dev/null),nvcc,hipcc)

CXX_FLAGS ?= -std=c++17 -O3
HIPIFY ?= hipify-perl

HEADERS := $(wildcard *.h)
SRCS := $(wildcard *.cu)
TARGETS := $(SRCS:.cu=)

.PHONY: all clean

all: $(TARGETS)

ifeq ($(CXX_COMPILER),nvcc)
    # nvcc 编译
    %: %.cu $(HEADERS)
		nvcc $(CXX_FLAGS) -o $@ $<
else
    # 先转码再用 hipcc 编译
    %: %.cu $(HEADERS)
		$(HIPIFY) $< > $@.hip
		$(CXX_COMPILER) $(CXX_FLAGS) -o $@ $@.hip
		rm $@.hip
endif

clean:
	rm -f $(TARGETS)