diff src/make-src-depend @ 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 0784d089fdc9
children 579d37cb4395
line wrap: on
line diff
--- 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");