#
# Warning: the cpp used on this machine replaces
# all newlines and multiple tabs/spaces in a macro
# expansion with a single space.  Imake tries to
# compensate for this, but is not always
# successful.
#

#
# This makefile is automatically generated by imake... do not modify
# or you may lose your changes when imake generates makefiles again.
# Ignore this message if you are not using imake.
#

            TOP = ./..
             AS = as
             CC = cc
            CPP = /lib/cpp
             LD = ld
           LINT = lint
        INSTALL = install
           TAGS = ctags
             RM = rm -f
             MV = mv
             LN = ln -s
         RANLIB = ranlib
             AR = ar clq
             LS = ls
       LINTOPTS = -axz
    LINTLIBFLAG = -C
           MAKE = make
    STD_DEFINES =
    CDEBUGFLAGS = -O
        DESTDIR =

        PATHSEP = /
         DEPEND = $(DEPENDSRC)/makedepend
          IMAKE = $(IMAKESRC)/imake
            RGB = $(RGBSRC)/rgb
         CFLAGS = $(CDEBUGFLAGS) $(INCLUDES) $(STD_DEFINES) $(DEFINES)
      LINTFLAGS = $(LINTOPTS) $(INCLUDES) $(STD_DEFINES) $(DEFINES) -DLINT
        LDFLAGS = $(CDEBUGFLAGS) $(SYS_LIBRARIES) $(SYSAUX_LIBRARIES)
   INSTUIDFLAGS = -m 4755
   INSTLIBFLAGS = -m 0664
   INSTINCFLAGS = -m 0444
   INSTMANFLAGS = -m 0444
   INSTAPPFLAGS = -m 0444

      USRLIBDIR = $(DESTDIR)/usr/lib
         BINDIR = $(DESTDIR)/usr/bin/X11
         LIBDIR = $(USRLIBDIR)/X11
     LINTLIBDIR = $(USRLIBDIR)/lint
         INCDIR = $(DESTDIR)/usr/include/X11
        FONTDIR = $(LIBDIR)/fonts
         UWMDIR = $(LIBDIR)/uwm
         MANDIR = $(DESTDIR)/usr/man/mann
    XAPPLOADDIR = $(LIBDIR)/app-defaults
         ADMDIR = $(DESTDIR)/usr/adm

      CLIENTSRC = $(TOP)/clients
        DEMOSRC = $(TOP)/demos
         LIBSRC = $(TOP)/lib
        FONTSRC = $(TOP)/fonts
     INCLUDESRC = $(TOP)/X11
      SERVERSRC = $(TOP)/server
        UTILSRC = $(TOP)/util
     EXAMPLESRC = $(TOP)/examples
     CONTRIBSRC = $(TOP)/contrib
         DOCSRC = $(TOP)/doc
      DEPENDSRC = $(UTILSRC)/makedepend
       IMAKESRC = $(UTILSRC)/imake
       IRULESRC = $(UTILSRC)/imake.includes
         RGBSRC = $(UTILSRC)/rgb
        XLIBSRC = $(LIBSRC)/X
     TOOLKITSRC = $(LIBSRC)/Xt
     AWIDGETSRC = $(LIBSRC)/Xaw
     OLDXLIBSRC = $(LIBSRC)/oldX
   EXTENSIONSRC = $(TOP)/extensions
        XMANSRC = $(DOCSRC)/Xlib/Xman
   EXTENSIONLIB = $(EXTENSIONSRC)/lib/libXext.a
           XLIB = $(XLIBSRC)/libX11.a
        OLDXLIB = $(OLDXLIBSRC)/liboldX.a
       XTOOLLIB = $(TOOLKITSRC)/libXt.a
         XAWLIB = $(AWIDGETSRC)/libXaw.a
       LINTXLIB = $(XLIBSRC)/llib-lX11.ln
      LINTXTOOL = $(TOOLKITSRC)/llib-lXt.ln
        LINTXAW = $(AWIDGETSRC)/llib-lXaw.ln
       INCLUDES = -I$(TOP)
      MACROFILE = Sun.macros
      IMAKE_CMD = $(NEWTOP)$(IMAKE) -TImake.tmpl \
			-I$(NEWTOP)$(IRULESRC) \
			-s Makefile
         RM_CMD = $(RM) *.CKP *.ln *.BAK *.bak *.o core errs ,* *~ *.a \
			tags TAGS make.log

        SUBDIRS = dix $(ALLDDXDIRS) $(ALLOSDIRS)
    STD_DEFINES =  -DSUN_WINDOWS -DCOMPRESSED_FONTS
    CDEBUGFLAGS = -O
     EXTENSIONS = $(EXTENSIONSRC)/server/libext.a
         EXTDIR = $(EXTENSIONSRC)/server
     ALLDDXDIRS = ddx/snf ddx/mi ddx/cfb ddx/mfb \
                  ddx/dec/lk201 ddx/dec/qvss ddx/dec/qdss ddx/dec/qdss/libtl \
                  ddx/sun \
                  ddx/apollo \
                  ddx/ibm \
                  ddx/hp/hp ddx/hp/mfb ddx/hp/cfb ddx/hp/gbx ddx/hp/mob \
                  ddx/hp/topcat ddx/hp/catseye ddx/hp/ren
      ALLOSDIRS = os/sysV os/4.2bsd os/hpux
        SUBDIRS = dix $(ALLDDXDIRS) $(ALLOSDIRS)
           UNIX = os/4.2bsd/libos.a
           SYSV = os/sysV/libos.a
           HPUX = os/hpux/libos.a
            MFB = ddx/mfb/libmfb.a
            CFB = ddx/cfb/libcfb.a
             MI = ddx/mi/libmi.a
            DIX = dix/libdix.a
            SNF = ddx/snf/libsnf.a
         APOLLO = ddx/apollo/libapollo.a
            APC = ddx/apollo/apc/libapc.a
            SUN = ddx/sun/libsun.a
             HP = ddx/hp/hp/libhp.a
        SYSLIBS = -lm -ldbm
    ALLPOSSIBLE = Xqvss Xqdss Xsun Xibm Xapollo Xhp

