XCOMM ----------------------------------------------------------------------
XCOMM X Window System Build Parameters and Rules
XCOMM $XConsortium: Project.tmpl,v 1.248 95/01/06 19:12:51 gildea Exp $

/***************************************************************************
 *                                                                         *
 *                            DEFAULT DEFINITONS                           *
 *                                                                         *
 * The following section contains defaults for things that can             *
 * overridden in the various *.cf and site.def files.  DO NOT EDIT!        *
 *                                                                         *
 **************************************************************************/

#define ProjectX		6	/* do *not* change this line */

/* The following project-specific rules are defined at the end of this file:
 *
 * InstallAppDefaults		(class)
 * InstallAppDefaultsLong	(file,class)
 * MakeFontsDir			(deplist)
 * MakeFonts			()
 * InstallFontObjs		(objs,dest)
 * InstallFonts			(dest)
 * InstallFontAliases		(dest)
 * FontSrc			(basename)
 * FontBaseObj			(basename)
 * InstallFontScale		(dest)
 * UncompressedFontTarget	(basename)
 * CompressedFontTarget		(basename)
 * FontTarget			(basename)
 * FontObj			(basename)
 */

/*
 * X-specific things
 */
#ifndef HasXServer
#define HasXServer		YES
#endif
#ifndef BuildServer
#define BuildServer		HasXServer
#endif
#ifndef XServerThreaded
#define XServerThreaded		NO	/* turn on threads in merged server */
#endif
#ifndef BuildFontServer
#define BuildFontServer		YES
#endif
#ifndef BuildFonts
#define BuildFonts		BuildServer
#endif
#ifndef BuildPhigs
#define BuildPhigs		NO
#endif
#ifndef BuildPexExt
#define BuildPexExt		YES
#endif
#ifndef BuildXInputExt
#define BuildXInputExt		NO
#endif
#ifndef BuildDIS
#define BuildDIS		NO
#endif
#ifndef BuildXIE
#define BuildXIE		YES
#endif
#ifndef BuildXKB
#define BuildXKB		NO
#endif
#ifndef BuildXKBlib
#define BuildXKBlib		NO	/* not yet a standard part of Xlib */
#endif
#ifndef BuildFresco
#if HasCplusplus 
#define BuildFresco		YES
#else
#define BuildFresco		NO
#endif
#endif
#ifndef InstallLibManPages
#define InstallLibManPages	YES
#endif
#ifndef InstallXtermSetUID
#define InstallXtermSetUID	YES	/* xterm needs to be set uid */
#endif
#ifndef InstallXinitConfig
#define InstallXinitConfig	NO	/* install sample xinit config */
#endif
#ifndef InstallXdmConfig
#define InstallXdmConfig	NO	/* install sample xdm config */
#endif
#ifndef XdmServersType			/* what Xservers files to use */
#if BuildServer
#define XdmServersType ws
#else
#define XdmServersType fs
#endif
#endif
#ifndef InstallFSConfig
#define InstallFSConfig		NO	/* install sample fs config */
#endif
#ifndef InstallAppDefFiles
#define InstallAppDefFiles	YES	/* install application defaults */
#endif
#ifndef ThreadedX
#if HasPosixThreads || HasCThreads
#define ThreadedX		YES	/* multi-threaded libraries */
#else
#define ThreadedX		NO
#endif
#endif
#ifndef ThreadedProject
#define ThreadedProject ThreadedX
#endif
#ifndef HasWChar32
#define HasWChar32		SystemV4
#endif
#ifndef HasXdmAuth
#define HasXdmAuth		NO	/* if you can not use XDM-AUTH* */
#endif
#ifndef PrimaryScreenResolution
#define PrimaryScreenResolution 72		/* a common resolution */
#endif
#ifndef DefaultFontPath
#if PrimaryScreenResolution < 88		/* (75 + 100) / 2 */
#define DefaultFontPath $(FONTDIR)/misc/,$(FONTDIR)/Speedo/,$(FONTDIR)/Type1/,$(FONTDIR)/75dpi/,$(FONTDIR)/100dpi/
#else
#define DefaultFontPath $(FONTDIR)/misc/,$(FONTDIR)/Speedo/,$(FONTDIR)/Type1/,$(FONTDIR)/100dpi/,$(FONTDIR)/75dpi/
#endif
#endif
#ifndef DefaultRGBDatabase
#define DefaultRGBDatabase $(LIBDIR)/rgb
#endif
#ifndef UseRgbTxt
#define UseRgbTxt		NO	/* default is to compile with dbm */
#endif
#ifndef FontCompilerFlags
#define FontCompilerFlags -t
#endif
#ifndef ConnectionFlags
#if HasStreams
#define ConnectionFlags -DSTREAMSCONN
#else
#if HasDECnet
#define ConnectionFlags -DTCPCONN -DUNIXCONN -DDNETCONN
#else
#define ConnectionFlags -DTCPCONN -DUNIXCONN
#endif
#endif
#endif
#ifndef ProjectThreadsDefines
#define ProjectThreadsDefines -DXTHREADS
#endif
#ifndef FontOSDefines
#define FontOSDefines /**/
#endif
#ifndef FontDefines
#define FontDefines -DFONT_SNF -DFONT_BDF -DFONT_PCF -DCOMPRESSED_FONTS FontOSDefines
#endif
#ifndef XawI18nDefines
#if SystemV4
#define XawI18nDefines -DHAS_WCTYPE_H
#else
#define XawI18nDefines -DUSE_XWCHAR_STRING
#endif
#endif
#ifndef ExtensionOSDefines
#define ExtensionOSDefines /**/
#endif
#ifndef ExtensionDefines
#ifndef PexDefines
#if BuildPexExt
#define PexDefines -DPEXEXT
#else
#define PexDefines /**/
#endif
#endif
#ifndef ShmDefines
#if HasShm
#define ShmDefines -DMITSHM
#else
#define ShmDefines /**/
#endif
#endif
#ifndef XInputDefines
#if BuildXInputExt
#define XInputDefines -DXINPUT
#else
#define XInputDefines /**/
#endif
#endif
#ifndef XieDefines
#if BuildXIE
#define XieDefines -DXIE
#else
#define XieDefines /**/
#endif
#endif
#ifndef XkbDefines
#if BuildXKB
#define XkbDefines -DXKB
#else
#define XkbDefines /**/
#endif
#endif
#ifndef LbxDefines
#if BuildLBX
#define LbxDefines -DLBX
#else
#define LbxDefines /**/
#endif
#endif
#ifndef BigReqDefines
#if !BuildLBX
#define BigReqDefines -DBIGREQS
#else
#define BigReqDefines /**/	/* LBX doesn't work with BIG-REQUESTS yet */
#endif
#endif
#ifndef SitePervasiveExtensionDefines
#define SitePervasiveExtensionDefines /**/
#endif
#ifndef PervasiveExtensionDefines
#define PervasiveExtensionDefines -DSHAPE XInputDefines XkbDefines LbxDefines SitePervasiveExtensionDefines
#endif
#ifndef SiteExtensionDefines
#define SiteExtensionDefines /**/
#endif
#ifndef BaseExtensionDefines
#define BaseExtensionDefines -DMULTIBUFFER -DMITMISC -DXTEST -DXSYNC -DXCMISC PexDefines ShmDefines XieDefines BigReqDefines SiteExtensionDefines
#endif
#define ExtensionDefines BaseExtensionDefines ExtensionOSDefines
#endif
#ifndef ServerXdmcpDefines
#define ServerXdmcpDefines -DXDMCP
#endif
#ifndef ServerOSDefines
#define ServerOSDefines /**/
#endif
#if HasKrb5
#ifndef Krb5Defines
#define Krb5Defines -DK5AUTH
#endif
#else
#define Krb5Defines /**/
#endif
#ifndef ServerExtraDefines
#define ServerExtraDefines /* -DPIXPRIV */
#endif
#ifndef ServerDefines
#define ServerDefines StandardDefines PervasiveExtensionDefines ServerExtraDefines
#endif
#ifndef PexDipexDefines
#define PexDipexDefines /**/
#endif
#ifndef PexDdpexDefines
#define PexDdpexDefines /**/
#endif
#ifndef PexPhigsDefines
#ifndef PexShmIPC
#define PexShmIPC HasShm
#endif
#if PexShmIPC
#define PexPhigsDefines /**/
#else
#define PexPhigsDefines -DPEX_API_SOCKET_IPC
#endif
#endif
#ifndef PexClientDefines
#define PexClientDefines -DPEX_SI_PHIGS
#endif
#ifndef PhigsInclude
#ifdef UseInstalled
#define PhigsInclude -I$(INCDIR)
#else
#define PhigsInclude -I$(BUILDINCDIR)
#endif
#endif
#ifndef PexCDebugFlags
#define PexCDebugFlags DebuggableCDebugFlags
#endif
#ifndef PexCCOptions
#ifdef LibraryCCOptions
#define PexCCOptions LibraryCCOptions
#else
#define PexCCOptions DefaultCCOptions
#endif
#endif
#ifndef DefaultFSConfigFile
#define DefaultFSConfigFile $(LIBDIR)/fs/config
#endif
#ifndef BinDir
#ifdef ProjectRoot
#define BinDir Concat(ProjectRoot,/bin)
#else
#define BinDir /usr/bin/X11
#endif
#endif
#ifndef BuildIncRoot
#define BuildIncRoot $(TOP)
#endif
#ifndef BuildIncDir
#define BuildIncDir $(BUILDINCROOT)/X11
#endif
#ifndef BuildIncTop
#define BuildIncTop ..		/* relative to BuildIncDir */
#endif
#ifndef BuildLibDir
#define BuildLibDir $(TOP)/usrlib
#endif
#ifndef BuildLibTop
#define BuildLibTop ..		/* relative to BuildLibDir */
#endif
#ifndef LibDir
#define LibDir $(USRLIBDIR)/X11
#endif
#ifndef ConfigDir
#define ConfigDir $(LIBDIR)/config
#endif
#ifndef FontDir
#define FontDir $(LIBDIR)/fonts
#endif
#ifndef AdmDir
#define AdmDir /usr/adm
#endif
#ifndef XinitDir
#define XinitDir $(LIBDIR)/xinit
#endif
#ifndef XdmDir
#define XdmDir $(LIBDIR)/xdm
#endif
#ifndef XdmConfigurationSubdirectory		/* under xdm sources */
#define XdmConfigurationSubdirectory config
#endif
#ifndef TwmDir
#define TwmDir $(LIBDIR)/twm
#endif
#ifndef XsmDir
#define XsmDir $(LIBDIR)/xsm
#endif
#ifndef NlsDir
#define NlsDir $(LIBDIR)/nls
#endif
#ifndef XLocaleDir
#define XLocaleDir $(LIBDIR)/locale
#endif
#ifndef PexApiDir
#define PexApiDir $(LIBDIR)/PEX
#endif
#ifndef XFileSearchPathBase
/* avoid SCCS keyword */
#define XFileSearchPathBase Concat4($(LIBDIR)/%L/%T/%N%C,%S:$(LIBDIR)/%l/%T/%N%C,%S:$(LIBDIR)/%T/%N%C,%S:$(LIBDIR)/%L/%T/%N%S:$(LIBDIR)/%l/%T/%N%S:$(LIBDIR)/%T/%N%S)
#endif
#ifndef XFileSearchPathDefault
#ifdef XAppLoadDir
/* avoid SCCS keyword */
#define XFileSearchPathDefault XAppLoadDir/Concat(%N%C,%S):XAppLoadDir/%N%S:XFileSearchPathBase
#else
#define XFileSearchPathDefault XFileSearchPathBase
#endif
#endif
#ifndef XAppLoadDir
#define XAppLoadDir $(LIBDIR)/app-defaults
#endif
#ifndef XtErrorPrefix
#define XtErrorPrefix /* as empty string */
#endif
#ifndef XtExtraDefines
#define XtExtraDefines /* as empty string */
#endif
#ifndef XtWarningPrefix
#define XtWarningPrefix /* as empty string */
#endif
#ifndef OsNameDefines
#define OsNameDefines /* as nothing */
#endif
#ifndef DefaultUserPath			/* for xdm */
#define DefaultUserPath :/bin:/usr/bin:$(BINDIR):/usr/ucb
#endif
#ifndef DefaultSystemPath		/* for xdm */
#define DefaultSystemPath /etc:/bin:/usr/bin:$(BINDIR):/usr/ucb
#endif
#ifndef DefaultSystemShell		/* for xdm to set in SHELL */
#define DefaultSystemShell BourneShell
#endif
#ifndef ContribDir
#define ContribDir $(TOP)/../contrib	/* contrib is outside core tree */
#endif
#ifndef UnsupportedDir
#define UnsupportedDir $(TOP)/unsupported
#endif
#ifndef AllocateLocalDefines
#define AllocateLocalDefines /**/
#endif

#ifndef ForceNormalLib
#define ForceNormalLib (HasGcc && !HasGcc2)
#endif

XCOMM -----------------------------------------------------------------------
XCOMM X Window System make variables; these need to be coordinated with rules

/*
 * This list must be reflected in the DIRS_TO_BUILD list in the top-level
 * Makefile.
 */
           BINDIR = BinDir		/* programs */
     BUILDINCROOT = BuildIncRoot	/* base of build loc */
      BUILDINCDIR = BuildIncDir		/* built headers */
      BUILDINCTOP = BuildIncTop		/* top relative to BUILDINCDIR */
      BUILDLIBDIR = BuildLibDir		/* built libraries */
      BUILDLIBTOP = BuildLibTop		/* top relative to BUILDLIBDIR */
           INCDIR = $(INCROOT)/X11	/* header files, must end in X11 */
           ADMDIR = AdmDir		/* server log files */
           LIBDIR = LibDir		/* rgb, XErrorDB, etc. */

          FONTDIR = FontDir		/* font directories */
         XINITDIR = XinitDir		/* xinit config files */
           XDMDIR = XdmDir		/* xdm config files */
           TWMDIR = TwmDir		/* twm config files */
           XSMDIR = XsmDir		/* xsm config files */
           NLSDIR = NlsDir		/* nls files */
       XLOCALEDIR = XLocaleDir		/* locale files */
        PEXAPIDIR = PexApiDir		/* PEX support files */
      XAPPLOADDIR = XAppLoadDir		/* application default resource dir */
       FONTCFLAGS = FontCompilerFlags

     INSTAPPFLAGS = $(INSTDATFLAGS)	/* XXX - this should go away - XXX */

