changeset 1303:f99d3d25df86

[xemacs-hg @ 2003-02-15 10:15:54 by ben] autoload fixes, make-doc speed improvements Makefile.in.in: Run update-elc-2 with -no-autoloads to avoid multiple autoload-loading problem. configure.usage: Document quick-build better. make-docfile.el: Use `message' (defined in this file) in place of `princ'/`print', and put in a terpri, so that we get correct newline behavior. Rewrite if-progn -> when and a few similar stylistic niceties. And the big change: Allow MS Windows to specify the object files directly and frob them into C files here (formerly this was done in xemacs.mak, and very slooooooooooooooooooowly). Due to line-length limitations in CMD, we need to use a "response file" to hold the arguments, so when we see a response file argument (preceded by an @), read in the args (a bit of trickiness to do this), and process recursively. Also frob .obj -> .c as mentioned earlier and handle other junk dependencies that need to be removed (NEEDTODUMP, make-docfile.exe). update-elc-2.el: Use :test `equal' in call to set-difference. update-elc.el: Put back commented out kill-emacs, update header comment. xemacs.mak: Delete old unused code that checks SATISFIED. Move update-elc-2 up to be near update-elc. Run update-elc-2 with -no-autoloads to avoid multiple autoload-loading problem. Don't compute make-docfile args ourselves. Pass the raw objects to make-docfile.el, which does the computation (much faster than we could). Don't delete the DOC file, split the invocation into two calls to make-docfile.exe (one direct, one through make-docfile.el), etc. In general, all we do is call make-docfile. Add proper dependencies for DOC-file rebuilding so it doesn't get done when not necessary. Implement quick-building here: not building the DOC file unless it doesn't exist, as the quick-build docs say. Makefile.in.in: Don't delete the DOC file. Implement quick-building here: not building the DOC file unless it doesn't exist, as the quick-build docs say. config.h.in, emacs.c: Nothing but niggly spacing changes -- one space before a paren starting a function-call arglist, please.
author ben
date Sat, 15 Feb 2003 10:16:14 +0000
parents 781dc6d5baba
children 579d37cb4395
files ChangeLog Makefile.in.in configure.usage lisp/ChangeLog lisp/make-docfile.el lisp/update-elc-2.el lisp/update-elc.el nt/ChangeLog nt/xemacs.mak src/ChangeLog src/Makefile.in.in src/config.h.in src/depend src/emacs.c src/make-src-depend
diffstat 15 files changed, 337 insertions(+), 164 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Sat Feb 15 00:31:58 2003 +0000
+++ b/ChangeLog	Sat Feb 15 10:16:14 2003 +0000
@@ -1,3 +1,9 @@
+2003-02-15  Ben Wing  <ben@xemacs.org>
+
+	* Makefile.in.in (batch_packages): Run update-elc-2 with -no-autoloads
+	to avoid multiple autoload-loading problem.
+	* configure.usage (--error-checking): Document quick-build better.
+
 2003-01-28  Martin Buchholz  <martin@xemacs.org>
 
 	* configure.in (opsys): (AIX specific)
--- a/Makefile.in.in	Sat Feb 15 00:31:58 2003 +0000
+++ b/Makefile.in.in	Sat Feb 15 10:16:14 2003 +0000
@@ -285,7 +285,7 @@
 ## the way.
 all-elc all-elcs: lib-src lwlib dump-elcs src
 	${blddir}/src/${PROGNAME} ${batch} \
-		-l update-elc-2.el -f batch-update-elc-2 lisp
+		-no-autoloads -l update-elc-2.el -f batch-update-elc-2 lisp
 
 ## Sub-target for all-elc.
 dump-elc dump-elcs: ${GENERATED_HEADERS} FRC.dump-elcs
--- a/configure.usage	Sat Feb 15 00:31:58 2003 +0000
+++ b/configure.usage	Sat Feb 15 10:16:14 2003 +0000
@@ -306,9 +306,12 @@
                         XEmacs will still work (more or less) without them.
                         Potentially dangerous if you don't know what you're
                         doing. This (1) doesn't garbage-collect after loading
-                        each file during dumping, and (2) doesn't
-                        automatically rebuild the DOC file. (Remove it by hand
-                        to get it rebuilt.)
+                        each file during dumping, (2) doesn't
+                        automatically rebuild the DOC file (remove it by hand
+                        to get it rebuilt), (3) Removes config.h, lisp.h and
+                        associated files from the dependency lists, so changes
+                        to these files don't automatically cause all .c files
+                        to be rebuilt.
 --use-union-type        Enable or disable use of a union, instead of an
                         int, for the fundamental Lisp_Object type; this
                         provides stricter type-checking.  WARNING: This has
--- a/lisp/ChangeLog	Sat Feb 15 00:31:58 2003 +0000
+++ b/lisp/ChangeLog	Sat Feb 15 10:16:14 2003 +0000
@@ -1,3 +1,30 @@
+2003-02-15  Ben Wing  <ben@xemacs.org>
+
+	* make-docfile.el:
+	* make-docfile.el (message): New.
+	* make-docfile.el (format-decode): New.
+	* make-docfile.el (process-args): New.
+	* make-docfile.el ((preloaded-file-list)):
+	* make-docfile.el (docfile-out-of-date):
+	Use `message' (defined in this file) in place of `princ'/`print',
+	and put in a terpri, so that we get correct newline behavior.
+	Rewrite if-progn -> when and a few similar stylistic niceties.
+	And the big change: Allow MS Windows to specify the object files
+	directly and frob them into C files here (formerly this was done
+	in xemacs.mak, and very slooooooooooooooooooowly).  Due to
+	line-length limitations in CMD, we need to use a "response file"
+	to hold the arguments, so when we see a response file argument
+	(preceded by an @), read in the args (a bit of trickiness to do
+	this), and process recursively.  Also frob .obj -> .c as mentioned
+	earlier and handle other junk dependencies that need to be removed
+	(NEEDTODUMP, make-docfile.exe).
+	
+	* update-elc-2.el (do-update-elc-2):
+	Use :test `equal' in call to set-difference.
+	
+	* update-elc.el:
+	Put back commented out kill-emacs, update header comment.
+
 2003-02-14  Ben Wing  <ben@xemacs.org>
 
 	* autoload.el (generate-file-autoloads):
--- a/lisp/make-docfile.el	Sat Feb 15 00:31:58 2003 +0000
+++ b/lisp/make-docfile.el	Sat Feb 15 10:16:14 2003 +0000
@@ -1,7 +1,7 @@
 ;;; make-docfile.el --- Cache docstrings in external file
 
 ;; Copyright (C) 1985, 1986, 1992-1995, 1997 Free Software Foundation, Inc.
-;; Copyright (C) 2002 Ben Wing.
+;; Copyright (C) 2002, 2003 Ben Wing.
 
 ;; Author: Unknown
 ;; Maintainer: Steven L Baur <steve@xemacs.org>
@@ -45,6 +45,10 @@
 (defvar site-file-list nil)
 (defvar docfile-out-of-date nil)
 
+(defun message (fmt &rest args)
+  (princ (apply #'format fmt args))
+  (terpri))
+
 ;; Gobble up the stuff we don't wish to pass on.
 (setq command-line-args (cdr (cdr (cdr (cdr command-line-args)))))
 
@@ -66,18 +70,66 @@
 	  (setq command-line-args (cdr (cdr command-line-args)))))))
 (setq options (nreverse options))
 
