/**/# $Header: /h2c/X11R4/mit/lib/X//RCS/Imakefile,v 1.12 91/07/17 14:54:39 klee Exp Locker: klee [Imakefile,v 1.2.1.6 92/10/23 07:06:12 rich Exp ]$

#ifdef OSF1
#define NoClientDNET 1
#undef NoClientSMT
#define NoClientSMT 1
#else
#define NoClientDNET 0
#define SYSV 1
#endif

#if HasDESLibrary
        DESDEFS = -DHASDES
        DESOBJS = Encrypt.o
        DESSRCS = Encrypt.c
#else
        DESDEFS =
        DESOBJS =
        DESSRCS =
#endif

       INCLUDES =  -I. -I../../include -I../.. -I$(INCDIR) -I$(DESTDIR)/usr/include/sys
#if (UnalignedReferencesAllowed == NO)
        ALIGNED = -DALIGNED
#endif

/**/# figure out if we have to include DNET
#if !NoClientDNET
            DNET = -DDNETCONN
#define      IHaveDNET        1
#endif

/**/# figure out if we have to include SMT
#if defined(MipsArchitecture) && !NoClientSMT
            SMT = -DSMT -DIHaveSMT
#define      IHaveSMT        1
#endif

#ifdef OSF1
#define	VMS_Emul
#else
#define	VMS_Emul	vms_emul.o
#endif

   CONN_DEFINES = -DTCPCONN -DUNIXCONN $(DNET) $(SMT)
    EDB_DEFINES = -DERRORDB=\"$(LIBDIR)/XErrorDB\"
    KDB_DEFINES = -DKEYSYMDB=\"$(LIBDIR)/XKeysymDB\"
#ifdef OSF1
    OSF_DEFINES = -Wf,-Xdollar -D__mips__ -D__MIPSEL__ -DOSF1
#endif OSF1
  OTHER_DEFINES = -DUNIX -DCOMPOSE_SUPPORT $(EDB_DEFINES) $(KDB_DEFINES) $(OSF_DEFINES)
        DEFINES = -DMIT_BINDING $(CONN_DEFINES) $(ALIGNED) $(OTHER_DEFINES)
#ifdef VaxArchitecture
    VMS_DEFINES = -DVAX_BINDING $(CONN_DEFINES) $(ALIGNED) $(OTHER_DEFINES)
 VMS_ALLDEFINES = $(ALLINCLUDES) $(STD_DEFINES) $(PROTO_DEFINES) $(VMS_DEFINES) $(COMPATFLAGS)
         VFLAGS = $(CDEBUGFLAGS) $(CCOPTIONS) $(VMS_ALLDEFINES)
#endif VaxArchitecture
   INSTALLFLAGS = -m 0644
       AUTHOBJS = AuDispose.o AuGetAddr.o AuFileName.o AuRead.o 
       AUTHSRCS = AuDispose.c AuGetAddr.c AuFileName.c AuRead.c 
           SRCS = *.c
        HEADERS = Xlib.h Xutil.h Xresource.h X10.h Xlibint.h Xlibos.h
       LINTLIBS =

/**/# files not used in Ultrix version
VMS_FILES=\
	XDtm.o \
	XGetChInfo.o \
	XTransport.o \
	XvmsAtoms.o \
	XMuxInput.o \
	Converion.o \
	XvmsNotselect.o \
	XrmConvert.o

