# Makefile for bison # Copyright (C) 1988, 1989, 1991, 1993 Bob Corbett and Free Software Foundation, Inc. # # This file is part of Bison, the GNU Compiler Compiler. # # Bison is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2, or (at your option) # any later version. # # Bison is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Bison; see the file COPYING. If not, write to # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA. #### Start of system configuration section. #### srcdir = @srcdir@ VPATH = @srcdir@ CC = @CC@ INSTALL = @INSTALL@ INSTALL_PROGRAM = @INSTALL_PROGRAM@ INSTALL_DATA = @INSTALL_DATA@ MAKEINFO = makeinfo # Things you might add to DEFS: # -DSTDC_HEADERS If you have ANSI C headers and libraries. # -DHAVE_STRING_H If you don't have ANSI C headers but have string.h. # -DHAVE_MEMORY_H If you don't have ANSI C headers and have memory.h. # -DHAVE_STRERROR If you have strerror function. DEFS = @DEFS@ CFLAGS = @CFLAGS@ LDFLAGS = @LDFLAGS@ LIBS = @LIBS@ # Some System V machines do not come with libPW. If this is true, use # the GNU alloca.o here. ALLOCA = @ALLOCA@ prefix = @prefix@ exec_prefix = @exec_prefix@ # where the installed binary goes bindir = $(exec_prefix)/bin # where the parsers go datadir = $(prefix)/share # where the info files go infodir = $(prefix)/info # where manual pages go and what their extensions should be mandir = $(prefix)/man/man$(manext) manext = 1 #### End of system configuration section. #### DISTFILES = COPYING ChangeLog Makefile.in configure configure.in \ REFERENCES bison.1 bison.rnh configure.bat \ bison.simple bison.hairy \ LR0.c allocate.c closure.c conflicts.c derives.c \ files.c getargs.c gram.c lalr.c lex.c main.c nullable.c \ output.c print.c reader.c reduce.c symtab.c version.c \ warshall.c files.h gram.h lex.h machine.h alloc.h state.h \ symtab.h system.h types.h bison.cld build.com vmsgetargs.c \ vmshlp.mar README INSTALL NEWS bison.texinfo bison.info* texinfo.tex \ getopt.c getopt.h getopt1.c alloca.c mkinstalldirs install-sh SHELL = /bin/sh # This rule allows us to supply the necessary -D options # in addition to whatever the user asks for. .c.o: $(CC) -c $(DEFS) -I$(srcdir)/../include $(CPPFLAGS) $(CFLAGS) $< # names of parser files PFILE = bison.simple PFILE1 = bison.hairy PFILES = -DXPFILE=\"$(datadir)/$(PFILE)\" \ -DXPFILE1=\"$(datadir)/$(PFILE1)\" OBJECTS = LR0.o allocate.o closure.o conflicts.o derives.o files.o \ getargs.o gram.o lalr.o lex.o \ main.o nullable.o output.o print.o reader.o reduce.o symtab.o \ warshall.o version.o \ getopt.o getopt1.o $(ALLOCA) all: bison bison.info bison.s1 Makefile: config.status Makefile.in CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status config.status: configure ./config.status --recheck configure: configure.in cd $(srcdir) && autoconf # Copy bison.simple, inserting directory name into the #line commands. bison.s1: bison.simple -rm -f bison.s1 sed -e "/^#line/ s|bison|$(datadir)/bison|" < $(srcdir)/$(PFILE) > $@-tmp mv $@-tmp $@ clean: rm -f *.o core bison bison.s1 config.status config.log mostlyclean: clean distclean: clean rm -f Makefile realclean: distclean rm -f TAGS *.info* # Most of these deps are in case using RCS. install: all bison.1 $(srcdir)/$(PFILE) $(srcdir)/$(PFILE1) installdirs uninstall $(INSTALL_PROGRAM) bison $(bindir)/bison $(INSTALL_DATA) bison.s1 $(datadir)/$(PFILE) $(INSTALL_DATA) $(srcdir)/$(PFILE1) $(datadir)/$(PFILE1) cd $(srcdir); for f in bison.info*; \ do $(INSTALL_DATA) $$f $(infodir)/$$f; done -$(INSTALL_DATA) $(srcdir)/bison.1 $(mandir)/bison.$(manext) # Make sure all installation directories, e.g. $(bindir) actually exist by # making them if necessary. installdirs: -sh $(srcdir)/mkinstalldirs $(bindir) $(datadir) $(libdir) $(infodir) $(mandir) uninstall: rm -f $(bindir)/bison -cd $(datadir); rm -f $(PFILE) $(PFILE1) rm -f $(mandir)/bison.$(manext) $(infodir)/bison.info* check: @echo "No checks implemented (yet)." bison: $(OBJECTS) $(CC) $(LDFLAGS) $(CFLAGS) -o $@ $(OBJECTS) $(LIBS) # We don't use $(srcdir) in this rule # because it is normally used in the master source dir # in which configure has not been run. dist: bison.info echo bison-`sed -e '/version_string/!d' -e 's/[^0-9.]*\([0-9.]*\).*/\1/' -e q version.c` > .fname -rm -rf `cat .fname` mkdir `cat .fname` dst=`cat .fname`; for f in $(DISTFILES); do \ if test -L $$f; then \ cp $$f $$dst/$$f; chmod a-w $$dst/$$f; \ else \ ln $$f $$dst/$$f; \ fi \ done tar --gzip -chf `cat .fname`.tar.gz `cat .fname` -rm -rf `cat .fname` .fname bison.info: bison.texinfo $(MAKEINFO) $(srcdir)/bison.texinfo TAGS: *.c *.h etags *.c *.h # This file is different to pass the parser file names to the compiler. files.o: files.c $(CC) -c $(PFILES) $(DEFS) $(CPPFLAGS) $(CFLAGS) \ $(srcdir)/files.c $(OUTPUT_OPTION) LR0.o: system.h machine.h alloc.h gram.h state.h allocate.o: system.h closure.o: system.h machine.h alloc.h gram.h conflicts.o: system.h machine.h alloc.h files.h gram.h state.h derives.o: system.h alloc.h types.h gram.h files.o: system.h files.h alloc.h gram.h getargs.o: system.h files.h lalr.o: system.h machine.h types.h state.h alloc.h gram.h lex.o: system.h files.h symtab.h lex.h main.o: system.h machine.h nullable.o: system.h types.h gram.h alloc.h output.o: system.h machine.h alloc.h files.h gram.h state.h print.o: system.h machine.h alloc.h files.h gram.h state.h reader.o: system.h files.h alloc.h symtab.h lex.h gram.h reduce.o: system.h machine.h files.h alloc.h gram.h symtab.o: system.h alloc.h symtab.h gram.h warshall.o: system.h machine.h # Prevent GNU make v3 from overflowing arg limit on SysV. .NOEXPORT: