/**************************************************************************/
/*                                                                        */
/* Copyright (c) 2001, 2011 NoMachine (http://www.nomachine.com)          */
/* Copyright (c) 2008-2014 Oleksandr Shneyder <o.shneyder@phoca-gmbh.de>  */
/* Copyright (c) 2011-2016 Mike Gabriel <mike.gabriel@das-netzwerkteam.de>*/
/* Copyright (c) 2014-2016 Mihai Moldovan <ionic@ionic.de>                */
/* Copyright (c) 2014-2016 Ulrich Sibiller <uli42@gmx.de>                 */
/* Copyright (c) 2015-2016 Qindel Group (http://www.qindel.com)           */
/*                                                                        */
/* nx-X11, NX protocol compression and NX extensions to this software     */
/* are copyright of the aforementioned persons and companies.             */
/*                                                                        */
/* Redistribution and use of the present software is allowed according    */
/* to terms specified in the file LICENSE which comes in the source       */
/* distribution.                                                          */
/*                                                                        */
/* All rights reserved.                                                   */
/*                                                                        */
/* NOTE: This software has received contributions from various other      */
/* contributors, only the core maintainers and supporters are listed as   */
/* copyright holders. Please contact us, if you feel you should be listed */
/* as copyright holder, as well.                                          */
/*                                                                        */
/**************************************************************************/

        HEADERS = Xlib.h Xresource.h Xutil.h cursorfont.h Xlibint.h \
		Xcms.h Xlocale.h XKBlib.h XlibConf.h Xregion.h ImUtil.h

#if BuildServersOnly && !BuildClients && !NXAgentServer
all::

BuildIncludes($(HEADERS),IncSubdir,..)

#else

#if NXLibraries

#ifdef SunArchitecture
NX_INCLUDES = -I../../../nxcomp -I/usr/sfw/include
#else
NX_INCLUDES = -I../../../nxcomp
#endif

NX_DEFINES = -DNX_TRANS_SOCKET \
             -DNX_TRANS_EXIT

#            -DNX_TRANS_CHANGE    \
#            -DNX_TRANS_WARN      \
#            -DNX_TRANS_INFO      \
#            -DNX_TRANS_TEST      \
#            -DNX_TRANS_DEBUG     \

/*
   This is used to create libX11* links in exports/lib.
   It is a dependency of the part that links the libNX_X11.so
   to exports/lib and is therefore called _before_ any libNX*
   links exist.
   The make target libX11-links is at the end of the file.
*/
/*
   Currently, this breaks our builds. Autoconf-based packages
   like nxcompext try to detect host X11 libraries, but will
   find links to libNX_X11 in exports/lib as libX11 files,
   which in turn will be test-linked in configure and always
   fail (for instance, because necessary dependencies like
   libXcomp will not be available on clean systems.)

   Keep this disabled for now.

   If anything, this code needs to be reworked to create
   libX11 symlinks only *after* everything has been
   installed.
*/
#EXTRALIBRARYDEPS = libX11-links

#ifdef cygwinArchitecture
NX_XCOMPLIBNAME   = cygXcomp.dll
NX_XCOMPEXTLIBNAME   = cygXcompext.dll
#else
NX_XCOMPLIBNAME   = libXcomp.so
NX_XCOMPEXTLIBNAME   = libXcompext.so
#endif

NX_XCOMPLIBDIR    = $(XTOP)/../nxcomp
NX_XCOMPLIBLINK   = Xcomp
NX_XCOMPLIBTARGET = $(NX_XCOMPLIBDIR)/$(NX_XCOMPLIBNAME)
NX_REQUIREDLIBS   = -L$(NX_XCOMPLIBDIR) -l$(NX_XCOMPLIBLINK)
NX_XCOMPCONFIGTARGET = $(NX_XCOMPLIBDIR)/config.status

NX_XCOMPEXTLIBDIR    = $(XTOP)/../nxcompext
NX_XCOMPEXTLIBTARGET = $(NX_XCOMPEXTLIBDIR)/$(NX_XCOMPEXTLIBNAME)
NX_XCOMPEXTCONFIGTARGET = $(NX_XCOMPEXTLIBDIR)/config.status

#endif

#define DoNormalLib NormalLibX11
#define DoSharedLib SharedLibX11
#define DoExtraLib SharedLibX11
#define DoDebugLib DebugLibX11
#define DoProfileLib ProfileLibX11
#define LibName NX_X11
#define SoRev SOXLIBREV
#define HugeLibrary YES
#define IncSubdir nx-X11

/*
 FIXME: This is switchable upstream via configure option, we leave it
 on for now as this is the upstream default.
*/
XCMS_DEFINES = -DXCMS
XCB_DEFINES = -DUSE_XCB=0

#include <Threads.tmpl>

#ifndef MotifBC
#define MotifBC NO
#endif

#ifdef SharedX11Reqs
REQUIREDX11LIBS = SharedX11Reqs
#endif
#ifdef cygwinArchitecture
EXCLUDE_SYMBOL = -Wl,--exclude-symbol,XdmcpWrap:_XdmcpWrapperToOddParity
#endif