#ifdef UseInstalled
              RGB = rgb			/* assume BINDIR in path */
            FONTC = bdftopcf		/* assume BINDIR in path */
        MKFONTDIR = mkfontdir		/* assume BINDIR in path */
#else
              RGB = $(RGBSRC)/rgb
            FONTC = $(BDFTOPCFSRC)/bdftopcf
        MKFONTDIR = $(MKFONTDIRSRC)/mkfontdir
#endif

       DOCUTILSRC = $(TOP)/doc/util
       XDOCMACROS = $(DOCUTILSRC)/macros.t
       XIDXMACROS = $(DOCUTILSRC)/indexmacros.t
       PROGRAMSRC = $(TOP)/programs
           LIBSRC = $(TOP)/lib
          FONTSRC = $(TOP)/fonts
       INCLUDESRC = $(TOP)/X11
        SERVERSRC = $(TOP)/programs/Xserver
       CONTRIBSRC = ContribDir
   UNSUPPORTEDSRC = UnsupportedDir
           DOCSRC = $(TOP)/doc
           RGBSRC = $(TOP)/programs/rgb
      BDFTOPCFSRC = $(PROGRAMSRC)/bdftopcf
     MKFONTDIRSRC = $(PROGRAMSRC)/mkfontdir
    FONTSERVERSRC = $(PROGRAMSRC)/xfs
       FONTINCSRC = $(TOP)/include/fonts
        EXTINCSRC = $(TOP)/include/extensions
     TRANSCOMMSRC = $(LIBSRC)/xtrans
   TRANS_INCLUDES = -I$(TRANSCOMMSRC)