# for now, don't split this across lines, because imake will keep a trailing slash
ALL =   Xsun

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

all: $(ALL)

#
# qvss server
#
QVSSDIRS = dix ddx/snf ddx/mi ddx/mfb ddx/dec/lk201 ddx/dec/qvss os/4.2bsd
QVSSOBJS = ddx/dec/qvss/init.o ddx/dec/qvss/qvss_io.o ddx/dec/lk201/lk201.o
QVSSLIBS = $(DIX) $(SNF) $(UNIX) $(MFB) $(MI) $(EXTENSIONS)
XqvssDIRS = $(QVSSDIRS)

Xqvss: $(EXTDIR) $(QVSSDIRS) $(QVSSOBJS) $(QVSSLIBS)
	-$(MV) Xqvss Xqvss.bak
	$(CC) $(CDEBUGFLAGS) -o Xqvss $(QVSSOBJS) $(QVSSLIBS) $(SYSLIBS)

loadXqvss:
	-$(MV) Xqvss Xqvss.bak
	$(CC) $(CDEBUGFLAGS) -o Xqvss $(QVSSOBJS) $(QVSSLIBS) $(SYSLIBS)

#
# qdss server
#
QDSSDIRS = dix ddx/snf ddx/mi ddx/mfb ddx/dec/lk201 ddx/dec/qdss \
           ddx/dec/qdss/libtl os/4.2bsd
QDSSOBJS = ddx/dec/qdss/init.o ddx/dec/qdss/qdss_io.o ddx/dec/lk201/lk201.o
QDSSLIBS = ddx/dec/qdss/libqdss.a ddx/dec/qdss/libtl/libtl.a \
           ddx/dec/qdss/libqdss.a \
           $(DIX) $(SNF) $(UNIX) $(MFB) $(MI) $(EXTENSIONS)
XqdssDIRS = $(QDSSDIRS)

Xqdss: $(EXTDIR) $(QDSSDIRS) $(QDSSOBJS) $(QDSSLIBS)
	-$(MV) Xqdss Xqdss.bak
	$(CC) $(CDEBUGFLAGS) -o Xqdss $(QDSSOBJS) $(QDSSLIBS) $(SYSLIBS)

