X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/fa42927fd0ed023ec95a5475ce342429fd8a348d..732fd4c7e11debd61c97eaaba3038d61e6ec7024:/make-dist diff --git a/make-dist b/make-dist index 7a17fa0237..df5e505f99 100755 --- a/make-dist +++ b/make-dist @@ -1,7 +1,8 @@ #!/bin/sh ### make-dist: create an Emacs distribution tar file from current srcdir -## Copyright (C) 1995, 1997-1998, 2000-2012 Free Software Foundation, Inc. +## Copyright (C) 1995, 1997-1998, 2000-2015 Free Software Foundation, +## Inc. ## This file is part of GNU Emacs. @@ -41,8 +42,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 @@ -50,6 +51,7 @@ clean_up=no make_tar=no default_gzip=gzip newer="" +with_tests=no while [ $# -gt 0 ]; do case "$1" in @@ -82,9 +84,12 @@ while [ $# -gt 0 ]; do "--bzip2") default_gzip="bzip2" ;; - ## Same with lzma. - "--lzma") - default_gzip="lzma" + ## Same with xz. + "--xz") + default_gzip="xz" + ;; + "--no-compress") + default_gzip="cat" ;; "--snapshot") @@ -94,17 +99,25 @@ 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 "" echo " --bzip2 use bzip2 instead of gzip" echo " --clean-up delete staging directories when done" - echo " --lzma use lzma instead of gzip" + echo " --xz use xz instead of gzip" + echo " --no-compress don't compress" echo " --newer=TIME don't include files older than TIME" echo " --no-check don't check for bad file names etc." 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 ;; @@ -189,13 +202,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 @@ -241,7 +252,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") @@ -250,7 +261,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}'" @@ -279,12 +290,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 \ @@ -295,6 +305,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" @@ -304,7 +321,7 @@ done echo "Making links to \`lisp' and its subdirectories" files=`find lisp \( -name '*.el' -o -name '*.elc' -o -name 'ChangeLog*' \ - -o -name 'README*' \)` + -o -name 'README' \)` ### Don't distribute site-init.el, site-load.el, or default.el. for file in lisp/Makefile.in lisp/makefile.w32-in $files; do @@ -321,21 +338,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 @@ -373,7 +385,8 @@ echo "Making links to \`lib-src'" ln [a-zA-Z]*.[ch] ../${tempdir}/lib-src ln ChangeLog Makefile.in README testfile ../${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 @@ -381,9 +394,11 @@ echo "Making links to \`m4'" echo "Making links to \`nt'" (cd nt - ln emacs.manifest emacs.rc emacsclient.rc config.nt ../${tempdir}/nt - ln emacs-src.tags nmake.defs gmake.defs subdirs.el ../${tempdir}/nt - ln [a-z]*.bat [a-z]*.[ch] ../${tempdir}/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" @@ -432,15 +447,34 @@ echo "Making links to \`lwlib'" ln *.[ch] *.in ../${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/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 @@ -476,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 @@ -508,7 +542,7 @@ if [ "${make_tar}" = yes ]; then fi case "${default_gzip}" in bzip2) gzip_extension=.bz2 ;; - lzma) gzip_extension=.lzma ;; + xz) gzip_extension=.xz ;; gzip) gzip_extension=.gz ; default_gzip="gzip --best";; *) gzip_extension= ;; esac