XCOMM platform:  $XConsortium: sequent.cf$

/*
 * SET VERSION NUMBERS BEFORE MAKING MAKEFILES; also, you'll need to install
 * util/scripts/bsdinstall.sh before doing a "make install"
 */

/*
 * Version numbers are set one of two ways:
 *
 * If the target version is different than the machine you are building on,
 * set the target versions using the environmental variable IMAKEINCLUDES.
 * Example: IMAKEINCLUDES="-I. -DOSMajorVersion=4 -DOSMinorVersion=4"
 * This is usually only done at Sequent when building a product using
 * cross compiling tools and target headers and libraries.
 *
 * Otherwise, the imake will use uname(2) to calculate the default to be
 * the same as the machine you are building on.  The X11R6 imake will set
 * DefaultOS*Version macros to be these default values.
 * Those default values will be used in the assignments below.
 * This is the recommended method to be used by customers.
 */

				/* defaults from imake via uname(2) */
#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 V/**/OSMajorVersion./**/OSMinorVersion./**/OSTeenyVersion

/*
 * Sequent Dynix/PTX 4.x.x (SVR4) and later operating systems.
 *
 * Sequent Dynix/PTX 4.2.3 and later operating systems are supported with
 * the X11R6 sequent.cf and other X11R6 configuration files.
 * Specifically 4.4.2 and later have been tested.
 *
 * Attempting to use these X11R6 configuration files and X11R6 source files
 * with early versions of Dynix/PTX 4.x.x may work, however that will not be
 * tested or supported at Sequent.
 * Sequent Dynix/PTX 2.1.x has been retired so support for it and earlier
 * releases has been removed.
 */

#if OSMajorVersion >= 4

#define SystemV4		YES
#define SequentVersionDefines	-DSVR4
#define ExtraLibraries		
#define ForceNormalLib		YES
#define HasRequiredLibs		YES
#define NeedBerklib		NO	/* gettimeofday in libc */

#define XmExtraLibraries	/* for ABI-compliance do not use -lgen here */
#define MotifDefines		-DXM_STRINGS_1_2_2_STATE  /* code review */

/* initial port does not use multiple socket libs, default libsocket.so.1.1 */
#define HasMultipleSockets	NO	/* obsolete */ /* only libsocket.so.1.1 */

#endif /* OSMajorVersion >= 4 */

/*
 * Below this line are generic defines that apply to all Sequent systems.
 * However they are currently tested with only OSMajorVersion >= 4
 */

/*
 * The following cpp macro defines are order independent,
 * since the right-hand-side is constant.
 * Therefore these are simply listed in alphabetical order.
 * Macros defined later may use these definitions.
 */

/* 
 * Threads.tmpl cpp macros.
 * Sequent overrides the Threads.tmpl defaults with the values below.
 * Sequent has native threads for ptx 4.5.0 and higher.
 */

#if ( OSMajorVersion >= 5 || (OSMajorVersion == 4 && OSMinorVersion >= 5) )

#define HasPosixThreads			YES
#define HasThreadSafeAPI		YES
#define ThreadedX			YES
#define ThreadsLibraries		/**/
#define ThreadsCplusplusLibraries	/**/
#define ThreadPreStdAPIDefines		/**/
#define ThreadsCompileFlags		-Kthread
#define ThreadsCplusplusCompileFlags	-Kthread
#define SharedThreadReqs		/**/

/*
 * THREADS macro and environment variable used with Sequent commands only.
 * We use THREADS rather than the generic X11 THREADS_CFLAGS because we 
 * want to ensure that the macro is defined for all compiles and not just
 * those Makefiles built from a Imakefile that includes Threads.tmpl.
 *
 * Sequent compiler option -Kthread will also define -D_SEQUENT_THREADS.
 * Currently using -Kthread is the recommended interface to this define.
 * Currently there are no extra includes files using -D_SEQUENT_THREADS.
 * Currently no reason for makedepend or cpp to use -D_SEQUENT_THREADS.
 * If needed in the future, we would add to ProjectThreadsDefines
 *
 * #define ProjectThreadsDefines -DXTHREADS -D_SEQUENT_THREADS
 */

  THREADS = -Kthread

#endif /* ptx 4.5.0 or greater has threads */