loadXqdss:
	-$(MV) Xqdss Xqdss.bak
	$(CC) $(CDEBUGFLAGS) -o Xqdss $(QDSSOBJS) $(QDSSLIBS) $(SYSLIBS)

#
# sun server
#

SUNWINDOWSLIBS = -lsunwindow -lpixrect

SUNDIRS = dix ddx/snf ddx/mi ddx/mfb ddx/cfb ddx/sun os/4.2bsd
SUNOBJS = ddx/sun/sunInit.o
SUNLIBS = $(SUN) $(CFB) $(DIX) $(SNF) $(UNIX) $(MFB) $(MI) $(EXTENSIONS)
SUNSYSLIBS = $(SYSLIBS) $(SUNWINDOWSLIBS)
XsunDIRS = $(SUNDIRS)

Xsun: $(EXTDIR) $(SUNDIRS) $(SUNOBJS) $(SUNLIBS)
	-$(MV) Xsun Xsun.bak
	$(CC) $(CDEBUGFLAGS) -o Xsun $(SUNOBJS) $(SUNLIBS) $(SUNSYSLIBS)

loadXsun:
	-$(MV) Xsun Xsun.bak
	$(CC) $(CDEBUGFLAGS) -o Xsun $(SUNOBJS) $(SUNLIBS) $(SUNSYSLIBS)

#
# HP server
#
HPDIRS = dix ddx/snf ddx/mi ddx/hp/hp ddx/hp/mfb ddx/hp/cfb ddx/hp/gbx \
         ddx/hp/mob ddx/hp/topcat ddx/hp/catseye ddx/hp/ren os/hpux
HPOBJS = ddx/hp/hp/init.o
HPLIBS = $(DIX) $(EXTENSIONS) $(HP) \
          ddx/hp/gbx/libgbx.a \
          ddx/hp/mob/libmob.a \
          ddx/hp/topcat/libtopcat.a \
          ddx/hp/catseye/libcatseye.a \
          ddx/hp/ren/libren.a \
	  $(HP) \
          ddx/hp/mfb/libmfb.a \
          ddx/hp/cfb/libcfb.a \
          ddx/hp/ren/libren.a \
          $(SNF) $(HPUX) $(MI)

HPSYSLIBS = $(SYSLIBS) $(HPMALLOCLIB)
XhpDIRS = $(HPDIRS)

Xhp: $(EXTDIR) $(HPDIRS) $(HPOBJS) $(HPLIBS)
	-$(MV) Xhp Xhp.bak
	$(CC) $(CDEBUGFLAGS) -o Xhp $(HPOBJS) $(HPLIBS) $(HPSYSLIBS)

loadXhp:
	-$(MV) Xhp Xhp.bak
	$(CC) $(CDEBUGFLAGS) -o Xhp $(HPOBJS) $(HPLIBS) $(HPSYSLIBS)

#
# ibm server
#

IBMALLOCLIB =

IBMDIRS = dix ddx/snf ddx/mi ddx/mfb ddx/ibm os/4.2bsd
IBMOBJS = ddx/ibm/rt/rt.o
IBMLIBS = ddx/ibm/libibm.a $(IBMALLOCLIB) \
		$(DIX) $(UNIX) $(MFB) $(MI) $(EXTENSIONS)
IBMSYSLIBS = $(SYSLIBS)
XibmDIRS = $(IBMDIRS)

Xibm: $(EXTDIR) $(IBMDIRS) $(IBMOBJS) $(IBMLIBS)
	-$(MV) Xibm Xibm.bak
	$(CC) $(CDEBUGFLAGS) -o Xibm $(IBMOBJS) $(IBMLIBS) $(IBMSYSLIBS)

loadXibm:
	-$(MV) Xibm Xibm.bak
	$(CC) $(CDEBUGFLAGS) -o Xibm $(IBMOBJS) $(IBMLIBS) $(IBMSYSLIBS)

