home *** CD-ROM | disk | FTP | other *** search
Makefile | 1990-10-01 | 4.4 KB | 160 lines |
- # Makefile for GNU Awk.
- #
- # Rewritten by Arnold Robbins, September 1988, March 1989.
- #
- # Copyright (C) 1986, 1988, 1989 the Free Software Foundation, Inc.
- #
- # This file is part of GAWK, the GNU implementation of the
- # AWK Progamming Language.
- #
- # GAWK 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 1, or (at your option)
- # any later version.
- #
- # GAWK 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 GAWK; see the file COPYING. If not, write to
- # the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
-
- # CFLAGS: options to the C compiler
- #
- # -O optimize
- # -g include dbx/sdb info
- # -gg include gdb debugging info; only for GCC
- # -pg include new (gmon) profiling info
- # -p include old style profiling info (System V)
- #
- # -DNOVPRINTF - system has no vprintf and associated routines
- # -DHASDOPRNT - system needs version of vprintf et al. defined in awk5.c
- # and has a BSD compatable doprnt()
- # -DNOMEMCMP - system lacks memcmp()
- # -DUSG - system is generic-ish System V.
- #
- OPTIMIZE=-O
- DEBUG=#-DDEBUG #-DFUNC_TRACE -DMEMDEBUG
- DEBUGGER=-g
- PROFILE=#-pg
- SYSV=
- BSD=-DBSD#-DHASDOPRNT
- MEMCMP=#-DNOMEMCMP
- VPRINTF=#-DNOVPRINTF
- CC=gcc
-
- FLAGS= $(OPTIMIZE) $(SYSV) $(DEBUG) $(BSD) $(MEMCMP) $(VPRINTF)
- CFLAGS= $(FLAGS) $(DEBUGGER) $(PROFILE)
- LDFLAGS= #-Bstatic
-
- SRC = awk1.c awk2.c awk3.c awk4.c awk5.c \
- awk6.c awk7.c awk8.c awk9.c version.c do_free.c awka.c
-
- PCSTUFF= makefile.pc names.lnk random.c
-
- AWKOBJS = awk1.o awk2.o awk3.o awk4.o awk5.o awk6.o awk7.o awk8.o awk9.o \
- version.o awka.o # do_free.o # used for MEMDEBUG
- ALLOBJS = $(AWKOBJS) awk.tab.o
-
- # Parser to use on grammar -- if you don't have bison use the first one
- #PARSER = yacc
- PARSER = bison
-
- # S5OBJS
- # Set equal to alloca.o if your system is S5 and you don't have
- # alloca. Uncomment the rule below to actually make alloca.o.
- S5OBJS=
-
- # GETOPT
- # Set equal to getopt.o if you have a generic BSD system. The
- # generic BSD getopt is reported to not work with gawk. The
- # gnu getopt is supplied in gnu.getopt.c. The Public Domain
- # getopt from AT&T is in att.getopt.c. Choose one of these,
- # and rename it getopt.c.
- GETOPT=
-
- # LIBOBJS
- # Stuff that awk uses as library routines, but not in /lib/libc.a.
- LIBOBJS= regex.o $(S5OBJS) $(GETOPT)
-
- UPDATES = Makefile awk.h awk.y \
- $(SRC) regex.c regex.h
-
- INFOFILES= gawk-info gawk-info-1 gawk-info-2 gawk-info-3 gawk-info-4 \
- gawk-info-5 gawk.aux gawk.cp gawk.cps gawk.dvi gawk.fn gawk.fns \
- gawk.ky gawk.kys gawk.pg gawk.pgs gawk.texinfo gawk.toc \
- gawk.tp gawk.tps gawk.vr gawk.vrs
-
- # DOCS
- # Documentation for users
- #
- DOCS=gawk.1 $(INFOFILES)
-
- # We don't distribute shar files, but they're useful for mailing.
- SHARS = $(DOCS) COPYING README PROBLEMS $(UPDATES) awk.tab.c \
- alloca.s alloca.c att.getopt.c gnu.getopt.c $(PCSTUFF)
-
- gawk: $(ALLOBJS) $(LIBOBJS)
- $(CC) -o gawk $(CFLAGS) $(ALLOBJS) $(LIBOBJS) -lm $(LDFLAGS)
-
- $(AWKOBJS): awk.h
-
- awk.tab.o: awk.h awk.tab.c
-
- awk.tab.c: awk.y
- $(PARSER) -v awk.y
- -mv -f y.tab.c awk.tab.c
-
- # Alloca: uncomment this if your system (notably System V boxen)
- # does not have alloca in /lib/libc.a
- #
- #alloca.o: alloca.s
- # /lib/cpp < alloca.s | sed '/^#/d' > t.s
- # as t.s -o alloca.o
- # rm t.s
-
- # If your machine is not supported by the assembly version of alloca.s,
- # use the C version instead. This uses the default rules to make alloca.o.
- #
- #alloca.o: alloca.c
-
- lint: $(SRC)
- lint -hcbax $(FLAGS) $(SRC) awk.tab.c
-
- clean:
- rm -f gawk *.o core awk.output awk.tab.c gmon.out make.out
-
- awk.shar: $(SHARS)
- shar -f awk -c $(SHARS)
-
- awk.tar: $(SHARS)
- tar cvf awk.tar $(SHARS)
-
- updates.tar: $(UPDATES)
- tar cvf gawk.tar $(UPDATES)
-
- awk.tar.Z: awk.tar
- compress < awk.tar > awk.tar.Z
-
- doc: $(DOCS)
- nroff -man $(DOCS) | col > $(DOCS).out
-
- # This command probably won't be useful to the rest of the world, but makes
- # life much easier for me.
- dist: awk.tar awk.tar.Z
-
- diff:
- for i in RCS/*; do rcsdiff -c -b $$i > `basename $$i ,v`.diff; done
-
- update: $(UPDATES)
- sendup $?
- touch update
-
- release: $(SHARS)
- -rm -fr gawk-dist
- mkdir gawk-dist
- cp -p $(SHARS) gawk-dist
- tar -cvf - gawk-dist | compress > dist.tar.Z
-