annotate lib-src/update-custom.sh @ 3062:21d92abaac3a

[xemacs-hg @ 2005-11-13 10:39:28 by ben] fix up clean targets to delete .elc's as necessary dynodump/Makefile.in.in: Add targets distclean-noconfig, realclean-noconfig, extraclean-noconfig. Do some refactoring for cleanliness. Makefile.in.in: Add targets distclean-noconfig, realclean-noconfig, extraclean-noconfig. *-noconfig targets are like the base targets they're based off of, but don't delete Makefiles and certain other files needed to rebuild the Makefiles as necessary. Refactor things to be more consistent. Top-level `elcclean' is an alias for `realclean-noconfig' and is used by target `beta'. `realclean-noconfig' (and, by extension, `realclean' and `extraclean') remove the .elc files. Makefile.in.in: Add targets distclean-noconfig, realclean-noconfig, extraclean-noconfig. Do some refactoring for cleanliness. Makefile.in.in: Add targets distclean-noconfig, realclean-noconfig, extraclean-noconfig. Do some refactoring for cleanliness. Makefile.in.in: Add targets distclean-noconfig, realclean-noconfig, extraclean-noconfig. Do some refactoring for cleanliness. Makefile.in.in: Add targets distclean-noconfig, realclean-noconfig, extraclean-noconfig. Do some refactoring for cleanliness. Makefile: Add targets distclean-noconfig, realclean-noconfig, extraclean-noconfig. Do some refactoring for cleanliness. common/Makefile.common: Add targets distclean-noconfig, realclean-noconfig, extraclean-noconfig. Do some refactoring for cleanliness. Put in some magic cookies in comments so this file gets read as a make file by XEmacs.
author ben
date Sun, 13 Nov 2005 10:39:41 +0000
parents 3ecd8885ac67
children 308d34e9f07d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
428
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
1 #!/bin/sh
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
2 ### update-custom.sh --- update Customize group dependencies
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
3
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
4 # Author: Hrvoje Niksic, based on update-autoloads.el by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
5 # Jamie Zawinski, Ben Wing, Martin Buchholz, and Steve Baur
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
6 # Maintainer: Hrvoje Niksic
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
7 # Keywords: internal
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
8
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
9 # This file is part of XEmacs.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
10
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
11 # XEmacs is free software; you can redistribute it and/or modify it
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
12 # under the terms of the GNU General Public License as published by
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
13 # the Free Software Foundation; either version 2, or (at your option)
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
14 # any later version.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
15
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
16 # XEmacs is distributed in the hope that it will be useful, but
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
17 # WITHOUT ANY WARRANTY; without even the implied warranty of
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
18 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
19 # General Public License for more details.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
20
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
21 # You should have received a copy of the GNU General Public License
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
22 # along with XEmacs; see the file COPYING. If not, write to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
23 # the Free Software Foundation, Inc., 59 Temple Place - Suite 330,
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
24 # Boston, MA 02111-1307, USA.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
25
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
26 ### Commentary:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
27
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
28 # This is much simpler than update-autoloads.el. All we need to do is
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
29 # compute a list of directories we want to use, and feed it to
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
30 # Custom-make-dependencies. End of story.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
31
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
32 ### Code:
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
33
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
34 set -eu
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
35
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
36 # get to the right directory
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
37 test ! -d ./lisp -a -d ../lisp && cd ..
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
38 if test ! -d ./lisp ; then
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
39 echo $0: neither ./lisp/ nor ../lisp/ exist
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
40 exit 1
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
41 fi
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
42
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
43 test -z "$EMACS" && EMACS="./src/xemacs"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
44 echo " (using $EMACS)"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
45
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
46 export EMACS
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
47
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
48 EMACS_DIR=`cd \`dirname $EMACS\` && pwd`;
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
49 # Account for various system automounter configurations
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
50 if test -d "/net"; then
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
51 if test -d "/tmp_mnt/net"; then tdir="/tmp_mnt/net"; else tdir="/tmp_mnt"; fi
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
52 EMACS_DIR=`echo "$EMACS_DIR" | \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
53 sed -e "s|^${tdir}/|/net/|" -e "s|^/a/|/net/|" -e "s|^/amd/|/net/|"`
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
54 fi
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
55 REAL="$EMACS_DIR/`basename $EMACS`"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
56
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
57 echo "Rebuilding custom-loads with $REAL..."
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
58
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
59 if [ "`uname -r | sed 's/\(.\).*/\1/'`" -gt 4 ]; then
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
60 echon()
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
61 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
62 /bin/echo $* '\c'
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
63 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
64 else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
65 echon()
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
66 {
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
67 echo -n $*
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
68 }
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
69 fi
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
70
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
71 # Compute patterns to ignore when searching for files
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
72 ignore_dirs=""
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
73
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
74 # Only use Mule XEmacs to build Mule-specific autoloads & custom-loads.
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
75 echon "Checking for Mule support..."
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
76 lisp_prog='(princ (featurep (quote mule)))'
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
77 mule_p="`$EMACS -batch -q -no-site-file -eval \"$lisp_prog\"`"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
78 if test "$mule_p" = nil ; then
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
79 echo No
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
80 ignore_dirs="$ignore_dirs mule"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
81 else
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
82 echo Yes
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
83 fi
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
84
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
85 echon "Checking directories..."
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
86 dirs=lisp/
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
87 for dir in lisp/*; do
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
88 if test -d $dir \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
89 -a $dir != lisp/CVS \
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
90 -a $dir != lisp/SCCS; then
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
91 for ignore in $ignore_dirs; do
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
92 if test $dir = lisp/$ignore; then
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
93 continue 2
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
94 fi
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
95 done
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
96 rm -f "$dir/custom-load.elc"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
97 dirs="$dirs $dir"
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
98 fi
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
99 done
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
100 echo done
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
101
3ecd8885ac67 Import from CVS: tag r21-2-22
cvs
parents:
diff changeset
102 $EMACS -batch -q -no-site-file -l cus-dep -f Custom-make-dependencies $dirs