-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile
executable file
·42 lines (29 loc) · 1.61 KB
/
Makefile
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
# -----------------------------------------------------------------------------
# CONFIGURATION
# Vérifiez bien les valeurs suivantes avant de procéder.
# -----------------------------------------------------------------------------
ANTLR_JAR=../ANTLR/antlr-3.5.jar
SRC_DIR=./src
# -----------------------------------------------------------------------------
# SCRIPT
# Cette partie n'a normalement pas besoin d'être modifiée.
# -----------------------------------------------------------------------------
CLASSPATH=$(SRC_DIR):$(ANTLR_JAR)
SRCS=$(wildcard $(SRC_DIR)/*.java)
OBJS=$(SRCS:.java=.class)
.PHONY: all clean clean_test
all: $(SRC_DIR)/VSLTreeParser.java $(SRC_DIR)/VSLParser.java $(SRC_DIR)/VSLLexer.java $(OBJS)
$(SRC_DIR)/%.class: $(SRC_DIR)/%.java
javac -cp $(CLASSPATH) $(SRCS)
$(SRC_DIR)/VSLTreeParser.java: $(SRC_DIR)/VSLTreeParser.g $(SRC_DIR)/VSLParser.java VSLParser.tokens
java -cp $(CLASSPATH) org.antlr.Tool $(SRC_DIR)/VSLTreeParser.g
$(SRC_DIR)/VSLParser.java: $(SRC_DIR)/VSLParser.g $(SRC_DIR)/VSLLexer.java VSLLexer.tokens
java -cp $(CLASSPATH) org.antlr.Tool $(SRC_DIR)/VSLParser.g
%.tokens: $(SRC_DIR)/%.g
java -cp $(CLASSPATH) org.antlr.Tool $^
$(SRC_DIR)/VSLLexer.java: $(SRC_DIR)/VSLLexer.g
java -cp $(CLASSPATH) org.antlr.Tool $^
clean:
rm -f $(SRC_DIR)/*.class $(SRC_DIR)/VSLTreeParser.java $(SRC_DIR)/VSLParser.java $(SRC_DIR)/VSLLexer.java *.tokens tmp.vsl_code
clean_test:
rm -f tests/testlevel*/*.mips tests/testlevel*/*.mips.o tests/testlevel*/*.mips.s tests/testlevel*/*.vsm.o tests/testlevel*/*.vsm.s tests/testlevel*/*.mips_res tests/testlevel*/*.vsm_res tests/testlevel*/*.comp_res