/* 
 * Imake.tmpl cpp macros.
 * Sequent overrides the Imake.tmpl defaults with the values below.
 */

#define BuildLibPathVar		LD_LIBRARY_PATH
#define DefaultCCOptions	-Xa
#define ExpandManNames		YES
#define ExtraFilesToClean	*.z
#define HasNdbm			YES
#define HasShadowPasswd		YES
#define HasSockets		YES	/* default */
#define HasVarDirectory		NO
#ifdef UseInstalled
#define InstallCmd $(BINDIR)/ptxinst -t "$(TOOLS)"
#else
#define InstallCmd $(SHELL) $(SCRIPTSRC)/ptxinst.sh
#endif /* UseInstalled */
#define InstPgmFlags		-s -m 0555 -o bin -g bin
#define InstBinFlags		-s -m 0555 -o bin -g bin
#define InstLibFlags		-m 0444 -o bin -g bin
#define InstShLibFlags		-m 0555 -o bin -g bin
#define Malloc0ReturnsNull	YES
#define ManSuffix	1		/* use just one tab or cpp will die */
#define LibManSuffix	3x		/* use just one tab or cpp will die */
#define LibmanDir	$(MANSOURCEPATH)3
#define MiscManSuffix	5x		/* use just one tab or cpp will die */
#define MiscManDir	$(MANSOURCEPATH)5
#define MkdirHierCmd		mkdir -p
#define NeedConstPrototypes     YES
#define NeedFunctionPrototypes  YES
#define NeedNestedPrototypes    YES
#define NeedVarargsPrototypes   YES
#define StripInstalledPrograms	YES
#define SystemManDirectory	/usr/catman
#define TermcapLibrary		-lcurses	/* code review for SVR4 ? */
#define TerminfoDir		/usr/lib/terminfo	/* Sequent addition */
#define ToolkitStringsABIOptions -intelabi


/* 
 * X11.tmpl cpp macros.
 * Sequent overrides the X11.tmpl defaults with the values below.
 */

#define BuildDps		YES
#define BuildServer		YES
#define BuildXF86DGA		NO	/* DGA has no meaning on Sequent HW */
#define BuildXF86MiscExt	NO	/* turn off the server portion */
#define BuildXF86VidModeExt	NO	/* turn off the server portion */
#define BuildXInputExt		YES
#define BuildXKBuilib		YES	/* override NO set in xorg.cf */
#define ConnectionFlags		-DTCPCONN
#define DefaultSystemPath	/bin:/etc:/usr/bin:$(BINDIR)
#define DefaultUserPath		:/bin:/usr/bin:$(BINDIR)
#define HasPlugin		YES
#define HasXServer		NO
#define InstallFSConfig		YES	/* safe since we install to DESTDIR */
#define InstallXdmConfig	YES	/* safe since we install to DESTDIR */
#define MotifBC			NO	/* default, code review from X11R5  */
#define XdmServersType	fs	/* One tab here.  Needed if BuildServer YES */
#define XtMalloc0ReturnsNullDefines Malloc0ReturnsNullDefines -DXTMALLOC_BC
#define XprtServer		YES
#define XVirtualFramebufferServer	YES
#define XF86SVGAServer		NO	/* Don't build the XFree86 servers */
#define XF86S3Server		NO
#define XF86S3VServer		NO
#define XF86I8514Server		NO
#define XF86Mach8Server		NO
#define XF86Mach32Server	NO
#define XF86Mach64Server	NO
#define XF86P9000Server		NO
#define XF86AGXServer		NO
#define XF86I128Server		NO
#define XF86GLINTServer		NO
#define XF86REALimageServer	NO

/* 
 * Motif.tmpl cpp macros.
 * Sequent overrides the Motif.tmpl default with the values below.
 */

#define GencatCmd             /usr/lbin/gencat

/* Port Sequent macro DontBuildMotifConfig to Motif 2.1 */
/*
 * #ifndef MetroLink
 * #define DontBuildMotifConfig
 * #endif
 */

/* 
 * Sequent added cpp macros.
 * 
 * The following cpp macro defines have been introduced by Sequent.
 * They will be referenced in Sequent patches sent to TOG.
 * They may be moved above if accepted by TOG or X.org.
 */

