summaryrefslogtreecommitdiff
path: root/makefile.pc
blob: b812dad4d490c8cbdd6f04c5a4b6496a51e42681 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
# 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
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 \
	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 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 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