1XCOMM platform:  $XConsortium: NetBSD.cf /main/16 1996/10/31 14:47:14 kaleb $
2
3
4
5XCOMM platform:  $XFree86: xc/config/cf/NetBSD.cf,v 3.49.2.9 1997/07/26 06:30:39 dawes Exp $
6
7
8#ifndef OSName
9#define OSName			DefaultOSName OSBinaryType
10#endif
11#ifndef OSMajorVersion
12#define OSMajorVersion		DefaultOSMajorVersion
13#endif
14#ifndef OSMinorVersion
15#define OSMinorVersion		DefaultOSMinorVersion
16#endif
17#ifndef OSTeenyVersion
18#define OSTeenyVersion		DefaultOSTeenyVersion
19#endif
20
21
22#ifndef OSVendor
23#define	OSVendor	/**/
24#endif
25XCOMM operating system:  OSName (OSMajorVersion./**/OSMinorVersion./**/OSTeenyVersion)
26
27/*
28 * C library features
29 */
30#if ((OSMajorVersion > 1) || \
31     (OSMajorVersion == 1 && OSMinorVersion > 2) || \
32     (OSMajorVersion == 1 && OSMinorVersion == 2 && OSTeenyVersion > 1))
33#  define HasPoll			YES
34#endif
35#define HasNdbm         	YES
36#define HasPutenv       	YES
37#define HasSnprintf		YES
38#define HasBSD44Sockets 	YES
39#define Malloc0ReturnsNull	NO
40#define SetTtyGroup     	YES
41#define DBMLibrary		/**/
42#ifndef HasLibCrypt
43# define HasLibCrypt		YES
44#endif
45#ifndef HasShm
46# if OSMajorVersion == 0 && OSMinorVersion == 9 && OSTeenyVersion == 2
47/*
48 * Shm memory was removed in 0.9B because it was encumbered.
49 * A free version was added in 0.9C
50 */
51#  define HasShm          	NO
52# else
53#  define HasShm          	YES
54# endif
55#endif
56#define HasWChar32		YES
57/*
58 * There's a bug in NetBSD 1.0, 1.1 and 1.2 dlsym()
59 */
60#if ((OSMajorVersion == 1 && OSMinorVersion < 2) || \
61     (OSMajorVersion == 1 && OSMinorVersion == 2 && OSTeenyVersion < 2))
62#  define HasDlsymBug		YES
63#endif
64/* Mkstemp is there since 1.2 (at least) */
65#if (!(OSMajorVersion == 0 || \
66       (OSMajorVersion == 1 && OSMinorVersion < 2)))
67#define HasMkstemp		YES
68#endif
69/*
70 * Compiler Features
71 */
72#undef HasGcc
73#define HasGcc			YES
74#define HasGcc2			YES
75#ifndef HasGcc2ForCplusplus
76#define HasGcc2ForCplusplus	YES
77#endif
78#define GccUsesGas		YES
79#define UseGas			YES
80#define GnuCpp			YES
81
82#define NeedConstPrototypes	YES
83#define NeedFunctionPrototypes	YES
84#define NeedNestedPrototypes	YES
85#define NeedVarargsPrototypes	YES
86#define NeedWidePrototypes	NO
87
88#define MkdirHierCmd		mkdir -p
89
90#define CppCmd          	/usr/libexec/cpp
91#define StandardCppDefines	-traditional
92#define PreProcessCmd   	CppCmd
93#define PreIncDir		/usr/include
94
95#undef CcCmd
96#define CcCmd 			gcc
97#if defined(UseInstalled) && (!defined(XF86LinkKit) || !XF86LinkKit)
98#define DefaultCCOptions 	/**/
99#else
100#define DefaultCCOptions 	-ansi -Dasm=__asm
101#endif
102
103#define GccGasOption 		-DGCCUSESGAS
104#define AsmDefines 		-DUSE_GAS
105
106/* UseElfFormat defaults to YES if __ELF__ set */
107#ifndef UseElfFormat
108# ifdef __ELF__
109#  undef __ELF__			/* other imake files shouldn't care */
110#  define UseElfFormat YES
111# else
112#  define UseElfFormat NO
113# endif
114#endif
115
116/*
117 * Dynamic loading supported starting in 1.0 on a.out platforms,
118 * and on all ELF platforms.
119 *
120 * XXX May not be correct on NetBSD/pmax (ELF, but might not have
121 * working shared libs).
122 */
123#if ((OSMajorVersion > 0) && \
124     !defined(AlphaArchitecture) && !defined(MipsArchitecture)) || \
125    UseElfFormat
126# ifndef BuildDynamicLoading
127# define BuildDynamicLoading	YES
128# endif
129#endif
130
131#if UseElfFormat
132#define DlLibrary		-rdynamic /* no -ldl yet */
133#else
134#define DlLibrary		/**/
135#endif
136
137#ifdef i386Architecture
138# define OptimizedCDebugFlags 	DefaultGcc2i386Opt
139# if OSMajorVersion < 1
140#  define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME -DXNO_SYSCONF
141# else
142#  define ServerOSDefines	XFree86ServerOSDefines -DDDXTIME
143# endif
144# if OSMajorVersion == 1 && OSMinorVersion >= 1 || OSMajorVersion >= 2
145#  define ServerExtraSysLibs	-li386 DlLibrary
146# endif
147#else
148# define OptimizedCDebugFlags 	-O2
149# if defined(SparcArchitecture) || defined(AlphaArchitecture)
150#  define ServerOSDefines 	-DDDXOSINIT
151# else
152#  define ServerOSDefines 	/**/
153# endif
154# if BuildDynamicLoading
155#  define ServerExtraSysLibs	DlLibrary
156# else
157#  define ServerExtraSysLibs	/**/
158# endif
159#endif
160#ifdef i386Architecture
161# define ServerExtraDefines GccGasOption XFree86ServerDefines
162# ifndef XFree86ConsoleDefines
163#  define XFree86ConsoleDefines -DPCCONS_SUPPORT -DPCVT_SUPPORT
164# endif
165#else
166# if defined(AlphaArchitecture)
167#  define ServerExtraDefines GccGasOption -D_XSERVER64
168# else
169#  define ServerExtraDefines GccGasOption
170# endif
171#endif
172
173#define StandardDefines	-DCSRG_BASED
174#define XawI18nDefines	-DUSE_XWCHAR_STRING -DUSE_XMBTOWC
175
176#ifndef ExtraLibraries
177#define ExtraLibraries		/**/
178#endif
179#ifndef UseGnuMalloc
180#  define UseGnuMalloc		YES
181#endif
182#ifndef GnuMallocLibrary
183#define GnuMallocLibrary	-lgnumalloc
184#endif
185
186#if ((OSMajorVersion > 1) || \
187     (OSMajorVersion == 1 && OSMinorVersion > 2) || \
188     (OSMajorVersion == 1 && OSMinorVersion == 2 && OSTeenyVersion > 1))
189#ifndef HasZlib
190#define HasZlib			  YES
191#endif
192#endif
193
194#define	AdmDir			/var/log
195
196/*
197 * Make & install Features
198 */
199#define HasBsdMake		YES
200#define StripInstalledPrograms	YES
201#define CompressAllFonts	YES
202#define GzipFontCompression	YES
203#define DefaultUserPath		/bin:/usr/bin:/usr/local/bin:$(BINDIR)
204#define DefaultSystemPath	/sbin:/usr/sbin:/bin:/usr/bin:$(BINDIR)
205
206#ifdef  InstallCmd
207# undef  InstallCmd
208# define InstallCmd 		/usr/bin/install
209#endif
210
211#ifndef ExtraFilesToClean
212# define ExtraFilesToClean 	*.core
213#endif
214
215/*
216 * Documentation formatting
217 */
218#define NeqnCmd			neqn -Tlatin1
219#define NroffCmd		nroff -Tlatin1
220#define	EqnCmd 			eqn -Tps
221#define TroffCmd        	groff -Tps
222
223/*
224 * To use the NetBSD Aperture driver
225 */
226#if defined(i386Architecture)
227#ifndef HasNetBSDApertureDriver
228#define HasNetBSDApertureDriver	YES
229#endif
230#endif
231
232/*
233 * ForceSubdirs - force make to build subdirectories
234 *
235 * For BSD 4.4 make
236 */
237#define ForceSubdirs(dirs)						@@\
238dirs:	.EXEC								@@\
239	@cd $@ ; echo "making all in $(CURRENT_DIR)/$@..."; \		@@\
240	$(MAKE) $(MFLAGS) PassCDebugFlags all				@@\
241									@@\
242.EXEC:
243
244XCOMM Man pages need to be formatted when installed, so override the default
245XCOMM imake rules.
246
247#define ManSuffix	1
248#define FileManSuffix	5
249#define ManSourcePath	$(MANPATH)/cat
250
251#define InstallManPageLong(file,destdir,dest)                           @@\
252all:: file.0								@@\
253									@@\
254file.0:: file.man							@@\
255	@if [ -f file.man ]; \						@@\
256	then \								@@\
257	cat file.man | $(NEQN) | $(TBL) | $(NROFF) $(MANMACROS) | $(COL) >/tmp/$$$$.man; \	@@\
258	cp /tmp/$$$$.man file.0; \					@@\
259	$(RM) /tmp/$$$$.man; \						@@\
260	fi 								@@\
261									@@\
262install.man::                                                           @@\
263	MakeDir($(DESTDIR)destdir)					@@\
264	-@if [ -f file.0 ]; \						@@\
265	then \								@@\
266	$(INSTALL) -c $(INSTMANFLAGS) file.0 $(DESTDIR)destdir/dest.0; \@@\
267	fi
268
269#define InstallGenManPageLong(file,destdir,dest,suffix)			@@\
270	InstallManPageLong(file,destdir,dest)
271
272#define InstallMultipleManSuffix(list,dest,suff)                        @@\
273install.man:: 								@@\
274	MakeDir($(DESTDIR)dest)						@@\
275	case '${MFLAGS}' in *[i]*) set +e;; esac; \			@@\
276	for i in list; do \                                             @@\
277	  (set -x; \							@@\
278	  cat $$i.suff | $(NEQN) | $(TBL) | $(NROFF) $(MANMACROS) | $(COL) >/tmp/$$$$.suff; \	@@\
279	  $(INSTALL) -c $(INSTMANFLAGS) /tmp/$$$$.suff $(DESTDIR)dest/$$i.0; \	@@\
280	  $(RM) /tmp/$$$$.suff); \						@@\
281	done
282
283#define InstallMultipleMan(list,dest)                                   @@\
284	InstallMultipleManSuffix(list,dest,man)
285
286#define InstallManPageAliases(file,destdir,aliases)                     @@\
287install.man:: 								@@\
288	@case '${MFLAGS}' in *[i]*) set +e;; esac; \                    @@\
289	for i in aliases; do \                                          @@\
290		(set -x; \						@@\
291		$(RM) $(DESTDIR)destdir/$$i.0;\  			@@\
292		(cd $(DESTDIR)/destdir; $(LN) file.0 $$i.0);\ 		@@\
293		); \							@@\
294	done
295
296#define InstallGenManPageAliases(file,destdir,suffix,aliases)		@@\
297	InstallManPageAliases(file,destdir,aliases)
298
299/*
300 * Shared libraries supported starting in 1.0 on a.out platforms,
301 * and on all ELF platforms.
302 *
303 * XXX May not be correct on NetBSD/pmax (ELF, but might not have
304 * working shared libs).
305 */
306#if ((OSMajorVersion > 0) && \
307     !defined(AlphaArchitecture) && !defined(MipsArchitecture)) || \
308    UseElfFormat
309# ifndef HasSharedLibraries
310# define HasSharedLibraries	YES
311# endif
312#endif
313
314#ifndef OSBinaryType
315#if UseElfFormat
316#define OSBinaryType	[ELF]
317#else
318#define OSBinaryType	/**/
319#endif
320#endif
321
322#ifndef HasSharedLibraries
323#define HasSharedLibraries	NO
324#endif
325
326#if HasSharedLibraries
327#include <bsdLib.rules>
328#endif /* HasSharedLibraries */
329
330#ifdef i386Architecture
331# include <xfree86.cf>
332#endif
333
334/*
335 * Definitions for the SUN server on NetBSD/sparc
336 */
337#ifdef SparcArchitecture
338#ifndef Xsun24Server
339#define Xsun24Server	NO
340#endif
341#ifndef XsunServer
342#define XsunServer	YES
343#endif
344#ifndef XsunMonoServer
345#define XsunMonoServer	YES
346#endif
347#ifndef BuildScreenSaverLibrary
348#define BuildScreenSaverLibrary	YES
349#endif
350/*
351 * XFree86 uses its own (more portable) database routines to speed up
352 * the RGB database lookups
353 * However, if you want to use ndbm anyway, you can set that to NO in
354 * site.def
355 */
356#ifndef UseRgbTxt
357#define UseRgbTxt	YES
358#endif
359#endif
360
361/*
362 * Definition for compiling on MIPS machines
363 */
364#ifdef MipsArchitecture
365#define PositionIndependentCFlags
366#define SharedLibraryLoadFlags -x -shared --whole-archive -soname `echo $@ |
367sed 's/\.[0-9]*$$//'`
368#define SharedXtReqs $(XLIBONLY) $(SMLIB) $(ICELIB)
369#define SharedXmuReqs $(LDPRELIB) $(XTOOLONLYLIB) $(XONLYLIB) $(EXTENSIONLIB)
370#endif
371
372/*
373 * Definition for compiling on Alpha machines
374 */
375#ifdef AlphaArchitecture
376#define	BuildServer	NO
377#endif
378