#define AdminBaseDir		  /usr/admin.ptx/etc/base.dir
#define MessageCatDir		  /usr/lib/message/C
#define NeedXinputAlias		  YES
#define UseHidesymsLists	  YES
#define XlbiffMailPath		  /usr/mail/%s	/* used by contrib xlbiff */

/* 
 * Imake.tmpl, X11.tmpl, or other order dependent cpp defines.
 *
 * The following cpp macro defines are order dependent.
 * They depend on previously defined cpp macros.
 * Do not change the order.
 */
#define SharedLibraryCCOptions	DefaultCCOptions
#define StandardDefines		SequentVersionDefines -DOSMAJORVERSION=OSMajorVersion -DOSMINORVERSION=OSMinorVersion -DANSICPP -DDYNIX_C2 -DMetroLink
#define StandardCppDefines	StandardDefines -D_SOCKET_VERSION=11 -DUnixCpp

#ifdef ProjectRoot
#define ManDirectoryRoot	ProjectRoot/**//catman
#else
#define ManDirectoryRoot	SystemManDirectory
#endif
#define XmanSearchPath		ManDirectoryRoot /* for X11R5 xman */

/* 
 * Sequent configuration environment specific to building X11 and Motif.
 * This environment is only available when UseInstalled is not defined.
 * Therefore this environment is not used by customers using xmkmf.
 */

#ifndef UseInstalled

/* Product builds using local X11 and Motif trees */

/*
 * Provide libraries needed by nonX programs in the X11 build tree.
 * These are not standard so the customer will be forced to add them to their
 * Imakefile SYS_LIBRARIES if needed.  An ABI program may not want or need them,
 * so we do not include them in the ExtraLibraries provided to customers
 * when UseInstalled is defined.  We add them here as a convenience when
 * building the entire X11 tree (at Sequent or the contractor).
 */
#undef ExtraLibraries
#define ExtraLibraries	-lsocket -lnsl

/*
 * Sequent builds X11 and Motif in the same tree.
 * The Motif project files include the X11 project files.
 *
 * Later we may use the Local project files similer the the lynx.cf
 *
 * #define LocalTmplFile		<Motif.tmpl>
 * #define LocalRulesFile		<Motif.rules>
 */

/* Try the Metro Link method. */

#ifndef MetroLink
#undef ProjectTmplFile
#define ProjectTmplFile		<Motif.tmpl>
#undef ProjectRulesFile
#define ProjectRulesFile	<Motif.rules>
#endif

/*
 * Later change to Metro Link directory layout,
 * or allow $(TOP)/../motif21
 */

/* Try the Metro Link method. */

#ifndef MetroLink
#define MTop $(TOP)/motif21
#endif

/*
 * Set the Program macros to be correct for the target machine.
 * This will avoid using any crosstools as hardwired strings
 * built into binaries that will run on the target machine.
 *
 * These macro names need to be ported from X11R5 to X11R6.
 */
#define ArProgramBase	ar
#define CppProgram	/lib/cpp
#define CcProgram	cc
#define RanlibProgram	ranlib

/*
 * Build all the X11 debug libaries *_d.a for use by Sequent Service
 */

/*
 * Set DebugLibDefault YES for Sequent to build all debug libs.
 * If we move this to generic code to *.tmpl files,
 * use the default code below that sets the default NO
 */

#define DebugLibDefault		NO

#ifndef DebugLibDefault
#define DebugLibDefault		NO
#endif

#define DebugLibX11		DebugLibDefault	/* debugged X library */
#define DebugLibXext		DebugLibDefault	/* debugged Xext library */
#define DebugLibXau		DebugLibDefault	/* debugged auth library */
#define DebugLibXdmcp		DebugLibDefault	/* debugged XDMCP library */
#define DebugLibXmu		DebugLibDefault	/* debugged Xmu library */
#define DebugLibXp              DebugLibDefault	/* debugged Xp library */
#define DebugLibXt		DebugLibDefault	/* debugged toolkit library */
#define DebugLibXa		DebugLibDefault	/* debugged audio library */
#define DebugLibXaw		DebugLibDefault	/* debugged widget library */
#define DebugLibXi		DebugLibDefault	/* debugged Xi library */
#define DebugLibXtst		DebugLibDefault	/* debugged Xtst library */
#define DebugLibICE		DebugLibDefault	/* debugged ICE library */
#define DebugLibSM		DebugLibDefault	/* debugged SM library */
#define DebugLibXkey		DebugLibDefault	/* debugged Xkey library */
#define DebugLibFS		DebugLibDefault	/* debugged FS library */

