home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Fish 'n' More 2
/
fishmore-publicdomainlibraryvol.ii1991xetec.iso
/
fish
/
languages
/
gnuawk
/
src
/
makefile
< prev
next >
Wrap
Makefile
|
1989-04-13
|
5KB
|
171 lines
# Makefile for GNU Awk (for use with Microsoft C V5.1)
#
# 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
#
# -Ox optimize
# -Zi include debugging info (include /CO in LINKFLAFS)
# -AL compile in large model
# -AS compile in small model
#
# -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.
#
CC=cl
LINKFLAGS= /E /FAR /PAC /NOE /NOI /st:0x1800
#LINKFLAGS= /CO /NOE /NOI /st:0x1800
OPTIMIZE= -AL -Ox
DEBUG=#-DDEBUG #-DFUNC_TRACE -DMEMDEBUG
DEBUGGER=# -Zi -Od
PROFILE=#-pg
SYSV=
BSD=#-DHASDOPRNT
MEMCMP=#-DNOMEMCMP
VPRINTF=#-DNOVPRINTF
FLAGS= $(OPTIMIZE) $(SYSV) $(DEBUG) $(BSD) $(MEMCMP) $(VPRINTF)
CFLAGS= $(FLAGS) $(DEBUGGER) $(PROFILE)
LDFLAGS= #-Bstatic
SRC = awk1.c awk2.c awk3.c awk4.c awk5.c popen.c\
awk6.c awk7.c awk8.c awk9.c regex.c version.c do_free.c awka.c
PCSTUFF= makefile.pc names.lnk random.c
AWKOBJS = awk1.obj awk2.obj awk3.obj awk4.obj awk5.obj awk6.obj awk7.obj \
awk8.obj awk9.obj popen.obj \
version.obj awka.obj # do_free.obj # used for MEMDEBUG
ALLOBJS = $(AWKOBJS) awk_tab.obj
# Parser to use on grammar -- if you don't have bison use the first one
PARSER = yacc
PARSOUT=ytab.c
#PARSER = bison -y
#PARSOUT=y_tab.c
#PARSFLAGS=-v
# 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=getopt.obj
# LIBOBJS
# Stuff that awk uses as library routines, but not in /lib/libc.a.
LIBOBJS= regex.obj random.obj $(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)
link @names.lnk,gawk.exe $(LINKFLAGS);
# this kludge necessary because MSC 5.1 compiler bombs with -Oa or -Ol (where
# -Ox == "-Oailt -Gs")
regex.obj: regex.c
$(CC) -c -Oit -AL $(DEBUGGER) regex.c
$(AWKOBJS): awk.h
awk_tab.obj: awk.h awk_tab.c
awk_tab.c: awk.y
@-del awk_tab.c
$(PARSER) $(PARSFLAGS) awk.y
-rename $(PARSOUT) 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 *.obj core awk.output gmon.out make.out #awk_tab.c
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 $(SHARS) gawk-dist
tar -cvf - gawk-dist | compress > dist.tar.Z