REQUIREDLIBS=$(REQUIREDX11LIBS) $(REQUIREDI18NLIBS) $(EXCLUDE_SYMBOL) $(NX_REQUIREDLIBS)

#if defined(MacIIArchitecture) || defined(SequentArchitecture) || defined(i386ScoArchitecture)
XBSDLIB = /**/
#endif
#if defined(LunaArchitecture) && defined(Mc88000Architecture)
EXTRA_LIBRARIES = /**/
#endif
#if Malloc0ReturnsNull
     MALLOC_DEFINES = XMalloc0ReturnsNullDefines
#endif
#if HasXdmAuth
        XDMAUTHDEFS = -DHASXDMAUTH
#endif
#if BuildXKBlib
    XKB_DEFINES = -DXKB 
        XKBSRCS = XKB.c XKBBind.c XKBCompat.c XKBCtrls.c XKBCvt.c XKBGetMap.c \
	          XKBGetByName.c XKBNames.c XKBRdBuf.c XKBSetMap.c XKBUse.c \
		  XKBleds.c XKBBell.c XKBGeom.c XKBSetGeom.c XKBExtDev.c \
		  XKBList.c XKBMisc.c \
		  XKBMAlloc.c XKBGAlloc.c XKBAlloc.c
        XKBOBJS = XKB.o XKBBind.o XKBCompat.o XKBCtrls.o XKBCvt.o XKBGetMap.o \
		  XKBGetByName.o XKBNames.o XKBRdBuf.o XKBSetMap.o XKBUse.o \
		  XKBleds.o XKBBell.o XKBGeom.o XKBSetGeom.o XKBExtDev.o \
		  XKBList.o XKBMisc.o \
		  XKBMAlloc.o XKBGAlloc.o XKBAlloc.o
#endif
#if HasSecureRPC
        RPCDEFS = -DSECURE_RPC
#endif
#if HasPoll
   POLL_DEFINES = -DUSE_POLL
#endif
   CONN_DEFINES = $(CONNECTION_FLAGS)
   XTRANS_X_DEFINES = -DX11_t -DTRANS_CLIENT $(XTRANS_FAILDEFINES) -DXTRANS_SEND_FDS=0
   XTRANS_XIM_DEFINES = -DXIM_t -DTRANS_CLIENT $(XTRANS_FAILDEFINES) -DXTRANS_SEND_FDS=0
#if HasBSD44Sockets
   SOCK_DEFINES = -DBSD44SOCKETS
#endif
#if HasShm
    SHM_DEFINES = -DHAS_SHM
#endif

    XF86BIGFONT_DEFINES = XF86BigfontExtensionDefines

     EDB_DEFINES = -DERRORDB=\"$(USRDATADIR)/XErrorDB\"
     CMS_DEFINES = -DXCMSDB=\"$(USRDATADIR)/Xcms.txt\" -DXCMSDIR=\"$(USRDATADIR)\"
#if HasSnprintf
    MISC_DEFINES = -DHAS_SNPRINTF -DLIBX11
#endif
#if MotifBC
      BC_DEFINES = -DMOTIFBC
#endif
#if NoRConst
 RCONST_DEFINES = -DNORCONST
#endif
#if DisableXLocaleDirEnv
  SETID_DEFINES = -DNO_XLOCALEDIR
#elif HasIssetugid
  SETID_DEFINES = -DHASSETUGID
#elif HasGetresuid
  SETID_DEFINES = -DHASGETRESUID
#endif
    XLC_DEFINES = -DXLOCALEDIR=\"$(XLOCALEDIR)\" -DXLOCALELIBDIR=\"$(XLOCALELIBDIR)\"
#if (defined(FreeBSDArchitecture) && OSRelVersion < 500016) || \
	defined(OpenBSDArchitecture)
THRSTUBSRCS = UIThrStubs.c
THRSTUBOBJS = UIThrStubs.o
#endif
#if BuildLoadableXlibXcursor
XCURSOR_DEFINES = -DUSE_DYNAMIC_XCURSOR -DLIBXCURSOR=\"libXcursor.so.$(SOXCURSORREV)\"
#endif
#if NeedLibInsideFlag
    LIB_DEFINES = -D_XLIBINT_
#endif
#if defined(LibDirName)
        POSTLOCALELIBDIR = LibDirName
        POSTLOCALELIBDEFINES = -DPOSTLOCALELIBDIR=\"$(POSTLOCALELIBDIR)\"