#
# apollo server
#
APOLLODIRS = dix ddx/snf ddx/mi ddx/mfb ddx/apollo os/4.2bsd
APOLLOOBJS = ddx/apollo/ap_init.o /sys/traits/io_traits
APOLLOLIBS = $(APOLLO) $(APC) $(DIX) $(SNF) $(UNIX) $(MFB) $(MI) $(EXTENSIONS)
XapolloDIRS = $(APOLLODIRS)

Xapollo: $(EXTDIR) $(APOLLODIRS) $(APOLLOOBJS) $(APOLLOLIBS)
	-$(MV) Xapollo Xapollo.bak
	$(CC) $(CDEBUGFLAGS) -o Xapollo $(APOLLOOBJS) $(APOLLOLIBS) $(SYSLIBS)

loadXapollo:
	-$(MV) Xapollo Xapollo.bak
	$(CC) $(CDEBUGFLAGS) -o Xapollo $(APOLLOOBJS) $(APOLLOLIBS) $(SYSLIBS)

#
# other, necessary targets
#

clean::
	@case '${MFLAGS}' in *[ik]*) set +e;; esac; \
	for i in $(SUBDIRS) ;\
	do \
	(cd $$i ; echo "cleaning $$i"; \
	$(MAKE) $(MFLAGS) RM_CMD='$(RM_CMD)' clean ); \
	done

tags::
	@case '${MFLAGS}' in *[ik]*) set +e;; esac; \
	for i in $(SUBDIRS) ;\
	do \
	(cd $$i ; echo "tagging $$i"; \
	$(MAKE) $(MFLAGS) TAGS='$(TAGS)' tags ); \
	done

Makefiles:: $(IMAKE)

Makefiles::
	@case '${MFLAGS}' in *[ik]*) set +e;; esac; \
	for i in $(SUBDIRS) ;\
	do \
	echo "Making Makefiles in $$i..."; \
	case "$$i" in \
	./?*/?*/?*/?*) newtop=../../../../ sub=subsubsubsub;; \
	./?*/?*/?*) newtop=../../../ sub=subsubsub;; \
	./?*/?*) newtop=../../ sub=subsub;; \
	./?*) newtop=../ sub=sub;; \
	*/?*/?*/?*) newtop=../../../../ sub=subsubsubsub;; \
	*/?*/?*) newtop=../../../ sub=subsubsub;; \
	*/?*) newtop=../../ sub=subsub;; \
	*) newtop=../ sub=sub;; \
	esac; \
	$(MAKE) $${sub}dirMakefiles NEWTOP=$$newtop \
	MAKEFILE_SUBDIR=$$i;\
	done

