111d341caSmrgXCOMM platform:  $Xorg: sgi.cf,v 1.4 2000/08/17 19:41:48 cpqbld Exp $
211d341caSmrgXCOMM $XFree86: xc/config/cf/sgi.cf,v 1.12tsi Exp $
311d341caSmrg
411d341caSmrg#ifndef OSName
511d341caSmrg# define OSName		DefaultOSName
611d341caSmrg#endif
711d341caSmrg#ifndef OSMajorVersion
811d341caSmrg# define OSMajorVersion	DefaultOSMajorVersion
911d341caSmrg#endif
1011d341caSmrg#ifndef OSMinorVersion
1111d341caSmrg# define OSMinorVersion	DefaultOSMinorVersion
1211d341caSmrg#endif
1311d341caSmrg#ifndef OSTeenyVersion
1411d341caSmrg# define OSTeenyVersion	DefaultOSTeenyVersion
1511d341caSmrg#endif
1611d341caSmrgXCOMM operating system: OSName (OSMajorVersion./**/OSMinorVersion./**/OSTeenyVersion)
1711d341caSmrg
1811d341caSmrg#if OSMajorVersion < 4
1911d341caSmrg/* We do not guarantee this will work */
2011d341caSmrg#define BootstrapCFlags		-DX_WCHAR -DX_LOCALE -DX_USEBFUNCS -DSYSV
2111d341caSmrg#define StandardDefines		-DX_WCHAR -DX_LOCALE -DX_USEBFUNCS -DSYSV
2211d341caSmrg#define SetTtyGroup		NO
2311d341caSmrg#else
2411d341caSmrg#define HasPlugin		YES
2511d341caSmrg#define SetTtyGroup		YES
2611d341caSmrg#define ExtraFilesToClean	so_locations
2711d341caSmrg#endif
2811d341caSmrg
2911d341caSmrg#if OSMajorVersion < 5
3011d341caSmrg#define SystemV			YES
3111d341caSmrg#define XawI18nDefines		-DUSE_XWCHAR_STRING -DUSE_XMBTOWC
3211d341caSmrg#else
3311d341caSmrg#define BootstrapCFlags		-DSVR4
3411d341caSmrg#define StandardDefines		-DSVR4
3511d341caSmrg#define SystemV4		YES
3611d341caSmrg#define HasWChar32              YES
3711d341caSmrg#define HasVFork		NO
3811d341caSmrg#if OSMajorVersion < 6
3911d341caSmrg#define XawI18nDefines		-DHAS_WCTYPE_H -DHAS_ISW_FUNCS
4011d341caSmrg#else
4111d341caSmrg#define XawI18nDefines		-DHAS_WCHAR_H -DHAS_ISW_FUNCS
4211d341caSmrg#define HasSetenv		NO
4311d341caSmrg#define HasSnprintf		YES
4411d341caSmrg#endif
4511d341caSmrg#define AllocateLocalDefines	-DINCLUDE_ALLOCA_H
4611d341caSmrg#ifndef ExtraLoadFlags
4711d341caSmrg#define ExtraLoadFlags -Wl,-rpath,$(USRLIBDIRPATH)
4811d341caSmrg#endif
4911d341caSmrg#endif
5011d341caSmrg
5111d341caSmrg/*
5211d341caSmrg * To build 64-bit binaries define Mips64Architecture in your site.def or
5311d341caSmrg * host.def file. This is usually on done at the X Consortium to test
5411d341caSmrg * big endian 64-bit cleanliness.
5511d341caSmrg * To build 32-bit binaries using the old 32-bit mode, define
5611d341caSmrg * NoMipsN32Archtecture in your site.def or host.def file.
5711d341caSmrg * Otherwise the default is to use the "new 32" mode as requested by SGI.
5811d341caSmrg */
5911d341caSmrg#ifndef MipsN32Architecture
6011d341caSmrg#if !defined(Mips64Architecture) && !defined(NoMipsN32Architecture)
6111d341caSmrg#define MipsN32Architecture YES
6211d341caSmrg#endif
6311d341caSmrg#endif
6411d341caSmrg
6511d341caSmrg#ifdef Mips64Architecture
6611d341caSmrg# define BuildLibPathVar	_RLD_ROOT=/dev/null LD_LIBRARY64_PATH
6711d341caSmrg# define SystemBuildLibPath	/usr/lib64:/lib64
6811d341caSmrg# define LdCmd			ld -64
6911d341caSmrg# define AsCmd			as -64
7011d341caSmrg#elif defined(MipsN32Architecture)
7111d341caSmrg# define BuildLibPathVar	_RLD_ROOT=/dev/null LD_LIBRARYN32_PATH
7211d341caSmrg# define SystemBuildLibPath	/usr/lib32:/lib32
7311d341caSmrg# define LdCmd			ld -n32
7411d341caSmrg# define AsCmd			as -n32
7511d341caSmrg#else
7611d341caSmrg# define BuildLibPathVar	_RLD_ROOT=/dev/null LD_LIBRARY_PATH
7711d341caSmrg# define SystemBuildLibPath	/usr/lib:/lib
7811d341caSmrg# define LdCmd			ld -32
7911d341caSmrg# define AsCmd			as -32
8011d341caSmrg#endif
8111d341caSmrg#define HasCplusplus		YES
8211d341caSmrg#define Malloc0ReturnsNull	YES	/* IRIX [56].x -lmalloc needs this */
8311d341caSmrg#define HasPutenv		YES
8411d341caSmrg#define ExecableScripts		YES
8511d341caSmrg#define HasNdbm			YES
8611d341caSmrg#define HasPoll                 YES
8711d341caSmrg#define ExpandManNames          YES
8811d341caSmrg#define LexLib			/* Not needed */
8911d341caSmrg#ifndef BuildXInputExt
9011d341caSmrg#define BuildXInputExt		YES
9111d341caSmrg#endif
9211d341caSmrg
9311d341caSmrg#if OSMajorVersion > 3 || (OSMajorVersion == 3 && OSMinorVersion > 2)
9411d341caSmrg#define NeedVarargsPrototypes	YES
9511d341caSmrg#define NeedConstPrototypes	YES
9611d341caSmrg#define NeedWidePrototypes	NO
9711d341caSmrg#endif
9811d341caSmrg
9911d341caSmrg#include <sgiLib.rules>
10011d341caSmrg
10111d341caSmrg#if OSMajorVersion < 5
10211d341caSmrg#define SymbolTables -Wf,-XNp16000,-XNd16000,-XNh2000
10311d341caSmrg#define ServerSymbolTables -Wf,-XNp8000,-XNh2000,-XNd8000
10411d341caSmrg#else
10511d341caSmrg#define SymbolTables
10611d341caSmrg#define ServerSymbolTables
10711d341caSmrg#endif
10811d341caSmrg
10911d341caSmrg/* this is for floating point, ANSI cpp */
11011d341caSmrg#if OSMajorVersion < 5
11111d341caSmrg/* Extra libraries provide : yp, sysV malloc, shared libc, and widechar */
11211d341caSmrg# define ExtraLibraries -lsun -lmalloc -lc_s -lw
11311d341caSmrg# define sgiCCOptions -xansi -D__STDC__=1 -float
11411d341caSmrg#else
11511d341caSmrg# if OSMajorVersion < 6
11611d341caSmrg#  define sgiCCOptions -xansi
11711d341caSmrg# else
11811d341caSmrg#  define CppCmd cc -E -cckr
11911d341caSmrg#  ifdef Mips64Architecture
12011d341caSmrg/* set Mips64Architecture in host.def. Usually don't need it but we
12111d341caSmrg * (the X Consortium) want a  64-bit big-endian machine to test on. */
12211d341caSmrg#   define sgiCCOptions -xansi -mips3 -64
12311d341caSmrg#   define DlLibrary /**/
12411d341caSmrg#  elif defined(MipsN32Architecture)
12511d341caSmrg/* Set MipsN32Architecture to build "new" 32-bit objs with a 32-bit kernel. */
12611d341caSmrg#   define sgiCCOptions -xansi -mips3 -n32
12711d341caSmrg#  else
12811d341caSmrg#   define sgiCCOptions -xansi -32
12911d341caSmrg#  endif
13011d341caSmrg#  if OSMinorVersion == 2
13111d341caSmrg/* if you haven't installed patch 1361, 1403, or 1645 on IRIX 6.2 then you
13211d341caSmrg * must add "#define HasPosixThreads NO" in your site.def or host.def file
13311d341caSmrg */
13411d341caSmrg#   ifndef HasPosixThreads
13511d341caSmrg#    define HasPosixThreads	YES
13611d341caSmrg#   endif
13711d341caSmrg#   define ThreadedX HasPosixThreads
13811d341caSmrg#   define ThreadsLibraries -lpthread
13911d341caSmrg/*
14011d341caSmrg * Add "#define HasSgiThreadsPatch1403 YES" to your site.def or host.def if
14111d341caSmrg * that's which patch you have.
14211d341caSmrg */
14311d341caSmrg#   ifndef HasSgiThreadsPatch1403
14411d341caSmrg#    define HasSgiThreadsPatch1403 NO
14511d341caSmrg#   endif
14611d341caSmrg#   if (HasSgiThreadsPatch1403)
14711d341caSmrg#    define SystemMTDefines -D_POSIX_THREAD_SAFE_FUNCTIONS
14811d341caSmrg#   endif
14911d341caSmrg#  endif
15011d341caSmrg# endif
15111d341caSmrg/* SGI's -lsocket -lnsl is broken, at least in 5.2, so override here */
15211d341caSmrg# define ExtraLibraries /**/
15311d341caSmrg#endif
15411d341caSmrg
15511d341caSmrg/* IRIX 6.5 doesn't support IPv6, but #define's AF_INET6.  Go figure... */
15611d341caSmrg#ifndef BuildIPv6
15711d341caSmrg#define BuildIPv6	NO
15811d341caSmrg#endif
15911d341caSmrg
16011d341caSmrg#undef  BuildXF86DRI
16111d341caSmrg#define BuildXF86DRI	NO
16211d341caSmrg
16311d341caSmrg#if !HasGcc
16411d341caSmrg#if !defined(OptimizedCDebugFlags)
16511d341caSmrg#if defined(MipsN32Architecture) || defined(Mips64Architecture)
16611d341caSmrg#define OptimizedCDebugFlags -O -OPT:Olimit=0
16711d341caSmrg#else
16811d341caSmrg#define OptimizedCDebugFlags -O -Olimit 2048
16911d341caSmrg#endif
17011d341caSmrg#endif
17111d341caSmrg#if !defined(RawCppCmd)
17211d341caSmrg#define RawCppCmd CppCmd
17311d341caSmrg#endif
17411d341caSmrg#endif
17511d341caSmrg
17611d341caSmrg#ifndef DefaultCCOptions
17711d341caSmrg#define DefaultCCOptions sgiCCOptions SymbolTables
17811d341caSmrg#endif
17911d341caSmrg#ifndef ServerCCOptions
18011d341caSmrg#define ServerCCOptions sgiCCOptions ServerSymbolTables
18111d341caSmrg#endif
18211d341caSmrg#ifndef DefaultCplusplusOptions
18311d341caSmrg#define DefaultCplusplusOptions DefaultCCOptions
18411d341caSmrg#endif
18511d341caSmrg
18611d341caSmrg/* For SGI C++ compiler, need to search extra dirs in make depend */
18711d341caSmrg#ifndef CplusplusDependIncludes
18811d341caSmrg#define CplusplusDependIncludes -I/usr/include/CC
18911d341caSmrg#endif
19011d341caSmrg
19111d341caSmrg/* At SGI, we don't need this */
19211d341caSmrg#define ConstructMFLAGS		NO	/* build MFLAGS from MAKEFLAGS */
19311d341caSmrg
19411d341caSmrg/* Used only for compressed fonts */
19511d341caSmrg#define UNCOMPRESSPATH /usr/bsd/uncompress /* obsolete */
19611d341caSmrg
19711d341caSmrg/* Normally used only to conditionally chose the default font path order */
19811d341caSmrg#define PrimaryScreenResolution 96
19911d341caSmrg
20011d341caSmrg/* Override Imake.tmpl's "-X" flag */
20111d341caSmrg#define LdCombineFlags -r
20211d341caSmrg
20311d341caSmrg/* Installation Build Parameters */
20411d341caSmrg#define InstKmemFlags -m 2711 -g sys
20511d341caSmrg
20611d341caSmrg#define ArCmd ar scq
20711d341caSmrg
20811d341caSmrg/* for xdm or anyone else to use */
20911d341caSmrg#define DefaultUserPath :/usr/sbin:/usr/bsd:/usr/bin:/bin:$(BINDIR):/etc:/usr/etc
21011d341caSmrg#define DefaultSystemPath /usr/sbin:/usr/bsd:/bin:/etc:/usr/bin:/usr/etc:$(BINDIR)
21111d341caSmrg
21211d341caSmrg#define ServerOSDefines		-DDDXTIME XFree86ServerOSDefines
21311d341caSmrg
21411d341caSmrg#ifndef ServerExtraDefines
21511d341caSmrg#ifndef Mips64Architecture
21611d341caSmrg#define ServerExtraDefines	-DNEED_LINEHELPER AllocateLocalDefines \
21711d341caSmrg				XFree86ServerDefines
21811d341caSmrg#else
21911d341caSmrg#define ServerExtraDefines	-DNEED_LINEHELPER AllocateLocalDefines \
22011d341caSmrg				XFree86ServerDefines -D_XSERVER64
22111d341caSmrg#endif
22211d341caSmrg#endif
22311d341caSmrg
22411d341caSmrg/* Changed to a single shell command for pmake/smake */
22511d341caSmrg#if OSMajorVersion < 5
22611d341caSmrg/*
22711d341caSmrg * NormalLibObjCompile - compile fragment for a library object file
22811d341caSmrg *	do ld -x to remove line number symbols for libraries
22911d341caSmrg */
23011d341caSmrg#define NormalLibObjCompile(options)	ClearmakeOSName			  \
23111d341caSmrg	$(RM) $@ $*.os \						@@\
23211d341caSmrg	&& $(CC) -c options $(CFLAGS) $*.c \				@@\
23311d341caSmrg	&& $(LD) $(LDSTRIPFLAGS) -r $@ -o $*.os \			@@\
23411d341caSmrg	&& $(MV) $*.os $@
23511d341caSmrg#endif
23611d341caSmrg
23711d341caSmrg#define LibObjCompile(dir,options) ClearmakeOSName			  \
23811d341caSmrg	$(RM) $@ dir/$@ \						@@\
23911d341caSmrg	&& $(CC) -c $(CCOPTIONS) $(ALLDEFINES) options $*.c \		@@\
24011d341caSmrg	&& $(MV) $@ dir/$@
24111d341caSmrg
24211d341caSmrg#ifndef HasMakefileSafeInclude
24311d341caSmrg#define HasMakefileSafeInclude YES
24411d341caSmrg#endif
24511d341caSmrg#ifndef IncludeMakefile
24611d341caSmrg#define IncludeMakefile(file) @@sinclude file
24711d341caSmrg#endif
24811d341caSmrg
24911d341caSmrg/* needs to find nroff on the system to work */
25011d341caSmrg#ifndef ManKeywordsTarget
25111d341caSmrg#define ManKeywordsTarget(manpath)					@@\
25211d341caSmrgman_keywords::								@@\
25311d341caSmrg	/usr/lib/makewhatis -M $(DESTDIR)manpath $(DESTDIR)manpath/whatis
25411d341caSmrg#endif
25511d341caSmrg
25611d341caSmrg#define MotifDefines		-DSYS_DIR -DPORT_NOVFORK -DNO_REGCOMP
25711d341caSmrg
25811d341caSmrg#if !defined(HasGcc) || !HasGcc
25911d341caSmrg
26011d341caSmrg#ifndef CppFileTarget
26111d341caSmrg#define CppFileTarget(dst,src,defs,deplist)				@@\
26211d341caSmrgdst::  src deplist							@@\
26311d341caSmrg	RemoveFile($@)							@@\
26411d341caSmrg	ClearmakeOSName \
26511d341caSmrg	$(CPP) CppNoLineInfoOption defs src 2>/dev/null | CppSedMagic >$@; @@\
26611d341caSmrg									@@\
26711d341caSmrgclean::									@@\
26811d341caSmrg	RemoveFiles(dst)
26911d341caSmrg#endif /* CppFileTarget */
27011d341caSmrg
27111d341caSmrg#ifndef CppScriptTarget
27211d341caSmrg#if ExecableScripts		/* can use #! instead of colon */
27311d341caSmrg#define CppScriptTarget(dst,src,defs,deplist)				@@\
27411d341caSmrgdst::	src deplist							@@\
27511d341caSmrg	RemoveFile($@)							@@\
27611d341caSmrg	ClearmakeOSName \
27711d341caSmrg	$(CPP) CppNoLineInfoOption defs src | CppSedMagic >$@		@@\
27811d341caSmrg	chmod a+x $@							@@\
27911d341caSmrg									@@\
28011d341caSmrgclean::									@@\
28111d341caSmrg	RemoveFiles(dst)
28211d341caSmrg#else
28311d341caSmrg#define CppScriptTarget(dst,src,defs,deplist)				@@\
28411d341caSmrgdst::  src deplist							@@\
28511d341caSmrg	RemoveFile($@)							@@\
28611d341caSmrg	ClearmakeOSName \
28711d341caSmrg	echo \: >$@							@@\
28811d341caSmrg	sed '1d' src | $(CPP) CppNoLineInfoOption defs | CppSedMagic >>$@	@@\
28911d341caSmrg	chmod a+x $@							@@\
29011d341caSmrg									@@\
29111d341caSmrgclean::									@@\
29211d341caSmrg	RemoveFile(dst)
29311d341caSmrg#endif /* ExecableScripts */
29411d341caSmrg#endif /* CppScriptTarget */
29511d341caSmrg
29611d341caSmrg/* Like CppFileTarget, but don't add any default defines */
29711d341caSmrg#ifndef CppRawFileTarget
29811d341caSmrg#define CppRawFileTarget(dst,src,defs,deplist)				@@\
29911d341caSmrgdst::  src deplist							@@\
30011d341caSmrg	RemoveFile($@)							@@\
30111d341caSmrg	ClearmakeOSName \
30211d341caSmrg	$(RAWCPP) CppNoLineInfoOption defs src | CppSedMagic >$@	@@\
30311d341caSmrg									@@\
30411d341caSmrgclean::									@@\
30511d341caSmrg	RemoveFiles(dst)
30611d341caSmrg#endif /* CppFileTarget */
30711d341caSmrg
30811d341caSmrg#endif /* !HasGcc */
30911d341caSmrg
31011d341caSmrg#ifndef DoLoadableServer
31111d341caSmrg#define DoLoadableServer YES
31211d341caSmrg#endif
31311d341caSmrg
31411d341caSmrg#ifndef UseDeprecatedKeyboardDriver
31511d341caSmrg#define UseDeprecatedKeyboardDriver YES
31611d341caSmrg#endif
31711d341caSmrg
31811d341caSmrg#include <xorg.cf>
319