#ifndef ShLibIncludeFile
/* need this to make ANSI-style preprocessors happy */
#define ShLibIncludeFile <noop.rules>
#endif

#include ShLibIncludeFile

#ifndef SharedLibX11
#define SharedLibX11 HasSharedLibraries
#endif
#ifndef NormalLibX11
#define NormalLibX11 (!SharedLibX11 | ForceNormalLib)
#endif
#ifndef DebugLibX11
#define DebugLibX11		NO	/* debugged X library */
#endif
#ifndef ProfileLibX11
#define ProfileLibX11		NO	/* profiled X library */
#endif
          XLIBSRC = $(LIBSRC)/X11
#if SharedLibX11
#ifndef SharedX11Rev
#define SharedX11Rev 6.0
#endif
#if BuildXKBlib
SharedLibReferences(XONLY,X11kb,$(XLIBSRC),SOXLIBREV,SharedX11Rev)
#else
SharedLibReferences(XONLY,X11,$(XLIBSRC),SOXLIBREV,SharedX11Rev)
#endif
#else
#if BuildXKBlib
UnsharedLibReferences(XONLY,X11kb,$(XLIBSRC))
#else
UnsharedLibReferences(XONLY,X11,$(XLIBSRC))
#endif
#endif
         XLIBONLY = $(XONLYLIB)

#ifndef SharedLibXext
#define SharedLibXext HasSharedLibraries
#endif
#ifndef NormalLibXext
#define NormalLibXext (!SharedLibXext | ForceNormalLib)
#endif
#ifndef DebugLibXext
#define DebugLibXext		NO	/* debugged Xext library */
#endif
#ifndef ProfileLibXext
#define ProfileLibXext		NO	/* profiled Xext library */
#endif
      XEXTLIBSRC = $(LIBSRC)/Xext
#if SharedLibXext
#ifndef SharedXextRev
#define SharedXextRev 6.0
#endif
SharedLibReferences(EXTENSION,Xext,$(XEXTLIBSRC),SOXEXTREV,SharedXextRev)
#else
UnsharedLibReferences(EXTENSION,Xext,$(XEXTLIBSRC))
#endif
LINTEXTENSIONLIB = $(LINTEXTENSION)
          DEPXLIB = $(DEPEXTENSIONLIB) $(DEPXONLYLIB)
             XLIB = $(EXTENSIONLIB) $(XONLYLIB)
         LINTXLIB = $(LINTXONLYLIB)

#ifndef SharedLibXau
#define SharedLibXau NO		/* don't need shared form */
#endif
#ifndef NormalLibXau
#define NormalLibXau (!SharedLibXau | ForceNormalLib)
#endif
#ifndef DebugLibXau
#define DebugLibXau		NO	/* debugged auth library */
#endif
#ifndef ProfileLibXau
#define ProfileLibXau		NO	/* profiled auth library */
#endif
         XAUTHSRC = $(LIBSRC)/Xau
#if SharedLibXau
#ifndef SharedXauRev
#define SharedXauRev 6.0
#endif
SharedLibReferences(XAUTH,Xau,$(XAUTHSRC),SOXAUTHREV,SharedXauRev)
#else
UnsharedLibReferences(XAUTH,Xau,$(XAUTHSRC))
#endif

#ifndef SharedLibXdmcp
#define SharedLibXdmcp NO	/* don't need shared form */
#endif
#ifndef NormalLibXdmcp
#define NormalLibXdmcp (!SharedLibXdmcp | ForceNormalLib)
#endif
#ifndef DebugLibXdmcp
#define DebugLibXdmcp		NO	/* debugged XDMCP library */
#endif
#ifndef ProfileLibXdmcp
#define ProfileLibXdmcp		NO	/* profiled XDMCP library */
#endif
      XDMCPLIBSRC = $(LIBSRC)/Xdmcp
#if SharedLibXdmcp
#ifndef SharedXdmcpRev
#define SharedXdmcpRev 6.0
#endif
SharedLibReferences(XDMCP,Xdmcp,$(XDMCPLIBSRC),SOXDMCPREV,SharedXdmcpRev)
#else
UnsharedLibReferences(XDMCP,Xdmcp,$(XDMCPLIBSRC))
#endif

