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: xc/config/cf/Imake.tmpl,v 1.5 2004/07/21 07:31:09 anholt 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 .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 XCOMM ----------------------------------------------------------------------- XCOMM site-specific configuration parameters that need to come before XCOMM the platform-specific parameters - edit site.def to change #define BeforeVendorCF #include #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 #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 #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 /* 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(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 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 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 # ifdef 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 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) #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 #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 #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)