|
3 | 3 |
|
4 | 4 | run-sample:
|
5 | 5 | make -C ../../../src/llvmrt llvmrt.a runscala
|
6 |
| - make clean |
7 |
| - make code.bc; make code.bc |
8 |
| - ../../../src/llvmrt/runscala code.bc example |
| 6 | + rm -rf irfiles/example irfiles/example.stamp |
| 7 | + rm -rf bin/example.bc bin/example.aot |
| 8 | + make irfiles/example.stamp bin/example.bc bin/example.aot |
| 9 | + ../../../src/llvmrt/runscala bin/example.bc example |
| 10 | + ./bin/example.aot |
9 | 11 |
|
10 | 12 | run-sample-jvm:
|
11 | 13 | make classes
|
12 | 14 | ../../../build/quick/bin/scala -cp classes example
|
13 | 15 |
|
14 |
| -code.bc: irfiles.stamp $(patsubst %.ll,%.bc,$(wildcard irfiles/*.ll)) |
15 |
| - llvm-ld -o $@ -r -disable-internalize irfiles/*.bc ../../../src/llvmrt/llvmrt.a |
| 16 | +irfiles/%.stamp irfiles/%/*.ll: %.scala runtime.scala |
| 17 | + mkdir -p irfiles/$* |
| 18 | + JAVA_OPTS=-Xmx500M ../../../build/quick/bin/scalac -no-specialization -d irfiles/$* -target:llvm $*.scala runtime.scala @base.sources $(FFISOURCES) # $(SOURCES) |
| 19 | + touch irfiles/$*.stamp |
16 | 20 |
|
17 |
| -irfiles.stamp irfiles/*.ll: example.scala runtime.scala |
18 |
| - mkdir -p irfiles |
19 |
| - JAVA_OPTS=-Xmx2500M ../../../build/quick/bin/scalac -no-specialization -d irfiles -target:llvm example.scala runtime.scala apr.scala $(FFISOURCES) @base.sources # $(SOURCES) |
20 |
| - touch irfiles.stamp |
| 21 | +bin/%.bc: irfiles/%.stamp |
| 22 | + mkdir -p `dirname $@` |
| 23 | + for x in irfiles/$*/*.ll ; do \ |
| 24 | + llvm-as $$x; \ |
| 25 | + done |
| 26 | + llvm-ld -o $@ -r -disable-internalize irfiles/$*/*.bc ../../../src/llvmrt/llvmrt.a |
| 27 | + |
| 28 | +bin/%.aot: bin/%.bc |
| 29 | + ../../../src/llvmrt/linkscala $< `basename $*` |
| 30 | + llvm-ld -v -native -o $@ b.out.bc ../../../src/llvmrt/llvmrt.a -lapr-1 -L/usr/lib64 `icu-config --ldflags-libsonly ` ../../../src/llvmrt/unwind.o |
| 31 | + rm -f b.out.bc |
21 | 32 |
|
22 | 33 | classes: example.scala
|
23 | 34 | mkdir -p classes
|
24 | 35 | ../../../build/quick/bin/scalac -d classes example.scala
|
25 | 36 |
|
26 |
| -%.bc: %.ll |
27 |
| - llvm-as $< |
28 |
| - |
29 |
| -%.ll: %.bc |
30 |
| - llvm-dis $< |
31 |
| - |
32 | 37 | a.out.ll: a.out.bc
|
33 | 38 | llvm-dis $<
|
34 | 39 |
|
| 40 | +%.bc: %.ll |
| 41 | + llvm-as -o $@ $< |
| 42 | + |
35 | 43 | force:
|
36 | 44 | touch example.scala
|
37 | 45 | $(MAKE) a.out
|
38 |
| - |
39 |
| -clean: |
40 |
| - rm -rf irfiles code.bc irfiles.stamp |
|
0 commit comments