XCOMM platform:  $TOG: sgi.cf /main/45 1997/06/18 18:01:03 kaleb $
XCOMM
XCOMM
XCOMM $XFree86: xc/config/cf/sgi.cf,v 1.1.1.5.2.4 1999/06/18 13:47:28 hohndel Exp $

#ifndef OSName
# define OSName		DefaultOSName
#endif
#ifndef OSMajorVersion
# define OSMajorVersion	DefaultOSMajorVersion
#endif
#ifndef OSMinorVersion
# define OSMinorVersion	DefaultOSMinorVersion
#endif
#ifndef OSTeenyVersion
# define OSTeenyVersion	DefaultOSTeenyVersion 
#endif
XCOMM operating system: OSName (OSMajorVersion.OSMinorVersion.OSTeenyVersion)

#if OSMajorVersion < 4
/* We do not guarantee this will work */
#define BootstrapCFlags		-DX_WCHAR -DX_LOCALE -DX_USEBFUNCS -DSYSV
#define StandardDefines		-DX_WCHAR -DX_LOCALE -DX_USEBFUNCS -DSYSV
#define SetTtyGroup		NO
#else
#define HasPlugin		YES
#define SetTtyGroup		YES
#define ExtraFilesToClean	so_locations
#endif

#if OSMajorVersion < 5
#define SystemV			YES
#define XawI18nDefines		-DUSE_XWCHAR_STRING -DUSE_XMBTOWC
#else
#define BootstrapCFlags		-DSVR4
#define StandardDefines		-DSVR4
#define SystemV4		YES
#define HasWChar32              YES
#define HasVFork		NO
#if OSMajorVersion < 6
#define XawI18nDefines		-DHAS_WCTYPE_H -DHAS_ISW_FUNCS
#else
#define XawI18nDefines		-DHAS_WCHAR_H -DHAS_ISW_FUNCS
#endif
#define AllocateLocalDefines	-DINCLUDE_ALLOCA_H
#ifndef ExtraLoadFlags
#define ExtraLoadFlags -Wl,-rpath,$(USRLIBDIRPATH)
#endif
#endif

/*
 * To build 64-bit binaries define Mips64Architecture in your site.def or
 * host.def file. This is usually on done at the X Consortium to test
 * big endian 64-bit cleanliness.
 * To build 32-bit binaries using the old 32-bit mode, define
 * NoMipsN32Archtecture in your site.def or host.def file.
 * Otherwise the default is to use the "new 32" mode as requested by SGI.
 */
#ifndef MipsN32Architecture
#if !defined(Mips64Architecture) && !defined(NoMipsN32Architecture)
#define MipsN32Architecture YES
#endif
#endif

#ifdef Mips64Architecture
# define BuildLibPathVar	_RLD_ROOT=/dev/null LD_LIBRARY64_PATH
# define SystemBuildLibPath	/usr/lib64:/lib64
# define LdCmd			ld -64
#elif defined(MipsN32Architecture)
# define BuildLibPathVar	_RLD_ROOT=/dev/null LD_LIBRARYN32_PATH
# define SystemBuildLibPath	/usr/lib32:/lib32
# define LdCmd			ld -n32
# define AsCmd			as -n32
#else
# define BuildLibPathVar	_RLD_ROOT=/dev/null LD_LIBRARY_PATH
# define SystemBuildLibPath	/usr/lib:/lib
#endif
#define HasCplusplus		YES
#define Malloc0ReturnsNull	YES	/* IRIX [56].x -lmalloc needs this */
#define HasPutenv		YES
#define ExecableScripts		YES
#define HasNdbm			YES
#define HasPoll                 YES
#define ExpandManNames          YES
#ifndef BuildXInputExt
#define BuildXInputExt		YES
#endif

#if OSMajorVersion > 3 || (OSMajorVersion == 3 && OSMinorVersion > 2)
#define NeedVarargsPrototypes	YES
#define NeedConstPrototypes	YES
#define NeedWidePrototypes	NO
#endif

#include <sgiLib.rules>

#if OSMajorVersion < 5
#define SymbolTables -Wf,-XNp16000,-XNd16000,-XNh2000
#define PexSymbolTables -Wf,-XNp15000,-XNd15000,-XNh2000
#define ServerSymbolTables -Wf,-XNp8000,-XNh2000,-XNd8000
#else
#define SymbolTables
#define PexSymbolTables 
#define ServerSymbolTables
#endif

/* this is for floating point, ANSI cpp */
#if OSMajorVersion < 5
/* Extra libraries provide : yp, sysV malloc, shared libc, and widechar */
# define ExtraLibraries -lsun -lmalloc -lc_s -lw
# define sgiCCOptions -xansi -D__STDC__=1 -float
#else
# if OSMajorVersion < 6
#  define sgiCCOptions -xansi
# else
#  define CppCmd cc -E
#  ifdef Mips64Architecture
/* set Mips64Architecture in host.def. Usually don't need it but we
 * (the X Consortium) want a  64-bit big-endian machine to test on. */
