-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
106 lines (77 loc) · 3.06 KB
/
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# Makefile for clang/libc++ projects
# For libc++ on Mac OS X 10.6:
# http://thejohnfreeman.com/blog/2012/11/07/building-libcxx-on-mac-osx-10.6.html
#******************************************************************************
LINK=llvm-link
CC=clang
CXX=clang++
AR=llvm-ar
AS=llvm-as
NM=llvm-nm
#******************************************************************************
EXECNAME = vectest
INCLUDES += -Isrc
VPATH = src
SOURCE = main.cpp
SOURCE += vectest.cpp
SOURCE += rtrace.cpp
SOURCE += partsys.cpp
DEFINES =
LIBS += -lc++ -lc++abi
# -U__STRICT_ANSI__ required for math.h bug on OS X 10.6
CFLAGS = -stdlib=libc++ -U__STRICT_ANSI__ -g -O3 -ffast-math -msse4.1
CFLAGS += $(DEFINES) $(INCLUDES)
CXXFLAGS = -std=c++11 $(CFLAGS)
#******************************************************************************
# Generate lists of object and dependency files
#******************************************************************************
CSOURCES = $(filter %.c,$(SOURCE))
CLSOURCES = $(filter %.cl,$(SOURCE))
CPPSOURCES = $(filter %.cpp,$(SOURCE))
BITCODE = $(addprefix bc/, $(CSOURCES:.c=.c.bc)) \
$(addprefix bc/, $(CLSOURCES:.cl=.cl.bc)) \
$(addprefix bc/, $(CPPSOURCES:.cpp=.cpp.bc))
#******************************************************************************
# Dependency rules
#******************************************************************************
.PHONY: all default clean depend echo none disasm
default: $(EXECNAME) Makefile
install:
clean:
rm -rf obj
rm -rf disasm
rm -rf bc
rm -f $(EXECNAME)
$(EXECNAME): $(BITCODE)
$(CC) $(CFLAGS) $(BITCODE) $(LIBS) -o $@
bc/%.c.bc: %.c
$(shell if [ ! -d $(addprefix bc/, $(dir $<)) ]; then mkdir -p $(addprefix bc/, $(dir $<)); fi )
$(CC) -emit-llvm $(CFLAGS) -c $< -o $@
bc/%.cl.bc: %.cl
$(shell if [ ! -d $(addprefix bc/, $(dir $<)) ]; then mkdir -p $(addprefix bc/, $(dir $<)); fi )
$(CC) -x cl -emit-llvm $(CFLAGS) -c $< -o $@
bc/%.cpp.bc: %.cpp
$(shell if [ ! -d $(addprefix bc/, $(dir $<)) ]; then mkdir -p $(addprefix bc/, $(dir $<)); fi )
$(CXX) -emit-llvm $(CXXFLAGS) -c $< -o $@
#******************************************************************************
# Dependency-generating rules
#******************************************************************************
# ifneq ($(MAKECMDGOALS),clean)
# -include $(addprefix deps/, $(subst .c,.c.d,$(CSOURCES)))
# -include $(addprefix deps/, $(subst .cpp,.cpp.d,$(CPPSOURCES)))
# endif
#
# deps/%.c.d: %.c
# $(shell if [ ! -d $(addprefix deps/, $(dir $<)) ]; then mkdir -p $(addprefix deps/, $(dir $<)); fi )
# $(CC) -M $(CFLAGS) $< > $@.$$$$; \
# sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
# rm -f $@.$$$$
#
# deps/%.cpp.d: %.cpp
# $(shell if [ ! -d $(addprefix deps/, $(dir $<)) ]; then mkdir -p $(addprefix deps/, $(dir $<)); fi )
# $(CC) -M $(CFLAGS) $< > $@.$$$$; \
# sed 's,\($*\)\.o[ :]*,\1.o $@ : ,g' < $@.$$$$ > $@; \
# rm -f $@.$$$$
#******************************************************************************
# End of file
#******************************************************************************