|
|
1.1 root 1: # Makefile for bison
2: # Copyright (C) 1988, 1989, 1991, 1993 Bob Corbett and Free Software Foundation, Inc.
3: #
4: # This file is part of Bison, the GNU Compiler Compiler.
5: #
6: # Bison is free software; you can redistribute it and/or modify
7: # it under the terms of the GNU General Public License as published by
8: # the Free Software Foundation; either version 2, or (at your option)
9: # any later version.
10: #
11: # Bison is distributed in the hope that it will be useful,
12: # but WITHOUT ANY WARRANTY; without even the implied warranty of
13: # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14: # GNU General Public License for more details.
15: #
16: # You should have received a copy of the GNU General Public License
17: # along with Bison; see the file COPYING. If not, write to
18: # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
19:
20: #### Start of system configuration section. ####
21:
22: srcdir = @srcdir@
23: VPATH = @srcdir@
24:
25: CC = @CC@
26: INSTALL = @INSTALL@
27: INSTALL_PROGRAM = @INSTALL_PROGRAM@
28: INSTALL_DATA = @INSTALL_DATA@
29: MAKEINFO = makeinfo
30:
31: # Things you might add to DEFS:
32: # -DSTDC_HEADERS If you have ANSI C headers and libraries.
33: # -DHAVE_STRING_H If you don't have ANSI C headers but have string.h.
34: # -DHAVE_MEMORY_H If you don't have ANSI C headers and have memory.h.
35: # -DHAVE_STRERROR If you have strerror function.
36: DEFS = @DEFS@
37:
38: CFLAGS = -g
39: LDFLAGS = -g
40:
41: LIBS = @LIBS@
42:
43: # Some System V machines do not come with libPW. If this is true, use
44: # the GNU alloca.o here.
45: ALLOCA = @ALLOCA@
46:
47: prefix = /usr/local
48: exec_prefix = $(prefix)
49:
50: # where the installed binary goes
51: bindir = $(exec_prefix)/bin
52:
53: # where the parsers go
54: datadir = $(prefix)/lib
55:
56: # where the info files go
57: infodir = $(prefix)/info
58:
59: # where manual pages go and what their extensions should be
60: mandir = $(prefix)/man/man$(manext)
61: manext = 1
62:
63: #### End of system configuration section. ####
64:
65: DISTFILES = COPYING ChangeLog Makefile.in configure configure.in \
66: REFERENCES bison.1 bison.rnh configure.bat \
67: bison.simple bison.hairy \
68: LR0.c allocate.c closure.c conflicts.c derives.c \
69: files.c getargs.c gram.c lalr.c lex.c main.c nullable.c \
70: output.c print.c reader.c reduce.c symtab.c version.c \
71: warshall.c files.h gram.h lex.h machine.h new.h state.h \
72: symtab.h system.h types.h bison.cld build.com vmsgetargs.c \
73: vmshlp.mar README INSTALL bison.texinfo bison.info* texinfo.tex \
74: getopt.c getopt.h getopt1.c alloca.c mkinstalldirs
75:
76:
77: SHELL = /bin/sh
78:
79: # This rule allows us to supply the necessary -D options
80: # in addition to whatever the user asks for.
81: .c.o:
82: $(CC) -c $(DEFS) -I$(srcdir)/../include $(CPPFLAGS) $(CFLAGS) $<
83:
84: # names of parser files
85: PFILE = bison.simple
86: PFILE1 = bison.hairy
87:
88: PFILES = -DXPFILE=\"$(datadir)/$(PFILE)\" \
89: -DXPFILE1=\"$(datadir)/$(PFILE1)\"
90:
91: OBJECTS = LR0.o allocate.o closure.o conflicts.o derives.o files.o \
92: getargs.o gram.o lalr.o lex.o \
93: main.o nullable.o output.o print.o reader.o reduce.o symtab.o \
94: warshall.o version.o \
95: getopt.o getopt1.o $(ALLOCA)
96:
97: all: bison bison.s1
98:
99: Makefile: Makefile.in config.status
100: ./config.status
101:
102: config.status: configure
103: ./config.status --recheck
104:
105: configure: configure.in
106: cd $(srcdir); autoconf
107:
108: # Copy bison.simple, inserting directory name into the #line commands.
109: bison.s1: bison.simple
110: -rm -f bison.s1
111: sed -e "/^#line/ s|bison|$(datadir)/bison|" < $(srcdir)/$(PFILE) > bison.s1
112:
113: clean:
114: rm -f *.o core bison bison.s1
115:
116: mostlyclean: clean
117:
118: distclean: clean
119: rm -f Makefile config.status
120:
121: realclean: distclean
122: rm -f TAGS *.info*
123:
124: # Most of these deps are in case using RCS.
125: install: all bison.1 $(srcdir)/$(PFILE) $(srcdir)/$(PFILE1) installdirs uninstall
126: $(INSTALL_PROGRAM) bison $(bindir)/bison
127: $(INSTALL_DATA) ./bison.s1 $(datadir)/$(PFILE)
128: $(INSTALL_DATA) $(srcdir)/$(PFILE1) $(datadir)/$(PFILE1)
129: -chmod a+r $(datadir)/$(PFILE) $(datadir)/$(PFILE1)
130: -$(INSTALL_DATA) $(srcdir)/bison.1 $(mandir)/bison.$(manext)
131: -chmod a+r $(mandir)/bison.$(manext)
132:
133: # cd $(srcdir); for f in bison.info*; \
134: # do $(INSTALL_DATA) $$f $(infodir)/$$f; done
135:
136: # Make sure all installation directories, e.g. $(bindir) actually exist by
137: # making them if necessary.
138: installdirs:
139: -sh $(srcdir)/mkinstalldirs $(bindir) $(datadir) $(libdir) $(infodir) $(mandir)
140:
141: uninstall:
142: rm -f $(bindir)/bison
143: -rm -f $(datadir)/$(PFILE) $(datadir)/$(PFILE1)
144: rm -f $(mandir)/bison.$(manext) $(infodir)/bison.info*
145:
146: bison: $(OBJECTS)
147: $(CC) $(LDFLAGS) -o $@ $(OBJECTS) $(LIBS)
148:
149: dist: bison.info
150: echo bison-`sed -e '/version_string/!d' -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q version.c` > .fname
151: -rm -rf `cat .fname`
152: mkdir `cat .fname`
153: dst=`cat .fname`; for f in $(DISTFILES); do \
154: ln $(srcdir)/$$f $$dst/$$f || { echo copying $$f; cp -p $(srcdir)/$$f $$dst/$$f ; } \
155: done
156: tar --gzip -chf `cat .fname`.tar.gz `cat .fname`
157: -rm -rf `cat .fname` .fname
158:
159: bison.info: bison.texinfo
160: $(MAKEINFO) $(srcdir)/bison.texinfo
161:
162: TAGS: *.c *.h
163: etags *.c *.h
164:
165: # This file is different to pass the parser file names to the compiler.
166: files.o: files.c
167: $(CC) -c $(PFILES) $(DEFS) $(CPPFLAGS) $(CFLAGS) \
168: $(srcdir)/files.c $(OUTPUT_OPTION)
169:
170: LR0.o: system.h machine.h new.h gram.h state.h
171: closure.o: system.h machine.h new.h gram.h
172: conflicts.o: system.h machine.h new.h files.h gram.h state.h
173: derives.o: system.h new.h types.h gram.h
174: files.o: system.h files.h new.h gram.h
175: getargs.o: system.h files.h
176: lalr.o: system.h machine.h types.h state.h new.h gram.h
177: lex.o: system.h files.h symtab.h lex.h
178: main.o: system.h machine.h
179: nullable.o: system.h types.h gram.h new.h
180: output.o: system.h machine.h new.h files.h gram.h state.h
181: print.o: system.h machine.h new.h files.h gram.h state.h
182: reader.o: system.h files.h new.h symtab.h lex.h gram.h
183: reduce.o: system.h machine.h files.h new.h gram.h
184: symtab.o: system.h new.h symtab.h gram.h
185: warshall.o: system.h machine.h
186:
187: # Prevent GNU make v3 from overflowing arg limit on SysV.
188: .NOEXPORT:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.