#ifndef SharedLibXmu
#define SharedLibXmu HasSharedLibraries
#endif
#ifndef NormalLibXmu
#define NormalLibXmu (!SharedLibXmu | ForceNormalLib)
#endif
#ifndef DebugLibXmu
#define DebugLibXmu		NO	/* debugged Xmu library */
#endif
#ifndef ProfileLibXmu
#define ProfileLibXmu		NO	/* profiled Xmu library */
#endif
           XMUSRC = $(LIBSRC)/Xmu
#if SharedLibXmu
#ifndef SharedXmuRev
#define SharedXmuRev 6.0
#endif
SharedDSLibReferences(XMU,Xmu,$(XMUSRC),SOXMUREV,SharedXmuRev)
#else
UnsharedLibReferences(XMU,Xmu,$(XMUSRC))
#endif

#ifndef SharedOldX
#define SharedOldX HasSharedLibraries
#endif
#ifndef NormalOldX
#define NormalOldX (!SharedOldX | ForceNormalLib)
#endif
#ifndef DebugOldX
#define DebugOldX		NO	/* debugged old X library */
#endif
#ifndef ProfileOldX
#define ProfileOldX		NO	/* profiled old X library */
#endif
       OLDXLIBSRC = $(LIBSRC)/oldX
#if SharedOldX
#ifndef SharedOldXRev
#define SharedOldXRev 6.0
#endif
SharedLibReferences(OLDX,oldX,$(OLDXLIBSRC),SOOLDXREV,SharedOldXRev)
#else
UnsharedLibReferences(OLDX,oldX,$(OLDXLIBSRC))
#endif

#ifndef SharedLibXt
#define SharedLibXt HasSharedLibraries
#endif
#ifndef NormalLibXt
#define NormalLibXt (!SharedLibXt | ForceNormalLib)
#endif
#ifndef DebugLibXt
#define DebugLibXt		NO	/* debugged toolkit library */
#endif
#ifndef ProfileLibXt
#define ProfileLibXt		NO	/* profiled toolkit library */
#endif
       TOOLKITSRC = $(LIBSRC)/Xt
#if SharedLibXt
#ifndef SharedXtRev
#define SharedXtRev 6.0
#endif
SharedDSLibReferences(XTOOLONLY,Xt,$(TOOLKITSRC),SOXTREV,SharedXtRev)
#else
UnsharedLibReferences(XTOOLONLY,Xt,$(TOOLKITSRC))
#endif
      DEPXTOOLLIB = $(DEPXTOOLONLYLIB) $(DEPSMLIB) $(DEPICELIB)
         XTOOLLIB = $(XTOOLONLYLIB) $(SMLIB) $(ICELIB)
     LINTXTOOLLIB = $(LINTXTOOLONLYLIB)

#ifndef SharedLibXaw
#define SharedLibXaw HasSharedLibraries
#endif
#ifndef NormalLibXaw
#define NormalLibXaw (!SharedLibXaw | ForceNormalLib)
#endif
#ifndef DebugLibXaw
#define DebugLibXaw		NO	/* debugged widget library */
#endif
#ifndef ProfileLibXaw
#define ProfileLibXaw		NO	/* profiled widget library */
#endif
       AWIDGETSRC = $(LIBSRC)/Xaw
#if SharedLibXaw
#ifndef SharedXawRev
#define SharedXawRev 6.0
#endif
SharedDSLibReferences(XAW,Xaw,$(AWIDGETSRC),SOXAWREV,SharedXawRev)
#else
UnsharedLibReferences(XAW,Xaw,$(AWIDGETSRC))
#endif

#ifndef SharedLibXtf
#define SharedLibXtf HasSharedLibraries
#endif
#ifndef NormalLibXtf
#define NormalLibXtf (!SharedLibXtf | ForceNormalLib)
#endif
#ifndef DebugLibXtf
#define DebugLibXtf		NO	/* debugged widget library */
#endif
#ifndef ProfileLibXtf
#define ProfileLibXtf		NO	/* profiled widget library */
#endif
       XTFSRC = $(TOP)/workInProgress/Xtf
#if SharedLibXtf
#ifndef SharedXtfRev
#define SharedXtfRev 0.7
#endif
SharedLibReferences(XTF,Xtf,$(XTFSRC),SOXTFREV,SharedXtfRev)
#else
UnsharedLibReferences(XTF,Xtf,$(XTFSRC))
#endif

#ifndef SharedLibFresco
#define SharedLibFresco HasSharedLibraries
#endif
#ifndef NormalLibFresco
#define NormalLibFresco (!SharedLibFresco | ForceNormalLib)
#endif
#ifndef DebugLibFresco
#define DebugLibFresco		NO	/* debugged widget library */
#endif
#ifndef ProfileLibFresco
#define ProfileLibFresco	NO	/* profiled widget library */
#endif
       FRESCOSRC = $(TOP)/workInProgress/Fresco
#if SharedLibFresco
#ifndef SharedFrescoRev
#define SharedFrescoRev 0.7
#endif
SharedLibReferences(FRESCO,Fresco,$(FRESCOSRC)/src,SOFRESCOREV,SharedFrescoRev)
#else
UnsharedLibReferences(FRESCO,Fresco,$(FRESCOSRC)/src)
#endif

