Makefile: keybld is not in PATH
[a56.git] / Makefile
1 #######################################################
2 #
3 #  a56 - a DSP56001 assembler
4 #
5 #  Written by Quinn C. Jensen
6 #  July 1990
7 #
8 #######################################################
9
10 # environment definitions
11 # uncomment the ones you like
12
13 # generic unix
14 CC = cc
15 HOSTCC = cc
16 YACC = yacc
17 CCDEFS = -DLDEBUG
18 MV = mv
19 YTABC = y.tab.c
20 YTABH = y.tab.h
21 POSTPROCESS = echo
22
23 # gcc & bison
24 #CC = gcc
25 #HOSTCC = gcc
26 #YACC = bison -y
27 #CCDEFS =
28 #MV = mv
29 #YTABC = y.tab.c
30 #YTABH = y.tab.h
31 #POSTPROCESS = echo
32
33 # Delorie's DOS gcc (from ftp://omnigate.clarkson.edu/pub/msdos/djgpp)
34 #CC = gcc
35 #HOSTCC = gcc
36 #YACC = bison -y
37 #CCDEFS =
38 #MV = ren
39 #YTABC = y_tab.c
40 #YTABH = y_tab.h
41 #POSTPROCESS = coff2exe
42
43 # gcc cross-compile to go32 environment
44 #CC = i386-go32-gcc
45 #HOSTCC = cc
46 #YACC = yacc
47 #CCDEFS =
48 #MV = mv
49 #YTABC = y.tab.c
50 #YTABH = y.tab.h
51 #POSTPROCESS = echo
52
53 #######################################################
54
55 # -O or -g
56 #DEBUG = -O -Olimit 3000
57 DEBUG = -O
58
59 SRCS = main.c a56.y lex.c subs.c getopt.c kparse.key
60 OBJS = main.o gram.o lex.o toktab.o subs.o getopt.o kparse.o
61
62 DEFINES = $(CCDEFS)
63 #DEFINES = -DYYDEBUG -DLDEBUG $(CCDEFS)
64
65 CFLAGS = $(DEBUG) $(DEFINES)
66
67 all:    keybld a56 toomf
68
69 a56:    $(OBJS)
70         $(CC) $(CFLAGS) -o a56 $(OBJS) -lm
71         @$(POSTPROCESS) a56
72
73 keybld: keybld.o ksubs.o
74         $(HOSTCC) $(CFLAGS) -o keybld keybld.o ksubs.o
75         @$(POSTPROCESS) keybld
76
77 keybld.o:       keybld.c
78         $(HOSTCC) $(CFLAGS) -c keybld.c
79
80 ksubs.o:        subs.c
81         $(HOSTCC) $(CFLAGS) -c subs.c
82         $(MV) subs.o ksubs.o
83
84 lex.o:  lex.c gram.h
85
86 kparse.c:       a56.key keybld
87         ./keybld < a56.key > kparse.c
88
89 gram.c gram.h:  a56.y
90         @echo "[expect 2 shift/reduce conflicts here]"
91         $(YACC) -d a56.y
92         $(MV) $(YTABC) gram.c
93         $(MV) $(YTABH) gram.h
94
95 toktab.c:       gram.h
96         awk -f tok.awk < gram.h > toktab.c
97
98 y.output:       a56.y
99         $(YACC) -v a56.y
100
101 toomf:  toomf.o
102         $(CC) -o toomf $(CFLAGS) toomf.o
103         @$(POSTPROCESS) toomf
104
105 torom:  torom.o subs.o
106         $(CC) -o torom $(CFLAGS) torom.o subs.o
107
108 tape:   toktab.c
109         csh -c 'tar cvbf 1 - `cat files` | gzip > a56.tar.gz'
110
111 main.o gram.o lex.o:    a56.h
112
113 clean:  ; rm -f a56 toomf y.output *.o *.out tmp *.bak a56.tar.gz keybld
114
115 spotless:       clean
116         rm -f gram.c lexyy.c gram.h toktab.c kparse.c