File: Makefile.llvmcompile

package info (click to toggle)
faust 2.14.4~repack2-1
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 276,136 kB
  • sloc: cpp: 231,578; ansic: 15,403; sh: 10,871; java: 6,917; objc: 4,085; makefile: 3,002; cs: 1,077; ruby: 951; python: 885; xml: 550; yacc: 516; lex: 233; lisp: 201
file content (89 lines) | stat: -rw-r--r-- 2,930 bytes parent folder | download
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
dspsrc  := $(wildcard *.dsp)
cppsrc  := $(addprefix $(DEST), $(dspsrc:.dsp=.cpp))
appl 	:= $(addprefix $(DEST), $(dspsrc:.dsp=$(EXT)))

all :  $(appl)

LLVM_VERSION = $(shell llvm-config --version)

ifeq ($(LLVM_VERSION), 3.1)
LLVM_VERSION  = LLVM_31
LLVM_PREFIX = /opt/local/libexec/llvm-3.1/bin
endif

ifeq ($(LLVM_VERSION), 3.2)
LLVM_VERSION  = LLVM_32
LLVM_PREFIX = /opt/local/libexec/llvm-3.2/bin
endif

ifeq ($(LLVM_VERSION), 3.3)
LLVM_VERSION  = LLVM_33
LLVM_PREFIX = /opt/local/libexec/llvm-3.3/bin
endif

ifeq ($(LLVM_VERSION),$(filter $(LLVM_VERSION), 3.4.0 3.4.1 3.4.2))
LLVM_VERSION  = LLVM_34
LLVM_PREFIX = /opt/local/libexec/llvm-3.4/bin
endif

ifeq ($(LLVM_VERSION), 3.5.0)

LLVM_VERSION  = LLVM_35
LLVM_PREFIX = /opt/local/libexec/llvm-3.5/bin
endif

ifeq ($(LLVM_VERSION),$(filter $(LLVM_VERSION), 3.6.0 3.6.1 3.6.2))
LLVM_VERSION  = LLVM_36
LLVM_PREFIX = /opt/local/libexec/llvm-3.6/bin
endif

ifeq ($(LLVM_VERSION),$(filter $(LLVM_VERSION), 3.7.0 3.7.1 3.7.2))
LLVM_VERSION  = LLVM_37
LLVM_PREFIX = /opt/local/libexec/llvm-3.7/bin
endif

ifeq ($(LLVM_VERSION),$(filter $(LLVM_VERSION), 3.8.0 3.8.1))
LLVM_VERSION  = LLVM_38
LLVM_PREFIX = /opt/local/libexec/llvm-3.8/bin
endif

ifeq ($(LLVM_VERSION),$(filter $(LLVM_VERSION), 3.9.0 3.9.1))
LLVM_VERSION  = LLVM_39
LLVM_PREFIX = /opt/local/libexec/llvm-3.9/bin
endif

ifeq ($(LLVM_VERSION),$(filter $(LLVM_VERSION), 4.0.0 4.0.1))
LLVM_VERSION  = LLVM_40
LLVM_PREFIX = /opt/local/libexec/llvm-4.0/bin
endif

ifeq ($(LLVM_VERSION),$(filter $(LLVM_VERSION), 5.0.0 5.0.1))
LLVM_VERSION  = LLVM_50
LLVM_PREFIX = /opt/local/libexec/llvm-5.0/bin
endif

CLANG = $(LLVM_PREFIX)/clang++
OPT = $(LLVM_PREFIX)/opt
LLC = $(LLVM_PREFIX)/llc
LINK = $(LLVM_PREFIX)/llvm-link

$(DEST)% : %.dsp
	cp /usr/local/share/faust/$(ARCH) $(DEST)
	#faust -vec -lv 1  -lang llvm  -vs 64 -vls 4 $< -o $@.bc
	#faust -vec -lv 1  -lang llvm  -vs 512 $< -o $@.bc
	faust -sch  -lang llvm  -vs 64 $< -o $@.bc
	#faust  -lang llvm  $< -o $@.bc
	#faust -sch  -lang llvm  -vs 64 $< -o $@.bc
	$(OPT) -S -O3 $@.bc -o $@.ll
	$(OPT) -O3 $@.bc -o $@.bc
	$(LLC) -O3 $@.bc -o $@.s
	$(CLANG) -g -D$(LLVM_VERSION) -emit-llvm -S ../architecture/scheduler.cpp -o $@.scheduler.ll
	$(OPT) -O3 $@.scheduler.ll -o $@.scheduler.bc
	$(LINK) $@.scheduler.bc $@.bc -o $@_sch.bc
	#llvm-g++ ../architecture/scheduler.cpp -g -O1 -I/opt/local -mfpmath=sse -msse -msse2 -msse3 -mmmx -m3dnow -ffast-math -ftree-vectorize  -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS $(LIB) $(DEST)$(ARCH) $@.s -o $@
	#$(CLANG) -O3 -I/opt/local -msse -msse2 -msse3 -mmmx -m3dnow -ffast-math  -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS $(LIB) $(DEST)$(ARCH) $@.s $@.scheduler.ll -o $@
	$(CLANG) -g -I/opt/local  -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS $(LIB) $(DEST)$(ARCH) $@.s $@.scheduler.ll -o $@
	#llvm-g++ -g -I/opt/local -D__STDC_LIMIT_MACROS -D__STDC_CONSTANT_MACROS $(LIB) $(DEST)$(ARCH) $@.s -o $@

clean :
	rm -f $(DEST)