/*
 * Build all the Motif debug libaries *_d.a for use by Service
 */
#define DebugLibXm		DebugLibDefault
#define DebugLibMrm		DebugLibDefault
#define DebugLibUil		DebugLibDefault

/*
 * Build all the Adobe DPS debug libaries *_d.a for use by Service
 */
#define DebugLibDps		DebugLibDefault

#endif /* ! UseInstalled */

/*
 * Sequent general make macros.
 * X11R6.5 should migrate these to Imake.tmpl.
 */

XCOMM Sequent general make macros.

#ifndef PackCmd
#define PackCmd pack
#endif
            PACK = PackCmd

/*
 * Sequent unique make macros.  These will always be unique to Sequent.
 * We introduce them here in sequent.cf since cpp macros are set in sequent.cf.
 * We may later move them to sequentLib.tmpl.
 */

XCOMM Sequent unique make macros.

     ADMINBASEDIR = AdminBaseDir
    MESSAGECATDIR = MessageCatDir

/*
 * DPS default values (unique to sequent)
 */
#ifndef PswrapCmd
#define PswrapCmd     pswrap
#endif

#ifdef UseHidesymsLists

#ifndef HidesymsCmd
#define HidesymsCmd /usr/lib/hidesyms/hidesyms
#endif
#ifndef HsAcppCmd
#define HsAcppCmd /lib/acpp
#endif
/*
 * When building in the X11 tree.
 * For shared libs,   hidesyms executes in a subdir.
 * For unshared libs, hidesyms executes in a subsubdir.
 * Therefore we add both of these to the acpp path:
 * ../../$(BUILDINCROOT)/lib/hidesyms:../$(BUILDINCROOT)/lib/hidesyms
 */
#ifndef HsAcppLocalPath
# define HsAcppLocalPath ../../$(BUILDINCROOT)/lib/hidesyms:../$(BUILDINCROOT)/lib/hidesyms
#endif
#ifndef HsAcppSystemPath
# define HsAcppSystemPath /usr/lib/hidesyms
#endif
#ifndef HsAcppPath
# ifdef UseInstalled
# define HsAcppPath HsAcppSystemPath
# else
# define HsAcppPath HsAcppLocalPath:HsAcppSystemPath
# endif /* UseInstalled */
#endif
/* 
 * note: -DABI_SHARED_OBJECT requires a temporary fix added to 
 * Xt/Error.c to provide missing _abi_* routines not in libc.so.1.
 * When the base adds those missing _abi_* to libc.so.1,
 * then the code in Xt/Error.c can be removed and the corresponding
 * symbols added to Xt/libXt.hs can be removed.
 */
#ifndef HsAcppDefines
#define HsAcppDefines -DABI_SHARED_OBJECT -D_SOCKET_VERSION=11 $(THREADS_DEFINES)
#endif

/*
 * For shared libs, hidesyms executes in a subdir,
 * therefore we add a -L../$(BUILDLIBDIR)
 */
#ifndef LdPreLib
#ifndef UseInstalled
#define LdPreLib -L$(BUILDLIBDIR) -L../$(BUILDLIBDIR)
#endif
#endif

XCOMM HIDESYMS is for filtering system library symbols.

         HIDESYMS = HidesymsCmd
       HSACPPPATH = HsAcppPath
        HSACPPCMD = HsAcppCmd
    HSACPPDEFINES = HsAcppDefines
           HSACPP = $(HSACPPCMD) -Y $(HSACPPPATH) $(HSACPPDEFINES)
            HSCMD = $(HIDESYMS) -z -p "$(HSACPP)"

#endif /* UseHidesymsLists */

#if OSMajorVersion >= 4
#include <xorg.cf>
#include <sequentLib.rules>	/* include after macros, before Motif.rules */
#endif /* OSMajorVersion >= 4 */