subdirMakefiles:
	$(RM) $(MAKEFILE_SUBDIR)/Makefile.bak
	-$(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak
	cd $(MAKEFILE_SUBDIR); $(IMAKE_CMD) -DTOPDIR=$(TOP)/..; \
	$(MAKE) $(MFLAGS) Makefiles

subsubdirMakefiles:
	$(RM) $(MAKEFILE_SUBDIR)/Makefile.bak
	-$(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak
	cd $(MAKEFILE_SUBDIR); $(IMAKE_CMD) -DTOPDIR=$(TOP)/../..; \
	$(MAKE) $(MFLAGS) Makefiles

subsubsubdirMakefiles:
	$(RM) $(MAKEFILE_SUBDIR)/Makefile.bak
	-$(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak
	cd $(MAKEFILE_SUBDIR); $(IMAKE_CMD) -DTOPDIR=$(TOP)/../../..; \
	$(MAKE) $(MFLAGS) Makefiles

subsubsubsubdirMakefiles:
	$(RM) $(MAKEFILE_SUBDIR)/Makefile.bak
	-$(MV) $(MAKEFILE_SUBDIR)/Makefile $(MAKEFILE_SUBDIR)/Makefile.bak
	cd $(MAKEFILE_SUBDIR); $(IMAKE_CMD) -DTOPDIR=$(TOP)/../../../..; \
	$(MAKE) $(MFLAGS) Makefiles

install:: $(ALL)
	@case '${MFLAGS}' in *[i]*) set +e;; esac; \
	for i in $(ALL); do \
	(set -x; $(INSTALL) -c $(INSTALLFLAGS) $$i $(BINDIR)); \
	done

#
# Gad, but I wish this wasn't so complicated.  All this because
# If we are making two servers, then there may be two lists of
# directories to depend or whatever, most of which are duplicates
#

depend::
	@for i in $(ALL); do \
	dirs="$$dirs \$$($${i}DIRS)"; \
	done; \
	$(MAKE) $(MFLAGS) Realdepend \
	"SERVERSUBDIRS=$$dirs" \
	LINT=$(LINT) DESTDIR=$(DESTDIR)

Realdepend:
	@subdirs=`ls -d $(SERVERSUBDIRS) | sort -u`; \
	for i in $$subdirs; do \
	echo "depend/**/ing $$i"; \
	(cd $$i ; $(MAKE) $(MFLAGS) depend \
	LINT=$(LINT) DESTDIR=$(DESTDIR) ); \
	done

install::
	@for i in $(ALL); do \
	dirs="$$dirs \$$($${i}DIRS)"; \
	done; \
	$(MAKE) $(MFLAGS) Realinstall \
	"SERVERSUBDIRS=$$dirs" \
	LINT=$(LINT) DESTDIR=$(DESTDIR)

Realinstall:
	@subdirs=`ls -d $(SERVERSUBDIRS) | sort -u`; \
	for i in $$subdirs; do \
	echo "install/**/ing $$i"; \
	(cd $$i ; $(MAKE) $(MFLAGS) install \
	LINT=$(LINT) DESTDIR=$(DESTDIR) ); \
	done

lintlib::
	@for i in $(ALL); do \
	dirs="$$dirs \$$($${i}DIRS)"; \
	done; \
	$(MAKE) $(MFLAGS) Reallintlib \
	"SERVERSUBDIRS=$$dirs" \
	LINT=$(LINT) DESTDIR=$(DESTDIR)

Reallintlib:
	@subdirs=`ls -d $(SERVERSUBDIRS) | sort -u`; \
	for i in $$subdirs; do \
	echo "lintlib/**/ing $$i"; \
	(cd $$i ; $(MAKE) $(MFLAGS) lintlib \
	LINT=$(LINT) DESTDIR=$(DESTDIR) ); \
	done

lint::
	@for i in $(ALL); do \
	dirs="$$dirs \$$($${i}DIRS)"; \
	done; \
	$(MAKE) $(MFLAGS) Reallint \
	"SERVERSUBDIRS=$$dirs" \
	LINT=$(LINT) DESTDIR=$(DESTDIR)

Reallint:
	@subdirs=`ls -d $(SERVERSUBDIRS) | sort -u`; \
	for i in $$subdirs; do \
	echo "lint/**/ing $$i"; \
	(cd $$i ; $(MAKE) $(MFLAGS) lint \
	LINT=$(LINT) DESTDIR=$(DESTDIR) ); \
	done

$(EXTDIR) $(SUBDIRS): FRC
	@cd $@ ; echo "making $@"; \
	$(MAKE) $(MFLAGS) 'CDEBUGFLAGS=$(CDEBUGFLAGS)' 'CC=$(CC)' all

clean::
	$(RM) $(ALLPOSSIBLE)

install:: Xserver.man
	$(INSTALL) -c $(INSTMANFLAGS) Xserver.man $(MANDIR)/Xserver.n

FRC:

clean::
	$(RM_CMD) \#*

Makefile:: $(IMAKE)

Makefile:: Imakefile \
	$(IRULESRC)/Imake.tmpl \
	$(IRULESRC)/Imake.rules \
	$(IRULESRC)/$(MACROFILE)
	-$(RM) Makefile.bak; $(MV) Makefile Makefile.bak
	$(IMAKE_CMD) -DTOPDIR=$(TOP)

$(IMAKE):
	@echo "making $(IMAKESRC)"; \
	cd $(IMAKESRC); $(MAKE)

tags::
	$(TAGS) -w *.[ch]
	$(TAGS) -xw *.[ch] > TAGS

install::
	@echo "install done"

Makefiles::

