X-Git-Url: https://git.hcoop.net/bpt/emacs.git/blobdiff_plain/0c747cb143fa227e78f350ac353d703f489209df..03eb7af5765b8921f1724813908ae823ff35baaa:/make-dist diff --git a/make-dist b/make-dist index 713d88481b..1a92d48a6b 100755 --- a/make-dist +++ b/make-dist @@ -1,8 +1,7 @@ #!/bin/sh ### make-dist: create an Emacs distribution tar file from current srcdir -## Copyright (C) 1995, 1997, 1998, 2000, 2001, 2002, 2003, 2004, 2005, -## 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. +## Copyright (C) 1995, 1997-1998, 2000-2011 Free Software Foundation, Inc. ## This file is part of GNU Emacs. @@ -130,7 +129,6 @@ fi ### (Accept only absolute file names.) if [ $update = yes ]; then - unset EMACS_UNIBYTE if [ -f src/emacs ]; then EMACS=`pwd`/src/emacs @@ -148,7 +146,9 @@ then fi ### Find out which version of Emacs this is. -version=`sed -n '/char emacs_version/ s/^[^"]*"\([^"]*\)".*$/\1/p' src/emacs.c` +version=` + sed -n 's/^AC_INIT(emacs,[ ]*\([^ )]*\).*/\1/p' &2 exit 1 @@ -186,72 +186,66 @@ them, and try again." >&2 exit 1 fi -### Find where to run Emacs. -if [ $check = yes ]; -then - ### Check for .elc files with no corresponding .el file. +if [ $check = yes ]; then ls -1 lisp/[a-zA-Z]*.el lisp/[a-z]*/[a-zA-Z0-9]*.el \ lisp/[a-z]*/[a-z]*/[a-zA-Z0-9]*.el \ lisp/[a-z]*/[a-z]*/[a-z]*/[a-zA-Z0-9]*.el \ - leim/[a-z]*/[a-z]*.el | sed 's/\.el$/.elc/' > /tmp/el + leim/[a-z]*/[a-z]*.el > /tmp/el + ls -1 lisp/[a-zA-Z]*.elc lisp/[a-z]*/[a-zA-Z0-9]*.elc \ lisp/[a-z]*/[a-z]*/[a-zA-Z0-9]*.elc \ lisp/[a-z]*/[a-z]*/[a-z]*/[a-zA-Z0-9]*.elc \ leim/[a-z]*/[a-z]*.elc > /tmp/elc - bogosities="`comm -13 /tmp/el /tmp/elc`" - if [ "${bogosities}" != "" ]; then + + ## Check for .elc files with no corresponding .el file. + sed 's/\.el$/.elc/' /tmp/el > /tmp/elelc + + bogosities="`comm -13 /tmp/elelc /tmp/elc`" + if [ x"${bogosities}" != x"" ]; then echo "The following .elc files have no corresponding .el files:" echo "${bogosities}" fi - rm -f /tmp/el /tmp/elc ### Check for .el files with no corresponding .elc file. - ls -1 lisp/[a-zA-Z]*.el lisp/[a-z]*/[a-zA-Z0-9]*.el \ - lisp/[a-z]*/[a-z]*/[a-zA-Z0-9]*.el \ - lisp/[a-z]*/[a-z]*/[a-z]*/[a-zA-Z0-9]*.el \ - leim/[a-z]*/[a-z]*.el > /tmp/el - ls -1 lisp/[a-zA-Z]*.elc lisp/[a-z]*/[a-zA-Z0-9]*.elc \ - lisp/[a-z]*/[a-z]*/[a-zA-Z0-9]*.el \ - lisp/[a-z]*/[a-z]*/[a-z]*/[a-zA-Z0-9]*.el \ - leim/[a-z]*/[a-z]*.elc | sed 's/\.elc$/.el/' > /tmp/elc - losers="`comm -23 /tmp/el /tmp/elc`" + sed 's/\.elc$/.el/' /tmp/elc > /tmp/elcel + losers="`comm -23 /tmp/el /tmp/elcel`" + + rm -f /tmp/el /tmp/elc /tmp/elcel /tmp/elelc + bogosities= for file in $losers; do - if ! grep -q "no-byte-compile: t" $file; then - case $file in - site-init.el | site-load.el | site-start.el | default.el) - ;; - *) - bogosities="$file $bogosities" - ;; - esac - fi + grep -q "no-byte-compile: t" $file && continue + case $file in + site-init.el | site-load.el | site-start.el | default.el) continue ;; + esac + + bogosities="$file $bogosities" + done if [ x"${bogosities}" != x"" ]; then echo "The following .el files have no corresponding .elc files:" echo "${bogosities}" fi - rm -f /tmp/el /tmp/elc fi -### Make sure configure is newer than configure.in. -if [ "x`ls -t configure configure.in | sed q`" != "xconfigure" ]; then - echo "\`./configure.in' is newer than \`./configure'" >&2 - echo "Running autoconf" >&2 - autoconf || { x=$?; echo Autoconf FAILED! >&2; exit $x; } -fi +if [ $update = yes ]; then -### Make sure src/stamp-h.in is newer than configure.in. -if [ "x`ls -t src/stamp-h.in configure.in | sed q`" != "xsrc/stamp-h.in" ]; then - echo "\`./configure.in' is newer than \`./src/stamp-h.in'" >&2 - echo "Running autoheader" >&2 - autoheader || { x=$?; echo Autoheader FAILED! >&2; exit $x; } - rm -f src/stamp-h.in - echo timestamp > src/stamp-h.in -fi + ## Make sure configure is newer than configure.in. + if [ "x`ls -t configure configure.in | sed q`" != "xconfigure" ]; then + echo "\`./configure.in' is newer than \`./configure'" >&2 + echo "Running autoconf" >&2 + autoconf || { x=$?; echo Autoconf FAILED! >&2; exit $x; } + fi + + ## Make sure src/stamp-h.in is newer than configure.in. + if [ "x`ls -t src/stamp-h.in configure.in | sed q`" != "xsrc/stamp-h.in" ]; then + echo "\`./configure.in' is newer than \`./src/stamp-h.in'" >&2 + echo "Running autoheader" >&2 + autoheader || { x=$?; echo Autoheader FAILED! >&2; exit $x; } + rm -f src/stamp-h.in + echo timestamp > src/stamp-h.in + fi -if [ $update = yes ]; -then echo "Updating Info files" (cd doc/emacs; make info) (cd doc/misc; make info) @@ -268,19 +262,7 @@ then echo "Recompiling Lisp files" $EMACS -batch -f batch-byte-recompile-directory lisp leim -fi - -## What is this file for? It goes in srcdir, not the tarfile. -## Why does it exclude term/ ? -echo "Making lisp/MANIFEST" - -files=`find lisp -type f -name '*.el'` -for file in $files; do - case "$file" in - */subdirs.el|*/default.el|*/loaddefs.el|*/term/*) continue ;; - esac - sed -n 's/^;;; //p; q' $file -done | sort > lisp/MANIFEST +fi # $update = yes echo "Creating staging directory: \`${tempparent}'" @@ -304,16 +286,20 @@ echo "Making links to top-level files" ln INSTALL README BUGS move-if-change ${tempdir} ln ChangeLog Makefile.in configure configure.in ${tempdir} ln config.bat make-dist update-subdirs vpath.sed .dir-locals.el ${tempdir} -ln mkinstalldirs config.sub config.guess install-sh ${tempdir} +ln config.sub config.guess install-sh ${tempdir} +ln aclocal.m4 ${tempdir} +ln compile depcomp missing ${tempdir} +ln arg-nonnull.h c++defs.h warn-on-use.h ${tempdir} echo "Creating subdirectories" for subdir in site-lisp \ leim leim/CXTERM-DIC leim/MISC-DIC \ leim/SKK-DIC leim/ja-dic leim/quail \ - src src/m src/s src/bitmaps lib-src oldXMenu lwlib \ + src src/m src/s src/bitmaps lib lib-src oldXMenu lwlib \ nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \ `find etc lisp -type d` \ doc doc/emacs doc/misc doc/man doc/lispref doc/lispintro \ + test test/automated test/cedet test/cedet/tests test/indent \ info m4 msdos \ nextstep nextstep/Cocoa nextstep/Cocoa/Emacs.base \ nextstep/Cocoa/Emacs.base/Contents \ @@ -373,7 +359,7 @@ echo "Making links to \`src'" ln makefile.w32-in ../${tempdir}/src ln .gdbinit .dbxinit ../${tempdir}/src cd ../${tempdir}/src - rm -f config.h epaths.h Makefile buildobj.h) + rm -f globals.h config.h epaths.h Makefile buildobj.h) echo "Making links to \`src/bitmaps'" (cd src/bitmaps @@ -387,14 +373,20 @@ echo "Making links to \`src/s'" (cd src/s ln README [a-zA-Z0-9]*.h ../../${tempdir}/src/s) +echo "Making links to \`lib'" +(build_aux_h=`(ls *.h)` + cd lib + ln [a-zA-Z]*.[ch] ../${tempdir}/lib + ln gnulib.mk Makefile.am Makefile.in ../${tempdir}/lib + cd ../${tempdir}/lib + rm -f `(echo "$build_aux_h"; ls *.in.h) | sed '/[*]/d; s/.in.h$/.h/'`) + echo "Making links to \`lib-src'" (cd lib-src ln [a-zA-Z]*.[ch] ../${tempdir}/lib-src ln ChangeLog Makefile.in README testfile vcdiff ../${tempdir}/lib-src ln grep-changelog rcs2log rcs-checkin ../${tempdir}/lib-src - ln makefile.w32-in ../${tempdir}/lib-src - cd ../${tempdir}/lib-src - rm -f getopt.h) + ln makefile.w32-in ../${tempdir}/lib-src) echo "Making links to \`m4'" (cd m4 @@ -460,7 +452,7 @@ echo "Making links to \`lwlib'" echo "Making links to \`etc' and its subdirectories" for f in `find etc -type f`; do case $f in - etc/DOC*) continue ;; + etc/DOC*|etc/*.pyc) continue ;; esac ln $f $tempdir/$f done @@ -493,10 +485,30 @@ echo "Making links to \`doc/man'" ln ChangeLog* *.1 ../../${tempdir}/doc/man cd ../../${tempdir}/doc/man) +echo "Making links to \`test'" +(cd test + ln *.el ChangeLog README ../${tempdir}/test) + +echo "Making links to \`test/automated'" +(cd test/automated + ln *.el Makefile.in ../../${tempdir}/test/automated) + +echo "Making links to \`test/cedet'" +(cd test/cedet + ln *.el ../../${tempdir}/test/cedet) + +echo "Making links to \`test/cedet/tests'" +(cd test/cedet/tests + ln *.c *.[ch]pp *.el *.hh *.java *.make ../../../${tempdir}/test/cedet/tests) + +echo "Making links to \`test/indent'" +(cd test/indent + ln *.m *.mod *.prolog Makefile ../../${tempdir}/test/indent) + ### It would be nice if they could all be symlinks to top-level copy, but ### you're not supposed to have any symlinks in distribution tar files. echo "Making sure copying notices are all copies of \`COPYING'" -for subdir in . etc info leim lib-src lisp lwlib msdos nt src; do +for subdir in . etc info leim lib lib-src lisp lwlib msdos nt src; do rm -f ${tempdir}/${subdir}/COPYING cp COPYING ${tempdir}/${subdir} done