#   define sgiCCOptions -xansi -mips3 -64
#   define DlLibrary /**/
#  elif defined(MipsN32Architecture)
/* Set MipsN32Architecture to build "new" 32-bit objs with a 32-bit kernel. */
#   define sgiCCOptions -xansi -mips3 -n32
#  else
#   define sgiCCOptions -xansi
#  endif
#  if OSMinorVersion > 1
/* if you haven't installed patch 1361, 1403, or 1645 on IRIX 6.2 then you
 * must add "#define HasPosixThreads NO" in your site.def or host.def file
 */
#   ifndef HasPosixThreads
#    define HasPosixThreads	YES
#   endif
#   define ThreadedX HasPosixThreads
#   define ThreadsLibraries -lpthread
/* 
 * Add "#define HasSgiThreadsPatch1403 NO" to your site.def or host.def if 
 * that's which patch you have.
 */
#   ifndef HasSgiThreadsPatch1403
#    define HasSgiThreadsPatch1403 YES
#   endif
#   if (HasSgiThreadsPatch1403) 
#    define SystemMTDefines -D_POSIX_THREAD_SAFE_FUNCTIONS
#   endif
#  endif
# endif
/* SGI's -lsocket -lnsl is broken, at least in 5.2, so override here */
# define ExtraLibraries /**/
#endif

#define DefaultCCOptions sgiCCOptions SymbolTables
#define PexCCOptions sgiCCOptions PexSymbolTables
#define ServerCCOptions sgiCCOptions ServerSymbolTables

/* For SGI C++ compiler, need to search extra dirs in make depend */
#ifndef CplusplusDependIncludes
#define CplusplusDependIncludes -I/usr/include/CC
#endif

/* At SGI, we don't need this */
#define ConstructMFLAGS		NO	/* build MFLAGS from MAKEFLAGS */

/* Used only for compressed fonts */
#define UNCOMPRESSPATH /usr/bsd/uncompress

/* Normally used only to conditionally chose the default font path order */
#define PrimaryScreenResolution 96

/* Override Imake.tmpl's "-X" flag */
#define LdCombineFlags -r

/* Installation Build Parameters */
#define InstKmemFlags -m 2711 -g sys

#define ArCmd ar scq

/* for xdm or anyone else to use */
#define DefaultUserPath :/usr/sbin:/usr/bsd:/usr/bin:/bin:$(BINDIR):/etc:/usr/etc
#define DefaultSystemPath /usr/sbin:/usr/bsd:/bin:/etc:/usr/bin:/usr/etc:$(BINDIR)

#ifndef BuildServer
#define BuildServer             NO
#endif
#define ServerOSDefines		-DDDXTIME 
/* only need this for binary compatibility with their ddx */
#ifndef Mips64Architecture
#define ServerExtraDefines	-DNEED_LINEHELPER AllocateLocalDefines
#else
#define ServerExtraDefines	-D_XSERVER64 -DNEED_LINEHELPER AllocateLocalDefines
#endif

/* Changed to a single shell command for pmake/smake */
#if OSMajorVersion < 5
/*
 * NormalLibObjCompile - compile fragment for a library object file
 * 	do ld -x to remove line number symbols for libraries
 */
#define NormalLibObjCompile(options) 	ClearmakeOSName			  \
	$(RM) $@ $*.os \						@@\
	&& $(CC) -c options $(CFLAGS) $*.c \				@@\
	&& $(LD) $(LDSTRIPFLAGS) -r $@ -o $*.os \			@@\
	&& $(MV) $*.os $@
#endif

#define LibObjCompile(dir,options) ClearmakeOSName			  \
	$(RM) $@ dir/$@ \						@@\
	&& $(CC) -c $(CCOPTIONS) $(ALLDEFINES) options $*.c \		@@\
	&& $(MV) $@ dir/$@

#ifndef HasMakefileSafeInclude
#define HasMakefileSafeInclude YES
#endif
#ifndef IncludeMakefile
#define IncludeMakefile(file) @@sinclude file
#endif

/* needs to find nroff on the system to work */
#ifndef ManKeywordsTarget
#define ManKeywordsTarget(manpath)					@@\
man_keywords::								@@\
	/usr/lib/makewhatis -M $(DESTDIR)manpath $(DESTDIR)manpath/whatis
#endif

#define MotifDefines		-DSYS_DIR -DPORT_NOVFORK -DNO_REGCOMP

#ifndef CppFileTarget
#define CppFileTarget(dst,src,defs,deplist)				@@\
dst::  src deplist							@@\
	RemoveFile($@)							@@\
	ClearmakeOSName \
	$(CPP) CppNoLineInfoOption defs src | CppSedMagic >$@; 		@@\
									@@\
clean::									@@\
	RemoveFiles(dst)
#endif /* CppFileTarget */
