XCOMM platform: $XConsortium: ibm.cf,v 1.55.1.1 95/06/30 14:22:43 kaleb Exp $ #ifdef RsArchitecture #ifndef OSName #define OSName AIX 3.2.5 #endif #ifndef OSMajorVersion #define OSMajorVersion 3 #endif #ifndef OSMinorVersion #define OSMinorVersion 2 #endif #ifndef OSTeenyVersion #define OSTeenyVersion 5 #endif #else #ifdef RtArchitecture #ifdef AIXArchitecture #define OSName AIX 2.2 #define OSMajorVersion 2 #define OSMinorVersion 2 #else #define OSName AOS 4.3 #define OSMajorVersion 4 #define OSMinorVersion 3 #endif #else #define OSName AIX 1.2.1 #define OSMajorVersion 1 #define OSMinorVersion 2 #define OSTeenyVersion 1 #endif #endif XCOMM operating system: OSName #ifdef RsArchitecture #if OSMajorVersion > 3 || (OSMajorVersion == 3 && OSMinorVersion >= 2) #define HasBSD44Sockets YES #define HasPutenv YES /* * If you do not have threads support installed, put * #define HasPosixThreads NO * in the BeforeVendorCF section of your site.def. */ #if !defined(HasPosixThreads) && ((OSMajorVersion == 3 && (OSMinorVersion > 2 || (OSMinorVersion == 2 && OSTeenyVersion > 4))) || (OSMajorVersion == 4 && (OSMinorVersion > 1 || (OSMinorVersion == 1 && OSTeenyVersion > 1)))) #define HasPosixThreads YES #endif #if HasPosixThreads #define SystemMTDefines -D_THREAD_SAFE #define ThreadedX YES #define ThreadsLibraries -lpthreads -lc_r #endif #endif /* OS > 3.2 */ /* * For IBM platforms, we must define both the location of the compiler * and the location of its standard C++ library. The library location * is needed to resolve dependent library symbols when we build our own * C++ shared libraries like libFresco */ #ifndef CplusplusCmd #define CplusplusCmd xlC #endif #ifndef CplusplusLibC #define CplusplusLibC /usr/lpp/xlC/lib/libC.a #endif #ifndef CplusplusDependIncludes #define CplusplusDependIncludes -I/usr/lpp/xlC/include #endif /* * IBM's xlC refuses to compile files unless their names end in ".C". * As an alternative to this fix, one could edit /etc/xlC.cfg * to change the suffix accepted by the compiler, but we prefer not * requiring users to reconfigure their C++ compilers to make them work. * We also have to override the default SUFFIXES to defeat the use of * the builtin .C -> .o file, which doesn't use the right flags. */ .SUFFIXES: .SUFFIXES: .o .c .y .l .s .sh .h .f .Y .L .cxx #define NormalLibObjCplusplusCompile(options) test -r $*.C || $(LN) $*.CCsuf $*.C @@\ $(CXX) -c $(CXXFLAGS) options $*.C #define SpecialCplusplusObjectRule(baseobj,basedep,options) @@\ baseobj.Osuf: basedep.CCsuf @@\ test -r basedep.C || $(LN) basedep.CCsuf basedep.C @@\ $(CXX) -c $(CXXFLAGS) options basedep.C #define SystemV YES #define LdCombineFlags -r #define ExecableScripts YES #define Malloc0ReturnsNull YES #define CppCmd /usr/lpp/X11/Xamples/util/cpp/cpp #define ExpandManNames YES #define ExtensionOSDefines -DXTESTEXT1 #define StandardDefines -DSYSV -DAIXV3 -D_ALL_SOURCE #if OSMajorVersion >= 4 #define XawI18nDefines -DHAS_WCHAR_H -DHAS_ISW_FUNCS #define CcCmd c89 /* full conforming ANSI C w/ ANSI headers */ _NULLCMD_ = @ echo #else #define XibmServer YES #define ibmIncludeSKYWAY YES #define CcCmd xlc #endif #define OPERATING_SYSTEM AIX /* directory name under server/ddx/ibm/ */ #define InstallCmd /usr/ucb/install #include #ifndef ManKeywordsTarget #define ManKeywordsTarget(manpath) @@\ man_keywords:: @@\ /usr/lib/makewhatis $(DESTDIR)manpath #endif #else /* end of RsArchitecture */ #define UnixCpp /**/ #define cppdefs -DUNIXCPP #ifdef ATHENA #define ibmAthenaDefs -DATHENA #else #define ibmAthenaDefs /**/ #endif #ifdef AIXArchitecture #define SystemV YES #ifdef RtArchitecture #define BootstrapCFlags -Daix #define OSDefines -DAIX -DAIXrt -DNO_FUNCTION_PROTOTYPES -DIBM_OS_HAS_HFT #else #define ExecableScripts YES #define ExpandManNames YES #define InstallCmd /usr/ucb/install #define OSDefines -DAIX386 -DIBM_OS_HAS_HFT #define NeedFunctionPrototypes YES #define NeedNestedPrototypes YES #define NeedConstPrototypes YES #define NeedVarargsPrototypes YES #define LdCombineFlags -r /* PS/2 doesn't do ld -X */ #endif #define OPERATING_SYSTEM AIX /* directory name under server/ddx/ibm/ */ #ifdef USE_PCC #define CcCmd i386cc #define ibmosdefs -DHCVERSION=HCRevision #else #ifdef RtArchitecture #define CcCmd cc -Nd4000 -Nn3000 -DBSD_INCLUDES #define ibmosdefs -DSYSV -Nd4000 -Nn3000 #define ibmlibdefs -Hcpp #else #define ibmosdefs -DSYSV #endif #endif /* USE_PCC */ #else /* else AOS - warning: AOS is going away... */ #define HasNdbm YES #define CcCmd hc #define ibmosdefs -DHCVERSION=HCRevision #define OSDefines -DBSDrt #define OPERATING_SYSTEM BSDrt #define BootstrapCFlags -Dibm #if OSMajorVersion >= 4 && OSMinorVersion >= 3 #define SetTtyGroup YES #endif #endif /* AIXArchitecture */ #define HasVoidSignalReturn NO #ifdef RtArchitecture /* * These define the screens the server will allow * affected: .../server/ddx/ibm/Makefile * .../server/ddx/ibm/common/Makefile * Also, be sure to remove .../server/ddx/ibm/common/ibmscreen.o */ #define ibmInclude8514 NO /* YES */ #define ibmIncludeAED NO #define ibmIncludeAPA16 YES #define ibmIncludeAPA8c NO #define ibmIncludeEGA NO /* YES */ #define ibmIncludeMPEL NO #define ibmIncludeVGA NO /* YES */ #define ibmIncludeGEN NO #endif /* RtArchitecture */ #ifdef PS2Architecture /* * These define the screens the server will allow * affected: .../server/ddx/ibm/Makefile * .../server/ddx/ibm/common/Makefile * Also, be sure to remove .../server/ddx/ibm/common/ibmscreen.o * * PS2, Rt, ... */ #define ibmInclude8514 YES #define ibmIncludeAED NO #define ibmIncludeAPA16 NO #define ibmIncludeAPA8c NO #define ibmIncludeEGA NO #define ibmIncludeMPEL NO #define ibmIncludeVGA YES #define ibmIncludeGEN NO #endif /* PS2Architecture */ /* * These define the screens the server will allow * affected: .../server/ddx/ibm/Makefile * .../server/ddx/ibm/common/Makefile * Also, be sure to remove .../server/ddx/ibm/common/ibmscreen.o * * PS2, Rt, ... */ #ifndef ibmosdefs #define ibmosdefs /**/ #endif #ifndef ibmarchdefs #define ibmarchdefs /**/ #endif #ifndef ibmlibdefs #define ibmlibdefs /**/ #endif #define StandardDefines -Dibm ibmosdefs ibmarchdefs #define LintOpts -ax -Dibm ibmosdefs ibmarchdefs /* * This defines the name of server you want. * affected: .../X11/server/Makefile */ #define XibmServer YES /***************************************************************************** * Platform-specfic parameters * *****************************************************************************/ /* * affected: .../server/ddx/ibm/common/Makefile * .../server/os/4.2bsd/Makefile * remove: .../server/ddx/ibm/common/ibminit.o * .../server/ddx/ibm/common/ibmio.o * .../server/ddx/ibm/common/ibmutils.o * .../server/os/4.2bsd/utils.o */ /* Need This Also For our IBM Imakefiles */ #define SpecialMalloc NO #define ibmSpecialMalloc NO PCC = pcc #ifndef AIXArchitecture /* AOS-specific */ /* * It's real useful to know the version of hc we're using, but hc doesn't * identify itself in the pre-processor, so we have to do it by hand. * * To determine which version of hc you have, compile (DON'T link) some simple * program ("hello world" leaps to mind) and look in the .o (with "nm") for a * symbol named ".oVhc[0-9].[0-9][a-z]" -- this symbol is included in all * .o's by hc, and identifies the compiler release. * * To Calculate HCRevision, multiply the version number by 1000 and add the * index of the release letter. * For example, if nm reports: * 00000000 A .oVhc2.1d * The HCRevision is ((2.1 * 1000)+('d'-'a'+1)) == 21004 * Another popular version of hc is: * 00000000 A .oVhc1.4r * Whose HCRevision is ((1.4 * 1000)+('r'-'a'+1)) == 14018 * * A good clue that HCRevision is defined incorrectly is the undefined symbol * '_Alloca' at load time. */ #define HCRevision 21025 /* * hc revision 1.4r won't compile parts of Xt and some clients. */ #if HCRevision == 14018 #define BandAidCompiler "rtcchack.bac" #undef MacroFile #define MacroFile ibm.cf $(IRULESRC)/rtcchack.bac #endif #endif /* AOS */ /* * define this as you like for server compilation * affected: all makefiles in .../X11/server */ #define ServerExtraDefines cppdefs -DNOSTDHDRS OSDefines #define FontOSDefines StandardDefines /* define this as you like for server font support */ #ifdef AIXArchitecture #define FontFilters BDFTOSNFFILT SHELLPATH #endif /* define the following line for easily debuggable servers, the */ /* second line for especially speedy servers. */ /* #define ServerCDebugFlags -O -DDEBUG -DTRACE_X */ #define ServerCDebugFlags -O ibmAthenaDefs /* define this as you like for normal library compilation */ #define LibraryDefines cppdefs ibmlibdefs StandardDefines #endif /* non RsArchitecture */