#ifndef SharedLibXi
#define SharedLibXi HasSharedLibraries
#endif
#ifndef NormalLibXi
#define NormalLibXi (!SharedLibXi | ForceNormalLib)
#endif
#ifndef DebugLibXi
#define DebugLibXi		NO	/* debugged Xi library */
#endif
#ifndef ProfileLibXi
#define ProfileLibXi		NO	/* profiled Xi library */
#endif
         XILIBSRC = $(LIBSRC)/Xi
#if SharedLibXi
#ifndef SharedXiRev
#define SharedXiRev 6.0
#endif
SharedLibReferences(XI,Xi,$(XILIBSRC),SOXINPUTREV,SharedXiRev)
#else
UnsharedLibReferences(XI,Xi,$(XILIBSRC))
#endif

#ifndef SharedLibXtst
#define SharedLibXtst HasSharedLibraries
#endif
#ifndef NormalLibXtst
#define NormalLibXtst (!SharedLibXtst | ForceNormalLib)
#endif
#ifndef DebugLibXtst
#define DebugLibXtst		NO	/* debugged Xtst library */
#endif
#ifndef ProfileLibXtst
#define ProfileLibXtst		NO	/* profiled Xtst library */
#endif
      XTESTLIBSRC = $(LIBSRC)/Xtst
#if SharedLibXtst
#ifndef SharedXtstRev
#define SharedXtstRev 6.0
#endif
SharedLibReferences(XTEST,Xtst,$(XTESTLIBSRC),SOXTESTREV,SharedXtstRev)
#else
UnsharedLibReferences(XTEST,Xtst,$(XTESTLIBSRC))
#endif

#ifndef SharedLibPex
#define SharedLibPex HasSharedLibraries
#endif
#ifndef NormalLibPex
#define NormalLibPex (!SharedLibPex | ForceNormalLib)
#endif
#ifndef DebugLibPex
#define DebugLibPex		NO	/* debugged PEX5 library */
#endif
#ifndef ProfileLibPex
#define ProfileLibPex		NO	/* profiled PEX5 library */
#endif
        PEXLIBSRC = $(LIBSRC)/PEX5
#if SharedLibPex
#ifndef SharedPexRev
#define SharedPexRev 6.0
#endif
SharedLibReferences(PEX,PEX5,$(PEXLIBSRC),SOPEXREV,SharedPexRev)
#else
UnsharedLibReferences(PEX,PEX5,$(PEXLIBSRC))
#endif

#ifndef SharedLibXie
#define SharedLibXie HasSharedLibraries
#endif
#ifndef NormalLibXie
#define NormalLibXie (!SharedLibXie | ForceNormalLib)
#endif
#ifndef DebugLibXie
#define DebugLibXie		NO	/* debugged XIE library */
#endif
#ifndef ProfileLibXie
#define ProfileLibXie		NO	/* profiled XIE library */
#endif
        XIELIBSRC = $(LIBSRC)/XIE
#if SharedLibXie
#ifndef SharedXieRev
#define SharedXieRev 6.0
#endif
SharedLibReferences(XIE,XIE,$(XIELIBSRC),SOXIEREV,SharedXieRev)
#else
UnsharedLibReferences(XIE,XIE,$(XIELIBSRC))
#endif

#ifndef SharedLibPhigs
#define SharedLibPhigs NO	/* XXX - haven't made it sharable yet */
#endif
#ifndef NormalLibPhigs
#define NormalLibPhigs (!SharedLibPhigs | ForceNormalLib)
#endif
      PHIGSLIBSRC = $(LIBSRC)/PHIGS
#if SharedLibPhigs
#ifndef SharedPhigsRev
#define SharedPhigsRev 6.0
#endif
SharedLibReferences(PHIGS,phigs,$(PHIGSLIBSRC),SOPHIGSREV,SharedPhigsRev)
#else
UnsharedLibReferences(PHIGS,phigs,$(PHIGSLIBSRC))
#endif

UnsharedLibReferences(XBSD,Xbsd,$(LIBSRC)/Xbsd)

#ifndef SharedLibICE
#define SharedLibICE HasSharedLibraries
#endif
#ifndef NormalLibICE
#define NormalLibICE (!SharedLibICE | ForceNormalLib)
#endif
#ifndef DebugLibICE
#define DebugLibICE		NO	/* debugged ICE library */
#endif
#ifndef ProfileLibICE
#define ProfileLibICE		NO	/* profiled ICE library */
#endif
           ICESRC = $(LIBSRC)/ICE
#if SharedLibICE
#ifndef SharedICERev
#define SharedICERev 6.0
#endif
SharedLibReferences(ICE,ICE,$(ICESRC),SOICEREV,SharedICERev)
#else
UnsharedLibReferences(ICE,ICE,$(ICESRC))
#endif