OBJS =\
	globals.o \
	Context.o \
	ParseCmd.o \
	Quarks.o \
	XAllCells.o \
	XAllPlanes.o \
	XAllowEv.o \
	XAutoRep.o \
	XBackgnd.o \
	XBdrWidth.o \
	XBell.o \
	XBorder.o \
	XChAccCon.o \
	XChActPGb.o \
	XChCMap.o \
	XChClMode.o \
	XChGC.o \
	XChKeyCon.o \
	XChPntCon.o \
	XChProp.o \
	XChSaveSet.o \
	XChWAttrs.o \
	XChWindow.o \
	XChkIfEv.o \
	XChkMaskEv.o \
	XChkTypEv.o \
	XChkTypWEv.o \
	XChkWinEv.o \
	XCirWin.o \
	XCirWinDn.o \
	XCirWinUp.o \
	XClDisplay.o \
	XClear.o \
	XClearArea.o \
	XConfWind.o \
	XConnDis.o \
	XConvSel.o \
	XCopyArea.o \
	XCopyCmap.o \
	XCopyGC.o \
	XCopyPlane.o \
	XCrBFData.o \
	XCrCmap.o \
	XCrCursor.o \
	XCrGC.o \
	XCrGlCur.o \
	XCrPFBData.o \
	XCrPixmap.o \
	XCrWindow.o \
	XCursor.o \
	XDefCursor.o \
	XDelProp.o \
	XDepths.o \
	XDestSubs.o \
	XDestWind.o \
	XDisName.o \
	XDrArc.o \
	XDrArcs.o \
	XDrLine.o \
	XDrLines.o \
	XDrPoint.o \
	XDrPoints.o \
	XDrRect.o \
	XDrRects.o \
	XDrSegs.o \
	XErrDes.o \
	XErrHndlr.o \
	XEvToWire.o \
	XFSSaver.o \
	XFetchName.o \
	XFillArc.o \
	XFillArcs.o \
	XFillPoly.o \
	XFillRect.o \
	XFillRects.o \
	XFlush.o \
	XFont.o \
	XFontInfo.o \
	XFontNames.o \
	XFreeCmap.o \
	XFreeCols.o \
	XFreeCurs.o \
	XFreeEData.o \
	XFreeGC.o \
	XFreePix.o \
	XGCMisc.o \
	XGeom.o \
	XGetAtomNm.o \
	XGetColor.o \
	XGetDflt.o \
	XGetFPath.o \
	XGetFProp.o \
	XGetGCVals.o \
	XGetGeom.o \
	XGetHColor.o \
	XGetHints.o \
	XGetIFocus.o \
	XGetImage.o \
	XGetKCnt.o \
	XGetMoEv.o \
	XGetNrmHint.o \
	XGetPcnt.o \
	XGetPntMap.o \
	XGetProp.o \
	XGetRGBCmap.o \
	XGetSOwner.o \
	XGetSSaver.o \
	XGetStCmap.o \
	XGetTxtProp.o \
	XGetWAttrs.o \
	XGetWMCmapW.o \
	XGetWMState.o \
	XGetWMproto.o \
	XGrButton.o \
	XGrKey.o \
	XGrKeybd.o \
	XGrPointer.o \
	XGrServer.o \
	XHost.o \
	XIconify.o \
	XIfEvent.o \
	XImText.o \
	XImText16.o \
	XImUtil.o \
	XInitExt.o \
	XInsCmap.o \
	XIntAtom.o \
	XKeyBind.o \
	XKillCl.o \
	XLiHosts.o \
	XLiICmaps.o \
	XLiProps.o \
	XListExt.o \
	XLoadFont.o \
	XLookupCol.o \
	XLowerWin.o \
	XMacros.o \
	XMapRaised.o \
	XMapSubs.o \
	XMapWindow.o \
	XMaskEvent.o \
	XMisc.o \
	XModmap.o \
	XMoveWin.o \
	XNextEvent.o \
	XOpenDis.o \
	XParseCol.o \
	XParseGeom.o \
	XPeekEvent.o \
	XPeekIfEv.o \
	XPending.o \
	XPixFormats.o \
	XPmapBgnd.o \
	XPmapBord.o \
	XPolyReg.o \
	XPolyTxt.o \
	XPolyTxt16.o \
	XPropAlloc.o \
	XPutBEvent.o \
	XPutImage.o \
	XQuBest.o \
	XQuColor.o \
	XQuColors.o \
	XQuCurShp.o \
	XQuExt.o \
	XQuKeybd.o \
	XQuPntr.o \
	XQuStipShp.o \
	XQuTextE16.o \
	XQuTextExt.o \
	XQuTileShp.o \
	XQuTree.o \
	XRaiseWin.o \
	XRdBitmapF.o \
	XRecolorC.o \
	XReconfWM.o \
	XReconfWin.o \
	XRegion.o \
	XRepWindow.o \
	XRestackWs.o \
	XRotProp.o \
	XSelAsync.o \
	XSelInput.o \
	XSendEvent.o \
	XSetBack.o \
	XSetCRects.o \
	XSetClMask.o \
	XSetClOrig.o \
	XSetDashes.o \
	XSetFPath.o \
	XSetFont.o \
	XSetFore.o \
	XSetFunc.o \
	XSetHints.o \
	XSetIFocus.o \
	XSetLStyle.o \
	XSetNrmHint.o \
	XSetPMask.o \
	XSetPntMap.o \
	XSetRGBCmap.o \
	XSetSOwner.o \
	XSetSSaver.o \
	XSetStCmap.o \
	XSetState.o \
	XSetStip.o \
	XSetTSorig.o \
	XSetTile.o \
	XSetTxtProp.o \
	XSetWMCmapW.o \
	XSetWMProps.o \
	XSetWMProto.o \
	XSetWMState.o \
	XStBytes.o \
	XStColor.o \
	XStColors.o \
	XStNColor.o \
	XStName.o \
	XStrKeysym.o \
	XStrtotext.o \
	XSync.o \
	XSynchro.o \
	XText.o \
	XText16.o \
	XTextExt.o \
	XTextExt16.o \
	XTextToStr.o \
	XTrCoords.o \
	XUndefCurs.o \
	XUngrabBut.o \
	XUngrabKbd.o \
	XUngrabKey.o \
	XUngrabPtr.o \
	XUngrabSvr.o \
	XUninsCmap.o \
	XUnldFont.o \
	XUnmapSubs.o \
	XUnmapWin.o \
	XVisUtil.o \
	XWMGeom.o \
	XWarpPtr.o \
	XWinEvent.o \
	XWindow.o \
	XWithdraw.o \
	XWrBitF.o \
	XlibInt.o \
	Xrm.o \
	Xstreams.o \
	XvmsAlloc.o \
	XvmsCalloc.o \
	evtomask.o VMS_Emul \
	$(AUTHOBJS) $(DESOBJS)