-;; (print (concat "Options: " (prin1-to-string options)))
+;; (message (concat "Options: " (prin1-to-string options)))
+
+;; insert-file-contents-internal calls out to `format-decode' afterwards,
+;; so it must be defined.  if non-zero, it tries to be a bunch more stuff
+;; so say, "NOOOOOOOOOOOOO!  Basta!  Ca soufit!   Enough, already, OK?"
+(defun format-decode (fuck me harder) 0)
 
 ;; Next process the list of C files.
-(while command-line-args
-  (let ((arg (car command-line-args)))
-    (if (null (member arg processed))
-	(progn
+(defun process-args (args)
+  (while args
+    (let ((arg (car args)))
+      ;; When called from xemacs.mak, we need to do some frobbing on the
+      ;; args given to us -- remove NEEDTODUMP and make-docfile.exe,
+      ;; convert .obj files into .c files in the source directory,
+      ;; handle response files (beginning with @, specifying arguments),
+      ;; due to line-length limitations in the shell.
+      (if (string-match "^@" arg)
+	  ;; MS Windows response file
+	  ;; no generate-new-buffer so use its implementation.
+	  (let ((buf (get-buffer-create (generate-new-buffer-name "foo"))))
+	    (set-buffer buf)
+	    (insert-file-contents-internal (substring arg 1))
+	    ;; now majorly grind up the response file.
+	    ;; backslashes get doubled, quotes around strings,
+	    ;; get rid of pesky CR's and NL's, and put parens around
+	    ;; the whole thing so we have a valid list of strings.
+	    (goto-char (point-max))
+	    (insert "\")")
+	    (goto-char (point-min))
+	    (insert "(\"")
+	    (while (search-forward "\\" nil t)
+	      (replace-match "\\\\" nil t))
+	    (goto-char (point-min))
+	    (while (search-forward "\n" nil t)
+	      (replace-match "" nil t))
+	    (goto-char (point-min))
+	    (while (search-forward "\r" nil t)
+	      (replace-match "" nil t))
+	    (goto-char (point-min))
+	    (while (search-forward " " nil t)
+	      (replace-match "\" \"" nil t))
+	    (goto-char (point-min))
+	    (process-args (read buf)))
+	;; remove NEEDTODUMP and make-docfile.exe, convert .obj files into
+	;; .c files in the source directory.
+	(when (and (not (string-match "\\(NEEDTODUMP\\|\\.exe$\\)" arg))
+		   (not (member arg processed)))
+	  (when (string-match "\\(.*\\)\\.obj$" arg)
+	    (setq arg (concat (file-name-nondirectory
+			       ;; no match-string so use its implementation.
+			       (substring arg (match-beginning 1)
+					  (match-end 1)))
+			      ".c")))
 	  (if (and (null docfile-out-of-date)
 		   (file-newer-than-file-p arg docfile))
 	      (setq docfile-out-of-date t))
-	  (setq processed (cons arg processed)))))
-  (setq command-line-args (cdr command-line-args)))
+	  (setq processed (cons arg processed))))
+      (setq args (cdr args)))))
+
+(process-args command-line-args)
 
 ;; Then process the list of Lisp files.
 (let ((build-root (expand-file-name ".." invocation-directory)))
@@ -109,11 +161,11 @@
       (setq arg (locate-library arg0))
       (if (null arg)
 	  (progn
-	  (princ (format "Error:  dumped file %s does not exist\n" arg0))
+	  (message "Error: dumped file %s does not exist" arg0)
 	  ;; Uncomment in case of difficulties
-	  ;;(print (format "late-packages: %S" late-packages))
-	  ;;(print (format "guessed-roots: %S" (paths-find-emacs-roots invocation-directory invocation-name #'paths-emacs-root-p)))
-	  ;;(print (format "guessed-data-roots: %S" (paths-find-emacs-roots invocation-directory invocation-name #'paths-emacs-data-root-p)))
+	  ;;(message "late-packages: %S" late-packages)
+	  ;;(message "guessed-roots: %S" (paths-find-emacs-roots invocation-directory invocation-name #'paths-emacs-root-p))
+	  ;;(message "guessed-data-roots: %S" (paths-find-emacs-roots invocation-directory invocation-name #'paths-emacs-data-root-p))
 	  )
 	(if (null (member arg processed))
 	    (progn
@@ -138,12 +190,12 @@
 	(setq site-load-packages (cdr site-load-packages)))))
 
 ;(let ((autoloads (packages-list-autoloads-path)))
-;  ;; (print (concat "Autoloads: " (prin1-to-string autoloads)))
+;  ;; (message (concat "Autoloads: " (prin1-to-string autoloads)))
 ;  (while autoloads
 ;    (let ((arg (car autoloads)))
 ;      (if (null (member arg processed))
 ;	  (progn
-;	    ;; (print arg)
+;	    ;; (message arg)
 ;	    (if (and (null docfile-out-of-date)
 ;		     (file-newer-than-file-p arg docfile))
 ;		(setq docfile-out-of-date t))
@@ -154,45 +206,49 @@
 
 (setq processed (nreverse processed))
 
-;; (print (prin1-to-string (append options processed)))
+(terpri)
+
+;(message (prin1-to-string (append options processed)))
 
-(if docfile-out-of-date
-    (progn
-      (princ "Spawning make-docfile ...")
-      ;; (print (prin1-to-string (append options processed)))
+(when docfile-out-of-date
+  (condition-case nil
+      (delete-file docfile)
+    (error nil))
+  (message "Spawning make-docfile ...")
+  ;; (message (prin1-to-string (append options processed)))
+
+  (setq exec-path (list (concat default-directory "../lib-src")))
 
-      (setq exec-path (list (concat default-directory "../lib-src")))
-
-      ;; (locate-file-clear-hashing nil)
-      (if (memq system-type '(berkeley-unix next-mach))
-	  ;; Suboptimal, but we have a unresolved bug somewhere in the
-	  ;; low-level process code.  #### Now that we've switched to using
-	  ;; the regular asynch process code, we should try removing this.
-	  (call-process-internal
-	   "/bin/csh"
+  ;; (locate-file-clear-hashing nil)
+  (if (memq system-type '(berkeley-unix next-mach))
+      ;; Suboptimal, but we have a unresolved bug somewhere in the
+      ;; low-level process code.  #### Now that we've switched to using
+      ;; the regular asynch process code, we should try removing this.
+      (call-process-internal
+       "/bin/csh"
+       nil
+       t
+       nil
+       "-fc"
+       (mapconcat
+	#'identity
+	(append
+	 (list (concat default-directory "../lib-src/make-docfile"))
+	 options processed)
+	" "))
+    ;; (message (prin1-to-string (append options processed)))
+    (apply 'call-process-internal
+	   ;; (concat default-directory "../lib-src/make-docfile")
+	   "make-docfile"
 	   nil
 	   t
 	   nil
-	   "-fc"
-	   (mapconcat
-	    #'identity
-	    (append
-	     (list (concat default-directory "../lib-src/make-docfile"))
-	     options processed)
-	    " "))
-	;; (print (prin1-to-string (append options processed)))
-	(apply 'call-process-internal
-	       ;; (concat default-directory "../lib-src/make-docfile")
-	       "make-docfile"
-	       nil
-	       t
-	       nil
-	       (append options processed)))
+	   (append options processed)))
 
-      (princ "Spawning make-docfile ...done\n")
-      ;; (write-region-internal (point-min) (point-max) "/tmp/DOC")
-      )
-  (princ "DOC file is up to date\n"))
+  (message "Spawning make-docfile ...done")
+  ;; (write-region-internal (point-min) (point-max) "/tmp/DOC")
+  )
+(message "DOC file is up to date")
 
 (kill-emacs)
 
--- a/lisp/update-elc-2.el	Sat Feb 15 00:31:58 2003 +0000
+++ b/lisp/update-elc-2.el	Sat Feb 15 10:16:14 2003 +0000
@@ -122,7 +122,7 @@
 		(delete-file file-c)
 		(push file-c deleted)))))
 
-	(setq files (set-difference files deleted))))
+	(setq files (set-difference files deleted :test 'equal))))
 
       (puthash dir files dirfiles-table)
 
--- a/lisp/update-elc.el	Sat Feb 15 00:31:58 2003 +0000
+++ b/lisp/update-elc.el	Sat Feb 15 10:16:14 2003 +0000
@@ -1,4 +1,4 @@
-;;; update-elc.el --- Bytecompile out-of-date dumped files
+;;; update-elc.el --- Bytecompile out-of-date dumped files, pre-dumping
 
 ;; Copyright (C) 1997 Free Software Foundation, Inc.
 ;; Copyright (C) 1996 Sun Microsystems, Inc.
@@ -397,6 +397,6 @@
 	 ;;(print command-line-args)
 	 (load "loadup-el.el"))))
 
-;(kill-emacs)
+(kill-emacs)
 
 ;;; update-elc.el ends here
--- a/nt/ChangeLog	Sat Feb 15 00:31:58 2003 +0000
+++ b/nt/ChangeLog	Sat Feb 15 10:16:14 2003 +0000
@@ -1,3 +1,27 @@
+2003-02-15  Ben Wing  <ben@xemacs.org>
+
+	* xemacs.mak:
+	* xemacs.mak (PROGNAME):
+	* xemacs.mak (docfile):
+	* xemacs.mak (make-docargs): Removed.
+	* xemacs.mak (update-elc):
+	* xemacs.mak (update-elc-2): New.
+	* xemacs.mak (OS):
+	Delete old unused code that checks SATISFIED.
+	Move update-elc-2 up to be near update-elc.
+	Run update-elc-2 with -no-autoloads to avoid multiple
+	autoload-loading problem.
+
+	Don't compute make-docfile args ourselves.  Pass the raw objects
+	to make-docfile.el, which does the computation (much faster than
+	we could).  Don't delete the DOC file, split the invocation into
+	two calls to make-docfile.exe (one direct, one through
+	make-docfile.el), etc. In general, all we do is call make-docfile.
+	Add proper dependencies for DOC-file rebuilding so it doesn't get
+	done when not necessary.  Implement quick-building here: not
+	building the DOC file unless it doesn't exist, as the quick-build
+	docs say.
+
 2003-02-05  Ben Wing  <ben@xemacs.org>
 
 	* config.inc.samp (GTK_DIR):
--- a/nt/xemacs.mak	Sat Feb 15 00:31:58 2003 +0000
+++ b/nt/xemacs.mak	Sat Feb 15 10:16:14 2003 +0000
@@ -1,7 +1,7 @@
 # Makefile for Microsoft NMAKE	-*- Makefile -*-
 #
 #   Copyright (C) 1995 Board of Trustees, University of Illinois.
-#   Copyright (C) 1995, 1996, 2000, 2001, 2002 Ben Wing.
+#   Copyright (C) 1995, 1996, 2000, 2001, 2002, 2003 Ben Wing.
 #   Copyright (C) 1997, 1998, 2000 Jonathan Harris.
 #   Copyright (C) 1995 Sun Microsystems, Inc.
 #   Copyright (C) 1998 Free Software Foundation, Inc.
@@ -1045,7 +1045,7 @@
 	rc -Fo$@ xemacs.rc
 
 
-PROGNAME=$(TEMACS_DIR)\xemacs.exe
+PROGNAME = $(TEMACS_DIR)\xemacs.exe
 BATCH = -no-packages -batch
 BATCH_PACKAGES = -vanilla -batch
 TEMACS_BATCH = "$(LIB_SRC)\i" "$(TEMACS)" $(BATCH)
@@ -1307,25 +1307,26 @@
 	if exist $(DOC) $(DEL) $(DOC)
 docfile :: $(DOC)
 
-# This takes 5 seconds on my Pentium 233.  If you are running on a
-# much slower machine and are bothered by the time, modify make-docfile.c
-# to contain special code to frob $(OUTDIR)\foo.obj into the right file.
-make-docargs: $(TEMACS_OBJS)
-	@echo Creating make-docfile argument file ...
-	-$(DEL) $(OUTDIR)\make-docfile.tmp
-	@!echo $(SRC)\$(**B).c >> $(OUTDIR)\make-docfile.tmp
-	@echo Done.
-
-$(DOC): $(LIB_SRC)\make-docfile.exe make-docargs
-	if exist $(DOC) $(DEL) $(DOC)
+$(DOC): $(LIB_SRC)\make-docfile.exe $(TEMACS_DIR)\NEEDTODUMP $(TEMACS_OBJS)
 	cd $(TEMACS_DIR)
-	$(TEMACS_BATCH) -l $(LISP)\make-docfile.el -- -o $(DOC) -i $(XEMACS)\site-packages
-	$(LIB_SRC)\make-docfile.exe -a $(DOC) @$(OUTDIR)\make-docfile.tmp
+!if $(QUICK_BUILD)
+	if not exist $(DOC) $(TEMACS_BATCH) -l $(LISP)\make-docfile.el -- -o $(DOC) -i $(XEMACS)\site-packages @<<
+$(**)
+<<
+!else
+	$(TEMACS_BATCH) -l $(LISP)\make-docfile.el -- -o $(DOC) -i $(XEMACS)\site-packages @<<
+$(**)
+<<
+!endif
 
 update-elc:
 	cd $(TEMACS_DIR)
 	$(TEMACS_BATCH) -l $(LISP)\update-elc.el
 
+# Update out-of-date .elcs, other than needed for dumping.
+update-elc-2:
+	$(XEMACS_BATCH) -no-autoloads -l update-elc-2.el -f batch-update-elc-2 $(LISP)
+
 # This file is touched by update-elc.el when redumping is necessary.
 $(TEMACS_DIR)\NEEDTODUMP :
 	@echo >$(TEMACS_DIR)\NEEDTODUMP
@@ -1333,10 +1334,7 @@
 # This rule dumps xemacs and then possibly spawns sub-make if PURESPACE
 # requirements have changed.
 
-$(TEMACS_DIR)\SATISFIED: $(PROGNAME)
-
 $(PROGNAME) : $(TEMACS) $(TEMACS_DIR)\NEEDTODUMP
-	@echo >$(TEMACS_DIR)\SATISFIED
 	cd $(TEMACS_DIR)
 	$(TEMACS_BATCH) -l $(LISP)\loadup.el dump
 !if $(USE_PORTABLE_DUMPER)
@@ -1348,8 +1346,6 @@
 <<
 	-$(DEL) $(TEMACS_DIR)\xemacs.dmp
 !endif
-	cd $(NT)
-	@if not exist $(TEMACS_DIR)\SATISFIED $(MAKE) /$(MAKEFLAGS) -nologo -f xemacs.mak $@
 #------------------------------------------------------------------------------
 
 # use this rule to build the complete system
@@ -1599,9 +1595,5 @@
 	@type $(XEMACS)\Installation
 	@echo --------------------------------------------------------------------
 
-# Update out-of-date .elcs, other than needed for dumping.
-update-elc-2:
-	$(XEMACS_BATCH) -l update-elc-2.el -f batch-update-elc-2 $(LISP)
-
 # DO NOT DELETE THIS LINE -- make depend depends on it.
 
--- a/src/ChangeLog	Sat Feb 15 00:31:58 2003 +0000
+++ b/src/ChangeLog	Sat Feb 15 10:16:14 2003 +0000
@@ -1,3 +1,22 @@
+2003-02-15  Ben Wing  <ben@xemacs.org>
+
+	* Makefile.in.in (dynodump_deps):
+	Don't delete the DOC file.  Implement quick-building here: not
+	building the DOC file unless it doesn't exist, as the quick-build
+	docs say.
+
+	* config.h.in: Style changes.  Add HAVE_XLIKE.
+	* emacs.c (main_1):
+	* emacs.c (main):
+	* emacs.c (Fdump_emacs):
+	* emacs.c (voodoo_free_hook):
+	* emacs.c (Fkill_emacs):
+	* emacs.c (assert_failed):
+	* emacs.c (vars_of_emacs):
+	* emacs.c (__sti__iflPNGFile_c___):
+	Nothing but niggly spacing changes -- one space before a paren
+	starting a function-call arglist, please.
+
 2003-02-14  Ben Wing  <ben@xemacs.org>
 
 	* buffer.c:
--- a/src/Makefile.in.in	Sat Feb 15 00:31:58 2003 +0000
+++ b/src/Makefile.in.in	Sat Feb 15 10:16:14 2003 +0000
@@ -524,10 +524,15 @@
 #endif /* DYNODUMP */
 
 ${libsrc}DOC: ${EXE_TARGET} update-elc.stamp
-	$(RM) ${libsrc}DOC; \
+#ifdef QUICK_BUILD
+	if test ! -f $@ ; then \
+#else
+	if true ; then \
+#endif
 	${DUMPENV} ./${EXE_TARGET} -nd ${batch} -l ${srcdir}/../lisp/make-docfile.el -- \
 		-o ${libsrc}DOC -d ${srcdir} -i ${libsrc}../site-packages \
-		${obj_src} ${mallocdocsrc} ${rallocdocsrc} ${extra_doc_files}
+		${obj_src} ${mallocdocsrc} ${rallocdocsrc} \
+		${extra_doc_files} ; fi
 
 dump_elcs: dump-elcs
 
--- a/src/config.h.in	Sat Feb 15 00:31:58 2003 +0000
+++ b/src/config.h.in	Sat Feb 15 10:16:14 2003 +0000
@@ -203,12 +203,16 @@
 #undef LIBGLADE_XML_TXTDOMAIN
 
 /* Define HAVE_WINDOW_SYSTEM if any windowing system is available. */
-#if defined (HAVE_GTK) || defined (HAVE_X_WINDOWS) || defined(HAVE_MS_WINDOWS) /* || defined (HAVE_NEXTSTEP) */
+#if defined (HAVE_GTK) || defined (HAVE_X_WINDOWS) || defined (HAVE_MS_WINDOWS) /* || defined (HAVE_NEXTSTEP) */
 #define HAVE_WINDOW_SYSTEM
 #endif
 
+#if defined (HAVE_GTK) || defined (HAVE_X_WINDOWS)
+#define HAVE_XLIKE
+#endif
+
 /* Define HAVE_UNIXOID_EVENT_LOOP if we use select() to wait for events. */
-#if defined (HAVE_X_WINDOWS) || defined (HAVE_TTY) || defined(HAVE_MSG_SELECT)
+#if defined (HAVE_X_WINDOWS) || defined (HAVE_TTY) || defined (HAVE_MSG_SELECT)
 #define HAVE_UNIXOID_EVENT_LOOP
 #endif
 
--- a/src/depend	Sat Feb 15 00:31:58 2003 +0000
+++ b/src/depend	Sat Feb 15 10:16:14 2003 +0000
@@ -5,7 +5,15 @@
 #else
 LISP_UNION_H=lisp-disunion.h
 #endif
+
+#if defined(QUICK_BUILD)
+CONFIG_H=
+LISP_H=
+#else
+CONFIG_H=config.h
 LISP_H=lisp.h config.h general-slots.h lrecord.h symeval.h symsinit.h text.h $(LISP_UNION_H)
+#endif
+
 #if defined(HAVE_MS_WINDOWS)
 console-msw.o: $(LISP_H) conslots.h console-impl.h console-msw-impl.h console-msw.h console.h events.h intl-auto-encap-win32.h opaque.h systime.h syswindows.h
 device-msw.o: $(LISP_H) charset.h conslots.h console-impl.h console-msw-impl.h console-msw.h console-stream.h console.h device-impl.h device.h devslots.h events.h faces.h frame.h intl-auto-encap-win32.h objects-msw.h objects.h redisplay.h sysdep.h systime.h syswindows.h
@@ -22,8 +30,16 @@
 select-msw.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h conslots.h console-impl.h console-msw-impl.h console-msw.h console.h file-coding.h frame-impl.h frame.h frameslots.h intl-auto-encap-win32.h opaque.h redisplay.h select.h syswindows.h
 toolbar-msw.o: $(LISP_H) charset.h conslots.h console-impl.h console-msw-impl.h console-msw.h console.h device.h elhash.h faces.h frame-impl.h frame.h frameslots.h glyphs-msw.h glyphs.h gui.h intl-auto-encap-win32.h redisplay.h scrollbar.h specifier.h syswindows.h toolbar.h window-impl.h window.h winslots.h
 #endif
+#if defined(HAVE_XLIKE)
+event-xlike-inc.o: 
+#endif
 #if defined(HAVE_X_WINDOWS)
+EmacsFrame.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h charset.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h faces.h frame-impl.h frame.h frameslots.h glyphs-x.h glyphs.h objects-x.h objects.h redisplay.h scrollbar.h specifier.h toolbar.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmprimitivep.h xmu.h
+EmacsManager.o: $(CONFIG_H) EmacsManager.h EmacsManagerP.h xintrinsicp.h xmmanagerp.h
+EmacsShell-sub.o: $(CONFIG_H) EmacsShell.h EmacsShellP.h xintrinsic.h xintrinsicp.h
+EmacsShell.o: $(CONFIG_H) EmacsShell.h ExternalShell.h xintrinsicp.h
 balloon-x.o: $(LISP_H) balloon_help.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h xintrinsic.h
+balloon_help.o: $(CONFIG_H) balloon_help.h xintrinsic.h
 console-x.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console-x-impl.h console-x.h console.h process.h redisplay.h xintrinsic.h
 device-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h elhash.h events.h faces.h frame-impl.h frame.h frameslots.h glyphs-x.h glyphs.h objects-x.h objects.h offix-types.h offix.h redisplay.h scrollbar.h specifier.h sysdep.h sysdll.h sysfile.h systime.h window-impl.h window.h winslots.h xgccache.h xintrinsic.h xintrinsicp.h xmu.h
 dialog-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h buffer.h bufslots.h casetab.h charset.h chartab.h commands.h conslots.h console-impl.h console-x-impl.h console-x.h console.h events.h frame-impl.h frame.h frameslots.h gui-x.h gui.h opaque.h redisplay.h scrollbar.h systime.h window.h xintrinsic.h
@@ -37,6 +53,7 @@
 scrollbar-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h frame-impl.h frame.h frameslots.h glyphs-x.h glyphs.h gui-x.h redisplay.h scrollbar-x.h scrollbar.h specifier.h window-impl.h window.h winslots.h xintrinsic.h
 select-x.o: $(LISP_H) charset.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h frame-impl.h frame.h frameslots.h objects-x.h objects.h opaque.h redisplay.h select-common.h select.h systime.h xintrinsic.h
 toolbar-x.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h charset.h conslots.h console-impl.h console-x-impl.h console-x.h console.h faces.h frame-impl.h frame.h frameslots.h glyphs-x.h glyphs.h objects-x.h objects.h redisplay.h scrollbar.h specifier.h toolbar-common.h toolbar.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmprimitivep.h
+xgccache.o: $(LISP_H) hash.h xgccache.h
 #endif
 #if defined(HAVE_TTY)
 console-tty.o: $(LISP_H) charset.h coding-system-slots.h conslots.h console-impl.h console-stream.h console-tty-impl.h console-tty.h console.h faces.h file-coding.h frame.h glyphs.h lstream.h process.h redisplay.h scrollbar.h specifier.h sysdep.h sysfile.h systty.h window-impl.h window.h winslots.h
@@ -50,17 +67,24 @@
 console-gtk.o: $(LISP_H) conslots.h console-gtk-impl.h console-gtk.h console-impl.h console.h process.h redisplay.h
 device-gtk.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-gtk-impl.h console-gtk.h console-impl.h console.h device-impl.h device.h devslots.h elhash.h events.h faces.h frame-impl.h frame.h frameslots.h gccache-gtk.h glyphs-gtk.h glyphs.h gtk-xemacs.h objects-gtk.h objects.h redisplay.h scrollbar.h specifier.h sysdep.h sysfile.h systime.h window-impl.h window.h winslots.h
 dialog-gtk.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h commands.h conslots.h console-gtk-impl.h console-gtk.h console-impl.h console.h events.h frame.h gui-gtk.h gui.h opaque.h redisplay.h scrollbar.h systime.h window.h
+emacs-marshals.o: hash.h
+emacs-widget-accessors.o: 
 event-gtk.o: $(LISP_H) blocktype.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h commands.h conslots.h console-gtk-impl.h console-gtk.h console-impl.h console-tty.h console.h device-impl.h device.h devslots.h dragdrop.h elhash.h event-gtk.h event-xlike-inc.c events.h file-coding.h frame-impl.h frame.h frameslots.h gtk-xemacs.h lstream.h objects-gtk.h objects.h offix-types.h offix.h process.h redisplay.h scrollbar.h sysproc.h syssignal.h systime.h systty.h window.h xintrinsic.h
 frame-gtk.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-gtk-impl.h console-gtk.h console-impl.h console.h device-impl.h device.h devslots.h dragdrop.h events.h extents.h faces.h frame-impl.h frame.h frameslots.h glyphs-gtk.h glyphs.h gtk-xemacs.h objects-gtk-impl.h objects-gtk.h objects-impl.h objects.h redisplay.h scrollbar-gtk.h scrollbar.h specifier.h sysdll.h systime.h ui-gtk.h window-impl.h window.h winslots.h
 gccache-gtk.o: $(LISP_H) gccache-gtk.h hash.h
+glade.o: bytecode.h
 glyphs-gtk.o: $(LISP_H) bitmaps.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h conslots.h console-gtk-impl.h console-gtk.h console-impl.h console.h device-impl.h device.h devslots.h faces.h file-coding.h frame-impl.h frame.h frameslots.h glyphs-gtk.h glyphs.h gui-gtk.h gui.h imgproc.h insdel.h lstream.h objects-gtk-impl.h objects-gtk.h objects-impl.h objects.h opaque.h redisplay.h scrollbar.h specifier.h sysdll.h sysfile.h ui-gtk.h window-impl.h window.h winslots.h
+gtk-glue.o: objects-gtk-impl.h objects-gtk.h objects-impl.h objects.h specifier.h
+gtk-xemacs.o: $(LISP_H) charset.h conslots.h console-gtk-impl.h console-gtk.h console-impl.h console.h device-impl.h device.h devslots.h event-gtk.h faces.h frame-impl.h frame.h frameslots.h glyphs.h gtk-xemacs.h objects-gtk.h objects.h redisplay.h scrollbar.h specifier.h window-impl.h window.h winslots.h
 gui-gtk.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-gtk-impl.h console-gtk.h console-impl.h console.h device-impl.h device.h devslots.h frame.h gui-gtk.h gui.h opaque.h redisplay.h
 menubar-gtk.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h commands.h conslots.h console-gtk-impl.h console-gtk.h console-impl.h console.h device-impl.h device.h devslots.h events.h frame-impl.h frame.h frameslots.h gui-gtk.h gui.h menubar.h opaque.h redisplay.h scrollbar.h sysdll.h systime.h ui-gtk.h window-impl.h window.h winslots.h
+native-gtk-toolbar.o: $(LISP_H) charset.h console-gtk.h console.h faces.h frame.h glyphs-gtk.h glyphs.h objects-gtk.h objects.h redisplay.h scrollbar.h specifier.h toolbar.h window-impl.h window.h winslots.h
 objects-gtk.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-gtk-impl.h console-gtk.h console-impl.h console.h device-impl.h device.h devslots.h insdel.h objects-gtk-impl.h objects-gtk.h objects-impl.h objects.h specifier.h
 redisplay-gtk.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h conslots.h console-gtk-impl.h console-gtk.h console-impl.h console.h debug.h device-impl.h device.h devslots.h faces.h file-coding.h frame-impl.h frame.h frameslots.h gccache-gtk.h glyphs-gtk.h glyphs.h gutter.h mule-ccl.h objects-gtk-impl.h objects-gtk.h objects-impl.h objects.h redisplay.h scrollbar.h specifier.h sysdep.h sysproc.h syssignal.h systime.h window-impl.h window.h winslots.h
 scrollbar-gtk.o: $(LISP_H) conslots.h console-gtk-impl.h console-gtk.h console-impl.h console.h frame-impl.h frame.h frameslots.h glyphs-gtk.h glyphs.h gui-gtk.h redisplay.h scrollbar-gtk.h scrollbar.h specifier.h window-impl.h window.h winslots.h
 select-gtk.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-gtk-impl.h console-gtk.h console-impl.h console.h device-impl.h device.h devslots.h events.h frame.h opaque.h redisplay.h select-common.h select.h systime.h
 toolbar-gtk.o: $(LISP_H) conslots.h console-gtk-impl.h console-gtk.h console-impl.h console.h frame.h redisplay.h toolbar-common.h
+ui-byhand.o: gui.h
 ui-gtk.o: $(LISP_H) buffer.h bufslots.h bytecode.h casetab.h charset.h chartab.h console-gtk.h console.h device.h elhash.h emacs-marshals.c emacs-widget-accessors.c event-gtk.h events.h faces.h glade.c glyphs-gtk.h glyphs.h gtk-glue.c gui-gtk.h gui.h hash.h objects-gtk-impl.h objects-gtk.h objects-impl.h objects.h redisplay.h scrollbar.h specifier.h sysdll.h systime.h ui-byhand.c ui-gtk.h window-impl.h window.h winslots.h
 #endif
 #if defined(HAVE_DATABASE)
@@ -75,19 +99,14 @@
 #endif
 #if defined(EXTERNAL_WIDGET)
 ExternalClient-Xlib.o: extw-Xlib.h
-ExternalClient.o: ExternalClient.h ExternalClientP.h config.h extw-Xlib.h extw-Xt.h xintrinsicp.h
-ExternalShell.o: ExternalShell.h ExternalShellP.h config.h extw-Xlib.h extw-Xt.h xintrinsic.h xintrinsicp.h
-extw-Xlib.o: config.h extw-Xlib.h
-extw-Xt.o: config.h extw-Xlib.h extw-Xt.h
+ExternalClient.o: $(CONFIG_H) ExternalClient.h ExternalClientP.h extw-Xlib.h extw-Xt.h xintrinsicp.h
+ExternalShell.o: $(CONFIG_H) ExternalShell.h ExternalShellP.h extw-Xlib.h extw-Xt.h xintrinsic.h xintrinsicp.h
+extw-Xlib.o: $(CONFIG_H) extw-Xlib.h
+extw-Xt.o: $(CONFIG_H) extw-Xlib.h extw-Xt.h
 #endif
-EmacsFrame.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h EmacsFrame.h EmacsFrameP.h EmacsManager.h charset.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h faces.h frame-impl.h frame.h frameslots.h glyphs-x.h glyphs.h objects-x.h objects.h redisplay.h scrollbar.h specifier.h toolbar.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h xmprimitivep.h xmu.h
-EmacsManager.o: EmacsManager.h EmacsManagerP.h config.h xintrinsicp.h xmmanagerp.h
-EmacsShell-sub.o: EmacsShell.h EmacsShellP.h config.h xintrinsic.h xintrinsicp.h
-EmacsShell.o: EmacsShell.h ExternalShell.h config.h xintrinsicp.h
 abbrev.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h commands.h insdel.h redisplay.h scrollbar.h syntax.h window.h
 alloc.o: $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h casetab.h charset.h chartab.h coding-system-slots.h conslots.h console-impl.h console-stream.h console.h device.h elhash.h events.h extents-impl.h extents.h file-coding.h frame-impl.h frame.h frameslots.h glyphs.h lstream.h opaque.h process.h profile.h redisplay.h scrollbar.h specifier.h sysdep.h sysfile.h systime.h window-impl.h window.h winslots.h
 alloca.o: $(LISP_H)
-balloon_help.o: balloon_help.h config.h xintrinsic.h
 blocktype.o: $(LISP_H) blocktype.h
 buffer.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h commands.h conslots.h console-impl.h console.h device-impl.h device.h devslots.h elhash.h extents.h faces.h file-coding.h frame-impl.h frame.h frameslots.h insdel.h intl-auto-encap-win32.h lstream.h ndir.h process.h redisplay.h scrollbar.h select.h specifier.h syntax.h sysdir.h sysfile.h syswindows.h window.h
 bytecode.o: $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h casetab.h charset.h chartab.h opaque.h redisplay.h scrollbar.h syntax.h window.h
@@ -111,11 +130,9 @@
 dragdrop.o: $(LISP_H) dragdrop.h
 dumper.o: $(LISP_H) coding-system-slots.h console-stream.h console.h elhash.h file-coding.h intl-auto-encap-win32.h lstream.h specifier.h sysfile.h syswindows.h
 dynarr.o: $(LISP_H)
-ecrt0.o: config.h
+ecrt0.o: $(CONFIG_H)
 editfns.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h commands.h console.h device.h events.h frame.h insdel.h line-number.h ndir.h process.h redisplay.h scrollbar.h sysdep.h sysdir.h sysfile.h sysproc.h syspwd.h syssignal.h systime.h window.h
 elhash.o: $(LISP_H) bytecode.h elhash.h opaque.h
-emacs-marshals.o: hash.h
-emacs-widget-accessors.o: 
 emacs.o: $(LISP_H) backtrace.h buffer.h bufslots.h casetab.h charset.h chartab.h commands.h console-msw.h console.h frame.h intl-auto-encap-win32.h paths.h process.h redisplay.h sysdep.h sysdll.h sysfile.h sysproc.h syssignal.h systime.h systty.h syswindows.h
 emodules.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h console.h emodules.h file-coding.h frame.h insdel.h lstream.h redisplay.h scrollbar.h sysdep.h sysdll.h window.h
 esd.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h miscplay.h sound.h sysfile.h
@@ -123,7 +140,6 @@
 event-Xt.o: $(LISP_H) $(LWLIB_SRCDIR)/lwlib.h Emacs.ad.h EmacsFrame.h blocktype.h charset.h coding-system-slots.h conslots.h console-impl.h console-tty.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h dragdrop.h elhash.h event-xlike-inc.c events.h file-coding.h frame-impl.h frame.h frameslots.h glyphs.h lstream.h objects-x.h objects.h offix-types.h offix.h process.h redisplay.h scrollbar.h specifier.h sysproc.h syssignal.h systime.h systty.h window-impl.h window.h winslots.h xintrinsic.h xintrinsicp.h
 event-stream.o: $(LISP_H) backtrace.h blocktype.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h commands.h conslots.h console-impl.h console.h device-impl.h device.h devslots.h elhash.h events.h file-coding.h frame-impl.h frame.h frameslots.h gui.h insdel.h keymap.h lstream.h macros.h menubar.h process.h profile.h redisplay.h scrollbar.h sysdep.h sysfile.h syssignal.h systime.h window-impl.h window.h winslots.h
 event-unixoid.o: $(LISP_H) conslots.h console-impl.h console-stream-impl.h console-stream.h console-tty-impl.h console-tty.h console.h device-impl.h device.h devslots.h events.h lstream.h process.h sysdep.h sysfile.h sysproc.h syssignal.h systime.h systty.h
-event-xlike-inc.o: 
 events.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console-tty-impl.h console-tty.h console.h device.h events.h extents.h frame-impl.h frame.h frameslots.h glyphs.h keymap.h lstream.h redisplay.h scrollbar.h specifier.h systime.h systty.h toolbar.h window-impl.h window.h winslots.h
 extents.o: $(LISP_H) backtrace.h buffer.h bufslots.h casetab.h charset.h chartab.h console.h debug.h device.h elhash.h extents-impl.h extents.h faces.h frame.h glyphs.h gutter.h insdel.h keymap.h opaque.h process.h profile.h redisplay.h scrollbar.h specifier.h window-impl.h window.h winslots.h
 faces.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console.h device-impl.h device.h devslots.h elhash.h extents-impl.h extents.h faces.h frame-impl.h frame.h frameslots.h glyphs.h objects-impl.h objects.h redisplay.h scrollbar.h specifier.h window-impl.h window.h winslots.h
@@ -139,15 +155,12 @@
 general.o: $(LISP_H)
 getloadavg.o: $(LISP_H) sysfile.h syssignal.h
 gif_io.o: $(LISP_H) gifrlib.h sysfile.h
-glade.o: bytecode.h
 glyphs-eimage.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h conslots.h console-impl.h console.h device-impl.h device.h devslots.h faces.h file-coding.h frame.h gifrlib.h glyphs.h lstream.h objects-impl.h objects.h opaque.h redisplay.h scrollbar.h specifier.h sysfile.h window-impl.h window.h winslots.h
 glyphs-shared.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h console.h elhash.h faces.h frame.h glyphs.h imgproc.h insdel.h lstream.h opaque.h redisplay.h scrollbar.h specifier.h sysdep.h sysfile.h window-impl.h window.h winslots.h
 glyphs-widget.o: $(LISP_H) bytecode.h charset.h conslots.h console-impl.h console.h device-impl.h device.h devslots.h faces.h frame.h glyphs.h gui.h insdel.h lstream.h objects.h opaque.h redisplay.h scrollbar.h specifier.h window-impl.h window.h winslots.h
 glyphs.o: $(LISP_H) blocktype.h buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console.h device-impl.h device.h devslots.h elhash.h faces.h frame-impl.h frame.h frameslots.h glyphs.h gui.h insdel.h objects-impl.h objects.h opaque.h rangetab.h redisplay.h scrollbar.h specifier.h sysfile.h window-impl.h window.h winslots.h
 gmalloc.o: $(LISP_H) getpagesize.h sysdep.h
 gpmevent.o: $(LISP_H) commands.h conslots.h console-impl.h console-tty-impl.h console-tty.h console.h device-impl.h device.h devslots.h events.h frame.h gpmevent.h lstream.h process.h redisplay.h sysdep.h sysproc.h syssignal.h systime.h systty.h
-gtk-glue.o: objects-gtk-impl.h objects-gtk.h objects-impl.h objects.h specifier.h
-gtk-xemacs.o: $(LISP_H) charset.h conslots.h console-gtk-impl.h console-gtk.h console-impl.h console.h device-impl.h device.h devslots.h event-gtk.h faces.h frame-impl.h frame.h frameslots.h glyphs.h gtk-xemacs.h objects-gtk.h objects.h redisplay.h scrollbar.h specifier.h window-impl.h window.h winslots.h
 gui.o: $(LISP_H) buffer.h bufslots.h bytecode.h casetab.h charset.h chartab.h elhash.h gui.h menubar.h
 gutter.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console.h device-impl.h device.h devslots.h faces.h frame-impl.h frame.h frameslots.h glyphs.h gutter.h redisplay.h scrollbar.h specifier.h window-impl.h window.h winslots.h
 hash.o: $(LISP_H) hash.h
@@ -164,7 +177,7 @@
 intl-win32.o: $(LISP_H) charset.h coding-system-slots.h conslots.h console-impl.h console-msw-impl.h console-msw.h console.h elhash.h faces.h file-coding.h frame-impl.h frame.h frameslots.h intl-auto-encap-win32.h objects-impl.h objects-msw-impl.h objects-msw.h objects.h redisplay.h scrollbar.h specifier.h syswindows.h window-impl.h window.h winslots.h
 intl.o: $(LISP_H)
 keymap.o: $(LISP_H) buffer.h bufslots.h bytecode.h casetab.h charset.h chartab.h conslots.h console-impl.h console.h elhash.h events.h extents.h frame.h insdel.h keymap.h redisplay.h scrollbar.h systime.h window.h
-lastfile.o: config.h
+lastfile.o: $(CONFIG_H)
 libinterface.o: $(LISP_H) gifrlib.h libinterface.h
 libsst.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h libsst.h sound.h sysfile.h
 line-number.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h line-number.h
@@ -172,14 +185,13 @@
 lread.o: $(LISP_H) backtrace.h buffer.h bufslots.h bytecode.h casetab.h charset.h chartab.h coding-system-slots.h elhash.h file-coding.h intl-auto-encap-win32.h lstream.h opaque.h profile.h sysfile.h sysfloat.h syswindows.h
 lstream.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h insdel.h lstream.h sysfile.h
 macros.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h commands.h conslots.h console-impl.h console.h device.h events.h frame.h keymap.h macros.h redisplay.h scrollbar.h systime.h window.h
-malloc.o: config.h getpagesize.h syssignal.h
+malloc.o: $(CONFIG_H) getpagesize.h syssignal.h
 marker.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h
 md5.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h file-coding.h lstream.h
 menubar.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console.h device-impl.h device.h devslots.h frame-impl.h frame.h frameslots.h gui.h keymap.h menubar.h redisplay.h scrollbar.h specifier.h window-impl.h window.h winslots.h
 minibuf.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h commands.h conslots.h console-impl.h console-stream.h console.h events.h frame-impl.h frame.h frameslots.h insdel.h redisplay.h scrollbar.h systime.h window-impl.h window.h winslots.h
 miscplay.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h miscplay.h sound.h sysfile.h syssignal.h
 nas.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h sound.h sysdep.h syssignal.h
-native-gtk-toolbar.o: $(LISP_H) charset.h console-gtk.h console.h faces.h frame.h glyphs-gtk.h glyphs.h objects-gtk.h objects.h redisplay.h scrollbar.h specifier.h toolbar.h window-impl.h window.h winslots.h
 nt.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h intl-auto-encap-win32.h ndir.h process.h sysdir.h sysfile.h sysproc.h syspwd.h syssignal.h systime.h syswindows.h
 ntheap.o: $(LISP_H) intl-auto-encap-win32.h sysdep.h syswindows.h
 ntplay.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h intl-auto-encap-win32.h sound.h sysfile.h syswindows.h
@@ -205,9 +217,9 @@
 signal.o: $(LISP_H) conslots.h console-impl.h console.h device-impl.h device.h devslots.h events.h frame-impl.h frame.h frameslots.h process.h redisplay.h sysdep.h sysfile.h syssignal.h systime.h
 sound.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h intl-auto-encap-win32.h redisplay.h sound.h sysdep.h sysfile.h sysproc.h syssignal.h systime.h syswindows.h xintrinsic.h
 specifier.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console.h device-impl.h device.h devslots.h frame.h glyphs.h opaque.h rangetab.h redisplay.h scrollbar.h specifier.h window-impl.h window.h winslots.h
-strcat.o: config.h
-strcmp.o: config.h
-strcpy.o: config.h
+strcat.o: $(CONFIG_H)
+strcmp.o: $(CONFIG_H)
+strcpy.o: $(CONFIG_H)
 strftime.o: $(LISP_H)
 sunplay.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h sound.h sysdep.h sysfile.h syssignal.h
 sunpro.o: $(LISP_H)
@@ -216,34 +228,32 @@
 sysdep.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console-stream-impl.h console-stream.h console-tty-impl.h console-tty.h console.h device-impl.h device.h devslots.h events.h frame.h intl-auto-encap-win32.h ndir.h process.h redisplay.h scrollbar.h sysdep.h sysdir.h sysfile.h sysproc.h syspwd.h syssignal.h systime.h systty.h syswait.h syswindows.h window.h
 sysdll.o: $(LISP_H) sysdll.h
 termcap.o: $(LISP_H) console.h device.h
-terminfo.o: config.h
+terminfo.o: $(CONFIG_H)
 tests.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h elhash.h lstream.h opaque.h
 text.o: $(LISP_H) backtrace.h buffer.h bufslots.h casetab.h charset.h chartab.h coding-system-slots.h file-coding.h lstream.h profile.h
 toolbar-common.o: $(LISP_H) charset.h conslots.h console-gtk-impl.h console-gtk.h console-impl.h console-x-impl.h console-x.h console.h device-impl.h device.h devslots.h faces.h frame-impl.h frame.h frameslots.h glyphs.h redisplay.h scrollbar.h specifier.h toolbar-common.h toolbar.h window-impl.h window.h winslots.h xintrinsic.h
 toolbar.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h conslots.h console-impl.h console.h device-impl.h device.h devslots.h frame-impl.h frame.h frameslots.h glyphs.h redisplay.h scrollbar.h specifier.h toolbar.h window-impl.h window.h winslots.h
 tooltalk.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h elhash.h process.h syssignal.h tooltalk.h
 tparam.o: $(LISP_H)
-ui-byhand.o: gui.h
 undo.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h extents.h
 unexaix.o: $(LISP_H) getpagesize.h
-unexalpha.o: config.h
-unexapollo.o: config.h
-unexconvex.o: config.h getpagesize.h
+unexalpha.o: $(CONFIG_H)
+unexapollo.o: $(CONFIG_H)
+unexconvex.o: $(CONFIG_H) getpagesize.h
 unexcw.o: $(LISP_H) sysfile.h
 unexec.o: $(LISP_H) getpagesize.h
-unexelf.o: config.h
-unexelfsgi.o: config.h
-unexenix.o: config.h
-unexfreebsd.o: config.h
-unexhp9k3.o: config.h sysdep.h syssignal.h
+unexelf.o: $(CONFIG_H)
+unexelfsgi.o: $(CONFIG_H)
+unexenix.o: $(CONFIG_H)
+unexfreebsd.o: $(CONFIG_H)
+unexhp9k3.o: $(CONFIG_H) sysdep.h syssignal.h
 unexhp9k800.o: $(LISP_H)
-unexmips.o: config.h getpagesize.h
+unexmips.o: $(CONFIG_H) getpagesize.h
 unexnt.o: $(LISP_H) intl-auto-encap-win32.h sysfile.h syswindows.h
-unexsunos4.o: config.h
+unexsunos4.o: $(CONFIG_H)
 unicode.o: $(LISP_H) charset.h coding-system-slots.h file-coding.h opaque.h sysfile.h
 vm-limit.o: $(LISP_H) mem-limits.h
 widget.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h
 win32.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h console-msw.h console.h intl-auto-encap-win32.h sysfile.h sysproc.h syssignal.h systime.h syswindows.h
 window.o: $(LISP_H) buffer.h bufslots.h casetab.h charset.h chartab.h commands.h conslots.h console-impl.h console.h device-impl.h device.h devslots.h elhash.h faces.h frame-impl.h frame.h frameslots.h glyphs.h gutter.h objects.h redisplay.h scrollbar.h specifier.h window-impl.h window.h winslots.h
-xgccache.o: $(LISP_H) hash.h xgccache.h
-xmu.o: config.h
+xmu.o: $(CONFIG_H)
--- a/src/emacs.c	Sat Feb 15 00:31:58 2003 +0000
+++ b/src/emacs.c	Sat Feb 15 10:16:14 2003 +0000
@@ -750,10 +750,10 @@
     defined (ERROR_CHECK_MALLOC) && \
     !defined (HAVE_LIBMCHECK)
   */
-#if defined(LOSING_GCC_DESTRUCTOR_FREE_BUG)
+#if defined (LOSING_GCC_DESTRUCTOR_FREE_BUG)
   /* Prior to XEmacs 21, this was `#if 0'ed out.  */
   /* I'm enabling this because it is the only reliable way I've found to */
