-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
38 lines (29 loc) · 755 Bytes
/
Makefile
File metadata and controls
38 lines (29 loc) · 755 Bytes
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
CC := gcc
CFLAGS := -Wall
YFLAG := -d -v
LEX_SRC := compiler_hw3.l
YAC_SRC := compiler_hw3.y
HEADER := common.h
COMPILER := mycompiler
JAVABYTECODE := hw3.j
EXEC := Main
v := 0
all: ${COMPILER}
${COMPILER}: lex.yy.c y.tab.c
${CC} ${CFLAGS} -o $@ $^
lex.yy.c: ${LEX_SRC} ${HEADER}
lex $<
y.tab.c: ${YAC_SRC} ${HEADER}
yacc ${YFLAG} $<
${JAVABYTECODE}: ${COMPILER}
ifeq (,$(wildcard ${JAVABYTECODE}))
@echo "${JAVABYTECODE} does not exist."
endif
${EXEC}.class: ${JAVABYTECODE}
@java -jar jasmin.jar -g ${JAVABYTECODE}
run: ${EXEC}.class
@java ${EXEC} || java -Xverify:none ${EXEC}
judge: all
@python3 ../CompilerHW3/judge/judge.py -v ${v} || printf "or \`make judge v=1\`"
clean:
rm -f ${COMPILER} y.tab.* y.output lex.* ${EXEC}.class *.j