--- Imakefile.orig	Thu Jun 15 04:36:13 2000
+++ Imakefile	Fri Aug 18 14:40:02 2000
@@ -18,8 +18,26 @@
 #endif
 #endif
 
+#if defined(FreeBSDBuildXlib) && FreeBSDBuildXlib
+        SUBDIRS = include config lib $(NLSSUBDIR) \
+		programs/Xserver/include \
+		programs/Xserver/hw/xfree86/parser \
+		programs/proxymngr programs/xrx
+#else
+#if defined(FreeBSDBuildXbin) && FreeBSDBuildXbin
+        SUBDIRS = include config lib $(NLSSUBDIR) \
+		programs/Xserver/include programs/Xserver/hw/xfree86/parser \
+		programs programs/Xserver/hw/xfree86/xf86cfg
+#else
+#if defined(FreeBSDBuildXfs) && FreeBSDBuildXfs
+        SUBDIRS = include config lib $(NLSSUBDIR) \
+                  programs programs/xfs
+#else
         SUBDIRS = include config lib $(NLSSUBDIR) \
                   programs $(FONTSDIR) $(DOCSDIR)
+#endif
+#endif
+#endif
   LNINSTALLDIRS = lib
 
 #if HasParallelMake
@@ -206,3 +224,97 @@
 #undef BootstrapCleanSubdirs
 #define BootstrapCleanSubdirs BOOTSTRAPSUBDIRS="$(BOOTSTRAPSUBDIRS)"
 BOOTSTRAPSUBDIRS = imake makedepend
+
+#if defined(FreeBSDBuildXlib) && FreeBSDBuildXlib
+FreeBSDPortsInstallDir = include lib nls programs/Xserver/include \
+			programs/xrx/plugin \
+			programs/Xserver/hw/xfree86/parser
+#else
+#if defined(FreeBSDBuildXbin) && FreeBSDBuildXbin
+FreeBSDPortsInstallDir = lib programs programs programs/Xserver/hw/xfree86/xf86cfg
+#else
+#if defined(FreeBSDBuildXxserv) && FreeBSDBuildXxserv
+FreeBSDPortsInstallDir = programs lib/font lib/GL/mesa/src/drv
+#else
+#if defined(FreeBSDBuildXfs) && FreeBSDBuildXfs
+FreeBSDPortsInstallDir = programs/xfs
+#else
+#if defined(FreeBSDBuildXnest) && FreeBSDBuildXnest
+FreeBSDPortsInstallDir = programs/Xserver
+#else
+FreeBSDPortsInstallDir = $(SUBDIRS)
+#endif
+#endif
+#endif
+#endif
+#endif
+
+FreeBSDPortsBuild::
+	@for dir in $(SUBDIRS); do \
+	   (cd $$dir && $(MAKE) $(MFLAGS) $(PARALLELMFLAGS) all); \
+	done	
+
+FreeBSDPortsInstall::
+	@for dir in $(FreeBSDPortsInstallDir); do \
+	   (cd $$dir && $(MAKE) $(MFLAGS) $(PARALLELMFLAGS) install); \
+	done
+
+FreeBSDPortsInstall.man::
+	@for dir in $(FreeBSDPortsInstallDir); do \
+	   (cd $$dir && $(MAKE) $(MFLAGS) $(PARALLELMFLAGS) install.man); \
+	done
+
+# followings are in XBMPICS and XPMPICS at programs/Xserver/hw/xfree86/xf86cfg
+XLIBADDFILES1= \
+	card.xbm\
+	keyboard.xbm\
+	monitor.xbm\
+	mouse.xbm\
+	left.xbm\
+	right.xbm\
+	up.xbm\
+	down.xbm\
+	wider.xbm\
+	narrower.xbm\
+	shorter.xbm\
+	taller.xbm
+XLIBADDFILES2= \
+	card.xpm\
+	computer.xpm\
+	keyboard.xpm\
+	monitor.xpm\
+	mouse.xpm
+
+installXlib::
+	(cd programs/proxymngr && \
+	  $(INSTALL) -c $(INSTINCFLAGS) PM.h $(INCROOT)/X11/PM && \
+	  $(INSTALL) -c $(INSTINCFLAGS) PMproto.h $(INCROOT)/X11/PM)
+	(cd programs/Xserver/hw/xfree86/xf86cfg && \
+	  $(INSTALL) -c $(INSTINCFLAGS) $(XLIBADDFILES1) $(INCROOT)/X11/bitmaps && \
+	  $(INSTALL) -c $(INSTINCFLAGS) $(XLIBADDFILES2) $(INCROOT)/X11/pixmaps)
+
+installXnest::
+	(cd programs/Xserver && \
+	  $(INSTALL) -c $(INSTALLFLAGS) $(INSTPGMFLAGS) Xnest $(DESTDIR)$(BINDIR)/Xnest)
+
+installXnest.man::
+	(cd programs/Xserver/hw/xnest && \
+	  $(RM) $(DESTDIR)$(MANDIR)/Xnest.$(MANSUFFIX)*; \
+	  $(INSTALL) -c $(INSTMANFLAGS) Xnest.man \
+		$(DESTDIR)$(MANDIR)/Xnest.$(MANSUFFIX); \
+	  $(COMPRESSMANCMD) $(DESTDIR)$(MANDIR)/Xnest.$(MANSUFFIX))
+
+installXprt::
+	(cd programs/Xserver && \
+	  $(INSTALL) -c $(INSTALLFLAGS) $(INSTPGMFLAGS) Xprt $(DESTDIR)$(BINDIR)/Xprt)
+
+installXvfb::
+	(cd programs/Xserver && \
+	  $(INSTALL) -c $(INSTALLFLAGS) $(INSTPGMFLAGS) Xvfb $(DESTDIR)$(BINDIR)/Xvfb)
+
+installXvfb.man::
+	(cd programs/Xserver/hw/vfb && \
+	  $(RM) $(DESTDIR)$(MANDIR)/Xvfb.$(MANSUFFIX)*; \
+	  $(INSTALL) -c $(INSTMANFLAGS) Xvfb.man \
+		$(DESTDIR)$(MANDIR)/Xvfb.$(MANSUFFIX); \
+	  $(COMPRESSMANCMD) $(DESTDIR)$(MANDIR)/Xvfb.$(MANSUFFIX))
