-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathMakefile
executable file
·116 lines (90 loc) · 2.11 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
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#######################################################
#
# a56 - a DSP56001 assembler
#
# Written by Quinn C. Jensen
# July 1990
#
#######################################################
# environment definitions
# uncomment the ones you like
# generic unix
CC = cc
HOSTCC = cc
YACC = yacc
CCDEFS = -DLDEBUG
MV = mv
YTABC = y.tab.c
YTABH = y.tab.h
POSTPROCESS = echo
# gcc & bison
#CC = gcc
#HOSTCC = gcc
#YACC = bison -y
#CCDEFS =
#MV = mv
#YTABC = y.tab.c
#YTABH = y.tab.h
#POSTPROCESS = echo
# Delorie's DOS gcc (from ftp://omnigate.clarkson.edu/pub/msdos/djgpp)
#CC = gcc
#HOSTCC = gcc
#YACC = bison -y
#CCDEFS =
#MV = ren
#YTABC = y_tab.c
#YTABH = y_tab.h
#POSTPROCESS = coff2exe
# gcc cross-compile to go32 environment
#CC = i386-go32-gcc
#HOSTCC = cc
#YACC = yacc
#CCDEFS =
#MV = mv
#YTABC = y.tab.c
#YTABH = y.tab.h
#POSTPROCESS = echo
#######################################################
# -O or -g
#DEBUG = -O -Olimit 3000
DEBUG = -O
SRCS = main.c a56.y lex.c subs.c getopt.c kparse.key
OBJS = main.o gram.o lex.o toktab.o subs.o getopt.o kparse.o
DEFINES = $(CCDEFS)
#DEFINES = -DYYDEBUG -DLDEBUG $(CCDEFS)
CFLAGS = $(DEBUG) $(DEFINES)
all: keybld a56 toomf
a56: $(OBJS)
$(CC) $(CFLAGS) -o a56 $(OBJS) -lm
@$(POSTPROCESS) a56
keybld: keybld.o ksubs.o
$(HOSTCC) $(CFLAGS) -o keybld keybld.o ksubs.o
@$(POSTPROCESS) keybld
keybld.o: keybld.c
$(HOSTCC) $(CFLAGS) -c keybld.c
ksubs.o: subs.c
$(HOSTCC) $(CFLAGS) -c subs.c
$(MV) subs.o ksubs.o
lex.o: lex.c gram.h
kparse.c: a56.key keybld
$(abspath keybld) < a56.key > kparse.c
gram.c gram.h: a56.y
@echo "[expect 2 shift/reduce conflicts here]"
$(YACC) -d a56.y
$(MV) $(YTABC) gram.c
$(MV) $(YTABH) gram.h
toktab.c: gram.h
awk -f tok.awk < gram.h > toktab.c
y.output: a56.y
$(YACC) -v a56.y
toomf: toomf.o
$(CC) -o toomf $(CFLAGS) toomf.o
@$(POSTPROCESS) toomf
torom: torom.o subs.o
$(CC) -o torom $(CFLAGS) torom.o subs.o
tape: toktab.c
csh -c 'tar cvbf 1 - `cat files` | gzip > a56.tar.gz'
main.o gram.o lex.o: a56.h
clean: ; rm -f a56 toomf y.output *.o *.out tmp *.bak a56.tar.gz keybld
spotless: clean
rm -f gram.c lexyy.c gram.h toktab.c kparse.c