-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathMakefile.in
97 lines (68 loc) · 2.17 KB
/
Makefile.in
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
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# Makefile for lcc
CFLAGS=-g -O2
DEFS=-DYYERROR_VERBOSE=1
prefix=@prefix@
exec_prefix=@exec_prefix@
### this useless define is needed to silence useless autoconf warning
datarootdir=@datarootdir@
shmem_include_path=@SHMEM_INCLUDE_PATH@
shmem_lib_path=@SHMEM_LIB_PATH@
######################################################################
INSTALL_BIN_DIR=${exec_prefix}/bin
INSTALL_LIB_DIR=${exec_prefix}/lib
INSTALL_INCLUDE_DIR=${prefix}/include
INSTALL_MAN_DIR=${datarootdir}/man
OBJS = compiler.o compiler_scan.o compiler_gram.o compiler_node.o \
compiler_cgen.o
CFLAGS += -O1 -fPIC
YACC = yacc
YACCFLAGS = -y -v
LEX = lex
LEXFLAGS =
COMPILER_YYPREFIX = __compiler_
all: lc2c lcc lol
.SUFFIXES:
.SUFFIXES: .l .y .c .o
lc2c: compiler_gram.c $(OBJS)
$(CC) $(CFLAGS) -o lc2c $(INCS) $(OBJS) $(LIBS)
compiler_gram.c: compiler_gram.y
$(YACC) $(YACCFLAGS) -p $(COMPILER_YYPREFIX) -d $<
mv y.tab.c compiler_gram.c
mv y.tab.h compiler_gram.h
compiler_scan.c: compiler_scan.l compiler_gram.c compiler_gram.h
$(LEX) $(LEXFLAGS) -P$(COMPILER_YYPREFIX) $<
mv lex.$(COMPILER_YYPREFIX).c compiler_scan.c
stringify: stringify.c
$(CC) -o stringify stringify.c
_lcc.inc: lcc.sh stringify.c
$(CC) -o stringify stringify.c
sed "s/LCC_BUILD_STRING/build $(DATE)/" lcc.sh > _tmp_lcc.sh
./stringify _tmp_lcc.sh _lcc.inc
lcc: lcc.c _lcc.inc
$(CC) -o lcc lcc.c
_lol.inc: lol.sh stringify.c
$(CC) -o stringify stringify.c
sed "s/LOL_BUILD_STRING/build $(DATE)/" lol.sh > _tmp_lol.sh
./stringify _tmp_lol.sh _lol.inc
lol: lol.c _lol.inc
$(CC) -o lol lol.c
.c.o:
$(CC) $(CFLAGS) $(DEFS) $(INCS) -c $<
install:
test -d $(INSTALL_BIN_DIR) || install -m 755 -d $(INSTALL_BIN_DIR)
install -m 755 lc2c $(INSTALL_BIN_DIR)
install -m 755 lcc $(INSTALL_BIN_DIR)
install -m 755 lol $(INSTALL_BIN_DIR)
test -d $(INSTALL_INCLUDE_DIR) || install -m 755 -d $(INSTALL_INCLUDE_DIR)
install -m 755 lol.h $(INSTALL_INCLUDE_DIR)
uninstall:
rm -f $(INSTALL_BIN_DIR)/lc2c
clean:
rm -f *.o
rm -f lc2c lcc lol
rm -f compiler_gram.c compiler_gram.h compiler_scan.c y.output
rm -f a.out
rm -f stringify _lcc.inc _tmp_lcc.sh _lol.inc _tmp_lol.sh
distclean: clean
rm -f Makefile
rm -f autom4te.cache/*