diff options
author | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2006-11-25 16:16:48 +0000 |
---|---|---|
committer | Matthieu Herrb <matthieu@cvs.openbsd.org> | 2006-11-25 16:16:48 +0000 |
commit | 3f58440c73fee49a1cbf3a9f47ba06592f33208b (patch) | |
tree | 1a39da9e217885b74c9c0f09e6431bb66a2c0a32 /util/cf/sun.cf | |
parent | 7b467928c509058d60342a08c51c85693cdfa281 (diff) |
import from X.Org 7.2RC2
Diffstat (limited to 'util/cf/sun.cf')
-rw-r--r-- | util/cf/sun.cf | 957 |
1 files changed, 957 insertions, 0 deletions
diff --git a/util/cf/sun.cf b/util/cf/sun.cf new file mode 100644 index 000000000..6ea83b279 --- /dev/null +++ b/util/cf/sun.cf @@ -0,0 +1,957 @@ +XCOMM $XdotOrg: util/cf/sun.cf,v 1.34 2005/12/03 17:20:48 alanc Exp $ +XCOMM platform: $Xorg: sun.cf,v 1.4 2000/08/17 19:41:48 cpqbld Exp $ + + + + +XCOMM platform: $XFree86: xc/config/cf/sun.cf,v 3.70 2004/01/13 02:42:51 tsi Exp $ + +#ifndef OSName +# define OSName DefaultOSName +#endif +#ifndef OSMajorVersion +# define OSMajorVersion DefaultOSMajorVersion +#endif +#ifndef OSMinorVersion +# define OSMinorVersion DefaultOSMinorVersion +#endif +#ifndef OSTeenyVersion +# define OSTeenyVersion DefaultOSTeenyVersion +#endif +XCOMM operating system: OSName (OSMajorVersion./**/OSMinorVersion./**/OSTeenyVersion) + +/* For various reasons, Sun uses different settings when compiling the + * X Window System packages included in Solaris than are normally used + * by most people building the X.Org software releases. Sun also has + * two different X server hierarchies in Solaris - Xsun in /usr/openwin + * and Xorg in /usr/X11. + * + * If you want to try to match Sun's settings as closely as possible + * add this setting to your host.def: + * #define BuildLikeSun YES + * + * If you're trying to match the openwin directory layout as well, you'll + * need to also add: + * #define ProjectRoot /usr/openwin + * otherwise it will use /usr/X11. (Note that these settings match closer + * to Sun's Xorg delivery in /usr/X11 than the older X11R6.6-based delivery + * in /usr/openwin though.) + */ +#ifndef BuildLikeSun +# define BuildLikeSun NO +#endif + +#if BuildLikeSun +# ifndef ProjectRoot +# define ProjectRoot /usr/X11 +# endif +# ifndef DocDir +# define DocDir Concat(ProjectRoot,/share/doc) +# endif +# ifndef ManDirectoryRoot +# define ManDirectoryRoot Concat(ProjectRoot,/share/man) +# endif +# ifndef ManSuffix +# define ManSuffix 1 +# endif +# ifndef LibraryCCOptions +# if DoSharedLib && defined(SharedLibraryCCOptions) +# define LibraryCCOptions SharedLibraryCCOptions ArchLibraryCCOptions +# else +# define LibraryCCOptions DefaultCCOptions ArchLibraryCCOptions +# endif +# endif +#endif + +/* Flag passed to makestrs in Xt build to control string array names in the + * libXt headers. -solarisabinames matches those used in the libXt in + * Solaris, but not in other OS'es. + */ +#ifndef SolarisABIFlag +# if BuildLikeSun +# define SolarisABIFlag -solarisabinames +# else +# define SolarisABIFlag /**/ +# endif +#endif + +/* + * Compiler setup. This sun.cf file knows what options to use with + * certain compilers, including Sun C, CenterLine C, and gcc. It + * also understands how to set some of the options for various C++ + * compilers, including Sun C++ and CenterLine C++. + * + * === C Compiler Setup ========================================== + * + * For SunPro C, define HasSunC to YES in site.def. + * For CenterLine C, define HasCenterLineC to YES in site.def + * For gcc, gcc2 or gcc3, define HasGcc, HasGcc2 or HasGcc3 to YES in site.def + * For other compilers, define HasSunC to NO in site.def, then + * provide appropriate values for the various compiler related + * configuration varibles used here. + * + * If you don't tell us which C compiler you have, we assume you have + * the SunPro C compiler under Solaris 2.x, and the bundled /bin/cc + * under SunOS 4.1.x + * + * === C++ Compiler Setup ========================================== + * + * For SunPro C++, define HasSunCplusplus to YES in site.def + * For CenterLine C++, define HasCenterLineCplusplus to YES in site.def + * For Gnu g++ 2.6.x, define HasGcc2ForCplusplus to YES in site.def + * For other compilers, define HasCplusplus to YES in site.def, and + * check to see if you need to provide values for CplusplusOptions + * and/or DefaultCplusplusOptions. + * + * In any case, you may also need to set CplusplusDependIncludes. + * + * If you say you have the SunPro C++ compiler, we assume you have + * version 3.0.x of the compiler. If you have version 4.0.x instead, + * define CplusplusCompilerMajorVersion as 4 in site.def. + * + */ + +#ifndef HasGcc3 +#define HasGcc3 NO +#endif +#ifndef HasGcc2 +#define HasGcc2 HasGcc3 +#endif +#ifndef HasGcc +#define HasGcc HasGcc2 +#endif + +#ifndef HasSunC +# if HasCenterLineC || HasGcc || HasGcc2 || HasGcc3 || (OSMajorVersion < 5) +# define HasSunC NO +# else +# define HasSunC YES +# endif +#endif + +#if HasSunC +# ifndef CCompilerMajorVersion +# define CCompilerMajorVersion DefaultSunProCCompilerMajorVersion +# endif +# ifndef CCompilerMinorVersion +# define CCompilerMinorVersion DefaultSunProCCompilerMinorVersion +# endif +XCOMM SunPro C CCompilerMajorVersion./**/CCompilerMinorVersion + +/* Choose some reasonable default optimizer flags based on compiler & + OS versions */ +# ifndef OptimizedCDebugFlags +# if (CCompilerMajorVersion > 5) || \ + (CCompilerMajorVersion == 5 && CCompilerMinorVersion > 2) +# define OptimizedCDebugFlags -xO4 -xbuiltin=%all -xlibmil -xstrconst ArchOptimizedFlags +# else +# define OptimizedCDebugFlags -xO4 -xstrconst ArchOptimizedFlags +# endif +# endif +# ifndef ArchOptimizedFlags +# if OSMajorVersion == 5 +# if defined(SparcArchitecture) && !defined(Sparc64Architecture) +# if OSMinorVersion > 9 /* Solaris 10 and later only run on UltraSPARC's */ +# define ArchOptimizedFlags -xarch=v8plus +# else +# define ArchOptimizedFlags -xarch=v8 +# endif +# elif defined(i386Architecture) || defined(AMD64Architecture) +# if (CCompilerMajorVersion > 5) || \ + (CCompilerMajorVersion == 5 && CCompilerMinorVersion >= 7) +/* -xregs=no%frameptr is required on x86 when compiling at -xO4 or higher to + * avoid losing stack frame pointers so you can't get stack traces or debug. + * This may lose a small bit of performance, so you can override by adding + * #define FramePtrFlags -xregs=frameptr if you care about performance more + * than debuggability. + */ +# ifndef FramePtrFlags +# define FramePtrFlags -xregs=no%frameptr +# endif +# endif +# ifndef FramePtrFlags +# define FramePtrFlags /* */ +# endif +# if defined(i386Architecture) && (OSMinorVersion > 8) + /* Solaris 9 and later require Pentium or better */ +# define ArchOptimizedFlags -xpentium FramePtrFlags +# else +# define ArchOptimizedFlags FramePtrFlags +# endif +# endif +# endif +# ifndef ArchOptimizedFlags +# define ArchOptimizedFlags /**/ +# endif +# endif +# ifndef DefaultCDebugFlags +# define DefaultCDebugFlags OptimizedCDebugFlags +# endif +# ifndef SharedLibraryLdCmd +# define SharedLibraryLdCmd $(CC) +# endif +/* Flags for lint version included with Sun C compilers */ +# if OSMajorVersion >= 5 +# ifndef LintLibFlag +# define LintLibFlag -y -o +# endif +# ifndef LintOpts +# define LintOpts -b -h -u -erroff=E_INDISTING_FROM_TRUNC2 $(LINTSECFLAG) ExtraLibraries MathLibrary -lc +# endif +# ifndef LintSecFlag +# if (CCompilerMajorVersion > 5) || \ + (CCompilerMajorVersion == 5 && CCompilerMinorVersion >= 6) +# define LintSecFlag -errsecurity=standard +# else +# define LintSecFlag /**/ +# endif +# endif + LINTSECFLAG = LintSecFlag +# ifndef LintLibReferences +# define LintLibReferences(varname,libname,libsource) @@\ + Concat(LINT,varname) = _UseCat(-L $(LINTLIBDIR) -l, -L libsource -l,libname) +# endif + +# endif /* Lint Flags for Solaris */ + +#endif /* HasSunC */ + +#ifndef ArchLibraryCCOptions +# if HasSunC && defined(SparcArchitecture) && CCompilerMajorVersion > 3 +# define ArchLibraryCCOptions -xregs=no%appl +# else +# define ArchLibraryCCOptions +# endif +#endif /* ArchLibraryCCOptions */ + +/* we used to have this here : + * + * #if HasSunC + * # ifndef CCompilerMajorVersion + * # define CCompilerMajorVersion 3 + * # define DefaultCDebugFlags -xO3 + * # define OptimizedCDebugFlags -xO3 + * # endif + * #endif + */ + +#ifndef HasSunCplusplus +# define HasSunCplusplus HasSunC /* ??? */ +#endif +#if HasSunCplusplus +# ifndef HasCplusplus +# define HasCplusplus YES +# define OptimizedCplusplusDebugFlags -xO4 -xbuiltin=%all -xlibmil +# endif +# ifndef CplusplusCompilerMajorVersion +# ifdef DefaultSunProCplusplusCompilerMajorVersion +# define CplusplusCompilerMajorVersion DefaultSunProCplusplusCompilerMajorVersion +# else +# define CplusplusCompilerMajorVersion 3 +# endif +# endif +# ifndef CplusplusCompilerMinorVersion +# ifdef DefaultSunProCplusplusCompilerMinorVersion +# define CplusplusCompilerMinorVersion DefaultSunProCplusplusCompilerMinorVersion +# else +# define CplusplusCompilerMinorVersion 0 +# endif +# endif +# ifndef CplusplusLibC +# if CplusplusCompilerMajorVersion >= 5 +# define CplusplusLibC -norunpath -lCrun +# endif +# endif +XCOMM SunPro C++ CplusplusCompilerMajorVersion./**/CplusplusCompilerMinorVersion +#endif + +/* we used to have this here : + * + * # ifndef CplusplusCompilerMajorVersion + * # define CplusplusCompilerMajorVersion 4 + * # endif + */ + +#if HasCenterLineC +# ifndef CcCmd +# define CcCmd clcc +# endif +#endif + +#if HasCenterLineCplusplus +# ifndef HasCplusplus +# define HasCplusplus YES +# endif +# ifndef DefaultCplusplusOptions +# define DefaultCplusplusOptions -Xa +# endif +# ifndef CplusplusOptions +# define CplusplusOptions -Xa +# endif +#endif + +#if OSMajorVersion < 4 || (OSMajorVersion == 4 && OSMinorVersion < 1) +/* We do not guarantee this will work */ +# define BootstrapCFlags -DNOSTDHDRS +# define StandardDefines -DNOSTDHDRS +# define XawI18nDefines -DUSE_XWCHAR_STRING -DUSE_XMBTOWC +#endif + +#if OSMajorVersion == 4 +# if OSMinorVersion == 1 +# define HasPoll YES +# endif +# if OSMinorVersion > 1 || (OSMinorVersion == 1 && OSTeenyVersion > 1) +/* You ALSO need this if you have Sun ld patch 100170-06 or later to 4.1.1 */ +# define SunPost411FCSLd YES +# endif +#endif + +/* The Xsun server was not building for SunOS 5.7 due to + includes of <sys/cg2reg.h>. +*/ +#if OSMajorVersion < 5 +# define IncludeCG2HeaderDefine -DINCLUDE_CG2_HEADER +#else +# define IncludeCG2HeaderDefine /**/ +#endif + +#if defined(i386Architecture) || defined(AMD64Architecture) +# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 8)) +# define OSServerExtraDefines -D__SOL8__ +# endif +#endif + +#if !HasGcc +# if HasSunC +# if defined(AMD64Architecture) +# define AsmArch amd64 +# define AsmFlags -xarch=amd64 +# elif defined(i386Architecture) +# define AsmArch ia32 +# define AsmFlags /**/ +# elif defined(Sparc64Architecture) +# define AsmArch sparcv8plus +# define AsmFlags -xarch=v9 +# elif defined(SparcArchitecture) +# define AsmArch sparcv8plus +# define AsmFlags -xarch=v8plus +# endif +# ifndef CompilerServerExtraDefines +# define CompilerServerExtraDefines $(SERVERSRC)/hw/xfree86/os-support/sunos/AsmArch.il +# endif +# endif +#endif + +#ifndef CompilerServerExtraDefines +# define CompilerServerExtraDefines /**/ +#endif + +#ifndef OSServerExtraDefines +# define OSServerExtraDefines /**/ +#endif + +#ifndef ArchServerExtraDefines +# if defined(Sparc64Architecture) || defined(AMD64Architecture) +# define ArchServerExtraDefines -D_XSERVER64 +# else +# define ArchServerExtraDefines /**/ +# endif +#endif + +#define ServerOSDefines XFree86ServerOSDefines IncludeCG2HeaderDefine +#define ServerExtraDefines AllocateLocalDefines XFree86ServerDefines \ + CompilerServerExtraDefines \ + OSServerExtraDefines ArchServerExtraDefines + +#ifndef HasPerl +/* Solaris 8 comes with perl. Earlier versions don't. */ +# if (OSMajorVersion == 5) && (OSMinorVersion >= 8) +# define HasPerl YES +# else +# define HasPerl NO +# endif +#endif + +#ifndef XkbServerDefines +# if BuildLikeSun +# define XkbServerDefines -DXKB_ALWAYS_USES_SOFT_REPEAT \ + -DXKM_OUTPUT_DIR='"/var/run/xkb/"' -DXKM_OUTPUT_DIR_MODE=0775 \ + -DMAKE_XKM_OUTPUT_DIR +# else +# define XkbServerDefines -DXKB_ALWAYS_USES_SOFT_REPEAT +# endif +#endif + +#if OSMajorVersion > 4 +# define ConnectionFlags -DTCPCONN -DUNIXCONN -DLOCALCONN +# if HasSunC +# ifdef DefaultSunProCCompilerDir +# ifndef CcCmd +# define CcCmd DefaultSunProCCompilerDir/cc +# endif +# endif +# ifdef DefaultSunProCplusplusCompilerDir +# ifndef CplusplusCmd +# define CplusplusCmd DefaultSunProCplusplusCompilerDir/CC +# endif +# ifndef CplusplusFilt +# define CplusplusFilt DefaultSunProCplusplusCompilerDir/c++filt +# endif +# ifndef CplusplusWhatdir +# define CplusplusWhatdir DefaultSunProCplusplusCompilerDir/whatdir +# endif +# else /* DefaultSunProCplusplusCompilerDir not defined */ +# ifndef CplusplusWhatdir +# define CplusplusWhatdir whatdir +# endif +# endif /* DefaultSunProCplusplusCompilerDir */ +# ifndef CplusplusDependIncludes +# if CplusplusCompilerMajorVersion > 3 +# define CplusplusDependIncludes -I`CplusplusWhatdir CC`/../include/CC +# elif CplusplusCompilerMajorVersion > 2 +# define CplusplusDependIncludes -I/opt/SUNWspro/SC3.0/include/CC +# else +# define CplusplusDependIncludes -I/opt/SUNWspro/SC2.0.1/include/CC +# endif +# endif +# endif /* HasSunC */ + +# if HasSunC && (CCompilerMajorVersion < 3) +# define BootstrapCFlags -DSVR4 +# else +# define BootstrapCFlags /* none needed */ +# endif +# ifndef XawI18nDefines +# if OSMinorVersion < 4 +# define XawI18nDefines -DHAS_WCTYPE_H -DHAS_ISW_FUNCS +# else +# define XawI18nDefines -DHAS_WCHAR_H -DHAS_ISW_FUNCS +# endif +# endif +# if OSMinorVersion > 3 +# define InstallCmd /usr/ucb/install +# endif +#ifndef LargefileDefines +# if (OSMajorVersion > 5) || (OSMajorVersion == 5 && OSMinorVersion >= 6) +# define LargefileDefines -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 +# else +# define LargefileDefines /* */ +# endif +#endif +# ifdef AMD64Architecture +# define StandardDefines -Dsun -DSVR4 -D__EXTENSIONS__ -D__amd64 +# define ToolkitStringsABIOptions -intelabi SolarisABIFlag +# elif defined(i386Architecture) +# if (OSMajorVersion < 4) || ((OSMajorVersion == 5) && (OSMinorVersion <= 5)) +# define StandardDefines -Dsun -Di386 -DSVR4 -D__EXTENSIONS__ -D__i386 \ + -D__SOL64__ LargefileDefines +# else +# define StandardDefines -Dsun -Di386 -DSVR4 -D__EXTENSIONS__ -D__i386 \ + LargefileDefines +# endif +# define ToolkitStringsABIOptions -intelabi SolarisABIFlag +# else +# define StandardDefines -Dsun -Dsparc -DSVR4 -D__EXTENSIONS__ LargefileDefines +# define ToolkitStringsABIOptions -sparcabi SolarisABIFlag +# endif +# define ExtraLibraries -lsocket -lnsl +# define HasWeakSymbols YES +# if OSMinorVersion > 1 +# ifndef ThreadedX +# define ThreadedX YES +# endif +# define MTSafeAPIDefines -DXUSE_MTSAFE_API -DXUSE_NETDB_R_API +# if HasSunC && CCompilerMajorVersion > 2 +# define ThreadsCompileFlags -mt +# else +# define SystemMTDefines -D_REENTRANT +# define ThreadsLibraries -lthread +# endif +# if HasSunCplusplus && CplusplusCompilerMajorVersion > 3 +# define ThreadsCplusplusCompileFlags -mt +# else +# define CplusplusSystemMTDefines -D_REENTRANT +# define ThreadsCplusplusLibraries -lthread +# endif +# endif /* OSMinorVersion > 1 */ +# ifndef UseExportLists +# if (OSMinorVersion > 4) && !HasGcc2 +# define UseExportLists YES +# else +# define UseExportLists NO +# endif +# endif +# if OSMinorVersion > 5 /* Solaris 2.6 and later */ +# define HasSnprintf YES +# endif +# if OSMinorVersion > 7 /* Solaris 8 and later */ +# define HasStrlcat YES +# define HasStrcasecmp YES +# define HasVarRun YES +# endif +# if OSMinorVersion > 9 /* Solaris 10 and later */ +# define HasSetenv YES +# define HasGetpeerucred YES +# define HasGetoptLong YES +# define DlLibrary -lc /* dlopen() is in libc in Solaris 10 */ +# endif +# define HasVFork NO +# define HasDlopen YES +# define InstallXloadSetGID NO /* libkstat doesn't require gid kmem */ +# define InstKmemFlags -g sys -m 2711 +# define ShLibIncludeFile <sunLib.tmpl> +# define LinkerRuntimeLibraryPathFlag(path) Concat(-R,path) +# define RpathLoadFlags LinkerRuntimeLibraryPathFlag($(USRLIBDIRPATH)) +/* + * Set flags for position independent code before including sv4Lib.rules + * if the compiler in use doesn't use standard SVR4 flags + */ +# if HasSunC || HasCenterLineC +# define PositionIndependentCFlags -Kpic +# define LargePositionIndependentCFlags -KPIC +# ifdef Sparc64Architecture +# define LargePICTable YES +# endif +# endif +# if HasSunCplusplus || HasCenterLineCplusplus +# define PositionIndependentCplusplusFlags -pic +# define LargePositionIndependentCplusplusFlags -PIC +# endif +/* As is done in sco5.cf, we lie and say Solaris has NCURSES, since + * the system curses is close enough for xorgcfg's purposes. xorgcfg + * should not depend on the NCURSES package but rather on a "capable curses", + * of which NCURSES is just one. + */ +#define HasNCurses YES +#define NCursesLibName -lcurses +#else /* not OSMajorVersion > 4 */ +#define InstKmemFlags -g kmem -m 2711 +#include <sunLib.rules> +#endif /* OSMajorVersion > 4 (else) */ + +/* Solaris 10 includes FreeType already. It's also available in GNOME 2.0 for + * Solaris 8 & 9, and in Solaris 9 4/03 and later, but there's no easy way to + * detect that in imake, so users of those releases who want to use the + * installed FreeType instead of the one in this tree should copy the following + * two settings to their host.def. Those who want to use the in-tree copy + * regardless of OS version should add "#define HasFreetype2 NO" to host.def. + */ +#ifndef HasFreetype2 +# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 10)) +# define HasFreetype2 YES +# ifndef Freetype2Dir +# define Freetype2Dir /usr/sfw +# endif +# else +# define HasFreetype2 NO +# endif +#endif + +#ifndef HasExpat +# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 10)) +# define HasExpat YES +# ifndef ExpatDir +# define ExpatDir /usr/sfw +# endif +# else +# define HasExpat NO +# endif +#endif + +/* Solaris 10 includes fontconfig, but not the fcprivate.h header needed by + * Xft1 library. + */ +#ifndef HasFontconfig +# define HasFontconfig NO +#endif + +/* libpng was in /usr/sfw/lib on Solaris 9, moved to /usr/lib in Solaris 10 */ +#ifndef HasLibpng +# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 9)) +# define HasLibpng YES +# if !defined(LibpngDir) && ((OSMajorVersion == 5) && (OSMinorVersion == 9)) +# define LibpngDir /usr/sfw +# endif +# else +# define HasLibpng NO +# endif +#endif + +#ifndef HasZlib +# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 8)) +# define HasZlib YES +# else +# define HasZlib NO +# endif +#endif + +#ifndef TroffCmd +# if !(HasGroff) +# define TroffCmd troff -Tpost +# endif +#endif + +#define BuildLibPathVar LD_LIBRARY_PATH +#define HasNdbm YES +#define HasShm YES +#define HasSecureRPC YES +#define SetTtyGroup YES +#define HasPutenv YES +#define HasMkstemp YES +#if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 8)) +#define HasDevRandom YES /* /dev/random is in Solaris 8 patches */ +#define PollDevRandom YES /* /dev/random is poll()able on Solaris */ +#endif +#if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 9)) +# define HasIssetugid YES +#endif +#if defined(Sun3Architecture) || defined(SparcArchitecture) || defined(Sparc64Architecture) +# ifndef Xsun24Server +# define Xsun24Server NO /* color, mono, multiple depths */ +# endif +# ifndef XsunServer +# define XsunServer NO /* color and mono, 8 bit only */ +# endif +# ifndef XsunMonoServer +# define XsunMonoServer NO /* monochrome only */ +# endif +# ifndef XorgServer +# define XorgServer (!(Xsun24Server || XsunServer || XsunMonoServer)) +# endif +# undef BuildXF86DRI +# define BuildXF86DRI NO +# if (OSMajorVersion > 4) +# if !defined(AsOutputArchSize) || \ + ((AsOutputArchSize != 32) && (AsOutputArchSize != 64)) +# undef AsOutputArchSize +# define AsOutputArchSize 32 +# endif +# ifndef AsVISOption +# if AsOutputArchSize == 32 +# ifdef UseGas +# define AsVISOption -Av8plusa +# else +# define AsVISOption -xarch=v8plusa +# endif +# else +# ifdef UseGas +# define AsVISOption -Av9a +# else +# define AsVISOption -xarch=v9a +# endif +# endif +# endif +# endif +#endif /* SPARC or Sun3/M68k */ + +#if OSMajorVersion >= 4 +#define HasUsableFileMap YES +#endif + +#ifndef UseDeprecatedKeyboardDriver +#define UseDeprecatedKeyboardDriver YES +#endif + +#if HasGcc +# if OSMajorVersion > 4 +# ifndef DefaultCCOptions +# ifdef UseInstalled +# define DefaultCCOptions -DNO_ASM +# elif OSMinorVersion > 6 +# define DefaultCCOptions -DNO_ASM GccWarningOptions +# elif OSMinorVersion > 3 +# define DefaultCCOptions -DNO_ASM GccWarningOptions -ansi -pedantic +# else +# define DefaultCCOptions -DNO_ASM +# endif +# endif +# endif +# if HasGcc2 +# ifndef CcCmd +# define CcCmd gcc +# endif +# ifndef AsCmd +# define AsCmd CcCmd -c -x assembler +# endif +# ifndef OptimizedCDebugFlags +# ifdef i386Architecture +# define OptimizedCDebugFlags DefaultGcc2i386Opt +# elif defined(AMD64Architecture) +# define OptimizedCDebugFlags DefaultGcc2AMD64Opt +# else +# define OptimizedCDebugFlags -O2 +# endif +# endif +# if !defined(SharedLibraryLoadFlags) && !defined(SharedLibraryLdCmd) +# if OSMajorVersion == 5 && OSMinorVersion > 6 && defined(i386Architecture) + /* This is to work around what appears to be a PIC bug in some gcc/egcs + versions that shows up with the Solaris 7/x86 <ctype.h>. */ +# define SharedLibraryLdCmd $(LD) +# define SharedLibraryLoadFlags -G -z textwarn +# else +# define SharedLibraryLdCmd $(CC) +# define SharedLibraryLoadFlags -shared -z text +# endif +# endif +# else +# define SharedLibraryCcCmd cc +# define ExtraLoadFlags -B/usr/bin/ +# define AllocateLocalDefines /**/ + +.c.o: + ClearmakeOSName $(CC) -c $(CFLAGS) $*.c + +# endif /* HasGcc2 (else) */ + +#else /* not HasGcc */ + +# define AllocateLocalDefines -DINCLUDE_ALLOCA_H + +/* Set up compiler-dependent options for Sun C */ +/* + * To build 64-bit binaries define Sparc64Architecture or AMD64Architecture + * in your site.def or host.def file. + */ +# if HasSunC +# ifdef Sun3Architecture +# ifndef DefaultCCOptions +# define DefaultCCOptions -f68881 -pipe +# endif +# else /* not defined(Sun3Architecture) */ +# if OSMajorVersion < 5 +# ifndef DefaultCCOptions +# define DefaultCCOptions -pipe +# endif +# else /* OSMajorVersion >= 5*/ +# ifndef DefaultXArchOptions +# ifdef Sparc64Architecture +# define DefaultXArchOptions -xarch=v9 +# elif defined(AMD64Architecture) +# define DefaultXArchOptions -xarch=generic64 +# else +# define DefaultXArchOptions /* */ +# endif +# ifndef DefaultCCOptions +# define DefaultCCOptions -Xa -v DefaultXArchOptions -z lazyload -z combreloc -xstrconst -xildoff +# endif +# ifndef DefaultCplusplusOptions +# define DefaultCplusplusOptions DefaultXArchOptions -z lazyload -z combreloc -xildoff +# endif +# ifndef SharedLibraryLoadFlags +# define SharedLibraryLoadFlags -G DefaultXArchOptions -z text $(EXTRA_LOAD_FLAGS) +# endif +# endif +# endif +# endif +# endif + +/* Set compiler-dependent options for CenterLine C */ + +# if HasCenterLineC +# ifndef DefaultCCOptions +# define DefaultCCOptions -Xt -w1 -DANSICPP -U__HIGHC__ +# endif +# ifndef NeedConstPrototypes +# define NeedConstPrototypes YES +# endif +# ifndef NeedNestedPrototypes +# define NeedNestedPrototypes YES +# endif +# ifndef NeedVarargsPrototypes +# define NeedVarargsPrototypes YES +# endif +# endif + + +#endif /* HasGcc (else) */ + +#if OSMajorVersion < 5 +# define SharedAllocateLocalDefines -DINCLUDE_ALLOCA_H +# define LibraryCCOptions /* don't want special floating point */ +#else /* OSMajorVersion >= 5, i.e. Solaris 2.0 & later */ +/* Only load libraries when needed on Solaris 7 & later */ +# if OSMinorVersion >= 7 +# define LazyLoadFlag -z lazyload -z combreloc +# else +# define LazyLoadFlag /* */ +# endif +/* Link with extra mapfiles for some performance & security enhancements */ +#ifndef MapfileFlag +# if HasSunC +# define MapfileFlag -M +# else +# define MapfileFlag -Wl,-M, +# endif +#endif +#ifndef Mapfile_BssAlign +# if OSMinorVersion >= 9 +# define Mapfile_BssAlign $(MAPFILEFLAG)/usr/lib/ld/map.bssalign +# else +# define Mapfile_BssAlign /**/ +# endif +#endif +#ifndef Mapfile_PageAlign +# if OSMinorVersion >= 10 +# define Mapfile_PageAlign $(MAPFILEFLAG)/usr/lib/ld/map.pagealign +# else +# define Mapfile_PageAlign /**/ +# endif +#endif +#ifndef Mapfile_NoExStack +# if OSMinorVersion >= 9 +# define Mapfile_NoExStack $(MAPFILEFLAG)/usr/lib/ld/map.noexstk +# else +# define Mapfile_NoExStack /**/ +# endif +#endif +#ifndef Mapfile_NoExData +# if defined(SparcArchitecture) +/* SPARC archictecture requires PLT section in .data be executable, so + we can only make .bss, not all of .data no-exec on SPARC */ +# define Mapfile_NoExData /**/ +# else +# if OSMinorVersion >= 10 +# define Mapfile_NoExData $(MAPFILEFLAG)/usr/lib/ld/map.noexdata +# else +# define Mapfile_NoExData /**/ +# endif +# endif +#endif + MAPFILEFLAG = MapfileFlag + MAPFILES_FOR_ALL = Mapfile_PageAlign Mapfile_NoExData +MAPFILES_FOR_PROGS = Mapfile_BssAlign Mapfile_NoExStack +/* ExtraLoadFlags apply to all binaries - programs & libraries */ +# ifndef ExtraLoadFlags +# define ExtraLoadFlags LazyLoadFlag $(MAPFILES_FOR_ALL) +# endif +/* ExtraLoadOptions only apply to programs */ +# ifndef ExtraLoadOptions +# define ExtraLoadOptions -B direct $(MAPFILES_FOR_PROGS) +# endif +#endif /* OSMajorVersion < 5 */ + +/* 64-bit build support */ +#ifndef Solaris64bitSubdir +# ifdef Sparc64Architecture +# define Solaris64bitSubdir sparcv9 +# elif defined(AMD64Architecture) +# define Solaris64bitSubdir amd64 +# endif +#endif + +#ifdef Solaris64bitSubdir +# define LibDirName Concat3(lib,/,Solaris64bitSubdir) +#endif + +#if OSMajorVersion > 4 +# include <svr4.cf> +#endif + +#ifndef ManKeywordsTarget +# define ManKeywordsTarget(manpath) @@\ +man_keywords:: @@\ + catman -M $(DESTDIR)manpath -w +#endif + +#if !defined(UsePamLibrary) +# if (OSMajorVersion > 5) || ((OSMajorVersion == 5) && (OSMinorVersion >= 4)) +# define UsePamLibrary YES +# endif +#endif + +/* PAM appeared in SunOS 5.6 */ +#if !defined(HasPam) +# if (OSMajorVersion > 5) || (OSMajorVersion == 5 && OSMinorVersion >= 6) +# define HasPam YES +# endif +#endif + +#ifndef PamLibraries +#define PamLibraries -lpam +#endif + +#ifndef HasMotif +/* Solaris's Motif depends on Solaris libX11 and won't work with libX11 built + * from this tree, so only use it when using libX11 from outside the tree. + */ +# define HasMotif (defined(UseInstalled) || UseInstalledX11) +# define MotifDir /usr/dt +#endif /* !HasMotif */ +#ifndef HasMotif2 +/* Solaris's Motif2 version is broken and misses XmPrintShell + * (see http://xprint.mozdev.org/bugs/show_bug.cgi?id=1366) */ +# define HasMotif2 NO +#endif /* !HasMotif2 */ + +#define MotifDefines \ + -DNO_ISDIR -DNO_REGCOMP -DNO_ALLOCA -DBOGUS_MB_MAX -DNO_CONST +#define PamUnixDefines -DPAM_NIS +#define TtLargePICTable YES +#define DtSvcDefines -DXK_MISCELLANY -DMULTIBYTE -DNO_REGCOMP +#define DtSearchDefines -DI18N_MSG DtSvcDefines +#define DtWidgetDefines DtSearchDefines +#define DtPrintDefines DtSearchDefines + +#define baseDtMailDefines \ + -DSunOS=OSMajorVersion\#\#OSMinorVersion -DMMAP_NORESERVE -DSPRO_V2 +#if !defined(i386Architecture) && !defined(AMD64Architecture) +# define DtMailDefines baseDtMailDefines +#else +# define DtMailDefines -DBIG_ENDIAN baseDtMailDefines +#endif + +#define ArchitectureDefines -DSUN_ARCHITECTURE + +#define TtClientExtraLibs ExtraLibraries -ldl -lintl + +#define ExportListGenSource elistgen.sun +#define ShlibExportListOpt(filename) -M filename + +#define CdeProjectDefines \ + -DMULTIBYTE -DNLS16 -DMESSAGE_CAT -D_XOPEN_VERSION=4 \ + -D_XOPEN_SOURCE -D__EXTENSIONS__ \ + -DOSMAJORVERSION=OSMajorVersion -DOSMINORVERSION=OSMinorVersion + + +/* + * Turn off HTML manpages like we do under NetBSD. + */ +#ifndef BuildHtmlManPages +#define BuildHtmlManPages NO +#endif + +/* + * Turn off seperate configuration directories. + */ +#ifndef UseSeparateConfDir +#define UseSeparateConfDir NO +#endif + +/* Hackery for building modules as Solaris shared objects with dependencies */ +#if MakeDllModules && DoLoadableServer + +/* If you change this, you will need to change find-deps.pl to match */ +#define DlModuleDependencyName(module) Concat(module,_deps) + +#define DlModuleTarget(module,deplist,modlist) @@\ +DepDynamicModuleTarget(module,deplist DlModuleDependencyName(module),modlist LazyLoadFlag `cat DlModuleDependencyName(module)`) @@\ + @@\ +DlModuleDependencyName(module): @@\ + touch $@ @@\ + @@\ +clean:: @@\ + RemoveFile(DlModuleDependencyName(module)) + +#define ObjectModuleTarget(module,objects) @@\ +DlModuleTarget(Concat(module,_drv.so), objects, objects) + +#define LibraryModuleTarget(module,objects) @@\ +NormalLibraryTarget(module, objects) @@\ +DlModuleTarget(Concat3(lib,module,.so), objects, objects) + +#define DepLibraryModuleTarget(module,deplist,objects) @@\ +NormalDepLibraryTarget(module, deplist, objects) @@\ +DlModuleTarget(Concat3(lib,module,.so), deplist, objects) + +#endif |