X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/8d3655be5a5c41b1f0a9985bcdb614693fce67e5..refs/heads/wip:/make-dist diff --git a/make-dist b/make-dist index 283defe8a7..fba490547e 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-2013 Free Software Foundation, -## Inc. +## Copyright (C) 1995, 1997-1998, 2000-2014 Free Software Foundation, Inc. ## This file is part of GNU Emacs. @@ -42,8 +41,8 @@ LC_MESSAGES= LANG= export LANGUAGE LC_ALL LC_MESSAGES LANG -## Don't restrict access to any files. -umask 0 +## Remove unnecessary restrictions on file access. +umask 022 update=yes check=yes @@ -51,6 +50,7 @@ clean_up=no make_tar=no default_gzip=gzip newer="" +with_tests=no while [ $# -gt 0 ]; do case "$1" in @@ -98,6 +98,12 @@ while [ $# -gt 0 ]; do check=no ;; + ## Include the test/ directory. + ## This option is mainly for the hydra build server. + "--tests") + with_tests=yes + ;; + "--help") echo "Usage: ${progname} [options]" echo "" @@ -110,6 +116,7 @@ while [ $# -gt 0 ]; do echo " --no-update don't recompile or do analogous things" echo " --snapshot same as --clean-up --no-update --tar --no-check" echo " --tar make a tar file" + echo " --tests include the test/ directory" echo "" exit 0 ;; @@ -152,7 +159,7 @@ fi ### Find out which version of Emacs this is. version=` - sed -n 's/^AC_INIT(emacs,[ ]*\([^ )]*\).*/\1/p' &2 @@ -194,13 +201,11 @@ fi 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 > /tmp/el + lisp/[a-z]*/[a-z]*/[a-z]*/[a-zA-Z0-9]*.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 + lisp/[a-z]*/[a-z]*/[a-z]*/[a-zA-Z0-9]*.elc > /tmp/elc ## Check for .elc files with no corresponding .el file. sed 's/\.el$/.elc/' /tmp/el > /tmp/elelc @@ -246,7 +251,7 @@ if [ $update = yes ]; then echo timestamp > src/stamp-h.in echo "Updating Info files" - make info-real + make info echo "Updating finder, custom and autoload data" (cd lisp && make updates EMACS="$EMACS") @@ -255,7 +260,7 @@ if [ $update = yes ]; then (cd leim && make leim-list.el EMACS="$EMACS") echo "Recompiling Lisp files" - $EMACS -batch -f batch-byte-recompile-directory lisp leim + $EMACS -batch -f batch-byte-recompile-directory lisp fi # $update = yes echo "Creating staging directory: \`${tempparent}'" @@ -284,12 +289,11 @@ ln aclocal.m4 ${tempdir} echo "Creating subdirectories" for subdir in site-lisp \ - leim leim/CXTERM-DIC leim/MISC-DIC \ - leim/SKK-DIC leim/ja-dic leim/quail \ + leim leim/CXTERM-DIC leim/MISC-DIC leim/SKK-DIC \ build-aux build-aux/snippet \ src src/bitmaps lib lib-src oldXMenu lwlib \ nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \ - `find etc lisp admin -type d` \ + `find etc lisp admin test -type d` \ doc doc/emacs doc/misc doc/man doc/lispref doc/lispintro \ info m4 msdos \ nextstep nextstep/templates \ @@ -300,6 +304,13 @@ for subdir in site-lisp \ nextstep/GNUstep/Emacs.base \ nextstep/GNUstep/Emacs.base/Resources do + + if [ "$with_tests" != "yes" ]; then + case $subdir in + test*) continue ;; + esac + fi + ## site-lisp for in-place installs (?). [ "$subdir" = "site-lisp" ] || [ -d "$subdir" ] || \ echo "WARNING: $subdir not found, making anyway" @@ -326,21 +337,16 @@ echo "Making links to \`leim' and its subdirectories" ln CXTERM-DIC/README CXTERM-DIC/*.tit ../${tempdir}/leim/CXTERM-DIC ln SKK-DIC/README SKK-DIC/SKK-JISYO.L ../${tempdir}/leim/SKK-DIC ln MISC-DIC/README MISC-DIC/*.* ../${tempdir}/leim/MISC-DIC - ln ja-dic/*.el ja-dic/*.elc ../${tempdir}/leim/ja-dic ln Makefile.in ../${tempdir}/leim/Makefile.in - ln leim-ext.el ../${tempdir}/leim/leim-ext.el - ## Lisp files that start with a capital (also 4Corner.el) are - ## generated from TIT dictionaries so we don't distribute them. - ln quail/[a-z]*.el quail/[a-z]*.elc ../${tempdir}/leim/quail - rm -f ../${tempdir}/leim/quail/quick-b5.* - rm -f ../${tempdir}/leim/quail/quick-cns.* - rm -f ../${tempdir}/leim/quail/tsang-b5.* - rm -f ../${tempdir}/leim/quail/tsang-cns.*) + ln leim-ext.el ../${tempdir}/leim/leim-ext.el) +## FIXME Can we not just use the "find -type f" method for this one? echo "Making links to \`build-aux'" (cd build-aux - ln compile config.guess config.sub depcomp ../${tempdir}/build-aux - ln install-sh missing move-if-change update-subdirs ../${tempdir}/build-aux) + ln compile config.guess config.sub depcomp msys-to-w32 ../${tempdir}/build-aux + ln install-sh missing move-if-change ../${tempdir}/build-aux + ln update-copyright update-subdirs ../${tempdir}/build-aux + ln dir_top make-info-dir ../${tempdir}/build-aux) echo "Making links to \`build-aux/snippet'" (cd build-aux/snippet @@ -376,9 +382,10 @@ echo "Making links to \`lib'" echo "Making links to \`lib-src'" (cd lib-src ln [a-zA-Z]*.[ch] ../${tempdir}/lib-src - ln ChangeLog Makefile.in README testfile ../${tempdir}/lib-src + ln ChangeLog Makefile.in README ../${tempdir}/lib-src ln grep-changelog rcs2log ../${tempdir}/lib-src - ln makefile.w32-in ../${tempdir}/lib-src) + ln makefile.w32-in ../${tempdir}/lib-src + ln update-game-score.exe.manifest ../${tempdir}/lib-src) echo "Making links to \`m4'" (cd m4 @@ -389,6 +396,8 @@ echo "Making links to \`nt'" ln emacs-x86.manifest emacs-x64.manifest emacs.rc ../${tempdir}/nt ln config.nt emacsclient.rc emacs-src.tags ../${tempdir}/nt ln nmake.defs gmake.defs subdirs.el [a-z]*.bat [a-z]*.[ch] ../${tempdir}/nt + ln Makefile.in gnulib.mk ../${tempdir}/nt + ln mingw-cfg.site epaths.nt INSTALL.OLD ../${tempdir}/nt ln ChangeLog INSTALL README README.W32 makefile.w32-in ../${tempdir}/nt) echo "Making links to \`nt/inc' and its subdirectories" @@ -429,23 +438,43 @@ echo "Making links to \`nextstep/GNUstep/Emacs.base/Resources'" echo "Making links to \`oldXMenu'" (cd oldXMenu - ln *.[ch] *.in ../${tempdir}/oldXMenu + ln *.[ch] *.in *.mk ../${tempdir}/oldXMenu ln README ChangeLog ../${tempdir}/oldXMenu) echo "Making links to \`lwlib'" (cd lwlib - ln *.[ch] *.in ../${tempdir}/lwlib + ln *.[ch] *.in *.mk ../${tempdir}/lwlib ln README ChangeLog ../${tempdir}/lwlib) +## It is important to distribute admin/ because it contains sources +## for generated lisp/international/uni-*.el files. echo "Making links to \`admin' and its subdirectories" for f in `find admin -type f`; do + case $f in + */Makefile) [ -f $f.in ] && continue ;; + esac ln $f $tempdir/$f done +if [ "$with_tests" = "yes" ]; then + echo "Making links to \`test' and its subdirectories" + for f in `find test -type f`; do + case $f in + test/automated/*.log) continue ;; + test/automated/flymake/warnpred/a.out) continue ;; + test/automated/Makefile) continue ;; + esac + ln $f $tempdir/$f + done +fi + echo "Making links to \`etc' and its subdirectories" for f in `find etc -type f`; do case $f in etc/DOC*|etc/*.pyc) continue ;; + ## Arguably we should not exclude *.ps. + etc/refcards/*.aux|etc/refcards/*.dvi|etc/refcards/*.log|etc/refcards/*.ps) + continue ;; esac ln $f $tempdir/$f done @@ -481,7 +510,7 @@ echo "Making links to \`doc/man'" ### 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 lib-src lisp lwlib msdos nt src; do +for subdir in . etc leim lib lib-src lisp lwlib msdos nt src; do rm -f ${tempdir}/${subdir}/COPYING cp COPYING ${tempdir}/${subdir} done