XCOMM $XConsortium: Imakefile,v 1.192 95/01/25 20:37:15 kaleb Exp $
XCOMM $XFree86: xc/programs/Xserver/Imakefile,v 3.37 1995/07/07 15:33:50 dawes Exp $
/*
 * Server Master Makefile
 */

#ifndef InstallXserverSetUID
#define InstallXserverSetUID NO
#endif
#define InstallServerSetUID InstallXserverSetUID

#include <Server.tmpl>

#ifdef XFree86Version
/* Don't strip server binaries */
INSTPGMFLAGS = 
#endif

#define PreFbLibs $(DIX) $(OS) $(FONT)
#define BarePostFbLibs $(MFB) $(MI)
#define PostFbLibs BarePostFbLibs $(EXTENSIONS)
#define NoMfbBarePostFbLibs $(MI)
#define NoMfbPostFbLibs NoMfbBarePostFbLibs $(EXTENSIONS)

#define MFBBareLibs PreFbLibs BarePostFbLibs
#define NoMFBBareLibs PreFbLibs NoMfbBarePostFbLibs
#define MFBLibs PreFbLibs PostFbLibs
#define NoMFBLibs PreFbLibs NoMfbPostFbLibs
#define CFBLibs PreFbLibs $(CFB) PostFbLibs
#define CFB8Libs PreFbLibs $(CFB8) PostFbLibs
#define CFB16Libs PreFbLibs $(CFB16) PostFbLibs
#define CFB32Libs PreFbLibs $(CFB32) PostFbLibs

#if BuildPexExt
         PEXLIBS = PEX5/dipex/dispatch/LibraryTargetName(didipex) \
                   PEX5/dipex/swap/LibraryTargetName(diswapex) \
                   PEX5/dipex/objects/LibraryTargetName(diobpex) \
                   PEX5/dipex/dispatch/LibraryTargetName(didipex) \
                   PEX5/ddpex/mi/level4/LibraryTargetName(ddpex4) \
                   PEX5/ddpex/mi/level3/LibraryTargetName(ddpex3) \
                   PEX5/ddpex/mi/shared/LibraryTargetName(ddpexs) \
                   PEX5/ddpex/mi/level2/LibraryTargetName(ddpex2) \
                   PEX5/ddpex/mi/level1/LibraryTargetName(ddpex1) \
		   PEX5/ospex/LibraryTargetName(ospex) 
          PEXDIR = PEX5
#endif
#if BuildXInputExt
      XINPUTEXT = Xi/LibraryTargetName(xinput)
          XIDIR = Xi
#endif
#if BuildXIE
      XIEEXT = XIE/dixie/LibraryTargetName(dixie) XIE/mixie/LibraryTargetName(mixie) 
      XIEDIR = XIE
#endif
#if BuildXKB
      XKBEXT = xkb/LibraryTargetName(xkb)
      XKBDIR = xkb
#endif
#if BuildLBX
         LBXEXT = $(TOP)/workInProgress/lbx/programs/Xserver/lbx/LibraryTargetName(lbx) \
                  $(TOP)/workInProgress/lbx/lib/lbxutil/LibraryTargetName(lbxutil)
        LBXDIRS = $(TOP)/workInProgress/lbx/programs/Xserver/lbx \
                  $(TOP)/workInProgress/lbx/lib/lbxutil
#endif
#if BuildLBXCompatible
        LBXDIRS = dixlbx oslbx \
                  $(TOP)/workInProgress/lbx/programs/Xserver/lbx \
                  $(TOP)/workInProgress/lbx/lib/lbxutil
#endif
#ifdef SiteExtensionLibs
     SITEEXTS = SiteExtensionLibs
#endif
#ifdef SiteExtensionDirs
     SITEEXTDIRS = SiteExtensionDirs
#endif

      OTHEREXTS = Xext/LibraryTargetName(ext) $(XKBEXT) $(XINPUTEXT) $(XIEEXT) \
                  $(LBXEXT) $(SITEEXTS)
        EXTDIRS = Xext $(XKBDIR) $(XIDIR) $(XIEDIR) $(PEXDIR) \
                  $(LBXDIRS) $(SITEEXTDIRS)
     EXTENSIONS = $(OTHEREXTS) $(PEXLIBS)
         XAULIB = $(XAUTHSRC)/LibraryTargetName(Xau)
       XDMCPLIB = $(XDMCPLIBSRC)/LibraryTargetName(Xdmcp)
             OS = os/LibraryTargetName(os) $(XAULIB) $(XDMCPLIB)
        BSDEMUL = $(DEPXBSDLIB)
            MFB = mfb/LibraryTargetName(mfb)
            CFB = cfb/LibraryTargetName(cfb) cfb16/LibraryTargetName(cfb) cfb32/LibraryTargetName(cfb)
           CFB8 = cfb/LibraryTargetName(cfb)
          CFB16 = cfb/LibraryTargetName(cfb) cfb16/LibraryTargetName(cfb)
          CFB32 = cfb/LibraryTargetName(cfb) cfb32/LibraryTargetName(cfb)
             MI = mi/LibraryTargetName(mi)
            DIX = dix/LibraryTargetName(dix)
           FONT = $(DEPFONTLIB)
