File: Makefile

package info (click to toggle)
a56 1.3%2Bdfsg-9
  • links: PTS, VCS
  • area: main
  • in suites: bookworm, bullseye, buster
  • size: 352 kB
  • sloc: ansic: 3,471; yacc: 1,888; makefile: 120; awk: 4
file content (126 lines) | stat: -rwxr-xr-x 2,389 bytes parent folder | download | duplicates (3)
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
117
118
119
120
121
122
123
124
125
126
#######################################################
#
#  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) $(CPPFLAGS) $(LDFLAGS)

all:	keybld a56 toomf a56-tobin bin2h

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
	./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

a56-tobin:	debian/a56-tobin.o
	$(CC) -o a56-tobin $(CFLAGS) debian/a56-tobin.o
	@$(POSTPROCESS) a56-tobin

bin2h:	debian/bin2h.o
	$(CC) -o bin2h $(CFLAGS) debian/bin2h.o
	@$(POSTPROCESS) bin2h