emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Emacs-diffs] Changes to emacs/lisp/Makefile.in,v


From: Glenn Morris
Subject: [Emacs-diffs] Changes to emacs/lisp/Makefile.in,v
Date: Sat, 24 May 2008 02:26:38 +0000

CVSROOT:        /sources/emacs
Module name:    emacs
Changes by:     Glenn Morris <gm>       08/05/24 02:26:38

Index: Makefile.in
===================================================================
RCS file: /sources/emacs/emacs/lisp/Makefile.in,v
retrieving revision 1.121
retrieving revision 1.122
diff -u -b -r1.121 -r1.122
--- Makefile.in 23 May 2008 04:46:33 -0000      1.121
+++ Makefile.in 24 May 2008 02:26:37 -0000      1.122
@@ -149,15 +149,31 @@
        els=`echo $(lisptagsfiles1) $(lisptagsfiles2) | sed -e "s,$(lisp)/[^ 
]*loaddefs[^ ]*,," -e "s,$(lisp)/ldefs-boot[^ ]*,,"`; \
        ${ETAGS} -o $@ $$els
 
+.PHONY: update-elclist
+
+## Construct a sed command file that operates on lines between
+## ^ELCFILES and the next blank line.  Convert spaces between members
+## of COMPILE_FIRST to "\|", and escape directory "/".  List the .elc
+## files, exclude the members of COMPILE_FIRST, convert ^$(lisp) to a
+## literal " $(lisp)", add trailing " \\\" to the end of every line
+## (the last \ continues the line in sed, the other \\ result in a
+## single \ at the end of the replacement text).  For the last line,
+## just use a single "\", for sed.  Finally, run sed using the command
+## so constructed and update Makefile.in.  chmod +w is for CVSREAD=1.
+update-elclist:
+       echo "/^ELCFILES/,/^$$/c\\" > temp.sed
+       echo "ELCFILES = \\\\\\" >> temp.sed
+       exclude=`echo $(COMPILE_FIRST) | sed -e 's, ,\\\\|,g' -e 
's,\/,\\\\/,g'`; \
+       ls $(lisp)/*.elc $(lisp)/*/*.elc | sed -e "/$$exclude/d" -e 
"s|^$(lisp)|        \$$(lisp)|" -e 's/$$/ \\\\\\/' -e '$$ s/ \\\\//' >> temp.sed
+       echo "" >> temp.sed
+       sed -f temp.sed $(lisp)/Makefile.in > temp-elcfiles || { rm 
temp-elcfiles temp.sed; exit 1 ; }
+       rm temp.sed
+       chmod +w $(lisp)/Makefile.in
+       mv -f temp-elcfiles $(lisp)/Makefile.in
 
 ## Explicitly list the .elc files, for the sake of parallel builds.
 ## http://lists.gnu.org/archive/html/bug-gnu-emacs/2008-05/msg00016.html
-## This can be done more elegantly, but needs to be portable.
-## This list generated by (after bootstrapping):
-## ls $lisp/*.elc $lisp/*/*.elc | sed -e "s|^$lisp|   \$(lisp)|" -e 's/$/ \\/'
-## and then excluding the members of COMPILE_FIRST.
-## FIXME find a way to automatically update this list in Makefile.in
-## after bootstrap.
+## This can probably be done more elegantly, but needs to be portable.
 ELCFILES = \
        $(lisp)/abbrev.elc \
        $(lisp)/abbrevlist.elc \
@@ -1397,7 +1413,7 @@
 # Generate/update files after the bootstrap process.
 # custom-deps needs `preloaded-file-list'.
 
-bootstrap-after: finder-data custom-deps
+bootstrap-after: finder-data custom-deps update-elclist
 
 distclean:
        -rm -f ./Makefile




reply via email to

[Prev in Thread] Current Thread [Next in Thread]