-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
38 lines (28 loc) · 798 Bytes
/
Makefile
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
29
30
31
32
33
34
35
36
37
38
SRCDIR := src
BUILDDIR := build
BINDIR := bin
TARGET := $(BINDIR)/a.out
SOURCES := $(shell find $(SRCDIR) -type f -name *.cpp)
OBJECTS := $(patsubst $(SRCDIR)/%,$(BUILDDIR)/%,$(SOURCES:.cpp=.o))
KERNELS := $(shell find $(SRCDIR) -type f -name *.cl)
DEPENDS := $(OBJECTS:.o=.d)
CXXFLAGS := -Wall -Wextra -MMD -Iinclude -std=c++11 -g
# set V='' to enable verbose output
override V ?= @
all: $(TARGET)
@echo "[make] success!"
$(TARGET): $(OBJECTS)
@echo "[link] $@"
$(V)mkdir -p $(dir $@)
$(V)$(CXX) $^ -o $@ $(CXXFLAGS) -lOpenCL
$(BUILDDIR)/%.o: $(SRCDIR)/%.cpp $(KERNELS)
@echo "[c++] $<"
$(V)mkdir -p $(dir $@)
$(V)$(CXX) $< -c -o $@ $(CXXFLAGS)
clean:
@echo "[make] cleaning..."
$(V)rm -rf $(BUILDDIR) $(BINDIR)
test: all
$(TARGET)
-include $(DEPENDS)
.PHONY: clean test all