#endif
        DEFINES = $(MALLOC_DEFINES) $(LIB_DEFINES) $(MISC_DEFINES)\
			$(POSTLOCALELIBDEFINES) $(NX_INCLUDES) $(NX_DEFINES) ${XCMS_DEFINES} ${XCB_DEFINES}
   OPEN_DEFINES = -I$(EXTINCSRC) $(K5INCL) $(K5DEFS)
 DEPEND_DEFINES = $(OPEN_DEFINES) $(TRANS_INCLUDES) $(CONN_DEFINES) $(THREADS_DEFINES) DependDefines
       AUTHOBJS = AuDispose.o AuGetBest.o AuFileName.o AuRead.o
       AUTHSRCS = AuDispose.c AuGetBest.c AuFileName.c AuRead.c
           SRCS = $(SRCS1) $(SRCS2) $(SRCS3) $(EXTRASRCS) /* try *.c if you have trouble */
       LINTLIBS =

EXTRASTATICSRC = $(STATICLCSRCS)

EXTRASRCS = $(EXTRASHAREDSRC) $(EXTRASTATICSRC)

SRCS1 = \
	Context.c \
	Depths.c \
	ParseCmd.c \
	Quarks.c \
	AllCells.c \
	AllPlanes.c \
	AllowEv.c \
	AutoRep.c \
	Backgnd.c \
	BdrWidth.c \
	Bell.c \
	Border.c \
	ChAccCon.c \
	ChClMode.c \
	ChActPGb.c \
	ChCmap.c \
	ChGC.c \
	ChKeyCon.c \
	ChPntCon.c \
	ChProp.c \
	ChSaveSet.c \
	ChWAttrs.c \
	ChWindow.c \
	ChkIfEv.c \
	ChkMaskEv.c \
	ChkWinEv.c \
	ChkTypEv.c \
	ChkTypWEv.c \
	CirWin.c \
	CirWinDn.c \
	CirWinUp.c \
	ClDisplay.c \
	Clear.c \
	ClearArea.c \
	ConfWind.c \
	ConnDis.c \
	ConvSel.c \
	CopyArea.c \
	CopyCmap.c \
	CopyGC.c \
	CopyPlane.c \
	CrBFData.c \
	CrCmap.c \
	CrCursor.c \
	CrGC.c \
	CrGlCur.c \
	CrPFBData.c \
	CrPixmap.c \
	CrWindow.c \
	Cursor.c \
	DefCursor.c \
	DelProp.c \
	DestSubs.c \
	DestWind.c \
	DisName.c \
	DrArc.c \
	DrArcs.c \
	DrLine.c \
	DrLines.c \
	DrPoint.c \
	DrPoints.c \
	DrRect.c \
	DrRects.c \
	DrSegs.c \
	ErrDes.c \
	ErrHndlr.c \
	EvToWire.c \
	FetchName.c \
	FillArc.c \
	FillArcs.c \
	FillPoly.c \
	FillRct.c \
	FillRcts.c \
	Flush.c \
	Font.c \
	FontNames.c \
	FontInfo.c \
	FreeCmap.c \
	FreeCols.c \
	FreeCurs.c \
	FreeEData.c \
	FreeEventData.c \
	FreeGC.c \
	FreePix.c \
	FSSaver.c \
	GCMisc.c \
	Geom.c \
	GetAtomNm.c \
	GetColor.c \
	GetDflt.c \
	GetEventData.c \
	GetFPath.c \
	GetFProp.c \
	GetGeom.c \
	GetHColor.c \
	GetHints.c \
	GetIFocus.c \
	GetImage.c \
	GetKCnt.c \
	GetMoEv.c \
	GetPCnt.c \
	GetPntMap.c \
	GetProp.c \
	GetSOwner.c \
	GetSSaver.c \
	GetStCmap.c \
	GetWAttrs.c \
	GrButton.c \
	GrKey.c \
	GrKeybd.c \
	GrPointer.c \
	GrServer.c \
	Host.c \
	IfEvent.c \
	ImUtil.c \
	ImText.c \
	ImText16.c \
	InitExt.c \
	InsCmap.c \
	IntAtom.c \
	KeyBind.c \
	KeysymStr.c \
	KillCl.c \
	LiHosts.c \
	LiICmaps.c \
	LiProps.c \
	ListExt.c \
	LoadFont.c \
	LookupCol.c \
	LowerWin.c 

OBJS1 = \
	Context.o \
	Depths.o \
	ParseCmd.o \
	Quarks.o \
	AllCells.o \
	AllPlanes.o \
	AllowEv.o \
	AutoRep.o \
	Backgnd.o \
	BdrWidth.o \
	Bell.o \
	Border.o \
	ChAccCon.o \
	ChClMode.o \
	ChActPGb.o \
	ChCmap.o \
	ChGC.o \
	ChKeyCon.o \
	ChPntCon.o \
	ChProp.o \
	ChSaveSet.o \
	ChWAttrs.o \
	ChWindow.o \
	ChkIfEv.o \
	ChkMaskEv.o \
	ChkWinEv.o \
	ChkTypEv.o \
	ChkTypWEv.o \
	CirWin.o \
	CirWinDn.o \
	CirWinUp.o \
	ClDisplay.o \
	Clear.o \
	ClearArea.o \
	ConfWind.o \
	ConnDis.o \
	ConvSel.o \
	CopyArea.o \
	CopyCmap.o \
	CopyGC.o \
	CopyPlane.o \
	CrBFData.o \
	CrCmap.o \
	CrCursor.o \
	CrGC.o \
	CrGlCur.o \
	CrPFBData.o \
	CrPixmap.o \
	CrWindow.o \
	Cursor.o \
	DefCursor.o \
	DelProp.o \
	DestSubs.o \
	DestWind.o \
	DisName.o \
	DrArc.o \
	DrArcs.o \
	DrLine.o \
	DrLines.o \
	DrPoint.o \
	DrPoints.o \
	DrRect.o \
	DrRects.o \
	DrSegs.o \
	ErrDes.o \
	ErrHndlr.o \
	EvToWire.o \
	FetchName.o \
	FillArc.o \
	FillArcs.o \
	FillPoly.o \
	FillRct.o \
	FillRcts.o \
	Flush.o \
	Font.o \
	FontNames.o \
	FontInfo.o \
	FreeCmap.o \
	FreeCols.o \
	FreeCurs.o \
	FreeEData.o \
	FreeEventData.o \
	FreeGC.o \
	FreePix.o \
	FSSaver.o \
	GCMisc.o \
	Geom.o \
	GetAtomNm.o \
	GetColor.o \
	GetDflt.o \
	GetEventData.o \
	GetFPath.o \
	GetFProp.o \
	GetGeom.o \
	GetHColor.o \
	GetHints.o \
	GetIFocus.o \
	GetImage.o \
	GetKCnt.o \
	GetMoEv.o \
	GetPCnt.o \
	GetPntMap.o \
	GetProp.o \
	GetSOwner.o \
	GetSSaver.o \
	GetStCmap.o \
	GetWAttrs.o \
	GrButton.o \
	GrKey.o \
	GrKeybd.o \
	GrPointer.o \
	GrServer.o \
	Host.o \
	IfEvent.o \
	ImUtil.o \
	ImText.o \
	ImText16.o \
	InitExt.o \
	InsCmap.o \
	IntAtom.o \
	KeyBind.o \
	KeysymStr.o \
	KillCl.o \
	LiHosts.o \
	LiICmaps.o \
	LiProps.o \
	ListExt.o \
	LoadFont.o \
	LookupCol.o \
	LowerWin.o 

SRCS2 = \
	Macros.c \
	MapRaised.c \
	MapSubs.c \
	MapWindow.c \
	MaskEvent.c \
	Misc.c \
	ModMap.c \
	MoveWin.c \
	NextEvent.c \
	OpenDis.c \
	ParseCol.c \
	ParseGeom.c \
	PeekEvent.c \
	PeekIfEv.c \
	Pending.c \
	PmapBgnd.c \
	PmapBord.c \
	PolyReg.c \
	PolyTxt.c \
	PolyTxt16.c \
	PutBEvent.c \
	PutImage.c \
	QuBest.c \
	QuColor.c \
	QuColors.c \
	QuCurShp.c \
	QuExt.c \
	QuKeybd.c \
	QuPntr.c \
	QuStipShp.c \
	QuTextE16.c \
	QuTextExt.c \
	QuTileShp.c \
	QuTree.c \
	RaiseWin.c \
	RdBitF.c \
	RecolorC.c \
	ReconfWin.c \
	Region.c \
	RepWindow.c \
	RestackWs.c \
	RotProp.c \
	ScrResStr.c \
	SelInput.c \
	SendEvent.c \
	SetBack.c \
	SetCRects.c \
	SetClMask.c \
	SetClOrig.c \
	SetDashes.c \
	SetFPath.c \
	SetFont.c \
	SetFore.c \
	SetFunc.c \
	SetHints.c \
	SetIFocus.c \
	SetLStyle.c \
	SetPMask.c \
	SetPntMap.c \
	SetSOwner.c \
	SetSSaver.c \
	SetState.c \
	SetStip.c \
	SetStCmap.c \
	SetTile.c \
	SetTSOrig.c \
	StBytes.c \
	StColor.c \
	StColors.c \
	StNColor.c \
	StName.c \
	StrKeysym.c \
	Sync.c \
	Synchro.c \
	Text.c \
	Text16.c \
	TextExt.c \
	TextExt16.c \
	TrCoords.c \
	UndefCurs.c \
	UngrabBut.c \
	UngrabKbd.c \
	UngrabKey.c \
	UngrabPtr.c \
	UngrabSvr.c \
	UninsCmap.c \
	UnldFont.c \
	UnmapSubs.c \
	UnmapWin.c \
	VisUtil.c \
	WarpPtr.c \
	WinEvent.c \
	Window.c \
	WrBitF.c \
	XlibAsync.c \
	XlibInt.c \
	Xrm.c \
	evtomask.c \
	globals.c \
	GetGCVals.c \
	GetNrmHint.c \
	GetRGBCMap.c \
	GetTxtProp.c \
	GetWMCMapW.c \
	GetWMProto.c \
	Iconify.c \
	PixFormats.c \
	PropAlloc.c \
	ReconfWM.c \
	SetNrmHint.c \
	SetRGBCMap.c \
	SetTxtProp.c \
	SetWMCMapW.c \
	SetWMProto.c \
	StrToText.c \
	TextToStr.c \
	Withdraw.c \
	WMGeom.c \
	WMProps.c \
	$(AUTHSRCS) $(K5SRCS) $(THRSTUBSRCS)

OBJS2 = \
	Macros.o \
	MapRaised.o \
	MapSubs.o \
	MapWindow.o \
	MaskEvent.o \
	Misc.o \
	ModMap.o \
	MoveWin.o \
	NextEvent.o \
	OpenDis.o \
	ParseCol.o \
	ParseGeom.o \
	PeekEvent.o \
	PeekIfEv.o \
	Pending.o \
	PmapBgnd.o \
	PmapBord.o \
	PolyReg.o \
	PolyTxt.o \
	PolyTxt16.o \
	PutBEvent.o \
	PutImage.o \
	QuBest.o \
	QuColor.o \
	QuColors.o \
	QuCurShp.o \
	QuExt.o \
	QuKeybd.o \
	QuPntr.o \
	QuStipShp.o \
	QuTextE16.o \
	QuTextExt.o \
	QuTileShp.o \
	QuTree.o \
	RaiseWin.o \
	RdBitF.o \
	RecolorC.o \
	ReconfWin.o \
	Region.o \
	RepWindow.o \
	RestackWs.o \
	RotProp.o \
	ScrResStr.o \
	SelInput.o \
	SendEvent.o \
	SetBack.o \
	SetCRects.o \
	SetClMask.o \
	SetClOrig.o \
	SetDashes.o \
	SetFPath.o \
	SetFont.o \
	SetFore.o \
	SetFunc.o \
	SetHints.o \
	SetIFocus.o \
	SetLStyle.o \
	SetPMask.o \
	SetPntMap.o \
	SetSOwner.o \
	SetSSaver.o \
	SetState.o \
	SetStip.o \
	SetStCmap.o \
	SetTile.o \
	SetTSOrig.o \
	StBytes.o \
	StColor.o \
	StColors.o \
	StNColor.o \
	StName.o \
	StrKeysym.o \
	Sync.o \
	Synchro.o \
	Text.o \
	Text16.o \
	TextExt.o \
	TextExt16.o \
	TrCoords.o \
	UndefCurs.o \
	UngrabBut.o \
	UngrabKbd.o \
	UngrabKey.o \
	UngrabPtr.o \
	UngrabSvr.o \
	UninsCmap.o \
	UnldFont.o \
	UnmapSubs.o \
	UnmapWin.o \
	VisUtil.o \
	WarpPtr.o \
	WinEvent.o \
	Window.o \
	WrBitF.o \
	XlibAsync.o \
	XlibInt.o \
	Xrm.o \
	evtomask.o \
	globals.o \
	GetGCVals.o \
	GetNrmHint.o \
	GetRGBCMap.o \
	GetTxtProp.o \
	GetWMCMapW.o \
	GetWMProto.o \
	Iconify.o \
	PixFormats.o \
	PropAlloc.o \
	ReconfWM.o \
	SetNrmHint.o \
	SetRGBCMap.o \
	SetTxtProp.o \
	SetWMCMapW.o \
	SetWMProto.o \
	StrToText.o \
	TextToStr.o \
	Withdraw.o \
	WMGeom.o \
	WMProps.o \
	$(AUTHOBJS) \
	$(K5OBJS) \
	$(THRSTUBOBJS)

SRCS3 = \
	Lab.c \
	LabGcC.c \
	LabGcL.c \
	LabGcLC.c \
	LabMnL.c \
	LabMxC.c \
	LabMxL.c \
	LabMxLC.c \
	LabWpAj.c \
	Luv.c \
	LuvGcC.c \
	LuvGcL.c \
	LuvGcLC.c \
	LuvMnL.c \
	LuvMxC.c \
	LuvMxL.c \
	LuvMxLC.c \
	LuvWpAj.c \
	XYZ.c \
	uvY.c \
	xyY.c \
	HVC.c \
	HVCGcC.c \
	HVCGcV.c \
	HVCGcVC.c \
	HVCMnV.c \
	HVCMxC.c \
	HVCMxV.c \
	HVCMxVC.c \
	HVCMxVs.c \
	HVCWpAj.c \
	UNDEFINED.c \
	AddDIC.c \
	AddSF.c \
	cmsAllNCol.c \
	cmsAllCol.c \
	CCC.c \
	cmsCmap.c \
	cmsColNm.c \
	CvColW.c \
	CvCols.c \
	cmsGlobls.c \
	IdOfPr.c \
	cmsInt.c \
	LRGB.c \
	cmsLkCol.c \
	cmsMath.c \
	OfCCC.c \
	PrOfId.c \
	cmsProp.c \
	QBlack.c \
	QBlue.c \
	QGreen.c \
	QRed.c \
	QWhite.c \
	QuCol.c \
	QuCols.c \
	SetCCC.c \
	SetGetCols.c \
	StCol.c \
	StCols.c \
	cmsTrig.c \
	XRGB.c \
	FSWrap.c \
	ICWrap.c \
	IMWrap.c \
	OCWrap.c \
	OMWrap.c \
	lcWrap.c \
	mbWMProps.c \
	utf8WMProps.c \
	mbWrap.c \
	wcWrap.c \
	utf8Wrap.c \
	FilterEv.c \
	RegstFlt.c \
	locking.c \
	LockDis.c \
	x11_trans.c \
	xim_trans.c \
	$(XKBSRCS) $(LCSRCS) $(MISCSRCS)

OBJS3 = \
	Lab.o \
	LabGcC.o \
	LabGcL.o \
	LabGcLC.o \
	LabMnL.o \
	LabMxC.o \
	LabMxL.o \
	LabMxLC.o \
	LabWpAj.o \
	Luv.o \
	LuvGcC.o \
	LuvGcL.o \
	LuvGcLC.o \
	LuvMnL.o \
	LuvMxC.o \
	LuvMxL.o \
	LuvMxLC.o \
	LuvWpAj.o \
	XYZ.o \
	uvY.o \
	xyY.o \
	HVC.o \
	HVCGcC.o \
	HVCGcV.o \
	HVCGcVC.o \
	HVCMnV.o \
	HVCMxC.o \
	HVCMxV.o \
	HVCMxVC.o \
	HVCMxVs.o \
	HVCWpAj.o \
	UNDEFINED.o \
	AddDIC.o \
	AddSF.o \
	cmsAllNCol.o \
	cmsAllCol.o \
	CCC.o \
	cmsCmap.o \
	cmsColNm.o \
	CvColW.o \
	CvCols.o \
	cmsGlobls.o \
	IdOfPr.o \
	cmsInt.o \
	LRGB.o \
	cmsLkCol.o \
	cmsMath.o \
	OfCCC.o \
	PrOfId.o \
	cmsProp.o \
	QBlack.o \
	QBlue.o \
	QGreen.o \
	QRed.o \
	QWhite.o \
	QuCol.o \
	QuCols.o \
	SetCCC.o \
	SetGetCols.o \
	StCol.o \
	StCols.o \
	cmsTrig.o \
	XRGB.o \
	FSWrap.o \
	ICWrap.o \
	IMWrap.o \
	OCWrap.o \
	OMWrap.o \
	lcWrap.o \
	mbWMProps.o \
	utf8WMProps.o \
	mbWrap.o \
	wcWrap.o \
	utf8Wrap.o \
	FilterEv.o \
	RegstFlt.o \
	locking.o \
	LockDis.o \
	x11_trans.o \
	xim_trans.o \
	$(XKBOBJS) $(LCOBJS) $(MISCOBJS)

SHAREDLCDEPSYMSRCS = XlcDL.c XlcSL.c

SHAREDI18NSTATICSRCS = \
        XDefaultIMIF.c XDefaultOMIF.c

STATICLCDEPSYMSRCS =

STATICI18NSTATICSRCS = \
	imCallbk.c \
	imDefFlt.c \
	imDefIc.c \
	imDefIm.c \
	imDefLkup.c \
	imDispch.c \
	imEvToWire.c \
	imExten.c \
	imImSw.c \
	imInsClbk.c \
	imInt.c \
	imLcFlt.c \
	imLcGIc.c \
	imLcIc.c \
	imLcIm.c \
	imLcLkup.c \
	imLcPrs.c \
	imLcSIc.c \
	imRm.c \
	imRmAttr.c \
	imThaiFlt.c \
	imThaiIc.c \
	imThaiIm.c \
	imTrX.c \
	imTransR.c \
	imTrans.c \
	lcGenConv.c \
	lcUTF8Load.c \
	omDefault.c \
	omGeneric.c \
	omImText.c \
	omText.c \
	omTextEsc.c \
	omTextExt.c \
	omTextPer.c \
	omXChar.c

LCSRCS = \
	SetLocale.c \
	imConv.c \
	imKStoUCS.c \
	lcCT.c \
	lcCharSet.c \
	lcConv.c \
	lcDB.c \
	lcDefConv.c \
	lcFile.c \
	lcGeneric.c \
	lcInit.c \
	lcPrTxt.c \
	lcPubWrap.c \
	lcPublic.c \
	lcRM.c \
	lcStd.c \
	lcTxtPr.c \
	lcUtil.c \
	lcUTF8.c

STATICLCSRCS = \
	$(STATICLCDEPSYMSRCS) \
	$(STATICI18NSTATICSRCS)

SHAREDLCSRCS = \
	$(SHAREDLCDEPSYMSRCS) \
	$(SHAREDI18NSTATICSRCS)

SHAREDLCDEPOBJS = XlcDL.o XlcSL.o
SHAREDI18NSTATICOBJS = \
	XDefaultIMIF.o XDefaultOMIF.o
STATICLCDEPOBJS = 
STATICI18NSTATICOBJS = \
	imCallbk.o \
	imDefFlt.o \
	imDefIc.o \
	imDefIm.o \
	imDefLkup.o \
	imDispch.o \
	imEvToWire.o \
	imExten.o \
	imImSw.o \
	imInsClbk.o \
	imInt.o \
	imLcFlt.o \
	imLcGIc.o \
	imLcIc.o \
	imLcIm.o \
	imLcLkup.o \
	imLcPrs.o \
	imLcSIc.o \
	imRm.o \
	imRmAttr.o \
	imThaiFlt.o \
	imThaiIc.o \
	imThaiIm.o \
	imTrX.o \
	imTransR.o \
	imTrans.o \
	lcGenConv.o \
	lcUTF8Load.o \
	omDefault.o \
	omGeneric.o \
	omImText.o \
	omText.o \
	omTextEsc.o \
	omTextExt.o \
	omTextPer.o \
	omXChar.o

LCOBJS = \
	SetLocale.o \
	imConv.o \
	imKStoUCS.o \
	lcCT.o \
	lcCharSet.o \
	lcConv.o \
	lcDB.o \
	lcDefConv.o \
	lcFile.o \
	lcGeneric.o \
	lcInit.o \
	lcPrTxt.o \
	lcPubWrap.o \
	lcPublic.o \
	lcRM.o \
	lcStd.o \
	lcTxtPr.o \
	lcUtil.o \
	lcUTF8.o

STATICLCOBJS = \
	$(STATICLCDEPOBJS) \
	$(STATICI18NSTATICOBJS) 

SHAREDLCOBJS = \
	$(SHAREDLCDEPOBJS) \
	$(SHAREDI18NSTATICOBJS) 

#ifdef OS2Architecture
MISCSRCS = os2Stubs.c
#endif

#ifdef OS2Architecture
MISCOBJS = os2Stubs.o
#endif

OBJS = $(OBJS1) $(OBJS2) $(OBJS3)

EXTRAUNSHAREDOBJS = $(STATICLCOBJS)

EXTRASHAREDOBJS = $(STATICLCOBJS)

#include <Library.tmpl>

SpecialCLibObjectRule(ErrDes,$(ICONFIGFILES),$(EDB_DEFINES))
SpecialCLibObjectRule(ConnDis,$(ICONFIGFILES),$(XDMAUTHDEFS) $(RPCDEFS) $(CONN_DEFINES) $(SOCK_DEFINES) $(POLL_DEFINES) $(XTRANS_X_DEFINES) $(K5INCL) $(K5DEFS))
SpecialCLibObjectRule(x11_trans,$(ICONFIGFILES),$(TRANS_INCLUDES) $(CONN_DEFINES) $(SOCK_DEFINES) $(XTRANS_X_DEFINES) $(POLL_DEFINES))
SpecialCLibObjectRule(xim_trans,$(ICONFIGFILES),$(TRANS_INCLUDES) $(CONN_DEFINES) $(SOCK_DEFINES) $(XTRANS_XIM_DEFINES) $(POLL_DEFINES))
SpecialCLibObjectRule(OpenDis,$(ICONFIGFILES),$(BC_DEFINES) $(OPEN_DEFINES) $(XTRANS_X_DEFINES) $(XKB_DEFINES))
SpecialCLibObjectRule(XlibInt,$(ICONFIGFILES),$(CONN_DEFINES) $(POLL_DEFINES) $(XTRANS_X_DEFINES))
SpecialCLibObjectRule(Font,$(ICONFIGFILES),$(SHM_DEFINES) $(XF86BIGFONT_DEFINES))
SpecialCLibObjectRule(FontInfo,$(ICONFIGFILES),$(SHM_DEFINES) $(XF86BIGFONT_DEFINES))
SpecialCLibObjectRule(cmsColNm,$(ICONFIGFILES),$(CMS_DEFINES))
SpecialCLibObjectRule(globals,$(ICONFIGFILES),$(CONN_DEFINES))
SpecialCLibObjectRule(Context,$(ICONFIGFILES),$(BC_DEFINES))
SpecialCLibObjectRule(Xrm,$(_NOOP_),$(RCONST_DEFINES))
SpecialCLibObjectRule(imTransR,$(ICONFIGFILES),$(CONN_DEFINES) $(XTRANS_XIM_DEFINES))
SpecialCLibObjectRule(imTrans,$(ICONFIGFILES),$(CONN_DEFINES) $(XTRANS_XIM_DEFINES))
SpecialCLibObjectRule(lcFile,$(ICONFIGFILES),$(XLC_DEFINES) $(SETID_DEFINES))
#if BuildXKBlib
SpecialCLibObjectRule(XKBCvt,$(_NOOP_),$(RCONST_DEFINES))
SpecialCLibObjectRule(KeyBind,$(ICONFIGFILES),$(XKB_DEFINES))
SpecialCLibObjectRule(XKBBind,$(ICONFIGFILES),$(XKB_DEFINES))
SpecialCLibObjectRule(imConv,$(ICONFIGFILES),$(XKB_DEFINES))
#endif
#if BuildLoadableXlibXcursor
SpecialCLibObjectRuleSeparateOpts(CrCursor,$(ICONFIGFILES),$(_NOOP_),$(XCURSOR_DEFINES))
SpecialCLibObjectRuleSeparateOpts(CrGlCur,$(ICONFIGFILES),$(_NOOP_),$(XCURSOR_DEFINES))
SpecialCLibObjectRuleSeparateOpts(CrPixmap,$(ICONFIGFILES),$(_NOOP_),$(XCURSOR_DEFINES))
SpecialCLibObjectRuleSeparateOpts(PutImage,$(ICONFIGFILES),$(_NOOP_),$(XCURSOR_DEFINES))
#endif

#if InstallXcmsTxt
InstallNonExecFile(Xcms.txt,$(LIBDIR))
#endif
InstallNonExecFile(XErrorDB,$(LIBDIR))
InstallLintLibrary(X11,$(LINTLIBDIR))

#ifdef QNX4Architecture
LOCAL_LDFLAGS=-F
#endif

MAKEKEYS = ./makekeys
KEYSYMDEFS =  $(XINCLUDESRC)/keysymdef.h $(XINCLUDESRC)/XF86keysym.h $(XINCLUDESRC)/Sunkeysym.h $(XINCLUDESRC)/DECkeysym.h $(XINCLUDESRC)/HPkeysym.h

#if CrossCompiling
HOST_LDLIBS=
HOST_CFLAGS=$(TOP_INCLUDES) $(INCLUDES) $(BOOTSTRAPCFLAGS) \
	$(CROSSCOMPILEDEFINES) $(CROSSCOMPILEBOOTSTRAPDEFINES)
#else
HOST_LDLIBS=$(LDLIBS)
HOST_CFLAGS=$(CFLAGS)
#endif

ks_tables.h: $(KEYSYMDEFS) util/makekeys.c
	RemoveFiles($@ HostProgramTargetName(makekeys) makekeys.Osuf)
	-HostLinkRule(HostProgramTargetName(makekeys),$(HOST_CFLAGS) $(LOCAL_LDFLAGS),util/makekeys.c,$(HOST_LDLIBS))
	RunProgram(MAKEKEYS, $(KEYSYMDEFS) > ks_tables_h)
	$(MV) ks_tables_h $@
	RemoveFiles(HostProgramTargetName(makekeys) makekeys.Osuf ks_tables_h)

includes:: ks_tables.h

CONFIGURE ?= ./configure

depend:: ks_tables.h

clean::
	RemoveFiles(ks_tables_h ks_tables.h HostProgramTargetName(makekeys))

KeysymStr.o: ks_tables.h

StrKeysym.o: ks_tables.h

DependTarget3($(SRCS1),$(SRCS2),$(SRCS3) $(EXTRASRCS))

#endif

includes:: XlibConf.h pathmax.h

#include <Threads.tmpl>

#if ThreadedProject
#define XThreadsDefine echo '#ifndef XTHREADS' >> $@		@@\
	echo '#define XTHREADS' >> $@				@@\
	echo '#endif' >> $@
#else
#define XThreadsDefine echo '#undef XTHREADS' >> $@
#endif

#if HasThreadSafeAPI
#define MTSafeAPIDefine	echo '#ifndef XUSE_MTSAFE_API' >> $@	@@\
	echo '#define XUSE_MTSAFE_API' >> $@			@@\
	echo '#endif' >> $@
#else
#define MTSafeAPIDefine echo '#undef XUSE_MTSAFE_API' >> $@
#endif

XlibConf.h:
	echo '/* Defines needed to use Xlib from non-imake projects */' > $@
	XThreadsDefine
	MTSafeAPIDefine

/* create libX11 links in exports/lib */
libX11-links:
	MakeDir($(BUILDLIBDIR))
	@MAJREV=`echo $(SOXLIBREV) | cut -d. -f1`;\
	(for i in "" .$$MAJREV .$(SOXLIBREV); do\
	    t="lib$(LIBNAME).so$$i";\
	    l="libX11.so$$i";\
	    $(RM) "$(BUILDLIBDIR)/$$l";\
	    (set -x; $(LN) "$$t" "$(BUILDLIBDIR)/$$l");\
	done)

/* remove libX11 _and_ libNX_X11 links in epxorts/lib */
/* Disable this for now, refer to the comments regarding libX11-links. */
#clean::
#	@MAJREV=`echo $(SOXLIBREV) | cut -d. -f1`;\
#	set -x; for i in "" .$$MAJREV .$(SOXLIBREV); do\
#	    $(RM) "$(BUILDLIBDIR)/lib$(LIBNAME).so$$i" "$(BUILDLIBDIR)/libX11.so$$i";\
#	done