author | Jan Vrany <jan.vrany@fit.cvut.cz> |
Sun, 27 Sep 2015 07:07:46 +0100 | |
changeset 19 | 7597503194b8 |
permissions | -rw-r--r-- |
19
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
1 |
# Sources |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
2 |
SOURCES = $(wildcard *.tea) |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
3 |
BITCODES = $(patsubst %.tea,%.bc,$(SOURCES)) |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
4 |
|
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
5 |
# Tools |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
6 |
AR=ar |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
7 |
LD=ld |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
8 |
CC=gcc |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
9 |
TEAK = ../compiler/cli/teak |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
10 |
LLVM_CONFIG ?= llvm-config-3.8 |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
11 |
LLVM_BINDIR = $(shell $(LLVM_CONFIG) --bindir) |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
12 |
LLVM_LLC = $(LLVM_BINDIR)/llc |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
13 |
LLVM_LINK = $(LLVM_BINDIR)/llvm-link |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
14 |
|
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
15 |
# Artifacts... |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
16 |
LIBRARY_NAME=libt |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
17 |
LIBRARY = $(LIBRARY_NAME).so |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
18 |
ARCHIVE = $(LIBRARY_NAME).a |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
19 |
|
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
20 |
|
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
21 |
|
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
22 |
all: $(LIBRARY) $(ARCHIVE) |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
23 |
|
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
24 |
$(LIBRARY): $(LIBRARY_NAME).o |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
25 |
ld -shared -o $@ $< |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
26 |
|
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
27 |
$(ARCHIVE): $(LIBRARY_NAME).o |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
28 |
$(AR) r $@ $< |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
29 |
|
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
30 |
$(LIBRARY_NAME).o: $(LIBRARY_NAME).bc |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
31 |
$(LLVM_LLC) -filetype=obj -o=$@ $< |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
32 |
|
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
33 |
$(LIBRARY_NAME).bc: $(BITCODES) |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
34 |
$(LLVM_LINK) -o=$@ $(BITCODES) |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
35 |
|
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
36 |
|
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
37 |
# ----------vvvvvvvvvv should be replace by real dependendies of .tea file |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
38 |
%.bc: %.tea $(SOURCES) |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
39 |
$(TEAK) $(SOURCES) |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
40 |
|
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
41 |
%.ll: %.tea $(SOURCES) |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
42 |
$(TEAK) --output=$@ --emit-llvm-ir $< |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
43 |
|
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
44 |
|
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
45 |
clean: |
7597503194b8
First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff
changeset
|
46 |
rm -f *.ll $(BITCODES) $(LIBRARY_NAME).o $(LIBRARY_NAME).bc $(LIBRARY) $(ARCHIVE) |