Edit

IABSD.fr/xenocara/util/cf/Imake.tmpl

Branch :

  • Show log

    Commit

  • Author : matthieu
    Date : 2006-11-25 16:15:45
    Hash : 782466d3
    Message : import from X.Org 7.2RC2

  • util/cf/Imake.tmpl
  • XCOMM ----------------------------------------------------------------------
    XCOMM Makefile generated from IMAKE_TEMPLATE and INCLUDE_IMAKEFILE
    XCOMM $Xorg: Imake.tmpl,v 1.4 2000/08/17 19:41:46 cpqbld Exp $
    XCOMM $XdotOrg: util/cf/Imake.tmpl,v 1.17 2006/04/15 15:55:25 herrb Exp $
    XCOMM
    XCOMM
    XCOMM
    XCOMM
    XCOMM $XFree86: xc/config/cf/Imake.tmpl,v 3.155 2003/12/24 18:58:41 dickey Exp $
    XCOMM ----------------------------------------------------------------------
    
    /*
     * generic imake template
     */
    
    /*
     * Modify Imake.cf when adding a new architecture, do not modify this file.
     * Platform-specific parameters may be set in the appropriate <vendor>.cf
     * configuration files.  Site-specific parameters should be set in the file
     * site.def.  Full rebuilds are recommended if any parameters are changed.
     * If your C preprocessor does not define any unique symbols, you will need
     * to set BOOTSTRAPCFLAGS when rebuilding imake (usually when doing
     * "make World" the first time).
     */
    
    #define ImakeConfigRelease 6
    
    #define	YES	1
    #define NO	0
    
    /* Ensure that "all" is the default target in the Makefile. */
    all::
    
    .SUFFIXES: .i
    
    /* Intercept clean rules for current directory */
    #undef clean
    #define clean cleandir
    
    #include <Imake.cf>
    
    XCOMM -----------------------------------------------------------------------
    XCOMM site-specific configuration parameters that need to come before
    XCOMM the platform-specific parameters - edit site.def to change
    #define BeforeVendorCF
    #include <site.def>
    #undef BeforeVendorCF
    
    #if defined(HasGcc3) && !defined(HasGcc2)
    # define HasGcc2 HasGcc3
    #endif
    #if defined(HasGcc2) && !defined(HasGcc)
    # define HasGcc HasGcc2
    #endif
    
    #ifndef HasCenterLineC
    #define HasCenterLineC NO
    #endif
    #ifndef HasCenterLineCplusplus
    #define HasCenterLineCplusplus NO
    #endif
    
    #ifndef HasClearmake
    # define HasClearmake NO
    #endif
    
    #ifndef ProPoliceSupport
    #define ProPoliceSupport NO
    #endif
    
    /*
     * ClearmakeOSName - insert the current OS type into the clearmake
     * build script, so .o files from different platforms cannot be winked in.
     * If clearmake finds the build script for two .o files is the same, it
     * will share the .o, even across different architectures.  Inserting the
     * O/S name into the build script in a comment prevents unwanted sharing.
     * Note the trailing double-@ in the macro: end a line using this macro
     * with backslash without the double-@ usually used.
     * Like this:
     *
     * #define SomeRule() @@\
     *     something or other @@\
     *     ClearmakeOSName \
     *     something else @@\
     *     and more
     */
    #ifndef ClearmakeOSName
    # if HasClearmake
    #  define ClearmakeOSName @ XCOMM $(OSNAME) @@
    # else
    #  define ClearmakeOSName /**/
    # endif
    #endif
    
    #if HasClearmake
    # ifndef MakeCmd
    #  define MakeCmd clearmake
    # endif
    #endif
    
    #if HasClearmake
    XCOMM ----------------------------------------------------------------------
    .c.o:
    	ClearmakeOSName	$(CC) -c $(CFLAGS) $*.c
    #endif
    
    XCOMM ----------------------------------------------------------------------
    XCOMM platform-specific configuration parameters - edit MacroFile to change
    #include MacroIncludeFile
    
    XCOMM ----------------------------------------------------------------------
    XCOMM site-specific configuration parameters that go after
    XCOMM the platform-specific parameters - edit site.def to change
    #define AfterVendorCF
    #include <site.def>
    #undef AfterVendorCF
    
    /*
     * defaults for various generic parameters; set in site.def if needed
     */
    
    /* the following are needed before we can include Imake.rules */
    
    #ifndef NothingOutsideProjectRoot
    #define NothingOutsideProjectRoot NO
    #endif
    
    #ifndef RemoveObsoleteFiles
    #define RemoveObsoleteFiles YES
    #endif
    
    #ifndef HasVarDirectory
    #define HasVarDirectory		YES
    #endif
    #ifndef UseEtcX11
    #define UseEtcX11		YES
    #endif
    #ifndef UseInstalledX11
    # define UseInstalledX11        NO
    #endif
    #ifdef UseInstalled
    # undef UseInstalledX11
    # define UseInstalledX11        YES
    #endif
    #if NothingOutsideProjectRoot
    #undef UseEtcX11
    #define UseEtcX11		NO
    #endif
    #ifndef UseSeparateConfDir
    #define UseSeparateConfDir	(UseEtcX11 || HasVarDirectory)
    #endif
    #if NothingOutsideProjectRoot
    #undef UseSeparateConfDir
    #define UseSeparateConfDir	NO
    #endif
    #ifndef SystemV
    #define SystemV			NO	/* SYSV (R3) */
    #endif
    #ifndef SystemV4
    #define SystemV4		NO	/* SVR4 */
    #endif
    #ifndef HasCodeCenter
    #define HasCodeCenter		NO
    #endif
    #ifndef HasSentinel
    #define HasSentinel		NO
    #endif
    #ifndef HasPurify
    #define HasPurify		NO
    #endif
    #ifndef HasTestCenter
    #define HasTestCenter		NO
    #endif
    #ifndef HasGnuMake
    #define HasGnuMake		NO
    #endif
    /*
     * The following fixes a glitch with GNU make -j
     */
    #ifndef ForceServerRemake
    #define ForceServerRemake	HasGnuMake
    #endif
    #ifndef HasBsdMake
    #define HasBsdMake		NO
    #endif
    #ifndef HasParallelMake
    #define HasParallelMake		NO
    #endif
    #ifndef RemoveTargetProgramByMoving
    #define RemoveTargetProgramByMoving NO
    #endif
    #ifndef DoRanlibCmd
    #if SystemV || SystemV4
    #define DoRanlibCmd NO
    #else
    #define DoRanlibCmd YES
    #endif
    #endif
    #ifndef ExecableScripts
    #if SystemV
    #define ExecableScripts		NO
    #else
    #define ExecableScripts		YES	/* kernel exec() can handle #! */
    #endif
    #endif
    
    #ifndef HasMakefileSafeInclude	    /* -include or sinclude in a Makefile */
    #if HasClearmake || HasBsdMake
    #define HasMakefileSafeInclude	YES
    #else
    #define HasMakefileSafeInclude	NO   /* see also vendor-specific .cf files */
    #endif
    #endif
    
    #ifndef HasSymLinks
    #define HasSymLinks YES
    #endif
    
    #ifndef HasPerl
    #define HasPerl			YES
    #endif
    
    #ifndef HasPerl5
    #define HasPerl5		HasPerl
    #endif
    
    #ifndef PerlCmd
    #define PerlCmd			perl
    #endif
    
    #ifndef PerlOptions
    #define PerlOptions		/**/
    #endif
    
    #ifndef PerlEnvSetup
    #define PerlEnvSetup		env LC_ALL=C
    #endif
    
    #ifndef BuildRman
    #define BuildRman 		NO
    #endif
    
    #ifndef HasGperf
    #define HasGperf		NO
    #endif
    
    #ifndef GperfCmd
    #define GperfCmd		gperf
    #endif
    
    #ifndef RmanCmd
    #if BuildRman
    #ifdef UseInstalled		/* assume BINDIR in path */
    #define RmanCmd rman
    #else
    #define RmanCmd $(TOP)/config/util/rman
    #endif
    #endif
    #endif
    
    #ifndef RmanOptions
    #if BuildRman
    #define RmanOptions -f HTML
    #endif
    #endif
    
    #ifndef BuildHtmlManPages
    #ifdef RmanCmd
    #define BuildHtmlManPages YES
    #else
    #define BuildHtmlManPages NO
    #endif
    #endif
    /* Can't do this while bootstrapping imake */
    #ifdef BootStrap
    #undef BuildHtmlManPages
    #define BuildHtmlManPages NO
    #endif
    
    #ifndef DontPreprocessManPages
    #ifdef UseInstalled
    #define DontPreprocessManPages YES
    #else
    #define DontPreprocessManPages NO
    #endif
    #endif
    
    #ifndef CompressManPages
    #define CompressManPages NO
    #endif
    
    #ifndef HasGroff
    #define HasGroff NO
    #endif
    #ifndef HasGroffHtml
    #define HasGroffHtml NO
    #endif
    
    #ifndef HasCookieMaker
    #define HasCookieMaker	NO
    #endif
    
    #ifndef DoLoadableServer
    #define DoLoadableServer NO
    #endif
    #ifndef MakeDllModules
    #define MakeDllModules NO
    #endif
    #ifndef StripInstalledPrograms
    #define StripInstalledPrograms NO	/* leave symbol table just in case */
    #endif
    #ifndef StaticNeedsPicForShared
    #define StaticNeedsPicForShared NO
    #endif
    
    #include <Imake.rules>
    
    #ifndef HasSharedLibraries
    #define HasSharedLibraries NO
    #endif
    #ifndef OSMajorVersion
    #define OSMajorVersion          0
    #endif
    #ifndef OSMinorVersion
    #define OSMinorVersion          0
    #endif
    #ifndef OSTeenyVersion
    #define OSTeenyVersion		0
    #endif
    #ifndef UnalignedReferencesAllowed
    #define UnalignedReferencesAllowed NO	/* if arbitrary deref is okay */
    #endif
    #ifndef AvoidNullMakeCommand
    #if !HasBsdMake
    #define AvoidNullMakeCommand NO
    #else
    #define AvoidNullMakeCommand YES
    #endif
    #endif
    #if AvoidNullMakeCommand
    #ifndef NullMakeCommand
    #define NullMakeCommand		@ echo -n
    #endif
    /*
     * An obscure bug in BSD4.3's original make causes it not to recognize a
     * macro definition if the macro name starts with a non-alpha and in
     * column one.
     */
     _NULLCMD_ = NullMakeCommand
    #endif
    
    #ifndef CrossCompiling
    #define CrossCompiling		NO
    #undef  CrossCompileDir
    #endif
    #ifndef BourneShell			/* to force shell in makefile */
    #define BourneShell		/bin/sh
    #endif
    #ifndef ConstructMFLAGS
    #if SystemV
    #define ConstructMFLAGS		YES	/* build MFLAGS from MAKEFLAGS */
    #else
    #define ConstructMFLAGS		NO	/* build MFLAGS from MAKEFLAGS */
    #endif
    #endif
    
    #ifndef ConstructMAKEFLAGS		/* needed on old BSD-based? */
    #define ConstructMAKEFLAGS	NO	/* build MAKEFLAGS from MFLAGS */
    #endif
    
    #ifndef HasLargeTmp
    #define HasLargeTmp		NO	/* be paranoid */
    #endif
    
    #ifndef HasMotif
    #define HasMotif		NO
    #endif
    #ifndef HasMotif2
    #define HasMotif2		NO      /* only if system has working Motif2 or OpenMotif */
    #endif
    #ifndef HasBSDAuth
    #define HasBSDAuth		NO
    #endif
    
    #ifndef HasBSD44Sockets
    #define HasBSD44Sockets		NO
    #endif
    #ifndef HasSockets
    #define HasSockets		YES
    #endif
    #ifndef HasStreams
    #define HasStreams		!HasSockets
    #endif
    #ifndef HasDECnet
    #define HasDECnet		NO
    #endif
    #ifndef HasPoll
    #if SystemV || SystemV4
    #define HasPoll			YES
    #else
    #define HasPoll			NO
    #endif
    #endif
    #ifndef HasVFork
    #if SystemV
    #define HasVFork		NO	/* not yet... */
    #else
    #define HasVFork		YES
    #endif
    #endif
    #ifndef HasSetProcTitle
    #define HasSetProcTitle		NO
    #endif
    #ifndef HasSetUserContext
    #define HasSetUserContext	NO
    #endif
    #ifndef HasLibCrypt
    #define HasLibCrypt		NO
    #endif
    #ifndef HasPutenv
    #define HasPutenv		NO	/* assume not */
    #endif
    /* setenv(3) and unsetenv(3) */
    #ifndef HasSetenv
    #define HasSetenv		YES	/* assume yes */
    #endif
    #ifndef HasVoidSignalReturn
    #define HasVoidSignalReturn	YES	/* assume yes */
    #endif
    #ifndef HasBsearch
    #define HasBsearch		YES	/* assume yes */
    #endif
    #ifndef HasSnprintf
    #define HasSnprintf		NO	/* assume not */
    #endif
    #ifndef HasStrlcat
    #define HasStrlcat		NO	/* assume not */
    #endif
    #ifndef HasDlopen
    #define HasDlopen		NO	/* assume not */
    #endif
    #ifndef HasWeakSymbols
    #define HasWeakSymbols		NO	/* assume not */
    #endif
    #ifndef HasIssetugid
    #define HasIssetugid		NO	/* assume not */
    #endif
    #ifndef HasGetresuid
    #define HasGetresuid		NO	/* assume not */
    #endif
    #ifndef HasMkstemp
    #define HasMkstemp		NO	/* assume not */
    #endif
    #ifndef HasUsableFileMmap
    #define HasUsableFileMmap	NO	/* assume not */
    #endif
    #ifndef HasGetIfAddrs
    #define HasGetIfAddrs		NO	/* assume not */
    #endif
    #ifndef HasStickyDirBit
    #define HasStickyDirBit		YES
    #endif
    #ifndef HasFchown
    #define HasFchown		YES
    #endif
    #ifndef HasPam
    #define HasPam			NO
    #endif
    #ifndef HasPamMisc
    #define HasPamMisc		NO
    #endif
    #ifndef HasGetpeereid
    #define HasGetpeereid		NO
    #endif
    #ifndef HasGetpeerucred
    #define HasGetpeerucred		NO
    #endif
    #ifndef NoStrstr
    #define NoStrstr		NO
    #endif
    #ifndef HasShadowPasswd
    #define HasShadowPasswd		NO
    #endif
    #ifndef HasBasename
    #define HasBasename		YES
    #endif
    #ifndef HasGetopt
    # if !defined(Win32Architecture) && !defined(OS2Architecture)
    #  define HasGetopt		YES
    # else
    #  define HasGetopt		NO
    # endif
    #endif
    #ifndef HasGetoptLong
    # define HasGetoptLong		NO
    #endif
    /* byte-order defaults */
    #ifndef ByteOrder
    #if defined(VaxArchitecture)
    #define ByteOrder		X_LITTLE_ENDIAN
    #elif defined(MipsArchitecture) && defined(MipselArchitecture)
    #define ByteOrder		X_LITTLE_ENDIAN
    #elif defined(MipsArchitecture)
    #define ByteOrder		X_BIG_ENDIAN
    #elif defined(i386Architecture)
    #define ByteOrder		X_LITTLE_ENDIAN
    #elif defined(ia64Architecture)
    #define ByteOrder		X_LITTLE_ENDIAN
    #elif defined(AMD64Architecture)
    #define ByteOrder		X_LITTLE_ENDIAN
    #elif defined(SparcArchitecture) || defined(Sparc64Architecture)
    #define ByteOrder		X_BIG_ENDIAN
    #elif defined(AlphaArchitecture)
    #define ByteOrder		X_LITTLE_ENDIAN
    #elif defined(Mc68000Architecture)
    #define ByteOrder		X_BIG_ENDIAN
    #elif defined(Mc68020Architecture)
    #define ByteOrder		X_BIG_ENDIAN
    #elif defined(Mc88000Architecture)
    #define ByteOrder		X_BIG_ENDIAN
    #elif defined(s390Architecture)
    #define ByteOrder		X_BIG_ENDIAN
    #elif defined(s390xArchitecture)
    #define ByteOrder		X_BIG_ENDIAN
    #elif defined(Arm32ebArchitecture)
    #define ByteOrder		X_BIG_ENDIAN
    #elif defined(Arm32Architecture)
    #define ByteOrder		X_LITTLE_ENDIAN
    #elif defined(RsArchitecture)
    #define ByteOrder		X_BIG_ENDIAN
    #elif defined(PpcArchitecture) || defined(Ppc64Architecture)
    #define ByteOrder		X_BIG_ENDIAN
    #elif defined(HPArchitecture)
    #define ByteOrder		X_BIG_ENDIAN
    #elif defined(SuperHArchitecture)
    #define ByteOrder		X_LITTLE_ENDIAN
    #elif defined(SuperHebArchitecture)
    #define ByteOrder		X_BIG_ENDIAN
    #endif
    #endif /* ByteOrder */
    X_BYTE_ORDER = ByteOrder
    
    #ifndef HasFortran
    #define HasFortran		NO
    #endif
    #ifndef HasGcc2ForCplusplus
    #define HasGcc2ForCplusplus	NO
    #endif
    #ifndef HasCplusplus
    #if HasGcc2ForCplusplus
    #define HasCplusplus		YES
    #else
    #define HasCplusplus		NO
    #endif
    #endif
    #ifndef HasMktemp
    #define HasMktemp		NO	/* if you have the mktemp command */
    #endif
    #ifndef HasNdbm
    #define HasNdbm			NO
    #endif
    #ifndef HasSecureRPC
    #define HasSecureRPC		NO	/* if you have Secure RPC */
    #endif
    #ifndef HasKrbIV
    #define HasKrbIV		NO	/* if you have Kerberos IV */
    #endif
    #ifndef HasKrb5
    #define HasKrb5			NO      /* if you have Kerberos V5 */
    #endif
    #ifndef HasLatex
    #define HasLatex		NO
    #endif
    #ifndef HasShm
    #if SystemV || SystemV4
    #define HasShm			YES
    #else
    #define HasShm			NO
    #endif
    #endif
    #ifndef HasCbrt
    #define HasCbrt			YES
    #endif
    #ifndef HasFfs
    #define HasFfs			YES
    #endif
    #ifndef HasZlib
    #define HasZlib			YES
    #endif
    #ifndef OsNeedZlibHeaders
    #define OsNeedZlibHeaders	!HasZlib
    #endif
    #if !HasZlib		/* if OS doesn't have it, we'll build it */
    XCOMM Building your own zlib can be a harmful security risk and is
    XCOMM deprecated; please strongly consider using vendor-supplied packages.
    #undef GzipLibrary	/* GzipLibrary was valid only if HasZlib */
    #endif
    #ifndef GzipLibrary	/* if OS config didn't define it, assume it's -lz */
    #define GzipLibrary -lz
    #endif
    /* If the system has the Freetype2 library - if NO, the copy in extras is built */
    #ifndef HasFreetype2
    #define HasFreetype2		YES
    #endif
    /* If the system has the Fontconfig library - if NO, the copy in extras is built  */
    #ifndef HasFontconfig
    #define HasFontconfig		NO
    #endif
    /* If the system has the PNG library - if NO, xcursorgen is not built */
    #ifndef HasLibpng
    #define HasLibpng		NO
    #endif
    #if HasKrbIV
    #ifndef KrbIVIncludes
    #define KrbIVIncludes /**/
    #endif
    #ifndef KrbIVLibraries
    #define KrbIVLibraries -lkrb -ldes
    #endif
    #endif
    #if HasKrb5
    #ifndef Krb5Includes
    #define Krb5Includes -I/krb5/include
    #endif
    #ifndef Krb5Libraries
    #define Krb5Libraries -L/krb5/lib -L/usr/isode/lib -lkrb5 -lcrypto -lisode -lcom_err -ldbm
    #endif
    #else
    #undef Krb5Includes
    #define Krb5Includes /**/
    #undef Krb5Libraries
    #define Krb5Libraries /**/
    #endif
    #ifndef UseGnuMalloc
    #define UseGnuMalloc		NO
    #endif
    #ifndef GnuMallocLibrary
    #define GnuMallocLibrary -lgmalloc
    #endif
    #ifndef MallocLibraries
    #if UseGnuMalloc
    #define MallocLibraries	GnuMallocLibrary
    #else
    #define MallocLibraries	/**/
    #endif
    #endif
    #ifndef HasPosixRegex		/* Most modern platforms have it */
    #define HasPosixRegex		YES
    #endif
    #ifndef RegexLibrary
    #if HasPosixRegex
    #define RegexLibrary		/**/
    #else
    #define RegexLibrary		-lregex
    #endif
    #endif
    #ifndef HasNCurses
    #define HasNCurses		NO
    #endif
    #ifndef NCursesLibName
    #if HasNCurses
    #define NCursesLibName	-lncurses
    #else
    #define NCursesLibName
    #endif
    #endif
    #ifdef NCursesLibDir
    NCURSESLIBDIR = NCursesLibDir
    #endif
    #ifdef NCursesIncDir
    NCURSESINCDIR = NCursesIncDir
    #endif
    #ifndef HasGlide2
    #define HasGlide2 NO
    #endif
    #ifndef Glide2IncDir
    #if HasGlide2
    #define Glide2IncDir /usr/include/glide
    #else
    #define Glide2IncDir
    #endif
    #endif
    GLIDE2INCDIR = Glide2IncDir
    #ifndef HasGlide3
    #define HasGlide3 NO
    #endif
    #ifndef Glide3IncDir
    #if HasGlide3
    #define Glide3IncDir /usr/include/glide3
    #else
    #define Glide3IncDir
    #endif
    #endif
    GLIDE3INCDIR = Glide3IncDir
    #ifndef Glide3LibName
    #if HasGlide3
    #define Glide3LibName glide3
    #else
    #define Glide3LibName
    #endif
    #endif
    GLIDE3LIBNAME = Glide3LibName
    #ifndef HasTk
    #define HasTk NO
    #endif
    #ifndef TkLibName
    #if HasTk
    #define TkLibName tk
    #else
    #define TkLibName
    #endif
    #endif
    TKLIBNAME = TkLibName
    #ifndef TkLibDir
    #if HasTk
    #define TkLibDir /usr/local/lib
    #else
    #define TkLibDir
    #endif
    #endif
    TKLIBDIR = TkLibDir
    #ifndef TkIncDir
    #if HasTk
    #define TkIncDir /usr/local/include
    #else
    #define TkIncDir
    #endif
    #endif
    #ifndef TkLibrary
    #ifdef HasTk
    #define TkLibrary Concat(-L,$(TKLIBDIR)) Concat(-l,$(TKLIBNAME))
    #else
    #define TkLibrary
    #endif
    #endif
    #ifndef HasTcl
    #define HasTcl NO
    #endif
    #ifndef TclLibName
    #if HasTcl
    #define TclLibName tcl
    #else
    #define TclLibName
    #endif
    #endif
    TCLLIBNAME = TclLibName
    #ifndef TclLibDir
    #if HasTcl
    #define TclLibDir /usr/local/lib
    #else
    #define TclLibDir
    #endif
    #endif
    TCLIBDIR = TclLibDir
    #ifndef TclIncDir
    #if HasTcl
    #define TclIncDir /usr/local/include
    #else
    #define TclIncDir
    #endif
    #endif
    #ifndef TclLibrary
    #ifdef HasTcl
    #define TclLibrary Concat(-L,$(TCLLIBDIR)) Concat(-l,$(TCLLIBNAME))
    #else
    #define TclLibrary
    #endif
    #endif
    #ifndef HasTsLib
    #define HasTsLib NO
    #endif
    /*
     * Libtool has two different behaviours for version numbers.
     * On platforms which support a minor number, the library
     * version is (version - minor).minor, on those that don't,
     * the version if version.0.  Linux and Darwin support minor
     * numbers; some BSDs do as well.  Set this to YES if libtool
     * uses minor numbers on your platform.
     */
    #ifndef LibtoolMinorVersions
    #define LibtoolMinorVersions	NO
    #endif
    #ifndef NeedConstPrototypes
    #define NeedConstPrototypes	NO
    #endif
    #ifndef NeedVarargsPrototypes
    #define NeedVarargsPrototypes	NO
    #endif
    #ifndef NeedNestedPrototypes
    #define NeedNestedPrototypes	NO
    #endif
    #ifndef NeedFunctionPrototypes
    #define NeedFunctionPrototypes (NeedVarargsPrototypes || NeedNestedPrototypes)
    #endif
    #ifndef NeedWidePrototypes
    #define NeedWidePrototypes	YES	/* mix and match ANSI-C, non-ANSI */
    #endif
    
    #ifndef UseCCMakeDepend			/* use slow cc -E script */
    #define UseCCMakeDepend NO
    #endif
    #ifndef UseGccMakeDepend		/* use slowish but correct gcc -M */
    #define UseGccMakeDepend NO
    #endif
    
    #ifndef CaseSensitiveFileSystem
    #define CaseSensitiveFileSystem YES
    #endif
    
    /* DefaultUsrBin is independent of ProjectRoot.
       This is a directory where programs will be found even if PATH
       is not set, for example when coming in remotely via rsh. */
    #ifndef DefaultUsrBin
    #define	DefaultUsrBin /usr/bin
    #endif
    
    #ifndef LibDirName
    # define LibDirName lib
    #endif
    
    #ifndef UsrLibDir
    #ifdef ProjectRoot
    #define UsrLibDir Concat3(ProjectRoot,/,LibDirName)
    #ifndef AlternateUsrLibDir
    #define AlternateUsrLibDir YES
    #endif
    #else
    #define UsrLibDir Concat3(/usr,/,LibDirName)
    #ifndef AlternateUsrLibDir
    #define AlternateUsrLibDir NO
    #endif
    #endif
    #else
    #ifndef AlternateUsrLibDir
    #define AlternateUsrLibDir YES
    #endif
    #endif
    #ifndef VarDirectory
    #ifdef ProjectVar
    #define VarDirectory ProjectVar
    #else
    #define VarDirectory /var
    #endif
    #endif
    #ifndef VarLibDir
    #define VarLibDir $(VARDIR)/lib
    #endif
    
    /*
     * SystemUsrLibDir is independent of ProjectRoot.  It is used primarily
     * to allow links for shared libraries in /usr/lib for compliance to
     * various standards (e.g., Linux/OpenGL).
     */
    #ifndef SystemUsrLibDir
    #define SystemUsrLibDir /usr/LibDirName
    #endif
    #ifndef SystemUsrIncDir
    #define SystemUsrIncDir /usr/include
    #endif
    
    #ifndef ShLibDir
    #define ShLibDir UsrLibDir
    #endif
    #ifndef IncRoot
    #ifdef ProjectRoot
    #define IncRoot Concat(ProjectRoot,/include)
    #ifndef AlternateIncRoot
    #define AlternateIncRoot YES
    #endif
    #else
    #define IncRoot /usr/include
    #ifndef AlternateIncRoot
    #define AlternateIncRoot NO
    #endif
    #endif
    #else
    #ifndef AlternateIncRoot
    #define AlternateIncRoot YES
    #endif
    #endif
    #ifndef LintlibDir
    #define LintlibDir $(USRLIBDIR)/lint
    #endif
    #ifndef SystemManDirectory
    #if SystemV4
    #define SystemManDirectory /usr/share/man
    #else
    #define SystemManDirectory /usr/man
    #endif
    #endif
    #ifndef ManDirectoryRoot
    #ifdef ProjectRoot
    #define ManDirectoryRoot Concat(ProjectRoot,/man)
    #else
    #define ManDirectoryRoot SystemManDirectory
    #endif
    #endif
    #ifndef ManPath
    #define ManPath ManDirectoryRoot
    #endif
    #ifndef ManSourcePath
    #define ManSourcePath $(MANPATH)/man
    #endif
    #ifndef ManDir
    #define ManDir $(MANSOURCEPATH)$(MANSUFFIX)
    #endif
    #ifndef LibmanDir
    #define LibmanDir $(MANSOURCEPATH)$(LIBMANSUFFIX)
    #endif
    #ifndef FileManDir
    #define FileManDir $(MANSOURCEPATH)$(FILEMANSUFFIX)
    #endif
    #ifndef MiscManDir
    #define MiscManDir $(MANSOURCEPATH)$(MISCMANSUFFIX)
    #endif
    #ifndef DriverManDir
    #define DriverManDir $(MANSOURCEPATH)$(DRIVERMANSUFFIX)
    #endif
    #ifndef AppLoadDefs
    #define AppLoadDefs -D__apploaddir__=$(XAPPLOADDIR)
    #endif
    #ifndef AppManDefs
    #define AppManDefs -D__appmansuffix__=$(MANSUFFIX)
    #endif
    #ifndef LibManDefs
    #define LibManDefs -D__libmansuffix__=$(LIBMANSUFFIX)
    #endif
    #ifndef FileManDefs
    #define FileManDefs -D__filemansuffix__=$(FILEMANSUFFIX)
    #endif
    #ifndef MiscManDefs
    #define MiscManDefs -D__miscmansuffix__=$(MISCMANSUFFIX)
    #endif
    #ifndef DriverManDefs
    #define DriverManDefs -D__drivermansuffix__=$(DRIVERMANSUFFIX)
    #endif
    #ifndef AdminManDefs
    #define AdminManDefs -D__adminmansuffix__=$(ADMINMANSUFFIX)
    #endif
    #ifndef ProjectManDefs
    #define ProjectManDefs -D__projectroot__=$(PROJECTROOT)
    #endif
    #ifndef XConfigFileManDefs
    #define XConfigFileManDefs -D__xconfigfile__=$(XCONFIGFILE)
    #endif
    #ifndef XConfigDirManDefs
    #define XConfigDirManDefs -D__xconfigdir__=$(XCONFIGDIR)
    #endif
    #ifndef XLogFileManDefs
    #define XLogFileManDefs -D__xlogfile__=$(XLOGFILE)
    #endif
    #ifndef XServerManDefs
    #define XServerManDefs -D__xservername__=$(XSERVERNAME)
    #endif
    
    #ifndef CompressManCmd
    #define CompressManCmd gzip -n
    #endif
    
    #ifndef HtmlIndexCmd
    #if BuildHtmlManPages
    #define HtmlIndexCmd $(MKHTMLINDEX)
    #endif
    #endif
    
    #ifndef LogDirectory
    #if HasVarDirectory
    #define LogDirectory $(VARDIR)/log
    #else
    #define LogDirectory /usr/adm
    #endif
    #endif
    
    #ifndef HasVarRun
    #define HasVarRun NO
    #endif
    
    #ifndef VarRunDirectory
    #if HasVarRun
    #define VarRunDirectory $(VARDIR)/run
    #endif
    #endif
    
    #ifndef HasVarDb
    #define HasVarDb NO
    #endif
    
    #ifndef VarDbDirectory
    #if HasVarDb
    #define VarDbDirectory $(VARDIR)/db
    #endif
    #endif
    
    #ifndef ConfigSrc
    #define ConfigSrc $(TOP)/config
    #endif
    #ifndef DependDir
    #if UseCCMakeDepend || UseGccMakeDepend
    #define DependDir $(CONFIGSRC)/util
    #else
    #define DependDir $(CONFIGSRC)/makedepend
    #endif
    #endif
    #ifndef UNCOMPRESSPATH
    #define UNCOMPRESSPATH /usr/ucb/uncompress /* obsolete */
    #endif
    #ifndef OptimizedCDebugFlags
    #define OptimizedCDebugFlags -O
    #endif
    #ifndef OptimizedCplusplusDebugFlags
    #define OptimizedCplusplusDebugFlags OptimizedCDebugFlags
    #endif
    #ifndef DebuggableCDebugFlags
    #define DebuggableCDebugFlags -g
    #endif
    #ifndef DebuggableCplusplusDebugFlags
    #define DebuggableCplusplusDebugFlags DebuggableCDebugFlags
    #endif
    #ifndef ProfiledCDebugFlags
    #define ProfiledCDebugFlags -pg
    #endif
    #ifndef ProfiledCplusplusDebugFlags
    #define ProfiledCplusplusDebugFlags ProfiledCDebugFlags
    #endif
    #ifndef NoOpCDebugFlags
    #define NoOpCDebugFlags /**/
    #endif
    #ifndef DefaultCDebugFlags
    #define DefaultCDebugFlags OptimizedCDebugFlags
    #endif
    #ifndef DefaultCplusplusDebugFlags
    #define DefaultCplusplusDebugFlags OptimizedCplusplusDebugFlags
    #endif
    #ifndef DefaultCCOptions
    #define DefaultCCOptions /* floating point, etc. */
    #endif
    #ifndef DefaultCplusplusOptions
    #define DefaultCplusplusOptions /* floating point, etc. */
    #endif
    #ifndef HardCodeLibdirFlag
    #define HardCodeLibdirFlag	/**/
    #endif
    #ifndef NoRConst
    #define NoRConst NO /* YES if const for structs of funcs is bad */
    #endif
    #ifndef InstPgmFlags
    # if CrossCompiling
    #  define InstPgmFlags
    # else
    #  define InstPgmFlags -s
    # endif
    #endif
    #ifndef InstBinFlags
    #define InstBinFlags -m 0755
    #endif
    #ifndef InstUidFlags
    #define InstUidFlags -m 4711
    #endif
    #ifndef InstLibFlags
    #define InstLibFlags -m 0644
    #endif
    #ifndef InstIncFlags
    #define InstIncFlags -m 0444
    #endif
    #ifndef InstManFlags
    #define InstManFlags -m 0444
    #endif
    #ifndef InstDatFlags
    #define InstDatFlags -m 0444
    #endif
    #ifndef InstKmemFlags     /* put -g kmem -m 2711 in site.def... */
    #define InstKmemFlags InstUidFlags
    #endif
    #ifndef ParallelMakeFlags
    #define ParallelMakeFlags /**/
    #endif
    #ifndef ArCmdBase
    #define ArCmdBase ar
    #endif
    #ifndef ArCmd
    #if HasLargeTmp || SystemV4
    #define ArCmd ArCmdBase cq
    #else
    #define ArCmd ArCmdBase clq
    #endif
    #endif
    #ifndef ArAddCmd
    #if HasLargeTmp || SystemV4
    #define ArAddCmd ArCmdBase ru
    #else
    #define ArAddCmd ArCmdBase rul
    #endif
    #endif
    #ifndef ArExtCmd
    #if HasLargeTmp || SystemV4
    #define ArExtCmd ArCmdBase x
    #else
    #define ArExtCmd ArCmdBase xl
    #endif
    #endif
    #ifndef BootstrapCFlags
    #define BootstrapCFlags /**/
    #endif
    #ifndef HasGcc3
    #define HasGcc3 NO
    #endif
    #ifndef HasGcc2
    #define HasGcc2 HasGcc3
    #endif
    #ifndef HasGcc
    #define HasGcc HasGcc2
    #endif
    #ifndef HasIntelC
    #define HasIntelC NO
    #endif
    #ifndef HasSunC
    #define HasSunC NO
    #endif
    #ifndef HasBrokenCCForLink
    #define HasBrokenCCForLink NO
    #endif
    #ifndef CcCmd
    #if HasGcc2
    #define CcCmd gcc -fpcc-struct-return
    #else
    #if HasGcc
    #define CcCmd gcc -fstrength-reduce -fpcc-struct-return
    #else
    #if HasCenterLineC
    #define CcCmd clcc
    #else
    #define CcCmd cc
    #endif
    #endif
    #endif
    #endif
    #ifndef CplusplusCmd
    #if HasGcc2ForCplusplus
    #define CplusplusCmd g++
    #else
    #define CplusplusCmd CC
    #endif
    #endif
    #ifndef CplusplusFilt
    # define CplusplusFilt	c++filt
    #endif
    #ifndef CplusplusLibC
    #if HasGcc2ForCplusplus
    #define CplusplusLibC	-lstdc++
    #else
    #define CplusplusLibC /**/
    #endif
    #endif
    #ifndef CplusplusStandardDefines
    #define CplusplusStandardDefines StandardDefines
    #endif
    #ifndef CplusplusExtraDefines
    #define CplusplusExtraDefines /**/
    #endif
    #ifndef CplusplusExtraIncludes
    #define CplusplusExtraIncludes /**/
    #endif
    #ifndef CplusplusDependIncludes
    #define CplusplusDependIncludes /**/
    #endif
    #ifndef CplusplusOptions
    #define CplusplusOptions DefaultCplusplusOptions
    #endif
    #ifndef CplusplusSpecialOptions
    #define CplusplusSpecialOptions /**/
    #endif
    #if HasFortran
    #ifndef FortranCmd
    #define FortranCmd f77
    #endif
    #ifndef FortranFlags
    #define FortranFlags /**/
    #endif
    #ifndef FortranDebugFlags	/* for -O or -g */
    #define FortranDebugFlags /**/
    #endif
    #endif
    #ifndef AsCmd
    #define AsCmd as
    #endif
    #ifndef AsmDefines
    #define AsmDefines /**/
    #endif
    #ifndef CompressCmd
    #define CompressCmd compress
    #endif
    #ifndef GzipCmd
    #define GzipCmd gzip
    #endif
    #ifndef CppCmd
    #define CppCmd /LibDirName/cpp
    #endif
    #ifndef RawCppCmd
    #define RawCppCmd CppCmd -undef
    #endif
    #ifndef CppNoLineInfoOption
    #define CppNoLineInfoOption /**/
    #endif
    #ifndef PreProcessCmd
    #define PreProcessCmd CcCmd -E
    #endif
    #ifndef InstallCmd		/* hack should be in project */
    #if SystemV || SystemV4
    #ifdef UseInstalled		/* assume BINDIR in path */
    #define InstallCmd bsdinst
    #else
    #define InstallCmd $(SHELL) $(CONFIGSRC)/util/bsdinst.sh
    #endif
    #else
    #define InstallCmd install
    #endif
    #endif
    #ifndef InstallFlags
    #define InstallFlags -c
    #endif
    #ifndef StripCmd
    #define StripCmd strip
    #endif
    #ifndef LdCmd
    #define LdCmd ld
    #endif
    #ifndef M4Cmd
    #define M4Cmd m4
    #endif
    #ifndef M4Flags
    #define M4Flags /**/
    #endif
    #ifndef LexCmd
    #define LexCmd lex
    #endif
    #ifndef LexLib
    #define LexLib -ll
    #endif
    #ifndef HasFlex
    #define HasFlex NO
    #endif
    #ifndef YaccCmd
    #define YaccCmd yacc
    #endif
    #ifndef CplusplusYaccCmd
    #define CplusplusYaccCmd YaccCmd
    #endif
    #ifndef LintCmd
    #define LintCmd lint
    #endif
    #ifndef LintLibFlag
    #if SystemV || SystemV4
    #define LintLibFlag -o
    #else
    #define LintLibFlag -C
    #endif
    #endif
    #ifndef LintOpts
    #if SystemV || SystemV4
    #define LintOpts -bh
    #else
    #define LintOpts -axz
    #endif
    #endif
    #ifndef CpCmd
    #define CpCmd cp
    #endif
    #ifndef LnCmd /* can use cp instead of ln if necessary */
    #if HasSymLinks
    #define LnCmd ln -s
    #else
    #define LnCmd ln
    #endif
    #endif
    #ifndef MakeCmd
    #define MakeCmd make
    #endif
    #ifndef MvCmd
    #define MvCmd mv -f
    #endif
    #ifndef RanlibCmd
    #define RanlibCmd ranlib
    #endif
    #ifndef RanlibInstFlags
    #define RanlibInstFlags /**/
    #endif
    #ifndef RmCmd
    #define RmCmd rm -f
    #endif
    
    /*
     * Module cross-compile stuff.  By default they are defined to be exactly the
     * same as the non-module versions.
     */
    #ifndef ModuleCcCmd
    #define ModuleCcCmd CcCmd
    #endif
    #ifndef ModuleCppCmd
    #define ModuleCppCmd CppCmd
    #endif
    #ifndef ModuleCFlags
    #define ModuleCFlags $(CFLAGS)
    #endif
    #ifndef ModuleAsCmd
    #define ModuleAsCmd AsCmd
    #endif
    #ifndef ModuleAsFlags
    #define ModuleAsFlags /**/
    #endif
    #ifndef ModuleLdCmd
    #define ModuleLdCmd LdCmd
    #endif
    #ifndef ModuleLdFlags
    #define ModuleLdFlags /**/
    #endif
    #ifndef ModuleLdCombineFlags
    #define ModuleLdCombineFlags LdCombineFlags
    #endif
    #ifndef ModuleArCmd
    #define ModuleArCmd ArCmd
    #endif
    #ifndef NeedModuleRanlib
    #define NeedModuleRanlib NO
    #endif
    #ifndef ModuleRanlibCmd
    #define ModuleRanlibCmd RanlibCmd
    #endif
    
    #ifndef HostCcCmd
    #define HostCcCmd cc
    #endif
    #ifndef StandardIncludes	/* for platform-specifics */
    #define StandardIncludes /**/
    #endif
    #ifndef StandardDefines
    #if SystemV
    #define StandardDefines -DSYSV
    #else
    #if SystemV4
    #define StandardDefines -DSVR4
    #else
    #define StandardDefines /**/
    #endif
    #endif
    #endif
    #ifndef StandardCppOptions
    #define StandardCppOptions /**/
    #endif
    #ifndef StandardCppDefines
    #define StandardCppDefines StandardCppOptions StandardDefines
    #endif
    #ifndef Malloc0ReturnsNull
    #if UseGnuMalloc
    #define Malloc0ReturnsNull YES
    #else
    #define Malloc0ReturnsNull NO
    #endif
    #endif
    #if Malloc0ReturnsNull
    #ifndef Malloc0ReturnsNullDefines
    #define Malloc0ReturnsNullDefines -DMALLOC_0_RETURNS_NULL
    #endif
    #endif
    #ifndef ToolkitStringsABIOptions
    #define ToolkitStringsABIOptions /**/
    #endif
    #ifndef NdbmDefines
    #if HasNdbm
    #define NdbmDefines -DNDBM
    #else
    #define NdbmDefines /**/
    #endif
    #endif
    #ifndef HasLdRunPath
    #define HasLdRunPath NO
    #endif
    #ifndef LdPreLib
    # if !defined(UseInstalled)
    #  define LdPreLib -L$(BUILDLIBDIR)
    # else
    # if AlternateUsrLibDir
    #  define LdPreLib -L$(USRLIBDIR)
    # else
    # define LdPreLib /**/
    # endif
    #endif
    #endif
    #ifndef LdPostLib
    #if !defined(UseInstalled) && AlternateUsrLibDir && !HasLdRunPath && !defined(CrossCompileDir)
    #define LdPostLib -L$(USRLIBDIR)
    #else
    #define LdPostLib /**/
    #endif
    #endif
    #ifndef MathLibrary
    #define MathLibrary -lm
    #endif
    #ifndef DBMLibrary
    #define DBMLibrary -ldbm
    #endif
    #ifndef DlLibrary
    #define DlLibrary -ldl
    #endif
    #ifndef ExtraLibraries
    #if SystemV4
    #if HasSockets
    #define ExtraLibraries -lsocket -lnsl -lw
    #else
    #define ExtraLibraries -lnsl -lw
    #endif
    #else
    #define ExtraLibraries /**/
    #endif
    #endif
    #ifndef ExtraLoadOptions
    #define ExtraLoadOptions /**/
    #endif
    #ifndef ExtraLoadFlags
    #define ExtraLoadFlags /**/
    #endif
    #ifndef LdCombineFlags
    #if SystemV4
    #define LdCombineFlags -r
    #else
    #define LdCombineFlags -X -r
    #endif
    #endif
    #ifndef LdStripFlags
    #define LdStripFlags -x
    #endif
    #ifndef TagsCmd
    #define TagsCmd ctags
    #endif
    #ifndef LoaderLibPrefix
    #define LoaderLibPrefix /**/
    #endif
    #ifndef ImakeCmd
    #ifdef UseInstalled		/* assume BINDIR in path */
    #define ImakeCmd imake
    #else
    #define ImakeCmd $(IMAKESRC)/imake
    #endif
    #endif
    #ifndef ImakeWarningFlags
    #define ImakeWarningFlags	/* Nothing */
    #endif
    #ifndef DependCmd
    #if UseGccMakeDepend
    #ifdef UseInstalled		/* assume BINDIR in path */
    #define DependCmd gccmakedep
    #else
    #define DependCmd $(DEPENDSRC)/gccmakedep
    #endif
    #elif UseCCMakeDepend
    #ifdef UseInstalled		/* assume BINDIR in path */
    #define DependCmd ccmakedep
    #else
    #define DependCmd $(DEPENDSRC)/ccmakedep
    #endif
    #else
    #ifdef UseInstalled		/* assume BINDIR in path */
    #define DependCmd makedepend
    #else
    #define DependCmd $(DEPENDSRC)/makedepend
    #endif
    #endif
    #endif
    #ifndef DependDefines
    # if UseCCMakeDepend || UseGccMakeDepend
    #  define DependDefines /**/
    # else
    #  define DependDefines -DUSE_MAKEDEPEND
    # endif
    #endif
    #ifndef DependFlags
    #define DependFlags /**/
    #endif
    #ifndef DependFileName
    #if !HasBsdMake
    #define DependFileName Makefile.dep
    #else
    #define DependFileName .depend
    #endif
    #endif
    #ifndef ExportListCmd
    # ifndef ExportListGenSource
    #  define ExportListCmd		/**/
    # elif !defined(UseInstalled)
    #  define ExportListCmd		$(CONFIGSRC)/util/exportlistgen
    # else
    #  define ExportListCmd		exportlistgen
    # endif
    #endif
    #ifndef MkdirHierCmd
    #ifdef UseInstalled		/* assume BINDIR in path */
    #define MkdirHierCmd mkdirhier
    #else
    #define MkdirHierCmd $(SHELL) $(CONFIGSRC)/util/mkdirhier.sh
    #endif
    #endif
    #ifndef RevPathCmd
    #ifdef UseInstalled		/* assume BINDIR in path */
    #define RevPathCmd revpath
    #else
    #define RevPathCmd $(CONFIGSRC)/util/revpath
    #endif
    #endif
    #ifndef TroffCmd
    #if HasGroff
    #define TroffCmd groff -Tps
    #else
    #define TroffCmd troff -Tps
    #endif
    #endif
    #ifndef NroffCmd
    #define NroffCmd nroff
    #endif
    #ifndef HTMLroffCmd
    #if HasGroff && HasGroffHtml
    #define HTMLroffCmd groff -Thtml
    #endif
    #endif
    #ifdef HTMLroffCmd
    #ifndef DocFilesToClean
    #define DocFilesToClean grohtml*.png *-auto-*.png
    #endif
    #endif
    #ifndef MsMacros
    #define MsMacros -ms
    #endif
    #ifndef ManMacros
    #define ManMacros -man
    #endif
    #ifndef TblCmd
    #define TblCmd tbl
    #endif
    #ifndef EqnCmd
    #define EqnCmd eqn
    #endif
    #ifndef NeqnCmd
    #define NeqnCmd neqn
    #endif
    #ifndef ColCmd
    #define ColCmd col
    #endif
    #ifndef ColFlags
    #define ColFlags -b
    #endif
    #ifndef DvipsCmd
    #define DvipsCmd dvips
    #endif
    #ifndef LatexCmd
    #define LatexCmd latex
    #endif
    #ifndef HasPdfLatex
    #define HasPdfLatex NO
    #endif
    #ifndef PdfLatexCmd
    #define PdfLatexCmd pdflatex
    #endif
    #ifndef GhostScriptCmd
    #define GhostScriptCmd gs
    #endif
    #ifndef HasGhostPCL
    #define HasGhostPCL NO
    #endif
    #ifndef HasGhostScript
    #define HasGhostScript NO
    #endif
    #ifndef BuildPDFdocs
    #define BuildPDFdocs (HasGhostScript)
    #endif
    #if BuildPDFdocs
    #define PsToPdfCmd GhostScriptCmd -q -sOutputFile=- -sDEVICE=pdfwrite -dSAFER -dNOPAUSE -
    #endif
    #if HasSentinel
    #ifndef SentinelCmd
    #define SentinelCmd sentinel
    #endif
    #ifndef SentinelOptions
    #define SentinelOptions /**/
    #endif
    #endif
    #if HasPurify
    #ifndef PurifyCmd
    #define PurifyCmd purify
    #endif
    #ifndef PurifyOptions
    #define PurifyOptions /**/
    #endif
    #endif
    #if HasTestCenter
    #ifndef ProofCmd
    #define ProofCmd proof
    #endif
    #ifndef ProofOptions
    #define ProofOptions /**/
    #endif
    #endif
    #ifndef PathSeparator
    #define PathSeparator /
    #endif
    #ifndef Osuf
    #define Osuf o
    #endif
    #ifndef CCsuf
    #define CCsuf cc
    #endif
    #ifndef SHsuf
    #define SHsuf sh
    #endif
    #ifndef ManSuffix
    #define ManSuffix	n		/* use just one tab or cpp will die */
    #endif
    #ifndef LibManSuffix
    #define LibManSuffix	3		/* use just one tab or cpp will die */
    #endif
    #ifndef FileManSuffix
    #if SystemV || SystemV4 || defined(OSF1Architecture)
    #define FileManSuffix	4		/* use just one tab or cpp will die */
    #else
    #define FileManSuffix	5		/* use just one tab or cpp will die */
    #endif
    #endif
    #ifndef MiscManSuffix
    #if SystemV || SystemV4 || defined(OSF1Architecture)
    #define MiscManSuffix	5		/* use just one tab or cpp will die */
    #else
    #define MiscManSuffix	7		/* use just one tab or cpp will die */
    #endif
    #endif
    #ifndef DriverManSuffix
    #if SystemV || SystemV4 || defined(OSF1Architecture)
    #define DriverManSuffix	7		/* use just one tab or cpp will die */
    #else
    #define DriverManSuffix	4		/* use just one tab or cpp will die */
    #endif
    #endif
    #ifndef AdminManSuffix
    #if SystemV || SystemV4
    #define AdminManSuffix	1m		/* use just one tab or cpp will die */
    #else
    #define AdminManSuffix	8		/* use just one tab or cpp will die */
    #endif
    #endif
    #ifndef ExpandManNames
    #if SystemV
    #define ExpandManNames NO
    #else
    #define ExpandManNames YES
    #endif
    #endif
    #ifndef ManSrcSuffix
    #define ManSrcSuffix	man
    #endif
    #ifndef ManNewSuffix
    #define ManNewSuffix	_man
    #endif
    #ifndef TOPDIR
    #define TOPDIR .
    #endif
    #ifndef CURDIR
    #define CURDIR .
    #endif
    #ifndef SiteIConfigFiles
    #define SiteIConfigFiles /**/
    #endif
    #ifndef OtherIConfigFiles
    #define OtherIConfigFiles /**/
    #endif
    #ifndef ExtraFilesToClean
    #define ExtraFilesToClean /**/
    #endif
    #ifndef DocFilesToClean
    #define DocFilesToClean /**/
    #endif
    #ifndef FilesToClean
    #define FilesToClean *.CKP *.ln *.BAK *.bak *.Osuf core errs ,* *~ *.a .emacs_* tags TAGS make.log MakeOut
    #endif
    
    #ifdef CrossCompileDir
    # ifndef StripPath
    #  define StripPath(x) `echo x|sed "s%.*/%%"`
    # endif
    # ifndef CrossArCmd
    #  define CrossArCmd Concat3(CrossCompileDir,/,StripPath(ArCmd))
    # endif
    # ifndef CrossCcCmd
    #  define CrossCcCmd Concat3(CrossCompileDir,/,StripPath(CcCmd))
    # endif
    # ifndef CrossAsCmd
    #  define CrossAsCmd Concat3(CrossCompileDir,/,StripPath(AsCmd))
    # endif
    # ifdef HasFortran
    #  ifndef CrossFortranCmd
    #   define CrossFortranCmd Concat3(CrossCompileDir,/,StripPath(FortranCmd))
    #  endif
    # endif
    # ifndef CrossCplusplusCmd
    #  define CrossCplusplusCmd Concat3(CrossCompileDir,/,StripPath(CplusplusCmd))
    # endif
    # ifndef CrossCppCmd
    #  define CrossCppCmd Concat3(CrossCompileDir,/,StripPath(CppCmd))
    # endif
    # ifndef CrossRawCppCmdCmd
    #  define CrossRawCppCmd Concat3(CrossCompileDir,/,StripPath(RawCppCmd))
    # endif
    # ifndef CrossPreProcessCmd
    #  define CrossPreProcessCmd Concat3(CrossCompileDir,/,StripPath(PreProcessCmd))
    # endif
    # ifndef CrossAsCmd
    #  define CrossAsCmd Concat3(CrossCompileDir,/,StripPath(AsCmd))
    # endif
    # ifndef CrossLdCmd
    #  define CrossLdCmd Concat3(CrossCompileDir,/,StripPath(LdCmd))
    # endif
    # ifndef CrossModuleLdCmd
    #  define CrossModuleLdCmd CrossLdCmd
    # endif
    # ifndef CrossLintCmd
    #  define CrossLintCmd Concat3(CrossCompileDir,/,StripPath(LintCmd))
    # endif
    # ifndef CrossRanlibCmd
    #  define CrossRanlibCmd Concat3(CrossCompileDir,/,StripPath(RanlibCmd))
    # endif
    # ifndef CrossModuleCcCmd
    #  define CrossModuleCcCmd Concat3(CrossCompileDir,/,StripPath(ModuleCcCmd))
    # endif
    # ifndef CrossAsCmd
    #  define CrossAsCmd Concat3(CrossCompileDir,/,StripPath(AsCmd))
    # endif
    # ifndef CrossStripCmd
    #  define CrossStripCmd Concat3(CrossCompileDir,/,StripPath(StripCmd))
    # endif
    #endif
    
              PATHSEP = PathSeparator
                SHELL = BourneShell
    
                  TOP = TOPDIR
          CURRENT_DIR = CURDIR
    
                IMAKE = ImakeCmd
               DEPEND = DependCmd
            MKDIRHIER = MkdirHierCmd
              REVPATH = RevPathCmd
        EXPORTLISTGEN = ExportListCmd
                 RMAN = RmanCmd
         RMANBASENAME = HostProgramTargetName(rman)
          RMANOPTIONS = RmanOptions
            CONFIGSRC = ConfigSrc
             IMAKESRC = $(CONFIGSRC)/imake
            DEPENDSRC = DependDir
    
              INCROOT = IncRoot		/* base of where to put header files */
            USRLIBDIR = UsrLibDir		/* nonshared libraries */
               VARDIR = VarDirectory	/* usually /var */
            VARLIBDIR = VarLibDir		/* xdm runtime files */
      SYSTEMUSRLIBDIR = SystemUsrLibDir	/* system's "/usr/lib" */
      SYSTEMUSRINCDIR = SystemUsrIncDir	/* system's "/usr/include" */
             SHLIBDIR = ShLibDir            /* shared libraries */
           LINTLIBDIR = LintlibDir		/* lint libraries */
              MANPATH = ManPath		/* top of manual page tree */
        MANSOURCEPATH = ManSourcePath	/* prefix for man page sources */
               MANDIR = ManDir		/* man pages for commands */
            LIBMANDIR = LibmanDir		/* man pages for library routines */
           FILEMANDIR = FileManDir		/* man pages for config files */
           MISCMANDIR = MiscManDir		/* man pages for miscellaneous files */
         DRIVERMANDIR = DriverManDir	/* man pages for drivers */
         LOGDIRECTORY = LogDirectory	/* OS location of log files */
    #ifdef VarRunDirectory
            VARRUNDIR = VarRunDirectory	/* OS location of PID files */
    #endif
    #ifdef VarDbDirectory
             VARDBDIR = VarDbDirectory	/* OS location of db/state files */
    #endif
    #ifdef CrossCompileDir
                   AR = CrossArCmd
    #else
                   AR = ArCmd
    #endif
    XCOMM Nice try but useless: make will inherit BOOTSTRAPCFLAGS
    XCOMM from  top Makefile
      BOOTSTRAPCFLAGS = BootstrapCFlags	/* set if cpp does not have uniq sym */
    #ifdef CrossCompileDir
                   CC = CrossCcCmd
                   AS = CrossAsCmd
    #else
                   CC = CcCmd
                   AS = AsCmd
    #endif
    #if HasFortran
    # ifdef CrossCompileDir
                   FC = CrossFortranCmd
    # else
                   FC = FortranCmd
    # endif
          FDEBUGFLAGS = FortranDebugFlags
              FCFLAGS = FortranFlags $(FDEBUGFLAGS)
    #endif
    #if HasCplusplus
    
    .SUFFIXES: Concat(.,CCsuf)
    
    #ifdef CrossCompileDir
                  CXX = CrossCplusplusCmd
    #else
                  CXX = CplusplusCmd
    #endif
              CXXFILT = CplusplusFilt
    #ifdef CplusplusLibCDir
            CXXLIBDIR = CplusplusLibCDir
               CXXLIB = -L$(CXXLIBDIR) CplusplusLibC
    #else
               CXXLIB = CplusplusLibC
    #endif
    
        CXXDEBUGFLAGS = DefaultCplusplusDebugFlags
    CXXDEPENDINCLUDES = CplusplusDependIncludes
     CXXEXTRA_DEFINES = CplusplusExtraDefines
    CXXEXTRA_INCLUDES = CplusplusExtraIncludes
       CXXSTD_DEFINES = CplusplusStandardDefines $(CXXPROJECT_DEFINES)
           CXXOPTIONS = CplusplusOptions
          CXXINCLUDES = $(INCLUDES) $(TOP_INCLUDES) $(CXXEXTRA_INCLUDES)
           CXXDEFINES = $(CXXINCLUDES) $(CXXSTD_DEFINES) $(THREADS_CXXDEFINES) $(DEFINES) $(CXXEXTRA_DEFINES)
             CXXFLAGS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(THREADS_CXXFLAGS) $(CXXDEFINES)
    #endif
             COMPRESS = CompressCmd
              GZIPCMD = GzipCmd
    #ifdef CrossCompileDir
                  CPP = CrossCppCmd $(STD_CPP_DEFINES)
               RAWCPP = CrossRawCppCmd $(STD_CPP_OPTIONS)
        PREPROCESSCMD = CrossPreProcessCmd $(STD_CPP_DEFINES)
    #else
                  CPP = CppCmd $(STD_CPP_DEFINES)		/* simple filters */
               RAWCPP = RawCppCmd $(STD_CPP_OPTIONS)
        PREPROCESSCMD = PreProcessCmd $(STD_CPP_DEFINES)	/* prefered; mdep */
    #endif
              INSTALL = InstallCmd
         INSTALLFLAGS = InstallFlags
    #ifdef CrossCompileDir
                   LD = CrossLdCmd
    #else
                   LD = LdCmd
    #endif
                  LEX = LexCmd
                   M4 = M4Cmd
              M4FLAGS = M4Flags
               LEXLIB = LexLib
                 YACC = YaccCmd
               CCYACC = CplusplusYaccCmd
    #ifdef CrossCompileDir
                 LINT = CrossLintCmd
    #else
                 LINT = LintCmd
    #endif
          LINTLIBFLAG = LintLibFlag
             LINTOPTS = LintOpts
                   LN = LnCmd
                 MAKE = MakeCmd
                   MV = MvCmd
                   CP = CpCmd
    #if DoRanlibCmd
    #ifdef CrossCompileDir
               RANLIB = CrossCompileDir/RanlibCmd
    #else
               RANLIB = RanlibCmd
    #endif
      RANLIBINSTFLAGS = RanlibInstFlags
    #endif
                   RM = RmCmd
                 PERL = PerlCmd
             PERLOPTS = PerlOptions
         PERLENVSETUP = PerlEnvSetup
            MANSUFFIX = ManSuffix		/* suffix for command man pages */
         LIBMANSUFFIX = LibManSuffix	/* suffix for library man pages */
        FILEMANSUFFIX = FileManSuffix	/* suffix for file format man pages */
        MISCMANSUFFIX = MiscManSuffix	/* suffix for misc man pages */
      DRIVERMANSUFFIX = DriverManSuffix	/* suffix for driver man pages */
       ADMINMANSUFFIX = AdminManSuffix	/* suffix for admin command man pages */
         MANSRCSUFFIX = ManSrcSuffix	/* suffix for man page source */
         MANNEWSUFFIX = ManNewSuffix	/* suffix for preprocessed man source */
              MANDEFS = AppLoadDefs AppManDefs FileManDefs LibManDefs MiscManDefs DriverManDefs AdminManDefs ProjectManDefs XConfigFileManDefs XConfigDirManDefs XLogFileManDefs XServerManDefs $(XORGMANDEFS) $(VENDORMANDEFS)
    
       COMPRESSMANCMD = CompressManCmd
    
                TROFF = TroffCmd
                NROFF = NroffCmd
    #ifdef HTMLroffCmd
             HTMLROFF = HTMLroffCmd
    #endif
    #ifdef PsToPdfCmd
           PSTOPDFCMD = PsToPdfCmd
    #endif
             MSMACROS = MsMacros
            MANMACROS = ManMacros
                  TBL = TblCmd
                  EQN = EqnCmd
                 NEQN = NeqnCmd
                  COL = ColCmd
             COLFLAGS = ColFlags
    #ifdef CrossCompileDir
    	    MODCC = CrossModuleCcCmd
    #else
                MODCC = ModuleCcCmd
    #endif
               MODCPP = ModuleCppCmd
            MODCFLAGS = ModuleCFlags
                MODAS = ModuleAsCmd
           MODASFLAGS = ModuleAsFlags
    #ifdef CrossCompileDir
    	    MODLD = CrossModuleLdCmd
    #else
                MODLD = ModuleLdCmd
    #endif
           MODLDFLAGS = ModuleLdFlags
    MODLDCOMBINEFLAGS = ModuleLdCombineFlags
                MODAR = ModuleArCmd
    #ifdef CrossCompileDir
            MODRANLIB = CrossCompileDir/ModuleRanlibCmd
    #else
            MODRANLIB = ModuleRanlibCmd
    #endif
    #if HasLatex
                DVIPS = DvipsCmd
                LATEX = LatexCmd
    #endif
    #if HasPdfLatex
          PDFLATEXCMD = PdfLatexCmd
    #endif
    #if HasSentinel
             SENTINEL = SentinelCmd
      SENTINELOPTIONS = SentinelOptions
    #endif
    #if HasPurify
               PURIFY = PurifyCmd
        PURIFYOPTIONS = PurifyOptions
    #endif
    #if HasTestCenter
               PROOF = ProofCmd
        PROOFOPTIONS = ProofOptions
    #endif
    #if CrossCompiling
              HOST_CC = HostCcCmd
    #endif
         STD_INCLUDES = StandardIncludes
      STD_CPP_OPTIONS = StandardCppOptions
      STD_CPP_DEFINES = StandardCppOptions StandardCppDefines $(PROJECT_DEFINES)
          STD_DEFINES = StandardDefines $(PROJECT_DEFINES)
     EXTRA_LOAD_FLAGS = ExtraLoadFlags
      EXTRA_LDOPTIONS = ExtraLoadOptions
      EXTRA_LIBRARIES = MallocLibraries ExtraLibraries Krb5Libraries
                 TAGS = TagsCmd
    #if ConstructMFLAGS
               MFLAGS = -$(MAKEFLAGS)
    #endif
    #if ConstructMAKEFLAGS
            MAKEFLAGS = $(MFLAGS)
    #endif
       PARALLELMFLAGS = ParallelMakeFlags
    #if HasSharedLibraries
        SHAREDCODEDEF = SharedCodeDef
             SHLIBDEF = SharedLibraryDef
    #ifdef SharedLibraryLoadFlags
         SHLIBLDFLAGS = SharedLibraryLoadFlags $(SHLIBGLOBALSFLAGS)
    #if HasGcc
             NOSTDLIB = -nostdlib
         POSTNOSTDLIB = -Wl,-Bstatic -lgcc -Wl,-Bdynamic
    #elif HasIntelC
             NOSTDLIB = -nostdlib
         POSTNOSTDLIB =
    #elif HasSunC
             NOSTDLIB = -xnolib
         POSTNOSTDLIB =
    #endif
    #endif
    /*
     * Here we set up flags needed to produce position-independent code
     * when doing C and C++ compilation.  The default if you specify C
     * PIC flags without also specifying C++ PIC flags is to assume that
     * the C flags work for both.  If your C++ compiler requires different
     * flags, specify them explicitly in PositionIndependentCplusplusFlags.
     */
    #ifdef PositionIndependentCFlags
             PICFLAGS = PositionIndependentCFlags
    #endif
    #ifdef PositionIndependentCplusplusFlags
          CXXPICFLAGS = PositionIndependentCplusplusFlags
    #else
    #ifdef PositionIndependentCFlags
          CXXPICFLAGS = PositionIndependentCFlags
    #endif
    #endif
    #endif
    #if !HasVoidSignalReturn
       SIGNAL_DEFINES = -DSIGNALRETURNSINT
    #endif
    /*
     * The following supports forcing of function prototypes
     */
    #if NeedFunctionPrototypes && NeedVarargsPrototypes && NeedConstPrototypes && NeedNestedPrototypes
    #define _funcprotodef -DFUNCPROTO=15
    #else
    #if NeedFunctionPrototypes && NeedVarargsPrototypes && NeedNestedPrototypes
    #define _funcprotodef -DFUNCPROTO=11
    #else
    #if NeedFunctionPrototypes && NeedNestedPrototypes
    #define _funcprotodef -DFUNCPROTO=9
    #else
    #if NeedFunctionPrototypes && NeedVarargsPrototypes && NeedConstPrototypes
    #define _funcprotodef -DFUNCPROTO=7
    #else
    #if NeedFunctionPrototypes && NeedConstPrototypes
    #define _funcprotodef -DFUNCPROTO=5
    #else
    #if NeedFunctionPrototypes && NeedVarargsPrototypes
    #define _funcprotodef -DFUNCPROTO=3
    #else
    #if NeedFunctionPrototypes
    #define _funcprotodef -DFUNCPROTO
    #else
    #define _funcprotodef /**/
    #endif
    #endif
    #endif
    #endif
    #endif
    #endif
    #endif
    #if NeedWidePrototypes
    #define _wideprotodef /**/
    #else
    #define _wideprotodef -DNARROWPROTO
    #endif
        PROTO_DEFINES = _funcprotodef _wideprotodef
    #undef _funcprotodef
    #undef _wideprotodef
    
    #if StripInstalledPrograms
         INSTPGMFLAGS = InstPgmFlags	/* install flags for stripping */
    #else
         INSTPGMFLAGS =
    #endif
         INSTBINFLAGS = InstBinFlags	/* install flags for programs */
         INSTUIDFLAGS = InstUidFlags	/* install flags for setuid programs */
         INSTLIBFLAGS = InstLibFlags	/* install flags for libraries */
         INSTINCFLAGS = InstIncFlags	/* install flags for headers */
         INSTMANFLAGS = InstManFlags	/* install flags for man pages */
         INSTDATFLAGS = InstDatFlags	/* install flags for data files */
        INSTKMEMFLAGS = InstKmemFlags	/* install flags for /dev/kmem progs */
    
    #ifdef ProjectRoot
          PROJECTROOT = ProjectRoot
    #endif
    #ifdef UseInstalled
    # if AlternateIncRoot
    #  define TopInclude	-I$(INCROOT)
    # else
    #  define TopInclude	/**/
    # endif
    #else
    # define TopInclude	-I$(TOP)
    #endif
    
          CDEBUGFLAGS = DefaultCDebugFlags
            CCOPTIONS = DefaultCCOptions	/* to distinguish from param flags */
    /*
     * STD_INCLUDES contains system-specific includes
     * TOP_INCLUDES specifies how to get to /usr/include or its build substitute
     * EXTRA_INCLUDES contains project-specific includes set in project incfiles
     * INCLUDES contains client-specific includes set in Imakefile
     * LOCAL_LDFLAGS contains client-specific ld flags flags set in Imakefile
     */
          ALLINCLUDES = $(INCLUDES) $(EXTRA_INCLUDES) $(TOP_INCLUDES) $(INSTALLED_INCLUDES) $(STD_INCLUDES)
           ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(THREADS_DEFINES) $(MODULE_DEFINES) $(DEFINES) $(EXTRA_DEFINES)
               CFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(THREADS_CFLAGS) $(MODULE_CFLAGS) $(ALLDEFINES)
            LINTFLAGS = $(LINTOPTS) -DLINT $(ALLDEFINES) $(DEPEND_DEFINES)
             LDPRELIB = LdPreLib $(INSTALLED_LIBS)
            LDPOSTLIB = LdPostLib
            LDOPTIONS = $(CDEBUGFLAGS) $(CCOPTIONS)  $(EXTRA_LDOPTIONS) $(THREADS_LDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
         CXXLDOPTIONS = $(CXXDEBUGFLAGS) $(CXXOPTIONS) $(EXTRA_LDOPTIONS) $(THREADS_CXXLDFLAGS) $(LOCAL_LDFLAGS) $(LDPRELIBS)
    
               LDLIBS = $(LDPOSTLIBS) $(THREADS_LIBS) $(SYS_LIBRARIES) $(EXTRA_LIBRARIES)
    #if HasBrokenCCForLink
               CCLINK = LdCmd
    #else
    #if AlternateUsrLibDir && HasLdRunPath
           CCENVSETUP = LD_RUN_PATH=$(USRLIBDIRPATH)
               CCLINK = $(CCENVSETUP) $(CC)
    #else
               CCLINK = $(CC)
    #endif
    #endif
    #if AlternateUsrLibDir && HasLdRunPath
          CXXENVSETUP = LD_RUN_PATH=$(USRLIBDIRPATH)
              CXXLINK = $(CXXENVSETUP) $(CXX)
    #else
              CXXLINK = $(CXX)
    #endif
         LDSTRIPFLAGS = LdStripFlags
       LDCOMBINEFLAGS = LdCombineFlags
          DEPENDFLAGS = DependFlags
       DEPEND_DEFINES = DependDefines
    
    XCOMM Not sure this belongs here
             TKLIBDIR = TkLibDir
             TKINCDIR = TkIncDir
            TKLIBNAME = TkLibName
            TKLIBRARY = TkLibrary
            TCLLIBDIR = TclLibDir
            TCLINCDIR = TclIncDir
           TCLLIBNAME = TclLibName
           TCLLIBRARY = TclLibrary
    
            MACROFILE = MacroFile
               RM_CMD = $(RM)
    
        IMAKE_DEFINES = /* leave blank, for command line use only */
       IMAKE_WARNINGS = ImakeWarningFlags
    #ifdef UseInstalled
             IRULESRC = $(CONFIGDIR)	/* used in rules file */
            IMAKE_CMD = $(IMAKE) -DUseInstalled -I$(IRULESRC) $(IMAKE_DEFINES) \
    		    $(IMAKE_WARNINGS)
    #else
             IRULESRC = $(CONFIGSRC)/cf
            IMAKE_CMD = $(IMAKE) -I$(IRULESRC) $(IMAKE_DEFINES) $(IMAKE_WARNINGS)
    #endif
    #if !HasClearmake
         /* clearmake records relevant defines and flags in the build script,
    	so it knows when they change and we don't need this coarser-level
    	dependency.  We also don't want it, since it prevents sharing if
    	even one config file, say site.def or host.def, changes. */
         ICONFIGFILES = $(IRULESRC)/Imake.tmpl $(IRULESRC)/X11.tmpl \
    			$(IRULESRC)/site.def $(IRULESRC)/$(MACROFILE) \
    			OtherIConfigFiles SiteIConfigFiles $(EXTRA_ICONFIGFILES)
    #endif
    
    #ifndef TopLevelProject
    # define TopLevelProject	X11
    #endif
    #ifndef ProjectRulesFile
    # define ProjectRulesFile	Concat3(<,TopLevelProject,.rules>)
    #endif
    #include ProjectRulesFile
    #ifndef LocalRulesFile
    /* need this to make ANSI-style preprocessors happy */
    #define LocalRulesFile <noop.rules>
    #endif
    #include LocalRulesFile
    
    /*
     * get project-specific configuration and rules
     */
    #ifndef ProjectTmplFile
    #define ProjectTmplFile		Concat3(<,TopLevelProject,.tmpl>)
    #endif
    #include ProjectTmplFile
    #ifndef LocalTmplFile
    /* need this to make ANSI-style preprocessors happy */
    #define LocalTmplFile <noop.rules>
    #endif
    #include LocalTmplFile
    
    #if !BuildLibraries && AlternateIncRoot && !defined(CrossCompileDir)
    INSTALLED_INCLUDES = -I$(INCROOT)
    #endif
    
    #if !defined(UseInstalled) && !BuildLibraries && AlternateUsrLibDir && !defined(CrossCompileDir)
    INSTALLED_LIBS = -L$(USRLIBDIR)
    #endif
    
    #ifdef FixupLibReferences
    FixupLibReferences()
    #endif
    
    /* ConfigDir comes from X11.tmpl */
            CONFIGDIR = ConfigDir		/* build configuration information */
    #if HasClearmake
               OSNAME = OSName
    #endif
        USRLIBDIRPATH = UsrLibDirPath
            LDPRELIBS = LdPreLibs $(INSTALLED_LIBS)
           LDPOSTLIBS = LdPostLibs
         TOP_INCLUDES = TopIncludes
      PROJECT_DEFINES = ProjectDefines
       VENDOR_DEFINES = VendorDefines
    #if HasCplusplus
    CXXPROJECT_DEFINES = CplusplusProjectDefines
    #endif
    
    XCOMM ----------------------------------------------------------------------
    XCOMM start of Imakefile
    #include INCLUDE_IMAKEFILE
    
    XCOMM ----------------------------------------------------------------------
    XCOMM common rules for all Makefiles - do not edit
    
    .c.i:
    	CPPOnlyCompile($*.c,$(_NOOP_))
    
    .SUFFIXES: .ii
    
    .cc.ii:
    	CPPOnlyCompile($*.cc,$(_NOOP_))
    
    .SUFFIXES: .s
    
    .c.s:
    	CompileCToAsm($(_NOOP_))
    
    .cc.s:
    	CompileCplusplusToAsm($(_NOOP_))
    
    /*
     * These need to be here so that rules in Imakefile occur first;  the blank
     * emptyrule is to make sure that an empty Imakefile does not default to make
     * clean.
     */
    emptyrule::
    
    CleanTarget()
    
    #ifndef IHaveSpecialMakefileTarget
    MakefileTarget()
    #endif
    
    #if BuildHtmlManPages
    RmanDependency()
    #endif
    
    TagsTarget()
    #ifdef MakefileAdditions
    MakefileAdditions()
    #endif
    
    CenterLoadTarget(debug_src,$(SRCS),NullParameter,$(ALLDEFINES))
    
    CenterLoadTarget(debug_obj,$(OBJS),NullParameter,$(ALLDEFINES))
    
    ManKeywordsTarget($(MANPATH))
    
    HtmlManIndex
    
    /* Generate the "real" clean rules */
    #undef clean
    
    clean:: cleandir
    
    distclean:: cleandir
    
    #ifdef IHaveSubdirs
    XCOMM ----------------------------------------------------------------------
    XCOMM rules for building in SUBDIRS - do not edit
    
    InstallSubdirs($(SUBDIRS))
    InstallManSubdirs($(SUBDIRS))
    InstallDriverSDKSubdirs($(SUBDIRS))
    CleanSubdirs($(SUBDIRS))
    TagSubdirs($(SUBDIRS))
    MakefileSubdirs($(SUBDIRS))
    IncludesSubdirs($(SUBDIRS))
    
    /* "distclean" subdirectories */
    #undef  BootstrapCleanSubdirs
    #define BootstrapCleanSubdirs /**/
    #define clean distclean
    CleanSubdirs($(SUBDIRS))
    #undef clean
    
    #endif
    
    #if !DontPreprocessManPages || defined(PreprocessManPages)
        PREPROCESSMANPAGES = true
    #endif
    /* must be after all install.man rules that install anything */
    #ifndef MakeManKeywords
    #define MakeManKeywords		NO
    #endif
    #if MakeManKeywords		/* typically only at top level */
    install.man:: man_keywords
    #endif
    
    /* must be after all install.man rules that install anything */
    #ifndef MakeHtmlManIndex
    #define MakeHtmlManIndex	NO
    #endif
    #if MakeHtmlManIndex		/* typically only at top level */
    install.man:: html_index
    #endif
    
    #ifndef IHaveSubdirs
    XCOMM ----------------------------------------------------------------------
    XCOMM empty rules for directories that do not have SUBDIRS - do not edit
    
    install::
    	@echo "install in $(CURRENT_DIR) done"
    
    install.man::
    	@echo "install.man in $(CURRENT_DIR) done"
    
    install.sdk::
    	@echo "install.sdk in $(CURRENT_DIR) done"
    
    Makefiles::
    
    includes::
    
    depend::
    
    #endif /* if subdirectory rules are needed */
    
    #ifndef IHaveSpecialMakefileTarget
    /* "distclean" also removes the Makefile and the depend file */
    distclean::
    	RemoveFiles(Makefile DependFileName)
    #endif
    
    XCOMM ----------------------------------------------------------------------
    XCOMM dependencies generated by makedepend
    IncludeMakefile(DependFileName)