/* ********************************************************************** *\
 *         Copyright IBM Corporation 1988,1991 - All Rights Reserved      *
 *        For full copyright information see:'andrew/config/COPYRITE'     *
\* ********************************************************************** */

/*
	$Disclaimer: 
*Permission to use, copy, modify, and distribute this software and its 
*documentation for any purpose is hereby granted without fee, 
*provided that the above copyright notice appear in all copies and that 
*both that copyright notice, this permission notice, and the following 
*disclaimer appear in supporting documentation, and that the names of 
*IBM, Carnegie Mellon University, and other copyright holders, not be 
*used in advertising or publicity pertaining to distribution of the software 
*without specific, written prior permission.
*
*IBM, CARNEGIE MELLON UNIVERSITY, AND THE OTHER COPYRIGHT HOLDERS 
*DISCLAIM ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING 
*ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.  IN NO EVENT 
*SHALL IBM, CARNEGIE MELLON UNIVERSITY, OR ANY OTHER COPYRIGHT HOLDER 
*BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY 
*DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, 
*WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS 
*ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE 
*OF THIS SOFTWARE.
* $
*/

CPP = ${CC} -E -I. ${LOCALINCLUDES} ${INCLUDES} ${STD_DEFINES} ${DEFINES}
STRIPCPPLINES = egrep -v -f pat.grp
YYHIDE = ./yyhide -vv

POBJS = pgrammar.o support.o ptokens.o
OBJS = grammar.o support.o tokens.o

NormalObjectRule()

LibraryTarget(libpparsec.a, $(POBJS))
ProgramTarget(yyhide, yyhide.o, libpparsec.a, $(UTILLIB) $(BSDLIB))
LibraryTarget(libparsec.a, $(OBJS))

CleanTarget(preyyhide pparsec.h parsec.h lex.yy.c y.tab.c y.tab.h y.output pgrammar.c ptokens.c grammar.c tokens.c)

InstallFile(parsec.h, $(INSTINCFLAGS), $(DESTDIR)/include)
InstallDocs(parsec.doc yyhide.doc, $(DESTDIR)/doc)
InstallProgram(yyhide, $(DESTDIR)/bin)
InstallLibrary(libparsec.a, $(DESTDIR)/lib)

CppAndFilter(grammar.c, y.tab.c, p1.h, $(STRIPCPPLINES) | $(YYHIDE))
CppAndFilter(pgrammar.c, y.tab.c, p1.h, $(STRIPCPPLINES))
CppAndFilter(tokens.c, lex.yy.c, parsec.h, $(STRIPCPPLINES) | $(YYHIDE))
CppAndFilter(ptokens.c, lex.yy.c, parsec.h, $(STRIPCPPLINES))

AppendFiles(parsec.h, p1.h y.tab.h)

NCYaccWithHeader(grammar.y)
NCLex(tokens.l)

grammar.o: grammar.c
support.o: support.c parsec.h
tokens.o: tokens.c

yyhide.o: yyhide.c parsec.h

pgrammar.o: pgrammar.c
ptokens.o: ptokens.c