#ifdef ServerExtraSysLibs
   EXTRASYSLIBS = ServerExtraSysLibs
#endif
#if SystemV4 || defined(SGIArchitecture) || defined(XFree86Version)
        SYSLIBS = MathLibrary Krb5Libraries $(EXTRASYSLIBS)
#else
        SYSLIBS = MathLibrary Krb5Libraries DBMLibrary $(EXTRASYSLIBS)
#endif
           CBRT = mi/LibraryTargetName(cbrt)
        STDDIRS = include dix os mi $(EXTDIRS)

XCOMM
XCOMM This turns off the default rule for compiling .c files because
XCOMM this makefile does not really know how to build it.  This is really
XCOMM just a hack because of the Sun version of make and nfs.
XCOMM
.c.o:

XCOMM 		  Build rule blocks, add one for each server
XCOMM 
XCOMM The ALL definitions that used to be here have been folded into the
XCOMM build blocks.
XCOMM 
XCOMM If a server needs mfb, its build block should have a line like:
XCOMM MFBDIR = mfb
XCOMM Similarly, its build block should have:
XCOMM CFB8DIR  = cfb   (if the servr needs 8 bit cfb)
XCOMM CFB16DIR = cfb16 (16 bit cfb)
XCOMM CFB32DIR = cfb32 (32 bit cfb)
XCOMM 
XCOMM If a server does not need all of the above components, simply
XCOMM omit the relevant lines from the build block.
XCOMM 
XCOMM Additional ddx directories can be split across three variables:
XCOMM DDXDIR1, DDXDIR2, and DDXDIR3.  Most servers only use DDXDIR1,
XCOMM but if two servers can be built on a platform then DDXDIR1 is
XCOMM typically set to the ddx directories that are shared by both
XCOMM servers, DDXDIR2 is the directories unique to one of the servers,
XCOMM and DDXDIR3 is the directories unique to the other server.
XCOMM 
XCOMM If these guidelines are followed, a make at the top of the server
XCOMM tree should result in each subdirectory being built only once,
XCOMM even if multiple servers that share subdirectories are being built.
XCOMM It was possible to get this result with the old SUBDIRSn scheme
XCOMM (from which the current scheme is derived), but it became very
XCOMM difficult to attain with the advent of the Virtual framebuffer server
XCOMM (Xvfb), which can be built on any platform and thus interacted strongly
XCOMM with SUBDIRSn.  The current scheme made accomodating Xvfb a snap,
XCOMM and should in general be easier to maintain.