-  /* prevent a very annoying problem where GCC will attempt to free(3) */
+  /* prevent a very annoying problem where GCC will attempt to free (3) */
   /* memory at exit() and cause a coredump. */
   init_free_hook ();
 #endif
@@ -777,9 +777,9 @@
 #if defined (HAVE_MMAP) && defined (REL_ALLOC)
   /* ralloc can only be used if using the GNU memory allocator. */
   init_ralloc ();
-#elif defined (REL_ALLOC) && !defined(DOUG_LEA_MALLOC)
+#elif defined (REL_ALLOC) && !defined (DOUG_LEA_MALLOC)
   if (initialized)
-    init_ralloc();
+    init_ralloc ();
 #endif
 
 #ifdef HAVE_SOCKS
@@ -1272,7 +1272,7 @@
 #endif
 #endif
       syms_of_profile ();
-#if defined (HAVE_MMAP) && defined (REL_ALLOC) && !defined(DOUG_LEA_MALLOC)
+#if defined (HAVE_MMAP) && defined (REL_ALLOC) && !defined (DOUG_LEA_MALLOC)
       syms_of_ralloc ();
 #endif /* HAVE_MMAP && REL_ALLOC */
       syms_of_rangetab ();
@@ -1647,7 +1647,7 @@
 	 -- xmalloc*(), xnew*(), and friends
 	 -- Dynarr_*()
 	 -- Blocktype_*()