#ifndef SharedLibSM
#define SharedLibSM HasSharedLibraries
#endif
#ifndef NormalLibSM
#define NormalLibSM (!SharedLibSM | ForceNormalLib)
#endif
#ifndef DebugLibSM
#define DebugLibSM		NO	/* debugged SM library */
#endif
#ifndef ProfileLibSM
#define ProfileLibSM		NO	/* profiled SM library */
#endif
            SMSRC = $(LIBSRC)/SM
#if SharedLibSM
#ifndef SharedSMRev
#define SharedSMRev 6.0
#endif
SharedLibReferences(SM,SM,$(SMSRC),SOSMREV,SharedSMRev)
#else
UnsharedLibReferences(SM,SM,$(SMSRC))
#endif

#ifndef SharedLibFS
#define SharedLibFS		NO	/* for now */
#endif
#ifndef NormalLibFS
#define NormalLibFS (!SharedLibFS | ForceNormalLib)
#endif
#ifndef DebugLibFS
#define DebugLibFS		NO	/* debugged FS library */
#endif
#ifndef ProfileLibFS
#define ProfileLibFS		NO	/* profiled FS library */
#endif
         FSLIBSRC = $(LIBSRC)/FS
#if SharedLibFS
#ifndef SharedFSRev
#define SharedFSRev 6.0
#endif
SharedLibReferences(FS,FS,$(FSLIBSRC),SOFSREV,SharedFSRev)
#else
UnsharedLibReferences(FS,FS,$(FSLIBSRC))
#endif

         FONTLIBSRC = $(LIBSRC)/font
UnsharedLibReferences(FONT,font,$(FONTLIBSRC))

#ifndef XawClientDepLibs
#define XawClientDepLibs $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
#endif
#ifndef XawClientLibs
#define XawClientLibs $(XAWLIB) $(XMULIB) $(XTOOLLIB) $(XLIB)
#endif

#ifndef FrescoClientDepLibs
#define FrescoClientDepLibs $(DEPFRESCOLIB) $(DEPXLIB)
#endif
#ifndef FrescoClientLibs
#define FrescoClientLibs $(FRESCOLIB) $(XLIB) MathLibrary
#endif

#ifndef NeedDefaultDepLibs
#define NeedDefaultDepLibs YES
#endif

#if NeedDefaultDepLibs
/*
 * Individual libraries should override this
 */
#if HasSharedLibraries || defined(UseInstalled)
          DEPLIBS = $(DEPXAWLIB) $(DEPXMULIB) $(DEPXTOOLLIB) $(DEPXLIB)
#else
          DEPLIBS = $(LOCAL_LIBRARIES)
#endif
         DEPLIBS1 = $(DEPLIBS)
         DEPLIBS2 = $(DEPLIBS)
         DEPLIBS3 = $(DEPLIBS)
#endif /* NeedDefaultDepLibs */


/*
 * InstallAppDefaults - generate rules to install appliation default files 
 * if the InstallAppDefFiles configuration parameter is set.
 */
#ifndef InstallAppDefaults
#if InstallAppDefFiles
#define	InstallAppDefaults(class)					@@\
InstallNamedTarget(install,class.ad,$(INSTAPPFLAGS),$(XAPPLOADDIR),class)
#else
#define	InstallAppDefaults(class)
#endif /* InstallAppDefFiles */
#endif /* InstallAppDefaults */

/*
 * InstallAppDefaultsLong - generate rules to install appliation default files 
 * if the InstallAppDefFiles configuration parameter is set.
 */
#ifndef InstallAppDefaultsLong
#if InstallAppDefFiles
#define	InstallAppDefaultsLong(file,class)				@@\
InstallNamedTarget(install,file.ad,$(INSTAPPFLAGS),$(XAPPLOADDIR),class)
#else
#define	InstallAppDefaultsLong(file,class)
#endif /* InstallAppDefFiles */
#endif /* InstallAppDefaultsLong */

/*
 * MakeFontsDir - generate rules to build fonts.dir database.
 */
#ifndef MakeFontsDir
#define MakeFontsDir(deplist)						@@\
all:: fonts.dir								@@\
									@@\
fonts.dir:  deplist							@@\
	RunProgram(MKFONTDIR,.)						@@\
									@@\
clean::									@@\
	RemoveFile(fonts.dir)
#endif /* MakeFontsDir */


/*
 * MakeFonts - generate rules to build font database.
 */
#ifndef MakeFonts
#define MakeFonts()							@@\
all::  $(OBJS)								@@\
									@@\
MakeFontsDir($(OBJS))							@@\
									@@\
clean::									@@\
	RemoveFiles(*.pcf *.pcf.Z)
#endif /* MakeFonts */


/*
 * InstallFontObjs - generate rules to install font files
 */
#ifndef InstallFontObjs
#define InstallFontObjs(objs,dest)					@@\
InstallMultipleFlags(objs,dest,$(INSTDATFLAGS))				@@\
									@@\
InstallTarget(install,fonts.dir,$(INSTDATFLAGS),dest)
#endif /* InstallFontObjs */


/*
 * InstallFonts - generate rules to install font files
 */
#ifndef InstallFonts
#define InstallFonts(dest)						@@\
InstallFontObjs($(OBJS),dest)
#endif /* InstallFonts */


/*
 * InstallFontAliases - generate rules to install font aliases databases. 
 */
#ifndef InstallFontAliases
#define InstallFontAliases(dest)					@@\
InstallTarget(install,fonts.alias,$(INSTDATFLAGS),dest)
#endif /* InstallFontAliases */

#ifndef FontSrc
#define FontSrc(basename) basename.bdf
#endif

#ifndef FontBaseObj
#define FontBaseObj(basename)basename.pcf
#endif

/*
 * InstallFontScale - generate rules to install font scale database.
 */
#ifndef InstallFontScale
#define InstallFontScale(dest)						@@\
InstallTarget(install,fonts.scale,$(INSTDATFLAGS),dest)
#endif /* InstallFontScale */

/*
 * UncompressedFontTarget
 */
#ifndef UncompressedFontTarget
#define UncompressedFontTarget(basename)				@@\
FontBaseObj(basename):  FontSrc(basename)				@@\
	$(FONTC) $(FONTCFLAGS) $? -o $@
#endif /* CompressedFontTarget */

/*
 * CompressedFontTarget
 */
#ifndef CompressedFontTarget
#define CompressedFontTarget(basename)					@@\
FontBaseObj(basename).Z:  FontSrc(basename)				@@\
	$(FONTC) $(FONTCFLAGS) $? | $(COMPRESS) > $@
#endif /* CompressedFontTarget */

#ifdef CompressAllFonts
#define FontTarget(basename) CompressedFontTarget(basename)
#define FontObj(basename) FontBaseObj(basename).Z
#else
#define FontTarget(basename) UncompressedFontTarget(basename)
#define FontObj(basename) FontBaseObj(basename)
#endif /* CompressAllFonts */

#ifndef MakeSimpleDoc
#define MakeSimpleDoc(file,srcs)					@@\
all:: file.PS								@@\
									@@\
file.PS:								@@\
	$(TROFF) $(MSMACROS) $(XDOCMACROS) srcs 2> index.raw > file.nPS \@@\
	&& $(MV) file.nPS $@						@@\
									@@\
file.txt:								@@\
	nroff $(MSMACROS) $(XDOCMACROS) srcs 2> index.raw > $@		@@\
									@@\
clean::									@@\
	$(RM) index.raw file.nPS file.PS file.txt
#endif

#ifndef MakeTblDoc
#define MakeTblDoc(file,srcs)						@@\
all:: file.PS								@@\
									@@\
file.PS:								@@\
	$(TBL) $(XDOCMACROS) srcs | $(TROFF) $(MSMACROS) 2> index.raw > file.nPS \@@\
	&& $(MV) file.nPS $@						@@\
									@@\
file.txt:								@@\
	$(TBL) $(XDOCMACROS) srcs | nroff $(MSMACROS) 2> index.raw | col > $@	@@\
									@@\
clean::									@@\
	$(RM) index.raw file.nPS file.PS file.txt
#endif

#ifndef MakeEqnDoc
#define MakeEqnDoc(file,srcs)						@@\
all:: file.PS								@@\
									@@\
file.PS:								@@\
	$(TBL) $(XDOCMACROS) srcs | $(EQN) | $(TROFF) $(MSMACROS) 2> index.raw > file.nPS \@@\
	&& $(MV) file.nPS $@						@@\
									@@\
file.txt:								@@\
	$(TBL) $(XDOCMACROS) srcs | neqn | nroff $(MSMACROS) 2> index.raw | col > $@ @@\
									@@\
clean::									@@\
	$(RM) index.raw file.nPS file.PS file.txt
#endif

#ifndef MakeDocIndex
#define MakeDocIndex(file,srcs)						@@\
all:: file.idx.PS							@@\
									@@\
file.idx.PS:								@@\
	tail -1 index.raw > index.pageno				@@\
	grep -v '^.pn ' index.raw | sort -f '-t:' +1 -3 +0n -1n | awk -f $(DOCUTILSRC)/fixindex.awk | awk -f $(DOCUTILSRC)/block.awk > index.troff @@\
	cat srcs $(XIDXMACROS) index.troff | $(TROFF) -me > file.idx.nPS \@@\
	&& $(MV) file.idx.nPS $@					@@\
	$(RM) index.troff index.pageno					@@\
									@@\
clean::									@@\
	$(RM) index.troff index.pageno file.idx.nPS file.idx.PS
#endif

#ifndef MakeLatexDoc
#if HasLatex
#define MakeLatexDoc(file,src)	 					@@\
all:: file.PS								@@\
									@@\
file.dvi: src	  							@@\
	$(LATEX) src							@@\
									@@\
file.PS: file.dvi							@@\
	$(DVIPS) -o file.nPS file && $(MV) file.nPS $@			@@\
									@@\
clean:: 								@@\
	RemoveFiles(file.nPS file.PS file.dvi file.log)			@@\
	RemoveFiles(file.aux file.toc file.lof file.lot)
#else /* HasLatex */
#define MakeLatexDoc(file,src)	 					@@\
all::									@@\
file.PS: src								@@\
	@echo "cannot make file.PS: no latex on this system"; exit 1
#endif /* HasLatex (else) */
#endif /* MakeLatexDoc */
