examples/Makefile
author Jan Vrany <jan.vrany@fit.cvut.cz>
Mon, 28 Sep 2015 14:39:57 +0100
changeset 20 2f28df70181a
parent 19 7597503194b8
permissions -rw-r--r--
Added README, license and copyright notice
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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
OBJECTS = $(patsubst %.tea,%.o,$(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
LIBT = ../libt/libt.bc
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     6
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     7
# Tools
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     8
AR=ar
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
     9
LD=ld
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    10
CC=gcc
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    11
TEAK = ../compiler/cli/teak
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    12
LLVM_CONFIG ?= llvm-config-3.8
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    13
LLVM_BINDIR  = $(shell $(LLVM_CONFIG) --bindir)
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    14
LLVM_LLC  = $(LLVM_BINDIR)/llc
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    15
LLVM_LINK = $(LLVM_BINDIR)/llvm-link
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    16
LLVM_OPT  = $(LLVM_BINDIR)/opt
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    17
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    18
# Flags
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    19
LLVM_OPT_FLAGS = -O2
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: $(OBJECTS)
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
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    25
# ----------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
    26
%.bc: %.tea
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    27
	$(TEAK) $(SOURCES)
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    28
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    29
%.all.bc: %.bc
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    30
	$(LLVM_LINK) -o=$@ $< $(LIBT)
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    31
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    32
%.opt.bc: %.all.bc	
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    33
	$(LLVM_OPT) $(LLVM_OPT_FLAGS) -o=$@ $<	
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    34
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
%.o: %.opt.bc
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    37
	$(LLVM_LLC) -filetype=obj -o=$@ $<
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    38
        
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    39
clean:
7597503194b8 First shot of libt and some examples
Jan Vrany <jan.vrany@fit.cvut.cz>
parents:
diff changeset
    40
	rm -f *.bc *.o