-	 -- Fprovide(symbol)
+	 -- Fprovide (symbol)
 	 -- intern()
 	 -- Fput()
          -- dump_add_*()
@@ -1721,7 +1721,7 @@
 #ifdef HAVE_X_WINDOWS
       vars_of_event_Xt ();
 #endif
-#if defined(HAVE_TTY) && (defined (DEBUG_TTY_EVENT_STREAM) || !defined (HAVE_X_WINDOWS))
+#if defined (HAVE_TTY) && (defined (DEBUG_TTY_EVENT_STREAM) || !defined (HAVE_X_WINDOWS))
       vars_of_event_tty ();
 #endif
 #ifdef HAVE_MS_WINDOWS
@@ -1794,7 +1794,7 @@
 #endif
 
       vars_of_profile ();
-#if defined (HAVE_MMAP) && defined (REL_ALLOC) && !defined(DOUG_LEA_MALLOC)
+#if defined (HAVE_MMAP) && defined (REL_ALLOC) && !defined (DOUG_LEA_MALLOC)
       vars_of_ralloc ();
 #endif /* HAVE_MMAP && REL_ALLOC */
       vars_of_redisplay ();
@@ -2120,7 +2120,7 @@
 #endif
       reinit_vars_of_device ();
       reinit_vars_of_eval ();