#if XdecServer
XCOMM
XCOMM Digital MIPS based WS server (ultrix 4.2 and beyond)
XCOMM
MFBDIR  = mfb
CFB8DIR = cfb
DDXDIR1 = hw/dec/ws
DECDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(DDXDIR1) $(DEPDIRS)
DECOBJS = hw/dec/ws/init.o hw/dec/ws/sdepthinit.o
DECLIBS = hw/dec/ws/libdec.a CFB8Libs
ServerTarget(Xdec,$(DECDIRS),$(DECOBJS),$(DECLIBS),$(SYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall Xdec
#endif
#endif /* XdecServer */


#if XdecMultiDepthServer
XCOMM
XCOMM Digital MIPS based WS server (ultrix 4.2 and beyond)
XCOMM Supports 8, 12, and 24 bit pixmaps
XCOMM
MFBDIR   = mfb
CFB8DIR  = cfb
CFB16DIR = cfb16
CFB32DIR = cfb32
DDXDIR1  = hw/dec/ws
DECDIRS1 = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(CFB16DIR) $(CFB32DIR) $(DDXDIR1) $(DEPDIRS)
DECOBJS1 = hw/dec/ws/init.o hw/dec/ws/mdepthinit.o
DECLIBS1 = hw/dec/ws/libdec.a CFBLibs
ServerTarget(Xdec_md,$(DECDIRS1),$(DECOBJS1),$(DECLIBS1),$(SYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall Xdec_md
#endif
#endif /* XdecMultiDepthServer */


#if XsunServer
XCOMM
XCOMM Sun server
XCOMM
MFBDIR = mfb
CFB8DIR = cfb
DDXDIR1 = hw/sun
SUNDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(DDXDIR1) $(DEPDIRS)
#ifndef AmoebaArchitecture
SUNOBJS = hw/sun/sunInit.o
#else
SUNOBJS = hw/sun/sunInitColor.o
#endif
SUNLIBS = hw/sun/libsun.a CFB8Libs
SetUIDServerTarget(Xsun,$(SUNDIRS),$(SUNOBJS),$(SUNLIBS),$(SYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall Xsun
#endif
#endif /* XsunServer */


#if Xsun24Server
XCOMM
XCOMM Sun multiple pixmap depth (8, 12, 24) server
XCOMM
MFBDIR = mfb
CFB8DIR = cfb
CFB16DIR = cfb16
CFB32DIR = cfb32
DDXDIR1 = hw/sun
SUN24DIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(CFB16DIR) $(CFB32DIR) $(DDXDIR1) $(DEPDIRS)
SUN24OBJS = hw/sun/sunInitMulti.o
SUN24LIBS = hw/sun/libsun.a CFBLibs
SetUIDServerTarget(Xsun24,$(SUN24DIRS),$(SUN24OBJS),$(SUN24LIBS),$(SYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall Xsun24
#endif
#endif /* Xsun24Server */


#if XsunMonoServer
XCOMM
XCOMM Sun monochrome server
XCOMM
MFBDIR = mfb
DDXDIR1 = hw/sun
SUNMDIRS = $(STDDIRS) $(MFBDIR) $(DDXDIR1) $(DEPDIRS)
SUNMOBJS = hw/sun/sunInitMono.o hw/sun/sunInExMono.o
SUNMLIBS = hw/sun/libsun.a MFBBareLibs $(OTHEREXTS)
SetUIDServerTarget(XsunMono,$(SUNMDIRS),$(SUNMOBJS),$(SUNMLIBS),$(SYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall XsunMono
#endif
#endif /* XsunMonoServer */


#if XsunAmoebaServer
XCOMM
XCOMM Sun server for Amoeba
XCOMM
MFBDIR = mfb
CFB8DIR = cfb
DDXDIR1 = hw/sunAmoeba
SUNDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(DDXDIR1) $(DEPDIRS)
SUNOBJS = hw/sunAmoeba/sunInitColor.o
SUNLIBS = hw/sunAmoeba/libsun.a CFB8Libs
ServerTarget(Xsun,$(SUNDIRS),$(SUNOBJS),$(SUNLIBS),$(SYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall Xsun
#endif
#endif /* XsunAmoebaServer */


#if XsunAmoebaMonoServer
XCOMM
XCOMM Sun monochrome server for Amoeba
XCOMM
MFBDIR = mfb
DDXDIR1 = hw/sunAmoeba
SUNMDIRS = $(STDDIRS) $(MFBDIR) $(DDXDIR1) $(DEPDIRS)
SUNMOBJS = hw/sunAmoeba/sunInitMono.o hw/sunAmoeba/sunInExMono.o
SUNMLIBS = hw/sunAmoeba/libsun.a MFBBareLibs $(OTHEREXTS)
ServerTarget(XsunMono,$(SUNMDIRS),$(SUNMOBJS),$(SUNMLIBS),$(SYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall XsunMono
#endif
#endif /* XsunAmoebaMonoServer */


#if XibmServer
XCOMM
XCOMM IBM server
XCOMM
#if SpecialMalloc
IBMALLOCLIB = hw/ibm/common/libibmalloc.a
#else
IBMALLOCLIB = 
#endif
MFBDIR  = mfb
CFB8DIR = cfb
DDXDIR1 = hw/ibm
IBMDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(DDXDIR1) $(DEPDIRS)
IBMOBJS = hw/ibm/common/ibmcomm.o hw/ibm/common/ibmDate.o
IBMLIBS = hw/ibm/AIX/hft.o hw/ibm/libibm.a $(IBMALLOCLIB) CFB8Libs
ServerTarget(Xibm,$(IBMDIRS),$(IBMOBJS),$(IBMLIBS),$(SYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall Xibm
#endif
#endif /* XibmServer */


#if XtekServer
XCOMM
XCOMM Tektronix server
XCOMM
MFBDIR  = mfb
CFB8DIR = cfb
DDXDIR1 = hw/tek
TEKDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(DDXDIR1) $(DEPDIRS)
TEKOBJS = hw/tek/pegInit.o
TEKLIBS = hw/tek/libtek.a CFB8Libs
TEKSYSLIBS = $(CBRT) $(SYSLIBS)
ServerTarget(Xtek,$(TEKDIRS),$(TEKOBJS),$(TEKLIBS),$(TEKSYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall Xtek
#endif
#endif /* XtekServer */


#if XmacIIServer
XCOMM
XCOMM Apple MacII server
XCOMM
MFBDIR  = mfb
CFB8DIR = cfb
CFB16DIR = cfb16
CFB32DIR = cfb32
DDXDIR1 = hw/macII
MACIIDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(CFB16DIR) $(CFB32DIR) $(DDXDIR1) $(DEPDIRS)
MACIIOBJS = hw/macII/macIIInitS.o hw/macII/macIIColor.o
MACIILIBS = hw/macII/libmacII.a CFBLibs
MACIISYSLIBS = $(CBRT) $(SYSLIBS)
ServerTarget(XmacII,$(MACIIDIRS),$(MACIIOBJS),$(MACIILIBS),$(MACIISYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall XmacII
#endif
#endif /* XmacIIServer */


#if XlunaServer
XCOMM
XCOMM OMRON Luna server
XCOMM
MFBDIR  = mfb
DDXDIR1 = hw/omron
LUNADIRS = $(STDDIRS) $(MFBDIR) $(DDXDIR1) $(DEPDIRS)
LUNAOBJS = hw/omron/omronInit.o
#ifdef uniosu
LUNALIBS = hw/omron/libomron.a MFBLibs $(BSDEMUL)
#else
LUNALIBS = hw/omron/libomron.a MFBLibs
#endif
ServerTarget(Xluna,$(LUNADIRS),$(LUNAOBJS),$(LUNALIBS),$(SYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall Xluna
#endif
#endif /* XlunaServer */


#if XmipsServer
XCOMM
XCOMM MIPS server
XCOMM
MFBDIR  = mfb
CFB8DIR = cfb
DDXDIR1 = hw/mips
MIPSDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(DDXDIR1) $(DEPDIRS)
MIPSOBJS = hw/mips/mipsInit.o
MIPSLIBS = hw/mips/libmips.a CFB8Libs
MIPSSYSLIBS = $(SYSLIBS) -lc /usr/lib/libc.a
ServerTarget(Xmips,$(MIPSDIRS),$(MIPSOBJS),$(MIPSLIBS),$(MIPSSYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall Xmips
#endif
#endif /* XmipsServer */


#if XirisServer
XCOMM
XCOMM SGI Iris Server
XCOMM
DDXDIR1 = hw/sgi/IRIX hw/sgi/common hw/sgi/gr1 hw/sgi/nfb hw/sgi/rrm \
	hw/sgi/sgi
MFBDIR  = mfb
CFB8DIR = cfb
IRISDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(DDXDIR1) $(DEPDIRS)
IRISOBJS =
IRISLIBS = 	$(DIX) $(OS) \
		hw/sgi/common/libcomm.a \
		hw/sgi/sgi/libsgi.a \
	   	hw/sgi/gr1/re2/libre2.a \
	   	hw/sgi/gr1/libgr1.a \
	   	hw/sgi/rrm/librrm.a \
		hw/sgi/nfb/libnfb.a \
		$(CFB8) $(MFB) $(MI) $(FONT) $(EXTENSIONS) \
		hw/sgi/IRIX/libirix.a
IRISSYSLIBS = $(SYSLIBS)
ServerTarget(Xiris,$(IRISDIRS),$(IRISOBJS),$(IRISLIBS),$(IRISSYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall Xiris
#endif
#endif /* XirisServer */


#if XhpServer
XCOMM
XCOMM Hewlett Packard CFB Server
XCOMM
MFBDIR  = mfb
CFB8DIR = cfb
CFB32DIR = cfb32
DDXDIR1 = hw/hp
HPSUBDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(CFB32DIR) $(DDXDIR1) $(DEPDIRS)
HPOBJS = hw/hp/hp.o
HPLIBS = CFB32Libs
HPSYSLIBS = $(CBRT) $(SYSLIBS)
ServerTarget(Xhp,$(HPSUBDIRS),$(HPOBJS),$(HPLIBS),$(HPSYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall Xhp
#endif
#endif	/* XhpServer */


#if XsvgaServer
XCOMM
XCOMM SVGA CFB Server
XCOMM
MFBDIR  = mfb
CFB8DIR = cfb
DDXDIR1 = hw/svga
SVGASUBDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(DDXDIR1) $(DEPDIRS)
SVGAOBJS = hw/svga/svga.o
SVGALIBS = CFB8Libs
SVGASYSLIBS = $(CBRT) -lm -lmalloc
SetUIDServerTarget(Xsvga,$(SVGASUBDIRS),$(SVGAOBJS),$(SVGALIBS),$(SVGASYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall Xsvga
#endif
#endif	/* XsvgaServer */

#ifdef XFree86Version
XF86INIT   = $(XF86COMSRC)/xf86Init.o $(XF86CONFIGSRC)/xf86IniExt.o
XF86MINIT  = $(XF86COMSRC)/xf86Init_m.o $(XF86CONFIGSRC)/xf86MIniExt.o
XF86CONFIG = $(XF86CONFIGSRC)/xf86_Option.o
XF86COMLIB = $(XF86COMSRC)/LibraryTargetName(xf86)
XF86OSLIB  = $(XF86OSSRC)/LibraryTargetName(xf86_os)
XF86HWLIB  = $(XF86HWSRC)/LibraryTargetName(xf86_hw)
XF86LIBS   = $(XF86INIT) $(XF86CONFIG) $(XF86COMLIB) $(XF86HWLIB) $(XF86OSLIB)
XF86MLIBS  = $(XF86MINIT) $(XF86CONFIG) $(XF86COMLIB) $(XF86HWLIB) $(XF86OSLIB)
#endif

#if HasParallelMake
XCOMM
XCOMM force non-parallel build of XF86 servers to prevent MUTEX overrides
XCOMM
#if XF86SVGAServer
XF86SVGA = XF86_SVGA
#endif
#if XF86VGA16Server
XF86VGA16 = XF86_VGA16
#endif
#if XF86W32Server
XF86W32 = XF86_W32
#endif
#if XF86MonoServer
XF86MONO = XF86_Mono
#endif
#if XF86S3Server
XF86S3 = XF86_S3
#endif
#if XF86I8514Server
XF868514 = XF86_8514
#endif
#if XF86Mach8Server
XF86MACH8 = XF86_Mach8
#endif
#if XF86Mach32Server
XF86MACH32 = XF86_Mach32
#endif
#if XF86Mach64Server
XF86MACH64 = XF86_Mach64
#endif
#if XF86P9000Server
XF86P9000 = XF86_P9000
#endif
#if XF86AGXServer
XF86AGX = XF86_AGX
#endif
#if XnestServer
XNEST = Xnest
#endif
#if XVirtualFramebufferServer
XVFB = Xvfb
#endif
#if defined(XF86SVGAServer) || defined(XF86VGA16Server) || defined(XF86W32Server) || defined(XF86MonoServer) || defined(XF86S3Server) || defined(XF86I8514Server) || defined(XF86Mach8Server) || defined(XF86Mach32Server) || defined(XF86Mach64Server) || defined(XF86P9000Server) || defined(XF86AGXServer) || defined(XnestServer) || defined(XVirtualFramebufferServer)
MakeMutex($(XF86SVGA) $(XF86VGA16) $(XF86W32) $(XF86MONO) $(XF86S3) $(XF868514) $(XF86MACH8) $(XF86MACH32) $(XF86MACH64) $(XF86P9000) $(XF86AGX) $(XNEST) $(XVFB))
#endif
MakeMutex($(STDDIRS) mfb cfb cfb16 cfb32)
#endif

#if XF86SVGAServer
XCOMM
XCOMM XFree86 SVGA Server
XCOMM
MFBDIR  = mfb
CFB8DIR = cfb
CFB16DIR = cfb16
CFB32DIR = cfb32
DDXDIR1 = hw/xfree86
XF86SVGASUBDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(CFB16DIR) $(CFB32DIR) $(DDXDIR1) $(DEPDIRS)
XF86SVGAOBJS = $(XF86COMSRC)/XF86_SVGA.o $(XF86SRC)/vga256/vga256Conf.o
XF86SVGALIBS = $(VGADRIVERSRC)/LibraryTargetName(driver256) $(XF86SRC)/vga256/LibraryTargetName(vga256) $(XF86LIBS) CFBLibs
XF86SVGASYSLIBS = $(SYSLIBS)
#if HasParallelMake
MakeMutex($(XF86SVGASUBDIRS) $(XF86SVGAOBJS) $(XF86SVGALIBS) $(XF86SVGASYSLIBS))
#endif
SetUIDServerTarget(XF86_SVGA,$(XF86SVGASUBDIRS),$(XF86SVGAOBJS),$(XF86SVGALIBS),$(XF86SVGASYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall XF86_SVGA
#endif
#ifdef OS2Architecture
LinkFile(XF86_SVGA.def,SVGA.def)
#endif
#endif	/* XF86SVGAServer */


#if XF86VGA16Server
XCOMM
XCOMM XFree86 VGA 16 color Server
XCOMM
DDXDIR1 = hw/xfree86
#if XF86VGA16DualServer
XF86VGA16MONOOBJS = $(XF86SRC)/mono/monoConf.o
XF86VGA16MONOLIBS = $(MONODRIVERSRC)/LibraryTargetName(monodrv) $(XF86SRC)/mono/LibraryTargetName(mono)
#endif
XF86VGA16SUBDIRS = $(STDDIRS) $(DDXDIR1) $(DEPDIRS)
XF86VGA16OBJS = $(XF86COMSRC)/XF86_VGA16.o $(XF86SRC)/vga16/vga16Conf.o \
                $(XF86SRC)/vga16/misc/vga16misc.o $(XF86VGA16MONOOBJS)
XF86VGA16LIBS = $(VGA16DRIVERSRC)/LibraryTargetName(driver16) $(XF86SRC)/vga16/LibraryTargetName(vga16) \
                $(XF86VGA16MONOLIBS) $(XF86MLIBS) NoMFBBareLibs $(OTHEREXTS)
XF86VGA16SYSLIBS = $(SYSLIBS)
#if HasParallelMake
MakeMutex($(XF86VGA16SUBDIRS) $(XF86VGA16OBJS) $(XF86VGA16LIBS) $(XF86VGA16SYSLIBS))
#endif
SetUIDServerTarget(XF86_VGA16,$(XF86VGA16SUBDIRS),$(XF86VGA16OBJS),$(XF86VGA16LIBS),$(XF86VGA16SYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall XF86_VGA16
#endif
#ifdef OS2Architecture
LinkFile(XF86_VGA16.def,VGA16.def)
#endif
#endif	/* XF86VGA16Server */

#if XF86W32Server
XCOMM
XCOMM XFree86 W32 Server
XCOMM
MFBDIR  = mfb
CFB8DIR = cfb
DDXDIR1 = hw/xfree86
XF86W32SUBDIRS = $(STDDIRS) $(MFBDIR) $(CFBDIR) $(DDXDIR1) $(DEPDIRS)
XF86W32OBJS = $(XF86COMSRC)/XF86_W32.o $(XF86ACCELSRC)/et4000w32/w32Conf.o
XF86W32LIBS = $(XF86ACCELSRC)/et4000w32/w32/LibraryTargetName(w32) $(XF86ACCELSRC)/et4000w32/cfb.w32/LibraryTargetName(cfb) $(XF86ACCELSRC)/et4000w32/w32/LibraryTargetName(w32) $(XF86ACCELSRC)/et4000w32/asm/LibraryTargetName(asm) $(XF86LIBS) CFB8Libs
XF86W32SYSLIBS = $(SYSLIBS)
#if HasParallelMake
MakeMutex($(XF86W32SUBDIRS) $(XF86W32OBJS) $(XF86W32LIBS) $(XF86W32SYSLIBS))
#endif
SetUIDServerTarget(XF86_W32,$(XF86W32SUBDIRS),$(XF86W32OBJS),$(XF86W32LIBS),$(XF86W32SYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall XF86_W32
#endif
#ifdef OS2Architecture
LinkFile(XF86_W32.def,W32.def)
#endif
#endif

#if XF86MonoServer
XCOMM
XCOMM XFree86 Monochrome VGA Server
XCOMM
DDXDIR1 = hw/xfree86
#if XF86MonoDualServer
XF86MONOMONOOBJS = $(XF86SRC)/mono/monoConf.o
XF86MONOMONOLIBS = $(MONODRIVERSRC)/LibraryTargetName(monodrv) $(XF86SRC)/mono/LibraryTargetName(mono)
#endif
XF86MONOSUBDIRS = $(STDDIRS) $(MFBDIR) $(DDXDIR1) $(DEPDIRS)
XF86MONOOBJS = $(XF86COMSRC)/XF86_Mono.o $(XF86SRC)/vga2/vga2Conf.o \
               $(XF86SRC)/vga2/misc/vga2misc.o $(XF86MONOMONOOBJS)
XF86MONOLIBS = $(VGA2DRIVERSRC)/LibraryTargetName(driver2) $(XF86SRC)/vga2/LibraryTargetName(vga2) \
	       $(XF86MONOMONOLIBS) $(XF86MLIBS) NoMFBBareLibs $(OTHEREXTS)
XF86MONOSYSLIBS = $(SYSLIBS)
#if HasParallelMake
MakeMutex($(XF86MONOSUBDIRS) $(XF86MONOOBJS) $(XF86MONOLIBS) $(XF86MONOSYSLIBS))
#endif
SetUIDServerTarget(XF86_Mono,$(XF86MONOSUBDIRS),$(XF86MONOOBJS),$(XF86MONOLIBS),$(XF86MONOSYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall XF86_Mono
#endif
#ifdef OS2Architecture
LinkFile(XF86_Mono.def,Mono.def)
#endif
#endif	/* XF86MonoServer */


#if XF86S3Server
XCOMM
XCOMM XFree86 S3 Server
XCOMM
MFBDIR   = mfb
CFB8DIR  = cfb
CFB16DIR = cfb16
CFB32DIR = cfb32
DDXDIR1 = hw/xfree86
XF86S3SUBDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(CFB16DIR) $(CFB32DIR) $(DDXDIR1) $(DEPDIRS)
XF86S3OBJS = $(XF86COMSRC)/XF86_S3.o $(XF86ACCELSRC)/s3/s3Conf.o $(S3DRIVERSRC)/mmio_928/mmio_928.o $(S3DRIVERSRC)/s3_generic/s3_generic.o
XF86S3LIBS = $(XF86ACCELSRC)/s3/LibraryTargetName(s3) $(XF86ACCELSRC)/s3/s3mmio/LibraryTargetName(s3mmio) $(XF86LIBS) CFBLibs $(XF86ACCELSRC)/cache/LibraryTargetName(xf86cache)
XF86S3SYSLIBS = $(SYSLIBS)
#if HasParallelMake
MakeMutex($(XF86S3SUBDIRS) $(XF86S3OBJS) $(XF86S3LIBS) $(XF86S3SYSLIBS))
#endif
SetUIDServerTarget(XF86_S3,$(XF86S3SUBDIRS),$(XF86S3OBJS),$(XF86S3LIBS),$(XF86S3SYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall XF86_S3
#endif
#ifdef OS2Architecture
LinkFile(XF86_S3.def,S3.def)
#endif
#endif	/* XF86S3Server */


#if XF86I8514Server
XCOMM
XCOMM XFree86 8514 Server
XCOMM
MFBDIR  = mfb
CFB8DIR = cfb
DDXDIR1 = hw/xfree86
XF868514SUBDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(DDXDIR1) $(DEPDIRS)
XF868514OBJS = $(XF86COMSRC)/XF86_8514.o
XF868514LIBS = $(XF86ACCELSRC)/ibm8514/LibraryTargetName(8514) $(XF86LIBS) CFB8Libs $(XF86ACCELSRC)/cache/LibraryTargetName(xf86cache)
XF868514SYSLIBS = $(SYSLIBS)
#if HasParallelMake
MakeMutex($(XF868514SUBDIRS) $(XF868514OBJS) $(XF868514LIBS) $(XF868514SYSLIBS))
#endif
SetUIDServerTarget(XF86_8514,$(XF868514SUBDIRS),$(XF868514OBJS),$(XF868514LIBS),$(XF868514SYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall XF86_8514
#endif
#ifdef OS2Architecture
LinkFile(XF86_8514.def,8514.def)
#endif
#endif	/* XF86I8514Server */


#if XF86Mach8Server
XCOMM
XCOMM XFree86 Mach8 Server
XCOMM
MFBDIR  = mfb
CFB8DIR = cfb
DDXDIR1 = hw/xfree86
XF86MACH8SUBDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(DDXDIR1) $(DEPDIRS)
XF86MACH8OBJS = $(XF86COMSRC)/XF86_Mach8.o
XF86MACH8LIBS = $(XF86ACCELSRC)/mach8/LibraryTargetName(mach8) $(XF86LIBS) CFB8Libs $(XF86ACCELSRC)/cache/LibraryTargetName(xf86cache)
XF86MACH8SYSLIBS = $(SYSLIBS)
#if HasParallelMake
MakeMutex($(XF86MACH8SUBDIRS) $(XF86MACH8OBJS) $(XF86MACH8LIBS) $(XF86MACH8SYSLIBS))
#endif
SetUIDServerTarget(XF86_Mach8,$(XF86MACH8SUBDIRS),$(XF86MACH8OBJS),$(XF86MACH8LIBS),$(XF86MACH8SYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall XF86_Mach8
#endif
#ifdef OS2Architecture
LinkFile(XF86_Mach8.def,Mach8.def)
#endif
#endif	/* XF86Mach8Server */


#if XF86Mach32Server
XCOMM
XCOMM XFree86 Mach32 Server
XCOMM
MFBDIR   = mfb
CFB8DIR  = cfb
CFB16DIR = cfb16
DDXDIR1  = hw/xfree86
XF86MACH32SUBDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(CFB16DIR) $(DDXDIR1) $(DEPDIRS)
XF86MACH32OBJS = $(XF86COMSRC)/XF86_Mach32.o
XF86MACH32LIBS = $(XF86ACCELSRC)/mach32/LibraryTargetName(mach32) $(XF86LIBS) CFB16Libs $(XF86ACCELSRC)/cache/LibraryTargetName(xf86cache)
XF86MACH32SYSLIBS = $(SYSLIBS)
#if HasParallelMake
MakeMutex($(XF86MACH32SUBDIRS) $(XF86MACH32OBJS) $(XF86MACH32LIBS) $(XF86MACH32SYSLIBS))
#endif
SetUIDServerTarget(XF86_Mach32,$(XF86MACH32SUBDIRS),$(XF86MACH32OBJS),$(XF86MACH32LIBS),$(XF86MACH32SYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall XF86_Mach32
#endif
#ifdef OS2Architecture
LinkFile(XF86_Mach32.def,Mach32.def)
#endif
#endif	/* XF86Mach32Server */


#if XF86Mach64Server
XCOMM
XCOMM XFree86 Mach64 Server
XCOMM
MFBDIR   = mfb
CFB8DIR  = cfb
CFB16DIR = cfb16
CFB32DIR = cfb32
DDXDIR1  = hw/xfree86
XF86MACH64SUBDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(CFB16DIR) $(CFB32DIR) $(DDXDIR1) $(DEPDIRS)
XF86MACH64OBJS = $(XF86COMSRC)/XF86_Mach64.o
XF86MACH64LIBS = $(XF86ACCELSRC)/mach64/LibraryTargetName(mach64) $(XF86LIBS) CFBLibs
XF86MACH64SYSLIBS = $(SYSLIBS)
#if HasParallelMake
MakeMutex($(XF86MACH64SUBDIRS) $(XF86MACH64OBJS) $(XF86MACH64LIBS) $(XF86MACH64SYSLIBS))
#endif
SetUIDServerTarget(XF86_Mach64,$(XF86MACH64SUBDIRS),$(XF86MACH64OBJS),$(XF86MACH64LIBS),$(XF86MACH64SYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall XF86_Mach64
#endif
#ifdef OS2Architecture
LinkFile(XF86_Mach64.def,Mach64.def)
#endif
#endif	/* XF86Mach64Server */


#if XF86P9000Server
XCOMM
XCOMM XFree86 P9000 Server
XCOMM
MFBDIR  = mfb
CFB8DIR = cfb
CFB16DIR = cfb16
CFB32DIR = cfb32
DDXDIR1 = hw/xfree86
XF86P9000SUBDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(CFB16DIR) $(CFB32DIR) $(DDXDIR1) $(DEPDIRS)
XF86P9000OBJS = $(XF86COMSRC)/XF86_P9000.o
XF86P9000LIBS = $(XF86ACCELSRC)/p9000/LibraryTargetName(p9000) $(XF86LIBS) CFBLibs
XF86P9000SYSLIBS = $(SYSLIBS)
#if HasParallelMake
MakeMutex($(XF86P9000SUBDIRS) $(XF86P9000OBJS) $(XF86P9000LIBS) $(XF86P9000SYSLIBS))
#endif
SetUIDServerTarget(XF86_P9000,$(XF86P9000SUBDIRS),$(XF86P9000OBJS),$(XF86P9000LIBS),$(XF86P9000SYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall XF86_P9000
#endif
#ifdef OS2Architecture
LinkFile(XF86_P9000.def,P9000.def)
#endif
#endif        /* XF86P9000Server */


#if XF86AGXServer
XCOMM
XCOMM XFree86 AGX Server
XCOMM
MFBDIR   = mfb
CFB8DIR  = cfb
CFB16DIR = cfb16
CFB32DIR = cfb32
DDXDIR1  = hw/xfree86
XF86AGXSUBDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(CFB16DIR) $(DDXDIR1) $(DEPDIRS)
XF86AGXOBJS = $(XF86COMSRC)/XF86_AGX.o
XF86AGXLIBS = $(XF86ACCELSRC)/agx/LibraryTargetName(agx) $(XF86LIBS) CFBLibs
XF86AGXSYSLIBS = $(SYSLIBS)
#if HasParallelMake
MakeMutex($(XF86AGXSUBDIRS) $(XF86AGXOBJS) $(XF86AGXLIBS) $(XF86AGXSYSLIBS))
#endif
SetUIDServerTarget(XF86_AGX,$(XF86AGXSUBDIRS),$(XF86AGXOBJS),$(XF86AGXLIBS),$(XF86AGXSYSLIBS))
#ifndef ServerToInstall
#define ServerToInstall XF86_AGX
#endif
#ifdef OS2Architecture
LinkFile(XF86_AGX.def,AGX.def)
#endif
#endif        /* XF86AGXServer */


#if XnestServer
XCOMM
XCOMM Server with Xlib-based ddx
XCOMM
XNESTDDXDIR = hw/xnest
XNESTDIRS = $(STDDIRS) $(XNESTDDXDIR) $(DEPDIRS)
#ifndef LynxOSArchitecture
XNESTOBJS = 
#else
XNESTOBJS = dix/main.o
#endif
XNEST = hw/xnest/LibraryTargetName(xnest)
XNESTLIBS = $(DIX) $(OS) $(FONT) $(XNEST) $(MI) $(EXTENSIONS) $(XNEST)
XNESTSYSLIBS = $(LDPRELIB) $(XLIB) $(SYSLIBS)
#if HasParallelMake
MakeMutex($(XNESTDIRS) $(XNESTOBJS) $(XNESTLIBS) $(XNESTSYSLIBS))
#endif
ServerTarget(Xnest,$(XNESTDIRS),$(XNESTOBJS),$(XNESTLIBS),$(XNESTSYSLIBS))
#endif /* XnestServer */


#if XnonServer
XCOMM
XCOMM non server, just compile sources for build test
XCOMM
MFBDIR   = mfb
CFB8DIR  = cfb
CFB16DIR = cfb16
CFB32DIR = cfb32
#if HasParallelMake
MakeMutex($(STDDIRS) $(MFBDIR) $(CFB8DIR) $(CFB16DIR) $(CFB32DIR) $(DEPDIRS))
#endif
Xnon: $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(CFB16DIR) $(CFB32DIR) $(DEPDIRS)
#endif /* XnonServer */


#if XVirtualFramebufferServer
XCOMM
XCOMM server with Virtual (malloced) framebuffer
XCOMM
MFBDIR   = mfb
CFB8DIR  = cfb
CFB16DIR = cfb16
CFB32DIR = cfb32
XVFBDDXDIR  = hw/vfb
XVFBDIRS = $(STDDIRS) $(MFBDIR) $(CFB8DIR) $(CFB16DIR) $(CFB32DIR) $(XVFBDDXDIR) $(DEPDIRS)
XVFBOBJS = hw/vfb/stubs.o
XVFB = hw/vfb/libvfb.a
XVFBLIBS = $(DIX) $(OS) $(FONT) $(XVFB) $(MFB) $(CFB) $(MI) $(EXTENSIONS) 
XVFBSYSLIBS = $(SYSLIBS)
#if HasParallelMake
MakeMutex($(XVFBDIRS) $(XVFBOBJS) $(XVFB) $(XVFBLIBS) $(XVFBSYSLIBS))
#endif
ServerTarget(Xvfb,$(XVFBDIRS),$(XVFBOBJS),$(XVFBLIBS),$(XVFBSYSLIBS))
#endif /* XVirtualFramebufferServer */


CFBDIRS = $(CFB8DIR) $(CFB16DIR) $(CFB32DIR)
DDXDIRS = $(DDXDIR1) $(DDXDIR2) $(DDXDIR3) $(XVFBDDXDIR) $(XNESTDDXDIR)
SUBDIRS = $(STDDIRS) $(MFBDIR) $(CFBDIRS) $(DDXDIRS)

#ifdef ServerToInstall
install::
	-(cd $(DESTDIR)$(BINDIR); $(RM) X; $(LN) ServerToInstall X)
#endif

#define IHaveSubdirs

DependSubdirs($(SUBDIRS))
MakeLintLibSubdirs($(SUBDIRS))
LintSubdirs($(SUBDIRS))

ForceSubdirs($(DEPDIRS) $(SUBDIRS))

InstallManPage(Xserver,$(MANDIR))
