-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathConfig.Imake
More file actions
342 lines (262 loc) · 7.31 KB
/
Config.Imake
File metadata and controls
342 lines (262 loc) · 7.31 KB
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
/************************Config.Imake:begin***************************/
/* Just to make sure; SGI does not default this to /bin/sh */
SHELL=/bin/sh
/* Read the top-level README to see how to do a build. */
/* Define Basic OS Architecture Parameters */
/*
Sadly, cpp does not appear to be consistent across all platforms.
So, I am reduced to using some crude methods to get multi-
platform parameterization to work.
*/
/*
A platform currently consists of the following components:
arch: kind of hardware architecture
e.g. {sun3, sun4, decmips, alpha, sgi-1, pa-risc}
os: particular class of operating system.
e.g. {solaris1, solaris2, ultrix, osf1, irix, hpux}
cc: particular c compiler
e.g. {cc, gcc}
c++: particular c++ compiler
e.g. {g++,c++}
ada: particular ada compiler.
e.g. {sunada1.1, verdix6.03}
*/
#undef !TARGETARCH!
#undef !TARGETOS!
TARGETARCH=!TARGETARCH!
TARGETOS=!TARGETOS!
/* Allow use of these names during Imake construction */
#define !TARGETARCH! $(TARGETARCH)
#define !TARGETOS! $(TARGETOS)
TARGETCC=!TARGETCC!
TARGETCPLUS=!TARGETCPLUS!
C=$(TARGETCC)
CC=$(TARGETCC)
CPLUS=$(TARGETCPLUS)
/* Gnu does not currently imply gnat */
#define USEGNU !USEGNU!
/*
The target name is, for now, assumed to be the target architecture
plus the os plus the C++ compiler.
*/
TARGET=$(TARGETARCH).$(TARGETOS).$(TARGETCPLUS)
/* Define shorter names for the target */
TARGETSHORT=$(TARGETARCH)
TARGETSHORT2=$(TARGETARCH).$(TARGETOS)
/*****************************************/
/* Define basic paths and names for this system */
/*
The name of this system is tps: tiny postscript.
*/
/* System name */
SYSPREFIX=tps
/* If the version or patchlevel changes,
then you need to delete src/version.C
so it will be re-created with the new version string.
*/
SYSMAJOR=2
SYSMINOR=1
SYSPATCHLEVEL=c
SYSVERSION=$(SYSMAJOR).$(SYSMINOR)
SYSNAME=$(SYSPREFIX)$(SYSVERSION)
SYSFULLNAME=$(SYSNAME)$(SYSPATCHLEVEL)
SYSHOME=!CWD!
/************************************************/
/* BEGIN SYSTEM DEPENDENCIES */
/************************************************/
/*
This section contains the macros that are
most likely to be system dependent.
*/
/************************************************/
/* define versions of supporting systems */
/* N.A. */
/**************************************************/
/******** General Distribution Definitions ********/
/*
Note Review these values carefully: they are probably not correct
for your site as they stand.
*/
/* Define the various objects needed for this to operate;
They will be overridden as needed in the site specific
definitions
*/
/* TOOL PATHS: */
/*
The simplest way to handle tool path problems is to
define the PATH environment variable so that the correct
versions of the following tools are located by simple name.
Required tools: imake, make, ar(if your system uses it), ranlib|touch, mkdirs
optional tools: makedepend
*/
/* => Modify PATH as Needed */
MAKE=make
AR=ar
ARFLAGS=cru
RANLIB=ranlib
RANLIBT=touch /* take the easy way out */
#if defined hpux || defined solaris2
RANLIB= touch
#endif
#if defined irix
RANLIB=ar ts
#endif
/* choices: MKDIRS=mkdirs vs MKDIRS=mkdir -p */
MKDIRS=mkdir -p
/* Following are usually found with the X11 executables */
IMAKE=imake
MAKEDEPEND=makedepend
/* For solaris2, they should always be here */
#ifdef solaris2
IMAKE=/opt/X/11.5/bin/imake
MAKEDEPEND=/opt/X/11.5/bin/makedepend
#endif /*solaris2*/
/* Define the tar command by which tar can be made to read a file
to obtain the list of files to insert into the tar file.
see ./Imakefile: srctar.
*/
#define tarcmd(tarfile,inventory) tar -cf tarfile -I inventory
#ifdef ultrix
#undef tarcmd
#define tarcmd(tarfile,inventory) tar -cfR tarfile inventory
#endif /*ultrix*/
#ifdef irix
#undef tarcmd
#define tarcmd(tarfile,inventory) tar -cf tarfile - < inventory
#endif /*irix*/
#ifdef hpux
#undef tarcmd
#define tarcmd(tarfile,inventory) tar -cf tarfile -T inventory
#endif /*hpux*/
/**********OVERRIDES**********/
/* If you modify any of the above, it may be best to
to put those overrides here
*/
/* Default is to use the values above */
/************************************************/
/* END SYSTEM DEPENDENCIES */
/************************************************/
/* Modifications to the following should be rare */
/* Misc. references */
SYSTARGET=$(SYSHOME)/$(TARGET)
SYSBIN=$(SYSTARGET)/bin
SYSLIBDIR=$(SYSTARGET)/lib
SYSINCLUDES=$(SYSTARGET)/include
SYSTARGETSHORT=$(SYSHOME)/$(TARGETSHORT)
SYSTARGETSHORT2=$(SYSHOME)/$(TARGETSHORT2)
/* Misc Definitions */
/**************************************************/
/* Avoid having Imake interpret .../ *.... as a a comment */
STAR=*
/**************************************************/
/* Define the names of the tar files */
SRCTARNAME=$(SYSFULLNAME).tar
THISDIRREL=$(UPFIX)/$(SUFFIX)
THISDIRABS=$(SYSHOME)/$(SUFFIX)
/**************************************************/
SRCTARLIST=$(THISDIRABS)/INVENTORY
TARPREFIX=$(SUFFIX)
/**************************************************/
/* Define some common functionality for all directories */
/**************************************************/
/* get around the problem of all coming first */
/* This must be the first dependency */
All: all
#ifdef HAS_SUBDIRS
#ifndef MAKE_PROPAGATE
propagate:
@-for i in $(SUBDIRS); do ( cd $$i; echo '<entering' $$i; $(CMD) ; echo '>leaving' $$i ;cd .. ); done
#endif
#ifndef MAKE_IMAKEALL
imakeall:
make propagate CMD='$(IMAKE); $(MAKE) imakeall'
#endif
#ifndef MAKE_TAGVERSION
tagversion:
make propagate CMD='$(MAKE) tagversion'
#endif
#ifndef MAKE_ALL
all:
make propagate CMD='$(MAKE) all'
#endif
#ifndef MAKE_DEPEND
depend:
make propagate CMD='$(MAKE) depend'
#endif
#ifndef MAKE_INSTALL
install:
make propagate CMD='$(MAKE) install'
#endif
#ifndef MAKE_CLEAN
clean:
make propagate CMD='$(MAKE) clean'
#endif
#ifndef MAKE_REALCLEAN
Clean:
make propagate CMD='$(MAKE) Clean'
#endif
#ifndef MAKE_RCS
#ifdef HAS_SOURCE
RCS:
-mkdir RCS
make propagate CMD='$(MAKE) RCS'
#else
RCS:
make propagate CMD='$(MAKE) RCS'
#endif
#endif
#else /*!HAS_SUBDIRS*/
#ifndef MAKE_PROPAGATE
propagate:
#endif
#ifndef MAKE_IMAKEALL
imakeall:
#endif
#ifndef MAKE_TAGVERSION
tagversion:
#endif
#ifndef MAKE_ALL
all:
#endif
#ifndef MAKE_DEPEND
depend:
#endif
#ifndef MAKE_INSTALL
install:
#endif
#ifndef MAKE_CLEAN
clean:
#endif
#ifndef MAKE_REALCLEAN
Clean:
#endif
#ifndef MAKE_RCS
#ifdef HAS_SOURCE
RCS:
-mkdir RCS
#else
RCS:
#endif
#endif
#endif /*HAS_SUBDIRS*/
/**************************************************/
/* Define a procedure to conditionally drop into the $(TARGET) directory */
#ifndef DOIT
#define DOIT(targetcmd) @if [ -d $(TARGET) ] ; then cd $(TARGET) ; echo 'cd' $(TARGET) ; fi ; $(MAKE) targetcmd
#endif
/****************************************************/
/* Define a procedure to do equivalent of install -d */
#ifndef MAKEDIR
#define MAKEDIR(dir) -if [ ! -d dir ] ; then $(MKDIRS) dir ; fi
#endif
/****************************************************/
/* Define procedures to remove a file or directory */
#ifndef REMOVE
#define REMOVE(dir) rm -fr dir
#endif
/****************************************************/
/* Define a procedure to do install a set of files; test for existence */
#ifndef DOINSTALL
#define DOINSTALL(files,where) for i in files ; do if [ -f $$i ] ; then cp $$i where ; fi ; done
#endif
/************************Config.Imake:end***************************/