Annotation of src/usr.bin/awk/README, Revision 1.6
1.6 ! millert 1: /* $OpenBSD: README,v 1.5 2002/12/19 21:24:28 millert Exp $ */
1.1 tholo 2: /****************************************************************
1.2 kstailey 3: Copyright (C) Lucent Technologies 1997
1.1 tholo 4: All Rights Reserved
5:
6: Permission to use, copy, modify, and distribute this software and
7: its documentation for any purpose and without fee is hereby
8: granted, provided that the above copyright notice appear in all
9: copies and that both that the copyright notice and this
10: permission notice and warranty disclaimer appear in supporting
1.2 kstailey 11: documentation, and that the name Lucent Technologies or any of
12: its entities not be used in advertising or publicity pertaining
13: to distribution of the software without specific, written prior
14: permission.
15:
16: LUCENT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
17: INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS.
18: IN NO EVENT SHALL LUCENT OR ANY OF ITS ENTITIES BE LIABLE FOR ANY
19: SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
20: WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER
21: IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
22: ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
23: THIS SOFTWARE.
1.1 tholo 24: ****************************************************************/
25:
26: This is the version of awk described in "The AWK Programming Language",
1.2 kstailey 27: by Al Aho, Brian Kernighan, and Peter Weinberger
1.1 tholo 28: (Addison-Wesley, 1988, ISBN 0-201-07981-X).
1.2 kstailey 29:
1.1 tholo 30: Changes, mostly bug fixes and occasional enhancements, are listed
31: in FIXES. If you distribute this code further, please please please
32: distribute FIXES with it. If you find errors, please report them
33: to bwk@bell-labs.com. Thanks.
34:
35: The program itself is created by
36: make
1.2 kstailey 37: which should produce a sequence of messages roughly like this:
1.1 tholo 38:
1.2 kstailey 39: yacc -d awkgram.y
1.1 tholo 40:
1.4 millert 41: conflicts: 43 shift/reduce, 85 reduce/reduce
1.2 kstailey 42: mv y.tab.c ytab.c
43: mv y.tab.h ytab.h
1.5 millert 44: cc -c ytab.c
45: cc -c b.c
46: cc -c main.c
47: cc -c parse.c
48: cc maketab.c -o maketab
1.2 kstailey 49: ./maketab >proctab.c
1.5 millert 50: cc -c proctab.c
51: cc -c tran.c
52: cc -c lib.c
53: cc -c run.c
54: cc -c lex.c
55: cc ytab.o b.o main.o parse.o proctab.o tran.o lib.o run.o lex.o -lm
1.1 tholo 56:
1.3 millert 57: This produces an executable a.out; you will eventually want to
58: move this to some place like /usr/bin/awk.
1.1 tholo 59:
1.6 ! millert 60: If your system does not have yacc or bison (the GNU
1.2 kstailey 61: equivalent), you must compile the pieces manually. We have
62: included yacc output in ytab.c and ytab.h, and backup copies in
1.3 millert 63: case you overwrite them. We have also included a copy of
64: proctab.c so you do not need to run maketab.
1.2 kstailey 65:
66: NOTE: This version uses ANSI C, as you should also. We have
67: compiled this without any changes using gcc -Wall and/or local C
68: compilers on a variety of systems, but new systems or compilers
69: may raise some new complaint; reports of difficulties are
70: welcome.
71:
1.5 millert 72: This also compiles with Visual C++ on all flavors of Windows,
1.3 millert 73: *if* you provide versions of popen and pclose. The file
74: missing95.c contains versions that can be used to get started
75: with, though the underlying support has mysterious properties,
1.6 ! millert 76: the symptom of which can be truncated pipe output. Beware. The
! 77: file makefile.win gives hints on how to proceed; if you run
! 78: vcvars32.bat, it will set up necessary paths and parameters so
! 79: you can subsequently run nmake -f makefile.win. Beware also that
! 80: when running on Windows under command.com, various quoting
! 81: conventions are different from Unix systems: single quotes won't
! 82: work around arguments, and various characters like % are
! 83: interpreted within double quotes.
1.3 millert 84:
1.5 millert 85: This compiles without change on Macintosh OS X using gcc and
86: the standard developer tools.
87:
88: This is also said to compile on Macintosh OS 9 systems, using the
1.3 millert 89: file "buildmac" provided by Dan Allen (danallen@microsoft.com),
1.5 millert 90: to whom many thanks.
1.1 tholo 91:
1.2 kstailey 92: The version of malloc that comes with some systems is sometimes
93: astonishly slow. If awk seems slow, you might try fixing that.
1.5 millert 94: More generally, turning on optimization can significantly improve
95: awk's speed, perhaps by 1/3 for highest levels.