blob: 9bcb33ab7d138cfde2ea64e3191550e3a1705448 (
plain)
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
|
# UPEM / Compilation / Projet
# Pacien TRAN-GIRARD, Adam NAILI
# DIRECTORIES
SRC_DIR := src
OUT_DIR := out
DOC_DIR := doc
# INPUT
LEX_SRC := tpc.lex
YACC_SRC := tpc.y
PDF_SRC := rapport.md
# INTERMEDIATE
LEX_GEN := tpc.yy
YACC_GEN := tpc.tab
# OUTPUT
PARSER_BIN := tparser
COMPIL_BIN := tcompil
COMMIT_LOG := commits.log
REPORT_PDF := rapport.pdf
# CC PARAMS
CC := gcc
LEX := flex
YACC := bison
CFLAGS := -ansi -pedantic -Wall -std=gnu99 -O2
LFLAGS := -lfl -ly
IFLAGS += -I$(SRC_DIR) -I$(OUT_DIR)
# RULES
all: clean $(OUT_DIR)/$(PARSER_BIN)
$(OUT_DIR)/$(LEX_GEN).c: $(SRC_DIR)/$(LEX_SRC)
$(LEX) -o $@ $^
$(OUT_DIR)/$(YACC_GEN).c $(OUT_DIR)/$(YACC_GEN).h: $(SRC_DIR)/$(YACC_SRC)
$(YACC) --output=$(OUT_DIR)/$(YACC_GEN).c --defines=$(OUT_DIR)/$(YACC_GEN).h -v $^
$(OUT_DIR)/$(LEX_GEN).o: $(OUT_DIR)/$(LEX_GEN).c $(OUT_DIR)/$(YACC_GEN).h
$(CC) -o $@ -c $< $(IFLAGS) $(LFLAGS) $(CFLAGS)
$(OUT_DIR)/$(YACC_GEN).o: $(OUT_DIR)/$(YACC_GEN).c
$(CC) -o $@ -c $^ $(IFLAGS) $(LFLAGS) $(CFLAGS)
$(OUT_DIR)/$(PARSER_BIN): $(OUT_DIR)/$(LEX_GEN).o $(OUT_DIR)/$(YACC_GEN).o
$(CC) -o $@ $^ $(IFLAGS) $(LFLAGS) $(CFLAGS)
$(OUT_DIR)/$(REPORT_PDF): $(DOC_DIR)/$(PDF_SRC)
pandoc --template $(DOC_DIR)/report-template.tex --number-sections --listings --output $@ $^
$(OUT_DIR)/$(COMMIT_LOG):
git log > $@
clean:
rm -rf $(OUT_DIR)/*
|