#ifdef VaxArchitecture
/**/# VAX bindings
VMS_OBJS =\
	vmsglobals.o \
	vmsContext.o \
	vmsParseCmd.o \
	vmsQuarks.o \
	vmsXAllCells.o \
	vmsXAllPlanes.o \
	vmsXAllowEv.o \
	vmsXAutoRep.o \
	vmsXBackgnd.o \
	vmsXBdrWidth.o \
	vmsXBell.o \
	vmsXBorder.o \
	vmsXChAccCon.o \
	vmsXChActPGb.o \
	vmsXChCMap.o \
	vmsXChClMode.o \
	vmsXChGC.o \
	vmsXChKeyCon.o \
	vmsXChPntCon.o \
	vmsXChProp.o \
	vmsXChSaveSet.o \
	vmsXChWAttrs.o \
	vmsXChWindow.o \
	vmsXChkIfEv.o \
	vmsXChkMaskEv.o \
	vmsXChkTypEv.o \
	vmsXChkTypWEv.o \
	vmsXChkWinEv.o \
	vmsXCirWin.o \
	vmsXCirWinDn.o \
	vmsXCirWinUp.o \
	vmsXClDisplay.o \
	vmsXClear.o \
	vmsXClearArea.o \
	vmsXConfWind.o \
	vmsXConnDis.o \
	vmsXConvSel.o \
	vmsXCopyArea.o \
	vmsXCopyCmap.o \
	vmsXCopyGC.o \
	vmsXCopyPlane.o \
	vmsXCrBFData.o \
	vmsXCrCmap.o \
	vmsXCrCursor.o \
	vmsXCrGC.o \
	vmsXCrGlCur.o \
	vmsXCrPFBData.o \
	vmsXCrPixmap.o \
	vmsXCrWindow.o \
	vmsXCursor.o \
	vmsXDefCursor.o \
	vmsXDelProp.o \
	vmsXDepths.o \
	vmsXDestSubs.o \
	vmsXDestWind.o \
	vmsXDisName.o \
	vmsXDrArc.o \
	vmsXDrArcs.o \
	vmsXDrLine.o \
	vmsXDrLines.o \
	vmsXDrPoint.o \
	vmsXDrPoints.o \
	vmsXDrRect.o \
	vmsXDrRects.o \
	vmsXDrSegs.o \
	vmsXErrDes.o \
	vmsXErrHndlr.o \
	vmsXEvToWire.o \
	vmsXFSSaver.o \
	vmsXFetchName.o \
	vmsXFillArc.o \
	vmsXFillArcs.o \
	vmsXFillPoly.o \
	vmsXFillRect.o \
	vmsXFillRects.o \
	vmsXFlush.o \
	vmsXFont.o \
	vmsXFontInfo.o \
	vmsXFontNames.o \
	vmsXFreeCmap.o \
	vmsXFreeCols.o \
	vmsXFreeCurs.o \
	vmsXFreeEData.o \
	vmsXFreeGC.o \
	vmsXFreePix.o \
	vmsXGCMisc.o \
	vmsXGeom.o \
	vmsXGetAtomNm.o \
	vmsXGetColor.o \
	vmsXGetDflt.o \
	vmsXGetFPath.o \
	vmsXGetFProp.o \
	vmsXGetGCVals.o \
	vmsXGetGeom.o \
	vmsXGetHColor.o \
	vmsXGetHints.o \
	vmsXGetIFocus.o \
	vmsXGetImage.o \
	vmsXGetKCnt.o \
	vmsXGetMoEv.o \
	vmsXGetNrmHint.o \
	vmsXGetPcnt.o \
	vmsXGetPntMap.o \
	vmsXGetProp.o \
	vmsXGetRGBCmap.o \
	vmsXGetSOwner.o \
	vmsXGetSSaver.o \
	vmsXGetStCmap.o \
	vmsXGetTxtProp.o \
	vmsXGetWAttrs.o \
	vmsXGetWMCmapW.o \
	vmsXGetWMState.o \
	vmsXGetWMproto.o \
	vmsXGrButton.o \
	vmsXGrKey.o \
	vmsXGrKeybd.o \
	vmsXGrPointer.o \
	vmsXGrServer.o \
	vmsXHost.o \
	vmsXIconify.o \
	vmsXIfEvent.o \
	vmsXImText.o \
	vmsXImText16.o \
	vmsXImUtil.o \
	vmsXInitExt.o \
	vmsXInsCmap.o \
	vmsXIntAtom.o \
	vmsXKeyBind.o \
	vmsXKillCl.o \
	vmsXLiHosts.o \
	vmsXLiICmaps.o \
	vmsXLiProps.o \
	vmsXListExt.o \
	vmsXLoadFont.o \
	vmsXLookupCol.o \
	vmsXLowerWin.o \
	vmsXMacros.o \
	vmsXMapRaised.o \
	vmsXMapSubs.o \
	vmsXMapWindow.o \
	vmsXMaskEvent.o \
	vmsXMisc.o \
	vmsXModmap.o \
	vmsXMoveWin.o \
	vmsXNextEvent.o \
	vmsXOpenDis.o \
	vmsXParseCol.o \
	vmsXParseGeom.o \
	vmsXPeekEvent.o \
	vmsXPeekIfEv.o \
	vmsXPending.o \
	vmsXPixFormats.o \
	vmsXPmapBgnd.o \
	vmsXPmapBord.o \
	vmsXPolyReg.o \
	vmsXPolyTxt.o \
	vmsXPolyTxt16.o \
	vmsXPropAlloc.o \
	vmsXPutBEvent.o \
	vmsXPutImage.o \
	vmsXQuBest.o \
	vmsXQuColor.o \
	vmsXQuColors.o \
	vmsXQuCurShp.o \
	vmsXQuExt.o \
	vmsXQuKeybd.o \
	vmsXQuPntr.o \
	vmsXQuStipShp.o \
	vmsXQuTextE16.o \
	vmsXQuTextExt.o \
	vmsXQuTileShp.o \
	vmsXQuTree.o \
	vmsXRaiseWin.o \
	vmsXRdBitmapF.o \
	vmsXRecolorC.o \
	vmsXReconfWM.o \
	vmsXReconfWin.o \
	vmsXRegion.o \
	vmsXRepWindow.o \
	vmsXRestackWs.o \
	vmsXRotProp.o \
	vmsXSelAsync.o \
	vmsXSelInput.o \
	vmsXSendEvent.o \
	vmsXSetBack.o \
	vmsXSetCRects.o \
	vmsXSetClMask.o \
	vmsXSetClOrig.o \
	vmsXSetDashes.o \
	vmsXSetFPath.o \
	vmsXSetFont.o \
	vmsXSetFore.o \
	vmsXSetFunc.o \
	vmsXSetHints.o \
	vmsXSetIFocus.o \
	vmsXSetLStyle.o \
	vmsXSetNrmHint.o \
	vmsXSetPMask.o \
	vmsXSetPntMap.o \
	vmsXSetRGBCmap.o \
	vmsXSetSOwner.o \
	vmsXSetSSaver.o \
	vmsXSetStCmap.o \
	vmsXSetState.o \
	vmsXSetStip.o \
	vmsXSetTSorig.o \
	vmsXSetTile.o \
	vmsXSetTxtProp.o \
	vmsXSetWMCmapW.o \
	vmsXSetWMProps.o \
	vmsXSetWMProto.o \
	vmsXSetWMState.o \
	vmsXStBytes.o \
	vmsXStColor.o \
	vmsXStColors.o \
	vmsXStNColor.o \
	vmsXStName.o \
	vmsXStrKeysym.o \
	vmsXStrtotext.o \
	vmsXSync.o \
	vmsXSynchro.o \
	vmsXText.o \
	vmsXText16.o \
	vmsXTextExt.o \
	vmsXTextExt16.o \
	vmsXTextToStr.o \
	vmsXTrCoords.o \
	vmsXUndefCurs.o \
	vmsXUngrabBut.o \
	vmsXUngrabKbd.o \
	vmsXUngrabKey.o \
	vmsXUngrabPtr.o \
	vmsXUngrabSvr.o \
	vmsXUninsCmap.o \
	vmsXUnldFont.o \
	vmsXUnmapSubs.o \
	vmsXUnmapWin.o \
	vmsXVisUtil.o \
	vmsXWMGeom.o \
	vmsXWarpPtr.o \
	vmsXWinEvent.o \
	vmsXWindow.o \
	vmsXWithdraw.o \
	vmsXWrBitF.o \
	vmsXlibInt.o \
	vmsXrm.o \
	vmsXstreams.o \
	vmsXvmsAlloc.o \
	vmsXvmsCalloc.o \
	vms_emul.o \
	vmsevtomask.o \
	vmsvms_emul.o
#endif VaxArchitecture

#ifdef SYSV
all:: XlibIntV.o
#endif SYSV

/**/# also made in dec/links
depend install::
	-$(RM) decw\$$xlibmsg.h
	-$(LN) decw.h decw\$$xlibmsg.h
clean::
	$(RM) decw\$$xlibmsg.h

/**/# uncomment if you have space for a debugger version
/**/#if defined(mkmake) && defined(VaxArchitecture)
/**/# define	DebuggerXlib
/**/#endif

#if IHaveDNET
/**/# DECnet stuff - some versions require OLDgetnodeent.o
#ifndef NO_OLDGETNODEENT
DNET_OBJS = \
	dnet_addr.o \
	dnet_conn.o \
	dnet_getalias.o \
	getnodeent.o \
	vio.o \
	OLDgetnodeent.o
#else NO_OLDGETNODEENT
DNET_OBJS = \
	dnet_addr.o \
	dnet_conn.o \
	dnet_getalias.o \
	getnodeent.o \
	vio.o
#endif NO_OLDGETNODEENT
$(DNET_OBJS):
	$(RM) $@
	ar x /usr/lib/libdnet.a $@
#endif IHaveDNET

#ifdef IHaveSMT
/**/# shared memory transport (SMT) stuff
SMT_HEADERS = \
	smt.h \
	smtstr.h \
	ip.h
depend install:: $(SMT_HEADERS)
clean::
	$(RM) $(SMT_HEADERS)
smt.h:
	-$(RM) smt.h
	-$(LN) ../../extensions/include/smt.h .
smtstr.h:
	-$(RM) smtstr.h
	-$(LN) ../../extensions/include/smtstr.h .
ip.h:
	-$(RM) ip.h
	-$(LN) ../../extensions/ip/ip.h .

SMT_OBJS = \
	XSmt.o
$(SMT_OBJS):
	$(RM) $@
	(cd ../../extensions/lib/smt; make;)
	ar x ../../extensions/lib/smt/libsmt.a $@

IP_OBJS = \
	ip.o \
	iputil.o
$(IP_OBJS):
	$(RM) $@
	(cd ../../extensions/ip; make;)
	ar x ../../extensions/ip/libip.a $@
#endif IHaveSMT

#ifdef SYSV
/**/# for System V emulation
XlibIntV.c: XlibInt.c
	-$(RM) XlibIntV.c
	-$(LN) XlibInt.c XlibIntV.c
XlibIntV.o: XlibIntV.c
	$(CC) -c -DSUNSYSV $(CFLAGS) XlibIntV.c
clean::
	$(RM) XlibIntV.c
#endif SYSV

#ifdef DebuggerXlib
all:: libX11_d.a
	$(RM) $@
	cd debugger; $(AR) ../$@ $(OBJS)
	ranlib $@
#endif DebuggerXlib

X10OBJS = XDraw.o \
	XCrAssoc.o \
	XDelAssoc.o \
	XDestAssoc.o \
	XLookAssoc.o \
	XMakeAssoc.o
libX10.a: $(X10OBJS)
	$(RM) $@
	$(AR) $@ $(X10OBJS)
	ranlib $@

#ifdef MipsArchitecture
OTHER_OBJS = $(DNET_OBJS) $(SMT_OBJS) $(IP_OBJS)
#endif MipsArchitecture
#ifdef VaxArchitecture
OTHER_OBJS = $(DNET_OBJS) $(VMS_OBJS)
#endif VaxArchitecture

# if SharedLibX
NormalSharedLibraryTarget(X11, $(SHLIBREV) , $(OBJS) $(OTHER_OBJS))
InstallSharedLibrary(X11, $(SHLIBREV), $(USRLIBDIR))
# else
NormalLibraryTarget(X11, $(OBJS) $(OTHER_OBJS))
InstallLibrary(X11, $(USRLIBDIR))
# endif

#ifdef SYSV
InstallMultipleFlags(XlibIntV.o, $(USRLIBDIR), $(INSTLIBFLAGS))
#endif SYSV

BuildIncludes($(HEADERS),.,.)
InstallMultiple($(HEADERS),$(INCDIR))
InstallNonExec(XErrorDB,$(LIBDIR))
InstallNonExec(XKeysymDB,$(LIBDIR))
InstallLintLibrary(X11,$(LINTLIBDIR))
    
XStrKeysym.o: ks_names.h

/**/# build the ks_names.h file
depend install:: ks_names.h
ks_names.h: keysymdef.h
	@echo "generating $@"
	$(SHELL) ./mk_ks_names < $? > $@

AuDispose.c:  $(XAUTHSRC)/AuDispose.c
	$(RM) $@
	$(LN) $? $@

AuGetAddr.c:  $(XAUTHSRC)/AuGetAddr.c
	$(RM) $@
	$(LN) $? $@

AuFileName.c:  $(XAUTHSRC)/AuFileName.c
	$(RM) $@
	$(LN) $? $@

AuRead.c:  $(XAUTHSRC)/AuRead.c
	$(RM) $@
	$(LN) $? $@

Encrypt.c:  $(XDMCPLIBSRC)/Encrypt.c
	$(RM) $@
	$(LN) $? $@

clean::
	$(RM) ks_names.h
	$(RM) $(AUTHSRCS) $(DESSRCS)
#ifdef DebuggerXlib
	$(RM) debugger/vms*.o
	$(RM) debugger/?*.o
#endif DebuggerXlib
#ifdef VaxArchitecture
	$(RM) vms*.o
#endif VaxArchitecture
    
depend:: $(AUTHSRCS) $(DESSRCS)

/**/# complaints alignment errors can safely be ignored.
/**/# complaints about qevent can be ignored too.
NormalLintTarget(*.c)

.c.o:
#ifdef DebuggerXlib
	$(CC) -c -g $(CFLAGS) $*.c
	mv $*.o debugger/$*.o
#endif DebuggerXlib
#ifdef VaxArchitecture
	$(CC) -c $(VFLAGS) $*.c
	mv $*.o vms$*.o
#endif VaxArchitecture
	$(CC) -c $(CFLAGS) $*.c

/**/# makedepend stuff
DependTarget()
depend::
	sed 's/decw\$$include/decw$$$$$$$$include/g' < Makefile > Makefile.new
	mv Makefile.new Makefile

CleanTarget()
