summaryrefslogtreecommitdiff
path: root/support/vvcode/unix.mak
blob: bb28dcd1352bfc68f33f46e48a045fbba9d2a954 (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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
##############################################################################
##############################################################################
##
##  ARCHIVE HEADER INFORMATION
##
##  @Make-file{
##	FILENAME    = "unix.mak",
##	VERSION     = "1.00",
##	DATE	    = "",
##	TIME	    = "",
##
##	AUTHOR	    = "Niel Kempson",
##      ADDRESS     = "25 Whitethorn Drive, Cheltenham, GL52 5LL, England",
##	TELEPHONE   = "+44-242 579105",
##	EMAIL	    = "kempson@tex.ac.uk (Internet)",
##
##	SUPPORTED   = "yes",
##	ARCHIVED    = "tex.ac.uk, ftp.tex.ac.uk",
##	KEYWORDS    = "VVcode, Unix",
##
##	CODETABLE   = "ISO/ASCII",
##	CHECKSUM    = "51492 1481 5732 57976",
##
##	DOCSTRING   = { This is the VVCODE makefile for different versions
##			of UNIX.  Below is a list of the environments on
##			which VVCODE has been tested and found to work.	Each
##			entry is preceded by a status character:
##
##			+   tested and believed to work
##			-   tested but not all features available 
##			    (e.g. file timestamping)
##			?   not tested but should work
##			X   believed not to work.
##
##			If you port VVCODE to a new environment or find that
##			it works unchanged, please report back to the author
##			so that this file can be updated for everyone else.
##	
##			+ Data General Aviion, GNU cc:
##	    	    	    	"make sysv-gcc"
##			+ DEC MIPS, Ultrix 4.2, native cc:
##	    	    	    	"make bsd43"
##			+ HP 730, SysV, native cc:
##	    	    	    	"make sysv"
##			+ HP 9000/827, SysV, native cc:
##	    	    	    	"make sysv"
##			+ IBM RS6000, AIX 3.2, native cc:
##	    	    	    	"make aix32"
##			+ SCO Unix V.3.2, MSC compiler:
##	    	    	    	"make scosysv"
##			+ Sequent Symmetry, Dynix v3.1.2, native cc:
##			    	"make sequent"
##			+ SUN, SunOS 3.x & 4.1.x, native cc:
##	    	    	    	"make sunos"
##			+ SUN, SunOS 3.x & 4.1.x, GNU cc:
##	    	    	    	"make sunos-gcc"
##		    }
##  }
##
##  MODULE CONTENTS
##
##	[tbs]
##
##  COPYRIGHT
##
##      Copyright (c) 1991-1993 by Niel Kempson <kempson@tex.ac.uk>
##
##      This program 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.
##
##      This program 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 this program; if not, write to the Free Software
##      Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
##
##      In other words, you are welcome to use, share and improve this
##      program.  You are forbidden to forbid anyone else to use, share
##      and improve what you give them.   Help stamp out software-hoarding!  
##
##  CHANGE LOG
##
##############################################################################
##############################################################################


##############################################################################
#
# Local definitions for file types and compilation / linking.
#
# If your system is already supported it should not be necessary to modify
# any part of the Makefile except the local definitions below.	 
#
# COMPILER/LINKER
#
#   CC		        the command used to invoke the C compiler
#   CFLAGS	        compiler command line flags to be used
#   CCDEFINES	        symbols to be #defined when compiling
#
#   LD		        the command used to invoke the linker
#   LDFLAGS	        linker command line flags to be used
#   LDLIBS	        linker command line option to search the specified
#		        library files
#
#   MAKE    	        the command used to invoke Make to process this file.
#	    	        As distributed, it is defined as "make -f unix.mak"
#
# The definitions are used to compile and link as shown below:
#
#   Compiling C programs (e.g. xx.c)
#
#	$(CC)  -c  $(CFLAGS)  $(CCDEFINES)  xx.c
#
#   Linking object files (e.g. xx.o, yy.o & zz.o)
#
#	$(LD)  -o $@ $(LDFLAGS)  xx.o  yy.o  zz.o  $(LDLIBS)
#
# The 'vanilla' settings should usually be:
#
#	CC	    = cc
#	CFLAGS	    = -g
#	LD	    = cc
#	LDFLAGS     = -g
#
# For GNU C, the following settings are recommended:
#
#	CC	    = gcc
#	CFLAGS	    = -g -Wall -Wmissing-prototypes -Wconversion
#	LD	    = gcc
#	LDFLAGS     = -g
#
##############################################################################
# Start of local definitions.
#
# NOTE: do not define CCDEFINES or LDLIBS below - they 
#       will be set by the system-specific target selected.
##############################################################################
CC	    = cc
CFLAGS	    = -g
LD	    = cc
LDFLAGS     = -g
MAKE	    = make -f unix.mak
##############################################################################
# End of local definitions.
##############################################################################


##############################################################################
# File types and default rule for compilation
##############################################################################
EXE		= 
OBJ		= .o

.SUFFIXES:	.c .h $(OBJ) $(EXE)

.c.o:
	$(CC) -c $(CFLAGS) $(CCDEFINES) $*.c


##############################################################################
# Target Groupings
##############################################################################
HDRFILES	= checkos.h machine.h local.h globals.h specific.h vvutils.h

OBJFILES	= vvencode$(OBJ) vvdecode$(OBJ) vveparse$(OBJ) \
		  vvutils$(OBJ) unix$(OBJ)

EXEFILES	= vvencode$(EXE) vvdecode$(EXE)

##############################################################################
# Top level targets
##############################################################################
make:
	@ echo 'You must specify the system for which VVCODE should be made.'
	@ echo ''
	@ echo 'For example: $(MAKE) bsd42'
	@ echo ''
	@ echo 'Valid system targets are:'
	@ echo ''
	@ echo '    clean,  veryclean'
	@ echo '    aix32,  bsd41,  bsd42,  bsd43'
	@ echo '    sequent,  scosysv,	sunos,	sunos-gcc,  sysv'

vvcode: $(EXEFILES)

clean:
	@ echo 'Cleaning up ... '
	-rm -f	$(OBJFILES)

veryclean:
	@ echo 'Cleaning up ... '
	-rm -f	$(OBJFILES)
	-rm -f	$(EXEFILES)


##############################################################################
# Dependencies for executables
##############################################################################
vvencode$(EXE): vvencode$(OBJ) vvutils$(OBJ) unix$(OBJ)
	$(LD)  -o $@  $(LDFLAGS) vvencode$(OBJ) vvutils$(OBJ) unix$(OBJ) \
	       $(LDLIBS)

vvdecode$(EXE):	vvdecode$(OBJ) vveparse$(OBJ) vvutils$(OBJ) unix$(OBJ)
	$(LD)  -o $@  $(LDFLAGS) vvdecode$(OBJ) vveparse$(OBJ) \
	       vvutils$(OBJ) unix$(OBJ) $(LDLIBS)

##############################################################################
# Dependencies for object files
##############################################################################
vvencode$(OBJ): vvencode.c $(HDRFILES)

vvdecode$(OBJ): vvdecode.c $(HDRFILES) vveparse.h

vveparse$(OBJ):	vveparse.c $(HDRFILES) vveparse.h

vvutils$(OBJ):	vvutils.c $(HDRFILES)

unix$(OBJ):	unix.c $(HDRFILES)


##############################################################################
##############################################################################
##
## ENVIRONMENT SPECIFIC TARGETS
##
##  The following symbols may be defined using "-D" to affect the 
##  compilation:
##
##  BSD41		    -	BSD 4.1 target
##  BSD42		    -	BSD 4.2 target
##  BSD43		    -	BSD 4.3 target
##  MSC	    	    	    -	A Microsoft C compiler is being used
##  SYSV		    -	System V target
##  HAS_STRINGS_H	    -	The header file for string functions is 
##				<strings.h> rather than <string.h>
##  HAS_SYSUTIME_H	    -	The function utime() is defined in
##				<sys/utime.h>.	This is the default 
##				assumption for BSD targets.
##  HAS_UTIME_H 	    -	The function utime() is defined in
##				<utime.h>.  This is the default assumption
##				for SYSV targets.
##############################################################################
##############################################################################


##############################################################################
# IBM RS6000, AIX 3.2 BSD environment
#
#   Normal BSD, as long as the BSD support library is linked in.
##############################################################################
aix32:
	@ echo 'Making VVcode for IBM AIX 3.2 ... '
	$(MAKE)  vvcode CCDEFINES=-DBSD42 \
                        LDLIBS=-lbsd
		       

##############################################################################
# BSD 4.1 environment
#
##############################################################################
bsd41:
	@ echo 'Making VVcode for BSD 4.1 Unix ... '
	$(MAKE)  vvcode CCDEFINES=-DBSD41


##############################################################################
# BSD 4.2 environment
#
##############################################################################
bsd42:
	@ echo 'Making VVcode for BSD 4.2 Unix ... '
	$(MAKE)  vvcode CCDEFINES=-DBSD42


##############################################################################
# BSD 4.3 environment
#
##############################################################################
bsd43:
	@ echo 'Making VVcode for BSD 4.3 Unix ... '
	$(MAKE)  vvcode CCDEFINES=-DBSD43


##############################################################################
# Sequent Symmetry Dynix V3.1 BSD environment
#
#   Normal BSD, except that it has <strings.h> rather than the usual 
#   <string.h>
##############################################################################
sequent:
	@ echo 'Making VVcode for Sequent Symmetry DYNIX ... '
	$(MAKE)  vvcode CCDEFINES="-DSTRINGS_H -DBSD42"


##############################################################################
# SCO Unix v3.2.2 System V.3.2 environment, Microsoft C compiler
#
#   Fairly normal SYSV, except for the non Unix-like compiler syntax.
##############################################################################
scosysv:
	@ echo 'Making VVcode for SCO System V Unix ... '
	$(MAKE)  vvcode CCDEFINES="-DSYSV -DMSC" \
		    	CFLAGS="-M3 -Od -Zd -Zi -W3" \
			LDFLAGS="-M3 -Od -Zd"
                        

##############################################################################
# SunOS 4.1.x Unix BSD environment, native compiler
#
#   Normal BSD, except that it has <utime.h> rather than the usual 
#   <sys/utime.h>
##############################################################################
sunos:
	@ echo 'Making VVcode for SunOS BSD Unix ... '
	$(MAKE)  vvcode CCDEFINES="-DHAS_UTIME_H -DBSD42"


##############################################################################
# SunOS 4.1.x Unix BSD environment, GNU C compiler
#
#   Normal BSD, except that it has <utime.h> rather than the usual 
#   <sys/utime.h>
##############################################################################
sunos-gcc:
	@ echo 'Making VVcode for SunOS BSD Unix using GNU C ... '
	$(MAKE)  vvcode CCDEFINES="-DHAS_UTIME_H -DBSD42" \
			CC=gcc \
			LD=gcc
                        

##############################################################################
# System V environment
#
##############################################################################
sysv:
	@ echo 'Making VVcode for System V Unix ... '
	$(MAKE)  vvcode CCDEFINES=-DSYSV
        

##############################################################################
# System V environment, GNU C compiler
#
##############################################################################
sysv-gcc:
	@ echo 'Making VVcode for System V Unix using GNU C ... '
	$(MAKE)  vvcode CCDEFINES="-DHAS_UTIME_H -DSYSV" \
                        CC=gcc \
                        LD=gcc