X-Git-Url: http://git.hcoop.net/bpt/emacs.git/blobdiff_plain/efc00ab16e2890b75d7224434ac43fe944ade4dd..caa50be230ca9313be276a7a48bba2417ed3e573:/make-dist diff --git a/make-dist b/make-dist index ead1fa544e..95e4984a6b 100755 --- a/make-dist +++ b/make-dist @@ -1,7 +1,7 @@ #!/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-2013 Free Software Foundation, Inc. ## This file is part of GNU Emacs. @@ -41,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 @@ -50,6 +50,7 @@ clean_up=no make_tar=no default_gzip=gzip newer="" +with_tests=no while [ $# -gt 0 ]; do case "$1" in @@ -82,9 +83,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 +98,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 ;; @@ -147,7 +159,7 @@ fi ### Find out which version of Emacs this is. version=` - sed -n 's/^AC_INIT(emacs,[ ]*\([^ )]*\).*/\1/p' &2 @@ -230,35 +242,24 @@ fi if [ $update = yes ]; then - ## 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 configure is newer than configure.ac, etc. + ## It is better to let autoreconf do what is needed than + ## for us to try and duplicate all its checks. + echo "Running autoreconf" + autoreconf -i -I m4 || { x=$?; echo Autoreconf FAILED! >&2; exit $x; } - ## 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 src/stamp-h.in is newer than configure.ac. + rm -f src/stamp-h.in + echo timestamp > src/stamp-h.in echo "Updating Info files" - (cd doc/emacs; make info) - (cd doc/misc; make info) - (cd doc/lispref; make info) - (cd doc/lispintro; make info) + make info-real echo "Updating finder, custom and autoload data" - (cd lisp; make updates EMACS="$EMACS") + (cd lisp && make updates EMACS="$EMACS") - if test -f leim/leim-list.el; then - echo "Updating leim-list.el" - (cd leim; make leim-list.el EMACS="$EMACS") - fi + echo "Updating leim-list.el" + (cd leim && make leim-list.el EMACS="$EMACS") echo "Recompiling Lisp files" $EMACS -batch -f batch-byte-recompile-directory lisp leim @@ -284,7 +285,7 @@ mkdir ${tempdir} ### README while the rest of the tar file is still unpacking. Whoopee. echo "Making links to top-level files" ln INSTALL README BUGS ${tempdir} -ln ChangeLog Makefile.in configure configure.in ${tempdir} +ln ChangeLog Makefile.in autogen.sh configure configure.ac ${tempdir} ln config.bat make-dist .dir-locals.el ${tempdir} ln aclocal.m4 ${tempdir} @@ -293,19 +294,26 @@ for subdir in site-lisp \ leim leim/CXTERM-DIC leim/MISC-DIC \ leim/SKK-DIC leim/ja-dic leim/quail \ build-aux build-aux/snippet \ - src src/s src/bitmaps lib lib-src oldXMenu lwlib \ + 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/Cocoa nextstep/Cocoa/Emacs.base \ + nextstep nextstep/templates \ + nextstep/Cocoa nextstep/Cocoa/Emacs.base \ nextstep/Cocoa/Emacs.base/Contents \ nextstep/Cocoa/Emacs.base/Contents/Resources \ - nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj \ nextstep/GNUstep \ 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" @@ -315,7 +323,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 @@ -370,10 +378,6 @@ echo "Making links to \`src/bitmaps'" (cd src/bitmaps ln README *.xbm ../../${tempdir}/src/bitmaps) -echo "Making links to \`src/s'" -(cd src/s - ln README [a-zA-Z0-9]*.h ../../${tempdir}/src/s) - echo "Making links to \`lib'" (snippet_h=`(cd build-aux/snippet && ls *.h)` cd lib @@ -386,8 +390,8 @@ 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 vcdiff ../${tempdir}/lib-src - ln grep-changelog rcs2log rcs-checkin ../${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) echo "Making links to \`m4'" @@ -396,9 +400,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 msysconfig.sh 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" @@ -419,23 +425,23 @@ echo "Making links to \`msdos'" echo "Making links to \`nextstep'" (cd nextstep - ln ChangeLog README INSTALL ../${tempdir}/nextstep) + ln ChangeLog README INSTALL Makefile.in ../${tempdir}/nextstep) + +echo "Making links to \`nextstep/templates'" +(cd nextstep/templates + ln Emacs.desktop.in Info-gnustep.plist.in Info.plist.in InfoPlist.strings.in ../../${tempdir}/nextstep/templates) echo "Making links to \`nextstep/Cocoa/Emacs.base/Contents'" (cd nextstep/Cocoa/Emacs.base/Contents - ln Info.plist PkgInfo ../../../../${tempdir}/nextstep/Cocoa/Emacs.base/Contents) + ln PkgInfo ../../../../${tempdir}/nextstep/Cocoa/Emacs.base/Contents) echo "Making links to \`nextstep/Cocoa/Emacs.base/Contents/Resources'" (cd nextstep/Cocoa/Emacs.base/Contents/Resources ln Credits.html *.icns ../../../../../${tempdir}/nextstep/Cocoa/Emacs.base/Contents/Resources) -echo "Making links to \`nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj'" -(cd nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj - ln InfoPlist.strings ../../../../../../${tempdir}/nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj) - echo "Making links to \`nextstep/GNUstep/Emacs.base/Resources'" (cd nextstep/GNUstep/Emacs.base/Resources - ln Emacs.desktop Info-gnustep.plist README emacs.tiff ../../../../${tempdir}/nextstep/GNUstep/Emacs.base/Resources ) + ln README emacs.tiff ../../../../${tempdir}/nextstep/GNUstep/Emacs.base/Resources ) echo "Making links to \`oldXMenu'" (cd oldXMenu @@ -449,13 +455,30 @@ echo "Making links to \`lwlib'" echo "Making links to \`admin' and its subdirectories" for f in `find admin -type f`; do + case $f in + admin/unidata/Makefile) 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 @@ -523,7 +546,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