Skip to content

Commit edb2c3b

Browse files
committed
Port to LLVM 3.8, improve Makefile for example
1 parent bc70128 commit edb2c3b

File tree

2 files changed

+21
-6
lines changed

2 files changed

+21
-6
lines changed

part3/Makefile

+18-5
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,15 @@ TOOLS:=tutorial03
55
#TARGET:=native
66
TARGET:=byte
77

8-
LLVM_VERSION := 3.5
8+
LLVM_VERSION := 3.8
9+
CLANG := clang-$(LLVM_VERSION)
10+
LLC := llc-$(LLVM_VERSION)
911

1012
OCAMLBUILDFLAGS:=-classic-display -j 0 -cflags -w,@a-4
1113

1214
export OCAMLPATH=/usr/lib/ocaml/llvm-$(LLVM_VERSION)
1315

14-
tutorial03_OCAMLBUILDFLAGS:=-use-ocamlfind -pkgs llvm,llvm.bitreader
16+
tutorial03_OCAMLBUILDFLAGS:=-use-ocamlfind -pkgs llvm,llvm.bitreader -lflags -ccopt,-L/usr/lib/llvm-$(LLVM_VERSION)/lib
1517

1618

1719

@@ -32,12 +34,23 @@ default: $(TOOLS)
3234
$(TOOLS):
3335
$(OCAMLBUILD) $(OCAMLBUILDFLAGS) $($@_OCAMLBUILDFLAGS) $($@_OCAMLBUILDFLAGS_$(TARGET)) -I $(SRC_DIR) -build-dir build/$@ $@.$(TARGET)
3436

35-
run: $(TOOLS)
36-
CAML_LD_LIBRARY_PATH=/usr/lib/ocaml/llvm-$(LLVM_VERSION) ./build/llvmBCTargetTriple/src/llvmBCTargetTriple.byte
37-
3837
clean: $(CLEAN_RULES)
38+
-rm -f hello hello.o hello.s hello.ll
3939

4040
$(CLEAN_RULES):
4141
$(OCAMLBUILD) $(OCAMLBUILDFLAGS) -I $(SRC_DIR) -build-dir build/$(patsubst %-clean,%,$@) -clean $(patsubst %-clean,%,$@).$(TARGET)
4242

43+
run: $(TOOLS) hello
44+
./hello
45+
46+
hello: hello.o
47+
$(CLANG) -o $@ $<
48+
49+
hello.o: hello.s
50+
$(CLANG) -c hello.s
51+
52+
hello.s: hello.ll
53+
$(LLC) $<
4354

55+
hello.ll: $(TOOLS)
56+
CAML_LD_LIBRARY_PATH=/usr/lib/ocaml/llvm-$(LLVM_VERSION) ./build/tutorial03/src/tutorial03.byte $@

part3/src/tutorial03.ml

+3-1
Original file line numberDiff line numberDiff line change
@@ -12,5 +12,7 @@ let _ =
1212

1313
let _ = build_ret (const_int i32_t 0) llbuilder in
1414

15-
dump_module llm ;
15+
if Array.length Sys.argv > 1
16+
then print_module Sys.argv.(1) llm
17+
else dump_module llm ;
1618
()

0 commit comments

Comments
 (0)