Imake.tmpl   [plain text]


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
XCOMM
XCOMM
XCOMM
XCOMM $XFree86: xc/config/cf/Imake.tmpl,v 3.156 2004/01/12 21:43:18 herrb 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

/*
 * 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 YES
#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 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 NoStrstr
#define NoStrstr		NO
#endif
#ifndef HasShadowPasswd
#define HasShadowPasswd		NO
#endif
#ifndef HasBasename
#define HasBasename		YES
#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(Arm32Architecture)
#define ByteOrder		X_LITTLE_ENDIAN
#elif defined(PpcArchitecture)
#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			NO
#endif
#ifndef OsNeedZlibHeaders
#define OsNeedZlibHeaders	!HasZlib
#endif
#if !HasZlib		/* if OS doesn't have it, we'll build it */
#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 */
#ifndef HasFreetype2
#define HasFreetype2		NO
#endif
/* If the system has the Fontconfig library */
#ifndef HasFontconfig
#define HasFontconfig		NO
#endif
#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 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 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
#define InstPgmFlags -s
#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 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 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 HasGhostScript
#define HasGhostScript NO
#endif
#if HasGhostScript
#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
#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 FileManDefs LibManDefs MiscManDefs DriverManDefs AdminManDefs ProjectManDefs $(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)
#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
#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

/* 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)