xref: /386bsd/usr/X386/lib/X11/config/x386.cf (revision a2142627)
1XCOMM $XFree86: mit/config/x386.cf,v 2.28 1993/10/21 15:48:52 dawes Exp $
2XCOMM platform:  $XConsortium: x386.cf,v 1.7 91/08/16 19:30:10 gildea Exp $
3
4/*****************************************************************************
5 *	            Defaults for Site-specfic parameters                     *
6 *****************************************************************************/
7/*****************************************************************************
8 *                        Do not change anything below                       *
9 *****************************************************************************/
10
11
12/*
13 * If you want to change any of these, do it in the BeforeVendorCF part
14 * of site.def
15 */
16
17#include <xf86_vers.def>
18
19#define WantServerLocks		YES
20#define PartialNetDefault	YES
21
22/* Defaults for SVR3, SVR4 */
23
24#if defined(i386SVR3Architecture) || defined(i386SVR4Architecture)
25# ifndef HasGcc
26#  ifdef i386Ncr
27#   define HasGcc		NO
28#  else
29#   define HasGcc		YES
30#  endif
31# endif
32# ifndef HasGcc2
33#  ifdef i386Ncr
34#   define HasGcc2		NO
35#  else
36#   define HasGcc2		YES
37#  endif
38# endif
39# ifndef GccUsesGas
40#  define GccUsesGas		NO
41# endif
42# ifndef UseGas
43#  define UseGas		NO
44# endif
45# ifndef GnuCpp
46#  define GnuCpp		NO
47# endif
48# ifndef HasSdbm
49#  ifdef i386Isc
50#   define HasSdbm		NO
51#  else
52#   define HasSdbm		YES
53#  endif
54# endif
55# ifndef HasNdbm
56#  ifdef i386Isc
57#   define HasNdbm		NO
58#  else
59#   define HasNdbm		YES
60#  endif
61# endif
62# ifndef HasShadowPasswd
63#  define HasShadowPasswd	YES
64# endif
65# ifndef HasLibCrypt
66#  define HasLibCrypt		NO
67# endif
68# ifndef SCOLocalConnSysv4
69#  if defined(i386SVR4Architecture)
70#   define SCOLocalConnSysv4	YES
71#  else
72#   define SCOLocalConnSysv4	NO
73#  endif
74# endif
75#ifndef HasSVR3mmapDrv
76# define HasSVR3mmapDrv		NO
77#endif
78#if HasSVR3mmapDrv
79# define SVR3mmapFlags		-DHAS_SVR3_MMAPDRV
80#else
81# define SVR3mmapFlags 		/**/
82#endif
83/* Note: this flag has no effect for SVR4 */
84#ifndef FormattedManPages
85# if defined(i386SVR3Architecture)
86#  define FormattedManPages	YES
87# else
88#  define FormattedManPages	NO
89# endif
90#endif
91#ifndef FileManSuffix
92#define FileManSuffix	4
93#endif
94#ifndef FileManDir
95#define FileManDir	$(MANSOURCEPATH)4
96#endif
97#endif
98
99/* Defaults for BSD-like systems */
100
101#if defined(i386BsdArchitecture) || defined(i386MachArchitecture)
102
103# ifndef HasGcc
104#  define HasGcc		YES
105# endif
106# ifndef HasGcc2
107#  if defined(i386NetBsd) || defined(i386FreeBsd)
108#   define HasGcc2		YES
109#  else
110#   define HasGcc2		NO
111#  endif
112# endif
113# ifndef GccUsesGas
114#  define GccUsesGas		YES
115# endif
116# ifndef UseGas
117#  define UseGas		YES
118# endif
119# ifndef GnuCpp
120#  if defined(i386BsdArchitecture)
121#   define GnuCpp		YES
122#  else
123#   define GnuCpp		NO
124#  endif
125# endif
126# ifndef HasSdbm
127#  define HasSdbm		NO
128# endif
129# ifndef HasNdbm
130#  define HasNdbm		YES
131# endif
132# ifndef HasShadowPasswd
133#  define HasShadowPasswd	NO
134# endif
135# ifndef HasLibCrypt
136#  if defined(i386NetBsd) || defined(i386FreeBsd)
137#   define HasLibCrypt		YES
138#  else
139#   define HasLibCrypt		NO
140#  endif
141# endif
142# ifndef SCOLocalConnSysv4
143#  define SCOLocalConnSysv4	NO
144# endif
145# ifndef FormattedManPages
146#  if defined(i386FreeBsd)
147#   define FormattedManPages	NO
148#  else
149#   define FormattedManPages	YES
150#  endif
151# endif
152#endif
153
154/* Defaults for Linux and OSF/1 */
155
156#if defined(LinuxArchitecture) || defined(OsfArchitecture)
157
158# ifndef HasGcc
159#  define HasGcc		YES
160# endif
161# ifndef HasGcc2
162#  define HasGcc2		YES	/* for GCC 2.0 or later */
163# endif
164# ifndef GccUsesGas
165#  define GccUsesGas		YES
166# endif
167# ifndef UseGas
168#  define UseGas		YES
169# endif
170# ifndef GnuCpp
171#  define GnuCpp		YES
172# endif
173# ifndef PreProcessCmd
174#  define PreProcessCmd		/lib/cpp
175# endif
176# ifndef HasSdbm
177#  define HasSdbm		NO
178# endif
179# ifndef HasNdbm
180#  define HasNdbm		YES
181# endif
182# ifndef HasShadowPasswd
183#  define HasShadowPasswd	NO
184# endif
185# ifndef HasLibCrypt
186#  define HasLibCrypt		NO
187# endif
188# ifndef SCOLocalConnSysv4
189#  define SCOLocalConnSysv4	NO
190# endif
191#endif
192
193/* Defaults which are the same for all systems */
194
195#ifndef X386LinkKit
196# define X386LinkKit		NO
197#endif
198#ifndef HasSockets
199# define HasSockets		YES
200#endif
201#ifndef ProjectRoot
202# define ProjectRoot		/usr/X386
203#endif
204#ifndef StripInstalledPrograms
205# define StripInstalledPrograms	YES
206#endif
207#ifndef BuildXTest
208# define BuildXTest		YES
209#endif
210#if BuildXTest
211# define XTestDefines		-DXTEST
212#else
213# define XTestDefines		/**/
214#endif
215#ifndef ExtensionOSDefines
216# define ExtensionOSDefines	-DXTESTEXT1 XTestDefines
217#endif
218#ifndef MotifBC
219# define MotifBC	       	YES
220#endif
221#ifndef Target_486
222# define Target_486		YES
223#endif
224#ifndef CompressAllFonts
225# define CompressAllFonts	YES
226#endif
227#ifndef Build75Dpi
228# define Build75Dpi		YES
229#endif
230#ifndef Build100Dpi
231# define Build100Dpi		NO
232#endif
233#ifndef BuildLargeMiscFonts
234# define BuildLargeMiscFonts	NO
235#endif
236#ifndef BuildSpeedo
237# define BuildSpeedo		YES
238#endif
239#ifndef BuildPex
240# define BuildPex		NO
241#endif
242#ifndef BuildFontServer
243# define BuildFontServer	NO
244#endif
245#ifndef DebuggableServer
246# define DebuggableServer	NO
247#endif
248#ifndef SpecialMalloc
249# define SpecialMalloc		NO
250#endif
251#ifndef GnuMalloc
252# define GnuMalloc		NO
253#endif
254#ifndef LinkKitFlags
255# if X386LinkKit
256#  define LinkKitFlags		-DLINKKIT
257# else
258#  define LinkKitFlags		/**/
259# endif
260#endif
261
262/* Some of these man page defaults are overriden in the above OS sections */
263#ifndef AmoebaConf
264# ifndef ManSuffix
265#  define ManSuffix	1x
266# endif
267# ifndef ManDir
268#  define ManDir	$(MANSOURCEPATH)1
269# endif
270# ifndef LibManSuffix
271#  define LibManSuffix	3x
272# endif
273# ifndef LibmanDir
274#  define LibmanDir	$(MANSOURCEPATH)3
275# endif
276# ifndef FileManSuffix
277#  define FileManSuffix	5x
278# endif
279# ifndef FileManDir
280#  define FileManDir	$(MANSOURCEPATH)5
281# endif
282#endif
283
284#ifndef XF86SVGAServer
285# define XF86SVGAServer		YES
286#endif
287
288#ifndef XF86MonoServer
289# define XF86MonoServer		NO
290#endif
291
292#ifndef XF86VGA16Server
293# define XF86VGA16Server	NO
294#endif
295
296#ifndef XF86S3Server
297# define XF86S3Server		NO
298#endif
299
300#ifndef XF86I8514Server
301# define XF86I8514Server	NO
302#endif
303
304#ifndef XF86Mach8Server
305# define XF86Mach8Server	NO
306#endif
307
308#ifndef XF86Mach32Server
309# define XF86Mach32Server	NO
310#endif
311
312#if XF86S3Server
313# define XF86S3Dir		s3
314#else
315# define XF86S3Dir		/**/
316#endif
317
318#if XF86I8514Server
319# define XF86I8514Dir		ibm8514
320#else
321# define XF86I8514Dir		/**/
322#endif
323
324#if XF86Mach8Server
325# define XF86Mach8Dir		mach8
326#else
327# define XF86Mach8Dir		/**/
328#endif
329
330#if XF86Mach32Server
331# define XF86Mach32Dir		mach32
332#else
333# define XF86Mach32Dir		/**/
334#endif
335
336#undef XF86AccelServerDirs
337#define XF86AccelServerDirs   XF86S3Dir XF86I8514Dir XF86Mach8Dir XF86Mach32Dir
338
339#undef XF86AccelServer
340#if XF86S3Server || XF86I8514Server || XF86Mach8Server || XF86Mach32Server
341# define XF86AccelServer	YES
342#else
343# define XF86AccelServer	NO
344#endif
345
346#ifndef XFree86DefaultServer
347# if XF86SVGAServer
348#  define XFree86DefaultServer XF86_SVGA
349# else
350#  if XF86MonoServer
351#   define XFree86DefaultServer XF86_Mono
352#  endif
353# endif
354#endif
355
356#ifndef BuildServer
357# if !XF86SVGAServer && !XF86VGA16Server && !XF86MonoServer && !XF86AccelServer
358#  define BuildServer		NO
359# endif
360#endif
361
362#ifndef X386Vga256Drivers
363# define X386Vga256Drivers	et4000 et3000 pvga1 gvga ati tvga8900 cirrus \
364				ncr compaq oak
365#endif
366
367#ifndef X386Vga16Drivers
368# define X386Vga16Drivers	et4000 generic
369#endif
370
371#ifndef X386Vga2Drivers
372# define X386Vga2Drivers	et4000 et3000 pvga1 gvga tvga8900 ncr \
373				compaq oak generic
374#endif
375
376#ifndef X386Hga2Drivers
377# define X386Hga2Drivers	/**/
378#endif
379
380#ifndef X386Bdm2Drivers
381# define X386Bdm2Drivers	/**/
382#endif
383
384#ifndef XF86S3Drivers
385# define XF86S3Drivers		mmio_928 s3_generic
386#endif
387
388#ifndef DirtyStartup
389# define DirtyStartup		NO
390#endif
391
392#ifndef BankedMonoVga
393# define BankedMonoVga		YES
394#endif
395
396#if BankedMonoVga
397#define MonoDefines		-DX386MONOVGA -DBANKEDMONOVGA
398#else
399#define MonoDefines		-DX386MONOVGA
400#endif
401
402#ifndef ScoOsMouse
403# define ScoOsMouse		YES
404#endif
405
406/* You must manually compute BootstrapCFlags for initial build */
407
408#if defined(i386SVR3Architecture) || defined(i386SVR4Architecture) || defined(i386FreeBsd)
409# define BootstrapCFlags	OSDefines OSRelease
410#else
411# define BootstrapCFlags	/* nothing */
412#endif
413
414#ifndef StandardDefines
415#define StandardDefines		OSDefines OSRelease
416#endif
417
418#if !defined(i386BsdArchitecture)
419# ifndef LdCombineFlags
420#  define LdCombineFlags		-r
421# endif
422#endif
423
424#if Target_486
425# define Gcc2MOption -m486
426#else
427# define Gcc2MOption -m386
428#endif
429
430#if GccUsesGas
431# define GccGasOption -DGCCUSESGAS
432#else
433# define GccGasOption /**/
434#endif
435
436#ifndef AsmDefines
437# if UseGas
438#  define AsmDefines -DUSE_GAS
439# else
440#  define AsmDefines /**/
441# endif
442#endif
443
444#if GnuCpp
445# define StandardCppDefines -traditional StandardDefines
446#else
447# define StandardCppDefines StandardDefines
448#endif
449
450#if HasGcc2 && !HasGcc
451# undef HasGcc
452# define HasGcc			YES
453#endif
454
455#if SpecialMalloc
456# define MallocFlags		-DCAHILL_MALLOC -I/usr/local/debug_include
457#else
458# define MallocFlags		/**/
459#endif
460
461#if GnuMalloc
462# ifndef GnuMallocLib
463#  if defined(i386BsdArchitecture)
464#   define GnuMallocLib		-lgnumalloc
465#  else
466#   define GnuMallocLib		-lgmalloc
467#  endif
468# endif
469#else
470# undef GnuMallocLib
471# define GnuMallocLib		/**/
472#endif
473
474#if DebuggableServer
475# if HasGcc
476#  define ServerCDebugFlags DebuggableCDebugFlags OptimizedCDebugFlags
477# else
478#  define ServerCDebugFlags DebuggableCDebugFlags
479# endif
480#endif
481
482#ifndef AssembleObject
483#define AssembleObject(flags) $(RM) $@                                  @@\
484	$(CPP) AsmDefines $(INCLUDES) flags $*.s > $*.i                 @@\
485	$(AS) -o $*.o $*.i                                              @@\
486	$(RM) $*.i
487#endif
488
489#define NormalAsmObjectRule()                                           @@\
490.s.o:                                                                   @@\
491	AssembleObject($(_NOOP_))
492
493#define ObjectFromSpecialAsmSource(dst,src,flags)                       @@\
494dst.s:  src.s                                                           @@\
495	$(RM) $@                                                        @@\
496	$(LN) $? $@                                                     @@\
497                                                                        @@\
498dst.o:  dst.s                                                           @@\
499	AssembleObject(flags)                                           @@\
500                                                                        @@\
501depend:: dst.s                                                          @@\
502                                                                        @@\
503clean::                                                                 @@\
504	$(RM) dst.s
505
506
507/*
508 * Rules for building config files from scripts
509 */
510
511#ifndef Depend
512# define Depend depend
513#endif
514
515#define ConfigTargetLong(target,dep,script,args,extra)                  @@\
516all:: Configure                                                         @@\
517                                                                        @@\
518Configure:: target.o                                                    @@\
519                                                                        @@\
520target.c: script dep                                                    @@\
521	$(MAKE) $(MFLAGS) Makefile                                      @@\
522	$(MAKE) $(MFLAGS) extra Concat(Build,target)                    @@\
523                                                                        @@\
524Concat(Build,target):                                                   @@\
525	$(RM) target.c                                                  @@\
526	$(SHELL) script args                                            @@\
527                                                                        @@\
528clean::                                                                 @@\
529	$(RM) target.c
530
531#define ConfigTarget(target,dep,script,args) ConfigTargetLong(target,dep,script,args,Depend)
532
533#define ConfigTargetNoDepend(target,dep,script,args) ConfigTargetLong(target,dep,script,args,)
534
535
536/*
537 * Rules for installing LinkKit parts (target is install.linkkit)
538 */
539
540#define InstallLinkKitNonExecFile(file,dest)				@@\
541install.linkkit:: file							@@\
542	MakeDir($(DESTDIR)dest)						@@\
543	$(INSTALL) -c $(INSTDATFLAGS) file $(DESTDIR)dest
544
545#define InstallLinkKitLibrary(libname,dest)				@@\
546install.linkkit:: Concat(lib,libname.a)					@@\
547	MakeDir($(DESTDIR)dest)						@@\
548	$(INSTALL) -c $(INSTLIBFLAGS) Concat(lib,libname.a) $(DESTDIR)dest @@\
549	RanLibrary($(RANLIBINSTFLAGS) Concat($(DESTDIR)dest/lib,libname.a))
550
551#define InstallLinkKitNamedNonExec(srcname,dstname,dest)		@@\
552install.linkkit:: srcname						@@\
553	MakeDir($(DESTDIR)dest)						@@\
554	$(INSTALL) -c $(INSTDATFLAGS) srcname $(DESTDIR)dest/dstname
555
556#define InstallLinkKitNamedProg(srcname,dstname,dest)			@@\
557install.linkkit:: srcname						@@\
558	MakeDir($(DESTDIR)dest)						@@\
559	$(INSTALL) -c $(INSTBINFLAGS) srcname $(DESTDIR)dest/dstname
560
561#define InstallLinkKitSubdirs(dirs) \
562NamedTargetSubdirs(install.linkkit,dirs,"installing link kit",DESTDIR='$(DESTDIR)',install.linkkit)
563
564#ifndef LinkKitDir
565# define LinkKitDir		$(USRLIBDIR)/Server
566#endif
567
568#if HasSdbm && !HasNdbm
569# undef HasNdbm
570# define HasNdbm		YES
571#endif
572
573#if HasNdbm
574#ifndef NdbmDefines
575# if HasSdbm
576#  define NdbmDefines		-DNDBM -DSDBM
577# else
578#  define NdbmDefines		-DNDBM
579# endif
580#endif
581#endif
582
583
584#if defined(i386SVR3Architecture)
585
586#define SystemV			YES
587
588#define NeedBerklib		YES
589
590/*
591 * V/386 Release 3.2
592 */
593#ifdef i386Isc
594/* INTERACTIVE UNIX Version 2.0.2, 2.2.1, 3.0 and 4.0 */
595# if IscVersion == 400
596#  define ISCVerDef -DISC40 -DISC30
597#  define OSVendor		(ISC Version 4.0)
598# else
599#  if IscVersion == 300
600#   define ISCVerDef -DISC30
601#   define OSVendor		(ISC Version 3.0)
602#  else
603#   if IscVersion == 202
604#    define OSVendor		(ISC Version 2.0.2)
605#    define ISCVerDef -DISC202
606#   else
607#    define OSVendor		(ISC Version 2.2.1)
608#    define ISCVerDef -DISC22
609#   endif
610#  endif
611# endif
612# define OSDefines		-DISC ISCVerDef
613# if IscVersion > 202
614#  define LocalLibraries	-lpt
615#  define PosixLibraries	-lcposix
616# else
617#  define LocalLibraries        -lmalloc -lpt
618#  define PosixLibraries
619# endif
620# define SocketLibraries        -linet
621#endif
622
623#ifdef i386Esix
624#define OSVendor		(ESIX Version 3.2D)
625#define OSDefines		-DESIX
626#define LocalLibraries		-lpt -lbsd
627#define SocketLibraries		-lnet -lnsl_s
628#define PosixLibraries		/**/
629#endif
630
631#ifdef i386Sco
632#if ScoVersion == 324
633/*
634 * if your gcc is compiled with STDC_VALUE=0 then change the 1 to 0
635 */
636# define GCC_STDC_VALUE		1
637# if !GCC_STDC_VALUE
638#  define OSDefines		-DSCO -DSCO324 -DBROKEN_FTOL -D_NO_PROTOTYPE \
639					-D_SVID -D__STDC__=1
640#  undef StandardCppDefines
641#  define StandardCppDefines	-DUNIXCPP=1 StandardDefines
642# else
643#  define OSDefines		-DSCO -DSCO324 -DBROKEN_FTOL -D_NO_PROTOTYPE \
644					-D_SVID
645# endif
646# define OSVendor		(SCO Version 3.2.4)
647#else /* ScoVersion == 324 */
648# define OSDefines		-DSCO -DBROKEN_FTOL -DNO_PROTOTYPE -D_SVID
649# define OSVendor		(SCO Version 3.2.2)
650#endif /* ScoVersion == 324 */
651/*
652 *	XBSDLIB is included with the Socket libraries, because SCO
653 *	needs Xbsd as its bcopy routine doesn't handle overlapping
654 *	regions. If HasSockets is false the XINETLIB does it for
655 *	us anyway.
656 */
657#if !X386LinkKit
658# define SocketLibraries	$(XBSDLIB) -lsocket
659#else
660# define SocketLibraries	-lsocket
661#endif
662#define PosixLibraries		/**/
663#define ManSourcePath		$(MANPATH)/cat.
664
665#if ScoOsMouse
666# define	ScoExtraServerDefines	-DUSE_OSMOUSE
667# define	LocalLibraries		-lmalloc -lpt -levent
668#else
669# define	LocalLibraries		-lmalloc -lpt
670#endif /* ScoOsMouse */
671
672#endif /* i386Sco */
673
674#ifndef ScoExtraServerDefines
675# define	ScoExtraServerDefines	/**/
676#endif
677
678#ifdef i386Att
679#define OSDefines		-DATT
680#define OSVendor		(AT&T)
681#define LocalLibraries		-lpt
682#define SocketLibraries		-lnet -lnsl_s    /* just a guess */
683#define PosixLibraries		/**/
684#endif
685
686#define OSName			Unix System V/386 Release 3.2
687#define OSMajorVersion		3
688#define OSMinorVersion		2
689#define OSRelease		-DSYSV -DSYSV386
690
691#if HasGcc
692# define CcCmd gcc
693# if HasGcc2
694#  define DefaultCCOptions Gcc2MOption -DNO_ASM -fpcc-struct-return \
695			   -fwritable-strings
696#  define LibraryCCOptions Gcc2MOption -DNO_ASM -fpcc-struct-return
697#  define OptimizedCDebugFlags -O2
698# else
699#  define DefaultCCOptions -DNO_ASM -fpcc-struct-return -fwritable-strings
700#  define LibraryCCOptions -DNO_ASM -fpcc-struct-return
701#  define OptimizedCDebugFlags -O -fstrength-reduce
702# endif
703# define ShlibDefines -D__GNUC__ $(XDMAUTHDEFS)
704#else
705# define ShlibDefines $(XDMAUTHDEFS)
706#endif
707
708# define Malloc0ReturnsNull	YES
709
710#if HasSockets
711# define ConnectionFlags -DCLIENTS_LOCALCONN -DSERVER_LOCALCONN -DTCPCONN
712# define ExtraLibraries SocketLibraries LocalLibraries GnuMallocLib \
713			-lc_s PosixLibraries
714# define ServerExtraDefines	GccGasOption -DXDMCP MallocFlags LinkKitFlags \
715			-DAVOID_GLYPHBLT ScoExtraServerDefines SVR3mmapFlags
716#else
717# define NeedInetEmulLib	YES
718# define ConnectionFlags -DCLIENTS_LOCALCONN -DSERVER_LOCALCONN
719# define ExtraLibraries $(XINETLIB) LocalLibraries GnuMallocLib \
720			-lc_s PosixLibraries
721/* This turns off XDMCP in the server if no sockets */
722# define ServerExtraDefines	GccGasOption MallocFlags LinkKitFlags \
723			-DAVOID_GLYPHBLT ScoExtraServerDefines SVR3mmapFlags
724#endif
725
726#include <sv3Lib.rules>
727
728/*
729 * Man pages need to be formatted when installed, so override the default
730 * imake rules.
731 */
732
733/* The .DS and .DE macros used in some manual pages are obsolete
734 * in the often used ISC's Textprocessing Workbench 2.1.0 and break it,
735 * so it's better to remove these previously
736 */
737#ifndef RemoveDSDENroffMacros
738#if defined(i386Isc) && IscVersion != 202
739#define RemoveDSDENroffMacros   YES
740#else
741#define RemoveDSDENroffMacros   NO
742#endif
743#endif
744
745/*
746 * Compress manual pages, default on ISC and SCO
747 */
748#ifndef CompressManPages
749#if defined(i386Isc) || defined(i386Sco)
750#define CompressManPages        YES
751#else
752#define CompressManPages        NO
753#endif
754#endif
755
756#if RemoveDSDENroffMacros
757# define RemoveDSDENroffMacrosCmd sed -e '/^\.D[S|E]$$/d'
758#else
759# define RemoveDSDENroffMacrosCmd cat
760#endif
761
762#ifndef CompressManCmd
763# if CompressManPages
764#  if defined(i386Sco) && (ScoVersion < 324)
765#   define CompressManCmd pack
766#  else
767#   define CompressManCmd $(COMPRESS) -v
768#  endif
769# else
770#  define CompressManCmd @true
771# endif
772#endif
773
774     RMDSDEMACCMD = RemoveDSDENroffMacrosCmd
775   COMPRESSMANCMD = CompressManCmd
776
777#if FormattedManPages
778
779#define InstallGenManPageLong(file,destdir,dest,suffix)                 @@\
780install.man:: file.man                                                  @@\
781        MakeDir($(DESTDIR)destdir)                                      @@\
782        $(RM) $(DESTDIR)destdir/dest.suffix*                            @@\
783        $(RMDSDEMACCMD) file.man | $(NEQN) | $(NROFF) -man >/tmp/file.man  @@\
784        $(INSTALL) -c $(INSTMANFLAGS) /tmp/file.man $(DESTDIR)destdir/dest.suffix @@\
785        -$(COMPRESSMANCMD) $(DESTDIR)destdir/dest.suffix                @@\
786        $(RM) /tmp/file.man
787
788#define InstallManPageLong(file,destdir,dest)				@@\
789	InstallGenManPageLong(file,destdir,dest,$(MANSUFFIX))
790
791
792#define InstallMultipleMan(list,dest)                                   @@\
793install.man:: list                                                      @@\
794	MakeDir($(DESTDIR)dest)						@@\
795        @case '${MFLAGS}' in *[i]*) set +e;; esac; \                    @@\
796        for i in list; do \                                             @@\
797                (set -x; \                                              @@\
798                MNAME=`echo $$i | cut -f1 -d.`; \			@@\
799                $(RM) $(DESTDIR)dest/$${MNAME}*; \                      @@\
800                $(RMDSDEMACCMD) $$i | $(NEQN) | $(NROFF) -man >/tmp/$$i; \ @@\
801                $(INSTALL) -c $(INSTMANFLAGS) /tmp/$$i $(DESTDIR)dest/$${MNAME}.$(MANSUFFIX); \      @@\
802                $(COMPRESSMANCMD) $(DESTDIR)dest/$${MNAME}.$(MANSUFFIX); \  @@\
803                $(RM) /tmp/$$i); \                                      @@\
804        done
805
806/*
807 * InstallManPageAliases - generate rules to install manual page aliases.
808 * (Make hard links on SVR3.)
809 */
810
811#ifdef i386Sco
812/*
813 * due to the extra '.' chars in the file name
814 */
815
816#define InstallManPageAliases(file,destdir,aliases)                     @@\
817install.man::                                                           @@\
818        @(SUFFIX=`echo $(DESTDIR)destdir/file.* | cut -f3,4 -d.`; \     @@\
819        for i in aliases; do (set -x; \                                 @@\
820        $(RM) $(DESTDIR)destdir/$$i.*; \                                @@\
821        $(LN) $(DESTDIR)destdir/file.$${SUFFIX} \                       @@\
822        $(DESTDIR)destdir/$$i.$${SUFFIX}); \                            @@\
823        done)
824
825#else
826
827#define InstallManPageAliases(file,destdir,aliases)                     @@\
828install.man::                                                           @@\
829        @(SUFFIX=`echo $(DESTDIR)destdir/file.* | cut -f2,3 -d.`; \     @@\
830        for i in aliases; do (set -x; \                                 @@\
831        $(RM) $(DESTDIR)destdir/$$i.*; \                                @@\
832        $(LN) $(DESTDIR)destdir/file.$${SUFFIX} \                       @@\
833        $(DESTDIR)destdir/$$i.$${SUFFIX}); \                            @@\
834        done)
835
836#endif
837
838#define InstallGenManPageAliases(file,destdir,suffix,aliases)           @@\
839        InstallManPageAliases(file,destdir,aliases)
840
841#endif
842
843/* If you have trouble with make bombing out in Xlib, try uncommenting this. */
844/* You will not get dependencies as a result, but better than nothing. */
845#ifndef MakeHashTableBug
846#define MakeHashTableBug        NO
847#endif
848#if MakeHashTableBug
849#define DependTarget3(srcs1,srcs2,srcs3)
850#endif
851
852#endif /* i386SVR3Architecture */
853
854
855/*
856 * V/386 Release 4.0
857 */
858#if defined(i386SVR4Architecture)
859
860#define SystemV4		YES
861
862/* No vendor defines required for SVR4 */
863
864#define OSName			Unix System V/386 Release 4.x
865#define OSMajorVersion		4
866#define OSMinorVersion		0
867#define OSRelease		-DSVR4 -DSYSV386
868#define OSDefines		/**/
869#ifdef i386Ncr
870# define OSVendor		(NCR)
871#else
872# define OSVendor		/**/
873#endif
874
875#ifndef HasSharedLibraries
876#define HasSharedLibraries	YES
877#endif
878
879#if HasGcc
880# define CcCmd			gcc
881# define AnsiCCOptions		-ansi
882# if HasGcc2
883#  define DefaultCCOptions	Gcc2MOption -fpcc-struct-return -Di386
884#  define OptimizedCDebugFlags	-O2
885# else
886#  define DefaultCCOptions	-fpcc-struct-return -fstrength-reduce -Di386
887#  if HasSharedLibraries
888#   define LibraryCcCmd		/bin/cc
889#   define LibraryAnsiCCOptions	-Xc
890#   define LibraryCCOptions	-Di386 -Dasm=__asm
891#  endif
892# endif
893#else
894# define CcCmd			/bin/cc
895# ifdef i386Ncr
896#  define AnsiCCOptions		-Xa
897#  define DefaultCCOptions	-Di386 -Hnocopyr -DNO_SECONDARY
898# else
899#  define AnsiCCOptions		-Xc
900#  define DefaultCCOptions	-Di386 -Dasm=__asm
901# endif
902#endif
903
904/* Make sure we don't use /usr/ucb/ld */
905#ifndef LdCmd
906#define LdCmd			/bin/ld
907#endif
908
909#define ServerExtraDefines	GccGasOption -DXDMCP MallocFlags LinkKitFlags \
910				-DAVOID_GLYPHBLT
911
912#if SCOLocalConnSysv4
913# define Acp			-DSVR4_ACP
914#else
915# define Acp			/**/
916#endif
917
918#define ConnectionFlags	    -DUNIXCONN -DTCPCONN -DCLIENTS_LOCALCONN \
919			    -DSERVER_LOCALCONN Acp
920#define NeedBerklib	    YES
921
922#if defined(UseInstalled) && !X386LinkKit
923# define ExtraLibraries		-lsocket -lnsl GnuMallocLib $(XBSDLIB)
924#else
925# define ExtraLibraries		-lsocket -lnsl GnuMallocLib
926#endif
927
928#include <sv4Lib.rules>
929
930#endif /* i386SVR4Architecture */
931
932#if defined(i386BsdArchitecture)
933
934/*
935 * 386BSD, NetBSD, FreeBSD and BSD/386
936 */
937
938#define i386Bsd			YES
939
940#ifdef i386Bsdi
941# define OSName			BSD/386
942#else
943# ifdef i386NetBsd
944#  define OSName		NetBSD
945# else
946#  ifdef i386FreeBsd
947#   define OSName		FreeBSD
948#  else
949#   define OSName		386BSD
950#  endif
951# endif
952#endif
953#define OSMajorVersion		4
954#define OSMinorVersion		3
955#define OSRelease		/* nothing */
956#ifdef i386Bsdi
957# define OSDefines		-D__386BSD__
958#else
959# ifdef i386FreeBsd
960#  define OSDefines		-DFreeBSD
961# else
962#  ifdef i386NetBsd
963#   define OSDefines		-D__386BSD__
964#  else
965#   define OSDefines		/* nothing */
966#  endif
967# endif
968#endif
969#define OSVendor		/* nothing */
970
971#ifdef i386Bsdi
972# define CppCmd			/usr/bin/cpp
973#else
974# define CppCmd			/usr/libexec/cpp
975#endif
976
977#if HasGcc
978# define AnsiCCOptions		/**/
979# if HasGcc2
980#  define CcCmd			gcc
981#  define DefaultCCOptions	Gcc2MOption
982#  define OptimizedCDebugFlags	-O2
983#  define LibraryCCOptions	Gcc2MOption
984# else
985#  define CcCmd			cc
986#  define DefaultCCOptions	/**/
987#  define OptimizedCDebugFlags	-O -fstrength-reduce
988#  define LibraryCCOptions	/**/
989# endif
990#endif
991
992# define ServerExtraDefines	GccGasOption -DXDMCP MallocFlags LinkKitFlags \
993				-DAVOID_GLYPHBLT
994
995#define ExtraLibraries		GnuMallocLib
996
997#define HasVoidSignalReturn	YES
998#define AvoidNullMakeCommand	YES
999#define HasPutenv		YES
1000#define UnalignedReferencesAllowed	YES
1001#ifndef InstKmemFlags
1002# define InstKmemFlags		-m 2755 -g kmem
1003#endif
1004#define AdmDir			/var/log
1005
1006#if OSMajorVersion >= 4 && OSMinorVersion >= 3
1007# define SetTtyGroup		YES
1008#endif
1009
1010/* These are used by xdm and can be overriden in the xdm config file */
1011
1012#define DefaultSystemPath	/sbin:/usr/sbin:/bin:/usr/bin:$(BINDIR)
1013#define DefaultUserPath		:/bin:/usr/bin:/usr/local/bin:$(BINDIR)
1014
1015#ifdef i386Bsdi
1016# define NeqnCmd		eqn
1017#endif
1018
1019#if FormattedManPages
1020/*
1021 * Rules to install pre-formatted man pages.
1022 */
1023
1024#define ManSourcePath		$(MANPATH)/cat
1025
1026#define InstallManPageLong(file,destdir,dest)                                @@\
1027install.man:: file.man                                                       @@\
1028	MakeDir($(DESTDIR)destdir)                                           @@\
1029	$(RM) $(DESTDIR)destdir/dest.0                                       @@\
1030	cat file.man | $(NEQN) | $(TBL) | $(NROFF) -man >/tmp/file.man       @@\
1031	$(INSTALL) -c $(INSTMANFLAGS) /tmp/file.man $(DESTDIR)destdir/dest.0 @@\
1032	$(RM) /tmp/file.man
1033
1034#define InstallGenManPageLong(file,destdir,dest,suffix)			@@\
1035	InstallManPageLong(file,destdir,dest)
1036
1037#define InstallManPageAliases(file,destdir,aliases)                     @@\
1038install.man::                                                           @@\
1039	@for i in aliases; do (cd $(DESTDIR)destdir; set -x; \          @@\
1040        $(RM) $$i.0; \                                                  @@\
1041	$(LN) file.0 $$i.0); \                                          @@\
1042	done
1043#endif
1044
1045#define InstallGenManPageAliases(file,destdir,suffix,aliases)		@@\
1046	InstallManPageAliases(file,destdir,aliases)
1047
1048#endif /* FormattedManPages */
1049
1050
1051#if defined(i386MachArchitecture)
1052
1053/*
1054 * Mach i386
1055 */
1056
1057#define i386Mach		YES
1058
1059#define OSName			Mach i386
1060#define OSMajorVersion		2
1061#define OSMinorVersion		6
1062#define OSRelease		/* nothing */
1063#define OSDefines		-DMACH386 -DNOSTDHDRS -DX_NOT_STDC_ENV \
1064				-DNOT_POSIX
1065#define OSVendor		(CMU)
1066
1067#if HasGcc
1068# define CcCmd			gcc
1069# define AnsiCCOptions		-traditional
1070# if HasGcc2
1071#  define DefaultCCOptions	Gcc2MOption -fwritable-strings
1072#  define OptimizedCDebugFlags	-O2
1073#  define LibraryCCOptions	Gcc2MOption
1074# else
1075#  define DefaultCCOptions	-fwritable-strings
1076#  define OptimizedCDebugFlags	-O -fstrength-reduce
1077#  define LibraryCCOptions	/* nothing */
1078# endif
1079#endif
1080
1081#define ServerExtraDefines	GccGasOption -DXDMCP MallocFlags LinkKitFlags \
1082				-DAVOID_GLYPHBLT
1083
1084#define ExtraLibraries		GnuMallocLib
1085
1086#define SetTtyGroup		YES
1087#define HasBsearch		NO
1088#define HasVoidSignalReturn	NO
1089#define DirFailPrefix		-
1090#define AvoidNullMakeCommand	YES
1091
1092#endif /* i386MachArchitecture */
1093
1094/*
1095 * linux
1096 */
1097#if defined(LinuxArchitecture)
1098
1099#define OSName			Linux
1100#define OSVendor		/**/
1101#define OSMajorVersion		99
1102#define OSMinorVersion		12
1103#define OSRelease		-Dlinux
1104#define OSDefines		-D_POSIX_SOURCE -D_BSD_SOURCE -D_GNU_SOURCE
1105
1106#define SystemV			NO
1107#define AvoidNullMakeCommand	YES
1108
1109#if StripInstalledPrograms
1110#define InstUidFlags -s -m 4755
1111#else
1112#define InstUidFlags -m 4755
1113#endif
1114#define ConnectionFlags		-DUNIXCONN -DTCPCONN
1115#define DefaultFontPath		$(FONTDIR)/misc/
1116#define YaccCmd			bison -y
1117#define LexCmd			flex
1118
1119#if HasGcc
1120# define CcCmd			gcc
1121# define CppCmd			/lib/cpp
1122# define PreProcessCmd		/lib/cpp
1123# define LdCombineFlags		-r
1124# define DefaultCCOptions	Gcc2MOption -DNO_ASM -fwritable-strings
1125# define LibraryCCOptions	Gcc2MOption -DNO_ASM -fwritable-strings
1126# define OptimizedCDebugFlags	-O2
1127# define ServerExtraDefines	GccGasOption -DXDMCP MallocFlags LinkKitFlags \
1128				-DAVOID_GLYPHBLT
1129# define Malloc0ReturnsNull	YES
1130# define NeedConstPrototoypes	YES
1131# define NeedFunctionPrototypes	YES
1132# define NeedNestedPrototypes	YES
1133# define NeedVarargsPrototypes	YES
1134# define NeedWidePrototypes	NO
1135#endif /* HasGcc */
1136
1137#define ExtraLibraries		GnuMallocLib
1138
1139#define HasPutenv		YES
1140#define HasShm			YES
1141
1142#include <lnuxLib.rules>
1143
1144/*
1145 * cross compilation for hlu
1146 */
1147#ifdef CROSS_COMPILE
1148#include <hlu.cf>
1149#endif /* CROSS_COMPILE */
1150
1151#endif /* LinuxArchitecture */
1152
1153/*
1154 * OSF/1
1155 */
1156#if defined(OsfArchitecture)
1157
1158#define OSName			OSF/1
1159#define OSVendor		(Open Software Foundation)
1160#define OSMajorVersion		1
1161#define OSMinorVersion		1
1162#define OSRelease		/* __osf__ defined by cpp */
1163#define OSDefines		/* see /usr/include/standards.h */
1164
1165#define InstallCmd		installbsd
1166#define	InstBinFlags		-m 755 -o bin -g bin
1167#define	InstDatFlags		-m 644 -o bin -g bin
1168#define	InstIncFlags		-m 644 -o bin -g bin
1169#define	InstKmemFlags		-m 4755 -o root -g bin
1170#define	InstLibFlags		-m 644 -o bin -g bin
1171#define	InstManFlags		-m 644 -o bin -g bin
1172#define	InstPgmFlags		-m 755 -o bin -g bin
1173#define	InstUidFlags		-m 4755 -g bin
1174#define ConnectionFlags		-DUNIXCONN -DTCPCONN
1175#define DefaultFontPath		$(FONTDIR)/misc/
1176
1177#if HasGcc
1178#undef PreProcessCmd
1179#define CppCmd			/lib/cpp
1180#define PreProcessCmd		CppCmd
1181#define DefaultCCOptions	Gcc2MOption -pic-lib
1182#define LibraryCCOptions	DefaultCCOptions
1183#define ServerExtraDefines	GccGasOption -DXDMCP MallocFlags LinkKitFlags \
1184				-DAVOID_GLYPHBLT
1185#define NeedConstPrototoypes	YES
1186#define NeedFunctionPrototypes	YES
1187#define NeedNestedPrototypes	YES
1188#define NeedVarargsPrototypes	YES
1189#define NeedWidePrototypes	YES
1190#define CcCmd			gcc -ansi -fwritable-strings
1191#define OptimizedCDebugFlags	-O2 -fomit-frame-pointer
1192#define ServerCcCmd  		CcCmd
1193#define ServerCCOptions		-Di386=1 DefaultCCOptions
1194#endif /* HasGcc */
1195
1196#define	HasShm			NO
1197#define HasSharedLibraries	NO /* I haven't debugged this yet */
1198#define HasLargeTmp		YES
1199#define HasNdbm			YES
1200#define HasPutenv		YES
1201#define HasSockets		YES
1202#define HasVFork		NO
1203#define Malloc0ReturnsNull	YES
1204#define	ExtraLoadFlags		-L/usr/shlib
1205#define UseCCMakeDepend		NO
1206#define ConstructMFLAGS		NO
1207
1208#define ExtraLibraries		GnuMallocLib
1209
1210XCOMM (one of these days I'll finish this) #include <osfLib.rules>
1211#endif /* OsfArchitecture */
1212
1213#if !defined(UseInstalled) || X386LinkKit
1214#include <X386Conf.tmpl>
1215#endif
1216
1217XCOMM operating system:  OSName OSVendor
1218