-#if defined(HAVE_TTY) && (defined (DEBUG_TTY_EVENT_STREAM) || !defined (HAVE_X_WINDOWS))
+#if defined (HAVE_TTY) && (defined (DEBUG_TTY_EVENT_STREAM) || !defined (HAVE_X_WINDOWS))
       reinit_vars_of_event_tty ();
 #endif
       reinit_vars_of_event_stream ();
@@ -2277,7 +2277,7 @@
   if (!restart)
     {
       Vinvocation_name = Fcar (Vcommand_line_args);
-      if (XSTRING_DATA(Vinvocation_name)[0] == '-')
+      if (XSTRING_DATA (Vinvocation_name)[0] == '-')
 	{
 	  /* XEmacs as a login shell, oh goody! */
 	  Vinvocation_name = build_intstring (egetenv ("SHELL"));
@@ -2307,7 +2307,7 @@
       Vinvocation_directory = Ffile_name_directory (Vinvocation_directory);
     }
 
-#if defined(HAVE_SHLIB) && !defined(WIN32_NATIVE)
+#if defined (HAVE_SHLIB) && !defined (WIN32_NATIVE)
   /* This is Unix only.  MS Windows NT has a library call that does
      The Right Thing on that system.  Rumor has it, this must be
      called for GNU dld in temacs and xemacs.  */
@@ -2651,7 +2651,7 @@
   unbind_to (0); /* this closes loadup.el */
   purify_flag = 0;
   run_temacs_argc = nargs + 1;
-#if defined (HEAP_IN_DATA) && !defined(PDUMP)
+#if defined (HEAP_IN_DATA) && !defined (PDUMP)
   report_sheap_usage (0);
 #endif
   LONGJMP (run_temacs_catch, 1);
@@ -2775,10 +2775,10 @@
       free (malloc_state_ptr);
 #endif
       /* mmap works in glibc-2.1, glibc-2.0 (Non-Mule only) and Linux libc5 */
-#if (defined(__GLIBC__) && __GLIBC_MINOR__ >= 1) || \
-    defined(_NO_MALLOC_WARNING_) || \
-    (defined(__GLIBC__) && __GLIBC_MINOR__ < 1 && !defined(MULE)) || \
-    defined(DEBUG_DOUG_LEA_MALLOC)
+#if (defined (__GLIBC__) && __GLIBC_MINOR__ >= 1) || \
+    defined (_NO_MALLOC_WARNING_) || \
+    (defined (__GLIBC__) && __GLIBC_MINOR__ < 1 && !defined (MULE)) || \
+    defined (DEBUG_DOUG_LEA_MALLOC)
       mallopt (M_MMAP_MAX, 64);
 #endif
 #ifdef REL_ALLOC
@@ -2852,7 +2852,7 @@
   opurify = purify_flag;
   purify_flag = 0;
 
-#if defined (HEAP_IN_DATA) && !defined(PDUMP)
+#if defined (HEAP_IN_DATA) && !defined (PDUMP)
   report_sheap_usage (1);
 #endif
 
@@ -3258,7 +3258,7 @@
 /* The following needs conditionalization on whether either XEmacs or */
 /* various system shared libraries have been built and linked with */
 /* GCC >= 2.8.  -slb */
-#if defined(GNU_MALLOC)
+#if defined (GNU_MALLOC)
 static void
 voodoo_free_hook (void *mem)
 {
@@ -3328,7 +3328,7 @@
 
   shut_down_emacs (0, STRINGP (arg) ? arg : Qnil, 0);
 
-#if defined(GNU_MALLOC)
+#if defined (GNU_MALLOC)
   __free_hook =
 #ifdef __GNUC__ /* prototype of __free_hook varies with glibc version */
     (__typeof__ (__free_hook))
@@ -3601,7 +3601,7 @@
 #if !defined (ASSERTIONS_DONT_ABORT)
 #ifdef _MSC_VER
   /* Calling abort() directly just seems to exit, in a way we can't
-     trap. (#### The docs say it does raise(SIGABRT), which we should be
+     trap. (#### The docs say it does raise (SIGABRT), which we should be
      able to trap.  Perhaps we're messing up somewhere?  Or perhaps MS is
      messed up.)
 
@@ -4024,13 +4024,13 @@
 of the symbols in MAIL-LOCK-METHODS.
 */ );
   {
-#if defined(MAIL_LOCK_FLOCK) && defined(HAVE_FLOCK)
+#if defined (MAIL_LOCK_FLOCK) && defined (HAVE_FLOCK)
     Vconfigure_mail_lock_method = intern ("flock");
-#elif defined(MAIL_LOCK_LOCKF) && defined(HAVE_LOCKF)
+#elif defined (MAIL_LOCK_LOCKF) && defined (HAVE_LOCKF)
     Vconfigure_mail_lock_method = intern ("lockf");
-#elif defined(MAIL_LOCK_MMDF) && defined(HAVE_MMDF)
+#elif defined (MAIL_LOCK_MMDF) && defined (HAVE_MMDF)
     Vconfigure_mail_lock_method = intern ("mmdf");
-#elif defined(MAIL_LOCK_LOCKING) && defined(HAVE_LOCKING)
+#elif defined (MAIL_LOCK_LOCKING) && defined (HAVE_LOCKING)
     Vconfigure_mail_lock_method = intern ("locking");
 #else
     Vconfigure_mail_lock_method = intern ("dot");
@@ -4258,7 +4258,7 @@
 #endif
 }
 
-#if defined(__sgi) && !defined(PDUMP)
+#if defined (__sgi) && !defined (PDUMP)
 /* This is so tremendously ugly I'd puke. But then, it works.
  * The target is to override the static constructor from the
  * libiflPNG.so library which is masquerading as libz, and
--- a/src/make-src-depend	Sat Feb 15 00:31:58 2003 +0000
+++ b/src/make-src-depend	Sat Feb 15 10:16:14 2003 +0000
@@ -1,24 +1,29 @@
 : #-*- Perl -*-
+
+### make-src-depend --- update the Makefile dependency information for XEmacs
+
 # Copyright (C) 1998 Free Software Foundation, Inc.
 
-# This file is part of XEmacs.
-#
-# XEmacs is free software; you can redistribute it and/or modify it
-# under the terms of the GNU General Public License as published by the
-# Free Software Foundation; either version 2, or (at your option) any
-# later version.
-#
-# XEmacs is distributed in the hope that it will be useful, but WITHOUT
-# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
-# FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
-# for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with XEmacs; see the file COPYING.  If not, write to
-# the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
-# Boston, MA 02111-1307, USA.
+## Author: Martin Buchholz <martin@xemacs.org>
+## Maintainer: XEmacs Development Team
+
+## This file is part of XEmacs.
+
+## XEmacs is free software; you can redistribute it and/or modify it
+## under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2, or (at your option)
+## any later version.
 
-# Author: Martin Buchholz
+## XEmacs is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+## General Public License for more details.
+
+## You should have received a copy of the GNU General Public License
+## along with XEmacs; see the file COPYING.  If not, write to the Free
+## Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
+## 02111-1307, USA.
+
 eval 'exec perl -w -S $0 ${1+"$@"}'
   if 0;
 
@@ -29,7 +34,11 @@
 Usage: $myName
 
 Generates Makefile dependencies for the XEmacs src directory.
-The dependencies are written to stdout.\n";
+The dependencies are written to stdout.
+
+If --quick-build, don't include config.h and lisp.h in the dependencies,
+for faster rebuilding.
+";
 
 die $usage if @ARGV;
 
@@ -94,7 +103,16 @@
 ";
 
 my @LISP_H = ('lisp.h', sort keys %{$uses{'lisp.h'}});
-print "LISP_H=@{[grep (!/lisp-(dis)?union\.h/, @LISP_H)]} \$(LISP_UNION_H)\n";
+print "
+#if defined(QUICK_BUILD)
+CONFIG_H=
+LISP_H=
+#else
+CONFIG_H=config.h
+LISP_H=@{[grep (!/lisp-(dis)?union\.h/, @LISP_H)]} \$(LISP_UNION_H)
+#endif
+
+";
 
 sub PrintDeps {
   my $file = shift;
@@ -103,6 +121,12 @@
     delete @{%{$uses{$file}}}{@LISP_H};
     $uses{$file}{'$(LISP_H)'} = 1;
   }
+  # Note: If both config.h and lisp.h are dependencies, config.h got deleted
+  # by the last clause.
+  if (exists $uses{$file}{'config.h'}) {
+    delete $uses{$file}{'config.h'};
+    $uses{$file}{'$(CONFIG_H)'} = 1;
+  }
   print "@{[sort keys %{$uses{$file}}]}\n";
 }
 
@@ -117,9 +141,12 @@
 }
 
 PrintPatternDeps ('-msw\\.',   "HAVE_MS_WINDOWS");
-PrintPatternDeps ('-x\\.',     "HAVE_X_WINDOWS");
+PrintPatternDeps ('-xlike',   "HAVE_XLIKE");
+# X-specific files: *-x.c *-x-impl.h xgccache.c balloon_help.c x*.h Emacs*.[ch]
+PrintPatternDeps ('-x\\.|xgccache|balloon_help|^Emacs',     "HAVE_X_WINDOWS");
 PrintPatternDeps ('-tty\\.',   "HAVE_TTY");
-PrintPatternDeps ('-gtk\\.',   "HAVE_GTK");
+# GTK-specific files: *-gtk.[ch] *-gtk-*.[ch] gtk-*.[ch] emacs-marshals.c emacs-widget-accessors.c glade.c ui-byhand.c
+PrintPatternDeps ('gtk|emacs-marshals|emacs-widget-accessors|glade|ui-byhand',   "HAVE_GTK");
 PrintPatternDeps ('^database', "HAVE_DATABASE");
 PrintPatternDeps ('^mule',     "MULE");
 PrintPatternDeps ('^(?:External|extw-)', "EXTERNAL_WIDGET");