/*
 * SET VERSION NUMBERS BEFORE MAKING MAKEFILES
 */

#ifdef AIXArchitecture
#ifdef RtArchitecture
#define OSMajorVersion         2	/* RT AIX v2.2 */
#define OSMinorVersion         2
#else
#ifdef IBMR2Architecture
#define	OSMajorVersion         3	/* RS 6000 AIX 3.1 */
#define	OSMinorVersion         1
#else /* IBM R2 */
#define OSMajorVersion         1	/* PS/2 AIX v1.2 */
#define OSMinorVersion         2
#endif /* IBM R2 */
#endif /* RT */
#else /* AIX */
#define OSMajorVersion         4	/* AOS 4.3 (going away) */
#define OSMinorVersion         3
#endif

#ifdef ATHENA
#define ibmAthenaDefs -DATHENA
#else
#define ibmAthenaDefs /**/
#endif

#ifdef AIXArchitecture
#define SystemV YES
#define OSName AIX
#define BootstrapCFlags -Daix
#define HasNdbm YES
#ifdef RtArchitecture
#define OSDefines -DAIX -DAIXrt -DNO_FUNCTION_PROTOTYPES -DIBM_OS_HAS_HFT
#else
#define OSDefines -DAIX -DAIX386 -DNO_FUNCTION_PROTOTYPES -DIBM_OS_HAS_HFT
#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 /* USE_PCC */

#ifdef RtArchitecture
#define CcCmd cc -Nd4000 -Nn3000 -DBSD_INCLUDES
#define ibmosdefs -DSYSV -Nd4000 -Nn3000
#define ibmlibdefs -Hcpp
#else /* RT */
#ifdef IBMR2Architecture
#define	CcCmd	/bin/cc
#define	CppCmd	/usr/lpp/X11/Xamples/util/cpp/cpp
#else
#define CcCmd cc -q -DBSD_INCLUDES -D_BSD
#endif /* IBM R2 */
#define ibmosdefs -DSYSV -D_BSD
#endif /* RT */
#endif /* USE_PCC */

#else /* else AOS - warning: AOS is going away... */
#define SystemV NO
#define OSName AOS
#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 */

#ifdef IBMR2Architecture
#define	HasVoidSignalReturn    YES
#define ibmCppDefine           /**/
#else
#define HasVoidSignalReturn    NO
/* Change the following line to 1 if using the standard hc */
#if 1
#define	ibmCppDefine           -DUNIXCPP
#else
#define	ibmCppDefine           /**/
#endif
#endif

#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   YES
#define ibmIncludeAPA16 YES
#define ibmIncludeAPA8c NO
#define ibmIncludeEGA   NO /* YES */
#define ibmIncludeMPEL  YES
#define ibmIncludeVGA   NO /* YES */
#define ibmIncludeGEN   NO
#endif /* RtArchitecture */

#ifdef PS2Architecture
/*
#define AsCmd /bin.386/i386as
#define LdCmd /bin.386/i386ld
#define ExtraLibraries /lib.386/libtcp.a
*/
#define LnCmd ln -s
#define ibmarchdefs -Di386 -DiAPX386
/*
 * 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 */

#ifdef IBMR2Architecture
#define	LnCmd		 /bin/ln -s
#define	SetTtyGroup	YES
#define	BuildServer	NO
#endif

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

#define InstallCmd	/usr/ucb/install
/* 
 * This defines the name of server you want.
 * affected: .../X11/server/Makefile
 */
#define XibmServer Xibm

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

/*
 * 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
 */
#ifdef AIXArchitecture
#define ServerDefines  StandardDefines ibmCppDefine OSDefines ExtensionDefines
#else
#define ServerDefines  StandardDefines ibmCppDefine -DNOSTDHDRS OSDefines ExtensionDefines
#endif


/* define this as you like for server font support */
/* AIX 1.2 and 3.1 both have compress */
#define FontDefines -DFONT_SNF -DFONT_BDF -DCOMPRESSED_FONTS StandardDefines

/* 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 ibmCppDefine ibmlibdefs StandardDefines

/*
# platform:  $XConsortium: ibm.cf,v 1.15 89/12/13 15:27:50 keith Exp $
# operating system:  OSName
*/
