Mercurial > hg > xemacs-beta
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");