1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-26 07:33:47 +00:00
emacs/make-dist

660 lines
19 KiB
Plaintext
Raw Normal View History

#!/bin/sh
### make-dist: create an Emacs distribution tar file from current srcdir
## Copyright (C) 1995, 1997-1998, 2000-2018 Free Software Foundation,
## Inc.
## This file is part of GNU Emacs.
## GNU Emacs is free software: you can redistribute it and/or modify
## it under the terms of the GNU General Public License as published by
## the Free Software Foundation, either version 3 of the License, or
## (at your option) any later version.
## GNU Emacs is distributed in the hope that it will be useful,
## but WITHOUT ANY WARRANTY; without even the implied warranty of
## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
## GNU General Public License for more details.
## You should have received a copy of the GNU General Public License
## along with GNU Emacs. If not, see <https://www.gnu.org/licenses/>.
### Commentary:
## This basically creates a duplicate directory structure, and then
## hard links into it only those files that should be distributed.
## This means that if you add a file with an odd name, you should make
## sure that this script will include it.
### Code:
progname="$0"
### Exit if a command fails.
#set -e
### Print out each line we read, for debugging's sake.
#set -v
LANGUAGE=C
LC_ALL=C
LC_MESSAGES=
LANG=
export LANGUAGE LC_ALL LC_MESSAGES LANG
## Remove unnecessary restrictions on file access.
umask 022
update=yes
check=yes
clean_up=no
make_tar=no
default_gzip=gzip
newer=""
with_tests=no
changelog=yes
verbose=no
while [ $# -gt 0 ]; do
case "$1" in
## This option tells make-dist to delete the staging directory
## when done. It is useless to use this unless you make a tar file.
"--clean-up" )
clean_up=yes
;;
## This option tells make-dist to make a tar file.
"--tar" )
make_tar=yes
;;
## This option tells make-dist not to recompile or do analogous things.
"--no-update" )
update=no
;;
## This option says don't check for bad file names, etc.
"--no-check" )
check=no
;;
"--no-changelog" )
changelog=no
;;
## This option tells make-dist to make the distribution normally, then
## remove all files older than the given timestamp file. This is useful
## for creating incremental or patch distributions.
"--newer")
newer="$2"
new_extension=".new"
shift
;;
## This option tells make-dist to use 'bzip2' instead of gzip.
"--bzip2")
default_gzip="bzip2"
;;
## Same with xz.
"--xz")
default_gzip="xz"
;;
"--no-compress")
default_gzip="cat"
;;
"--snapshot")
clean_up=yes
make_tar=yes
update=no
;;
## Include the test/ directory.
## This option is mainly for the hydra build server.
"--tests")
with_tests=yes
;;
"--verbose")
verbose=yes
;;
"--help")
printf '%s\n' "Usage: ${progname} [options]"
echo ""
echo " --bzip2 use bzip2 instead of gzip"
echo " --clean-up delete staging directories when done"
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 " --no-changelog don't generate the top-level ChangeLog"
echo " --snapshot same as --clean-up --no-update --tar --no-check"
echo " --tar make a tar file"
echo " --tests include the test/ directory"
echo " --verbose noisier output"
echo ""
exit 0
;;
* )
printf '%s\n' "${progname}: Unrecognized argument: $1" >&2
exit 1
;;
esac
shift
done
### Make sure we're running in the right place.
if [ ! -d src -o ! -f src/lisp.h -o ! -d lisp -o ! -f lisp/subr.el ]; then
printf '%s\n' "${progname}: Can't find 'src/lisp.h' and 'lisp/subr.el'." >&2
printf '%s\n' "${progname} must be run in the top directory of the Emacs" >&2
printf '%s\n' "distribution tree. cd to that directory and try again." >&2
exit 1
fi
### Find where to run Emacs.
### (Accept only absolute file names.)
if [ $update = yes ];
then
if [ -f src/emacs ];
then
EMACS=`pwd`/src/emacs
else
case $EMACS in
/*) ;;
*)
if [ ! -f "$EMACS" ]; then
printf '%s\n' "$0: You must set the EMACS environment variable " \
"to an absolute file name." 2>&1
exit 1
fi;;
esac
fi
fi
### Find out which version of Emacs this is.
version=`
sed -n 's/^AC_INIT(GNU Emacs,[ ]*\([^ ,)]*\).*/\1/p' <configure.ac
` || version=
if [ ! "${version}" ]; then
printf '%s\n' \
"${progname}: can't find current Emacs version in './src/emacs.c'" >&2
exit 1
fi
echo Version number is $version
if [ $update = yes ]; then
if ! grep -q "tree holds version *${version}" README; then
echo "WARNING: README has the wrong version number"
echo "Consider running M-x set-version from admin/admin.el"
sleep 5
fi
fi
### Make sure we don't already have a directory emacs-${version}.
emacsname="emacs-${version}${new_extension}"
if [ -d ${emacsname} ]
then
echo Directory "${emacsname}" already exists >&2
exit 1
fi
### Make sure the subdirectory is available.
tempparent="make-dist.tmp.$$"
if [ -d ${tempparent} ]; then
printf '%s\n' "${progname}: staging directory '${tempparent}' already exists.
Perhaps a previous invocation of '${progname}' failed to clean up after
itself. Check that directories whose names are of the form
'make-dist.tmp.NNNNN' don't contain any important information, remove
them, and try again." >&2
exit 1
fi
if [ $check = yes ]; then
echo "Sanity checking (use --no-check to disable this)..."
error=no
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 \
Move runtime leim lisp files to lisp/leim directory This allows us to reuse much of the lisp build and installation machinery, rather than duplicating it. * Makefile.in (abs_builddir, leimdir): Remove. (buildlisppath, SUBDIR, COPYDIR, COPYDESTS): No more leim directory. (epaths-force-w32): No longer set BLD. (leim): Remove. (install-arch-indep): No longer run or install leim. (mostlyclean, clean): No longer run leim rule. (bootstrap-clean): Change leim target. (maintainer-clean): Add leim. (check-declare): Remove leim. * README: Update for leim changes. * configure.ac (leimdir): Remove. (standardlisppath): No more leimdir. * make-dist: Update for files from leim/ now being in lisp/leim/. * doc/lispref/loading.texi (Library Search): * doc/lispref/os.texi (Startup Summary): No more leim directory. * leim/Makefile.in (leimdir): New variable. (TIT_GB, TIT_BIG5, MISC, changed.tit, changed.misc) (${leimdir}/leim-list.el, ${leimdir}/ja-dic/ja-dic.el): Generate in $leimdir. (all): Remove compilation, add ja-dic. (leim-list.el): Now PHONY. (setwins, compile-targets, compile-main, clean, mostlyclean) (extraclean): Remove. (bootstrap-clean): Delete all generated files. * leim/README: Update for moved leim/ directory. * leim/leim-ext.el (ucs-input-activate, hangul-input-method-activate): Remove manual autoloads; now in loaddefs.el. Disable byte-compile, version-control, autoloads in the output. * lisp/Makefile.in (setwins_for_subdirs): Skip leim/ directory. (compile-main): Depend on lisp/leim rule. (leim): New rule. * lisp/loadup.el: Move leim-list.el to leim/ subdirectory. * lisp/startup.el (normal-top-level): No more leim directory. * lisp/international/ja-dic-cnv.el (skkdic-convert): Disable version-control and autoloads in output files. * lisp/international/titdic-cnv.el (titdic-convert, miscdic-convert): Disable version-control and autoloads in output files. * lisp/leim/quail: Move here from ../leim. * lisp/leim/quail/hangul.el (hangul-input-method-activate): Add autoload cookie. (generated-autoload-load-name): Set file-local value. * lisp/leim/quail/uni-input.el (ucs-input-activate): Add autoload cookie. (generated-autoload-load-name): Set file-local value. * nt/README.W32: * nt/addpm.c (env_vars): * nt/epaths.nt (PATH_LOADSEARCH, PATH_DUMPLOADSEARCH): * nt/paths.h (PATH_LOADSEARCH): No more leim directory. * src/Makefile.in (leimdir): Now in lisp source directory. ($(leimdir)/leim-list.el): Just use ../leim . * src/epaths.in (PATH_DUMPLOADSEARCH): * src/lread.c (load_path_default): * src/nsterm.m (ns_load_path): No more leim directory. * .bzrignore: Update for relocated leim files.
2013-11-27 06:15:06 +00:00
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 \
Move runtime leim lisp files to lisp/leim directory This allows us to reuse much of the lisp build and installation machinery, rather than duplicating it. * Makefile.in (abs_builddir, leimdir): Remove. (buildlisppath, SUBDIR, COPYDIR, COPYDESTS): No more leim directory. (epaths-force-w32): No longer set BLD. (leim): Remove. (install-arch-indep): No longer run or install leim. (mostlyclean, clean): No longer run leim rule. (bootstrap-clean): Change leim target. (maintainer-clean): Add leim. (check-declare): Remove leim. * README: Update for leim changes. * configure.ac (leimdir): Remove. (standardlisppath): No more leimdir. * make-dist: Update for files from leim/ now being in lisp/leim/. * doc/lispref/loading.texi (Library Search): * doc/lispref/os.texi (Startup Summary): No more leim directory. * leim/Makefile.in (leimdir): New variable. (TIT_GB, TIT_BIG5, MISC, changed.tit, changed.misc) (${leimdir}/leim-list.el, ${leimdir}/ja-dic/ja-dic.el): Generate in $leimdir. (all): Remove compilation, add ja-dic. (leim-list.el): Now PHONY. (setwins, compile-targets, compile-main, clean, mostlyclean) (extraclean): Remove. (bootstrap-clean): Delete all generated files. * leim/README: Update for moved leim/ directory. * leim/leim-ext.el (ucs-input-activate, hangul-input-method-activate): Remove manual autoloads; now in loaddefs.el. Disable byte-compile, version-control, autoloads in the output. * lisp/Makefile.in (setwins_for_subdirs): Skip leim/ directory. (compile-main): Depend on lisp/leim rule. (leim): New rule. * lisp/loadup.el: Move leim-list.el to leim/ subdirectory. * lisp/startup.el (normal-top-level): No more leim directory. * lisp/international/ja-dic-cnv.el (skkdic-convert): Disable version-control and autoloads in output files. * lisp/international/titdic-cnv.el (titdic-convert, miscdic-convert): Disable version-control and autoloads in output files. * lisp/leim/quail: Move here from ../leim. * lisp/leim/quail/hangul.el (hangul-input-method-activate): Add autoload cookie. (generated-autoload-load-name): Set file-local value. * lisp/leim/quail/uni-input.el (ucs-input-activate): Add autoload cookie. (generated-autoload-load-name): Set file-local value. * nt/README.W32: * nt/addpm.c (env_vars): * nt/epaths.nt (PATH_LOADSEARCH, PATH_DUMPLOADSEARCH): * nt/paths.h (PATH_LOADSEARCH): No more leim directory. * src/Makefile.in (leimdir): Now in lisp source directory. ($(leimdir)/leim-list.el): Just use ../leim . * src/epaths.in (PATH_DUMPLOADSEARCH): * src/lread.c (load_path_default): * src/nsterm.m (ns_load_path): No more leim directory. * .bzrignore: Update for relocated leim files.
2013-11-27 06:15:06 +00:00
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
bogosities=`comm -13 /tmp/elelc /tmp/elc`
if [ x"${bogosities}" != x"" ]; then
error=yes
echo "The following .elc files have no corresponding .el files:"
echo "${bogosities}"
fi
### Check for .el files with no corresponding .elc file.
sed 's/\.elc$/.el/' /tmp/elc > /tmp/elcel
losers=`comm -23 /tmp/el /tmp/elcel`
bogosities=
while read elc; do
el=`echo $elc | sed 's/c$//'`
[ -r $el ] || continue
[ $elc -nt $el ] || bogosities="$bogosities $elc"
done < /tmp/elc
if [ x"${bogosities}" != x"" ]; then
error=yes
echo "The following .elc files are older than their .el files:"
echo "${bogosities}"
fi
rm -f /tmp/el /tmp/elc /tmp/elcel /tmp/elelc
bogosities=
for file in $losers; do
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
error=yes
echo "The following .el files have no corresponding .elc files:"
echo "${bogosities}"
fi
## This is only a crude check, eg it does not handle .info
## files with multiple .texi source files.
find doc -name '*.texi' > /tmp/el
bogosities=
while read texi; do
info=`sed -n 's/^@setfilename //p' $texi | sed 's|.*info/||'`
[ x"${info}" != x"" ] || continue
info=info/$info
[ -r $info ] || continue
[ $info -nt $texi ] || bogosities="$bogosities $info"
done < /tmp/el
rm -f /tmp/el
if [ x"${bogosities}" != x"" ]; then
error=yes
echo "The following .info files are older than their .texi files:"
echo "${bogosities}"
fi
## This exits with non-zero status if any .info files need
## rebuilding.
if [ -r Makefile ]; then
echo "Checking to see if info files are up-to-date..."
make --question info || error=yes
fi
## Is this a release?
case $version in
[1-9][0-9].[0-9])
if [ -r ChangeLog ]; then
if ! grep -q "Version $version released" ChangeLog; then
echo "No release notice in ChangeLog"
error=yes
fi
else
echo "A release must have a ChangeLog"
error=yes
fi
;;
esac
if [ $error = yes ]; then
echo "Failed checks" >&2
exit 1
fi
fi
if [ $update = yes ]; then
## 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.ac.
rm -f src/stamp-h.in
echo timestamp > src/stamp-h.in
echo "Updating Info files"
make info
echo "Updating finder, custom and autoload data"
(cd lisp && make updates EMACS="$EMACS")
echo "Updating leim-list.el"
(cd leim && make leim-list.el EMACS="$EMACS")
echo "Recompiling Lisp files"
Move runtime leim lisp files to lisp/leim directory This allows us to reuse much of the lisp build and installation machinery, rather than duplicating it. * Makefile.in (abs_builddir, leimdir): Remove. (buildlisppath, SUBDIR, COPYDIR, COPYDESTS): No more leim directory. (epaths-force-w32): No longer set BLD. (leim): Remove. (install-arch-indep): No longer run or install leim. (mostlyclean, clean): No longer run leim rule. (bootstrap-clean): Change leim target. (maintainer-clean): Add leim. (check-declare): Remove leim. * README: Update for leim changes. * configure.ac (leimdir): Remove. (standardlisppath): No more leimdir. * make-dist: Update for files from leim/ now being in lisp/leim/. * doc/lispref/loading.texi (Library Search): * doc/lispref/os.texi (Startup Summary): No more leim directory. * leim/Makefile.in (leimdir): New variable. (TIT_GB, TIT_BIG5, MISC, changed.tit, changed.misc) (${leimdir}/leim-list.el, ${leimdir}/ja-dic/ja-dic.el): Generate in $leimdir. (all): Remove compilation, add ja-dic. (leim-list.el): Now PHONY. (setwins, compile-targets, compile-main, clean, mostlyclean) (extraclean): Remove. (bootstrap-clean): Delete all generated files. * leim/README: Update for moved leim/ directory. * leim/leim-ext.el (ucs-input-activate, hangul-input-method-activate): Remove manual autoloads; now in loaddefs.el. Disable byte-compile, version-control, autoloads in the output. * lisp/Makefile.in (setwins_for_subdirs): Skip leim/ directory. (compile-main): Depend on lisp/leim rule. (leim): New rule. * lisp/loadup.el: Move leim-list.el to leim/ subdirectory. * lisp/startup.el (normal-top-level): No more leim directory. * lisp/international/ja-dic-cnv.el (skkdic-convert): Disable version-control and autoloads in output files. * lisp/international/titdic-cnv.el (titdic-convert, miscdic-convert): Disable version-control and autoloads in output files. * lisp/leim/quail: Move here from ../leim. * lisp/leim/quail/hangul.el (hangul-input-method-activate): Add autoload cookie. (generated-autoload-load-name): Set file-local value. * lisp/leim/quail/uni-input.el (ucs-input-activate): Add autoload cookie. (generated-autoload-load-name): Set file-local value. * nt/README.W32: * nt/addpm.c (env_vars): * nt/epaths.nt (PATH_LOADSEARCH, PATH_DUMPLOADSEARCH): * nt/paths.h (PATH_LOADSEARCH): No more leim directory. * src/Makefile.in (leimdir): Now in lisp source directory. ($(leimdir)/leim-list.el): Just use ../leim . * src/epaths.in (PATH_DUMPLOADSEARCH): * src/lread.c (load_path_default): * src/nsterm.m (ns_load_path): No more leim directory. * .bzrignore: Update for relocated leim files.
2013-11-27 06:15:06 +00:00
$EMACS -batch -f batch-byte-recompile-directory lisp
fi # $update = yes
echo "Creating staging directory: '${tempparent}'"
mkdir ${tempparent}
tempdir="${tempparent}/${emacsname}"
### This trap ensures that the staging directory will be cleaned up even
### when the script is interrupted in mid-career.
if [ "${clean_up}" = yes ]; then
trap "echo 'Cleaning up the staging directory'; rm -rf ${tempparent}" EXIT
fi
echo "Creating top directory: '${tempdir}'"
mkdir ${tempdir}
if [ "$changelog" = yes ]; then
if test -r .git; then
## When making a release or pretest the ChangeLog should already
## have been created and edited as needed. Don't ignore it.
if test -r ChangeLog; then
echo "Using existing top-level ChangeLog"
else
echo "Making top-level ChangeLog"
make ChangeLog CHANGELOG=${tempdir}/ChangeLog || \
{ x=$?; echo "make ChangeLog FAILED (try --no-changelog?)" >&2; exit $x; }
fi
else
echo "No repository, so omitting top-level ChangeLog"
fi
fi
### We copy in the top-level files before creating the subdirectories in
### hopes that this will make the top-level files appear first in the
### tar file; this means that people can start reading the INSTALL and
### README while the rest of the tar file is still unpacking. Whoopee.
echo "Making links to top-level files"
Merge from gnulib, using build-aux to remove clutter. * m4/largefile.m4: New file, so that Emacs does not mess up when accessing files with large inode numbers in MacOS X 10.5 and later. * m4/nocrash.m4: New file, to avoid triggering background debugger and/or create core dumps during 'configure'. * build-aux/move-if-change: Renamed from move-if-change. * build-aux/snippet/arg-nonnull.h: Renamed from arg-nonnull.h. * build-aux/snippet/c++defs.h: Renamed from c++defs.h. * build-aux/snippet/warn-on-use.h: Renamed from warn-on-use.h. * build-aux/snippet/_Noreturn.h: New file, for draft C1X _Noreturn. * .bzrignore: The autogenerated files compile, config.guess, config.sub, depcomp, install-sh, and missing are now in build-aux. * Makefile.in (epaths-force, sync-from-gnulib): move-if-change is now in build-aux. (GNULIB_TOOL_FLAGS): Avoid threadlib; this is now a prerequisite of gnulib's pthread_sigmask module, but Emacs doesn't need it. (mkdir): install-sh is now in build-aux. * config.bat: c++defs.h is now in build-aux/snippets. * configure.in: Specify AC_CONFIG_AUX_DIR with build-aux (the usual parameter). * lib/gnulib.mk, m4/gl-comp.m4: Regenerate. * lib/makefile.w32-in (ARG_NONNULL_H): arg-nonnull.h moved to build-aux/snippet. * lib/pthread_sigmask.c, lib/stdlib.in.h, m4/extensions.m4: * m4/getopt.m4, m4/gnulib-common.m4, m4/pthread_sigmask.m4: Merge from gnuilib. This fixes porting bugs on Cygwin, Irix, and Solaris, enables MacOS extensions, and enables nocrash during 'configure'. * make-dist: Adjust to new build-aux and build-aux/snippit dirs. * admin/notes/copyright: The files compile, config.guess, config.sub, depcomp, install-sh, missing, and move-if-change are now in the new build-aux subdirectory. The files arg-nonnull.h, c++defs.h, and warn-on-use.h are now in build-aux/snippets. New file build-aux/snippets/_Noreturn.h. * leim/Makefile.in (install): install-sh is now in build-aux. * lib-src/Makefile.in ($(DESTDIR)${archlibdir}): install-sh moved to build-aux. * msdos/sedlibmk.inp (CONFIG_CLEAN_VPATH_FILES): Adjust to snippet moves from top level to build-aux/snippet. * src/Makefile.in (gl-stamp): move-if-change is now in build-aux.
2011-07-24 22:15:47 +00:00
ln INSTALL README BUGS ${tempdir}
ln ChangeLog.*[0-9] Makefile.in autogen.sh configure configure.ac ${tempdir}
ln config.bat make-dist .dir-locals.el ${tempdir}
ln aclocal.m4 CONTRIBUTE ChangeLog ${tempdir}
echo "Creating subdirectories"
for subdir in site-lisp \
Move runtime leim lisp files to lisp/leim directory This allows us to reuse much of the lisp build and installation machinery, rather than duplicating it. * Makefile.in (abs_builddir, leimdir): Remove. (buildlisppath, SUBDIR, COPYDIR, COPYDESTS): No more leim directory. (epaths-force-w32): No longer set BLD. (leim): Remove. (install-arch-indep): No longer run or install leim. (mostlyclean, clean): No longer run leim rule. (bootstrap-clean): Change leim target. (maintainer-clean): Add leim. (check-declare): Remove leim. * README: Update for leim changes. * configure.ac (leimdir): Remove. (standardlisppath): No more leimdir. * make-dist: Update for files from leim/ now being in lisp/leim/. * doc/lispref/loading.texi (Library Search): * doc/lispref/os.texi (Startup Summary): No more leim directory. * leim/Makefile.in (leimdir): New variable. (TIT_GB, TIT_BIG5, MISC, changed.tit, changed.misc) (${leimdir}/leim-list.el, ${leimdir}/ja-dic/ja-dic.el): Generate in $leimdir. (all): Remove compilation, add ja-dic. (leim-list.el): Now PHONY. (setwins, compile-targets, compile-main, clean, mostlyclean) (extraclean): Remove. (bootstrap-clean): Delete all generated files. * leim/README: Update for moved leim/ directory. * leim/leim-ext.el (ucs-input-activate, hangul-input-method-activate): Remove manual autoloads; now in loaddefs.el. Disable byte-compile, version-control, autoloads in the output. * lisp/Makefile.in (setwins_for_subdirs): Skip leim/ directory. (compile-main): Depend on lisp/leim rule. (leim): New rule. * lisp/loadup.el: Move leim-list.el to leim/ subdirectory. * lisp/startup.el (normal-top-level): No more leim directory. * lisp/international/ja-dic-cnv.el (skkdic-convert): Disable version-control and autoloads in output files. * lisp/international/titdic-cnv.el (titdic-convert, miscdic-convert): Disable version-control and autoloads in output files. * lisp/leim/quail: Move here from ../leim. * lisp/leim/quail/hangul.el (hangul-input-method-activate): Add autoload cookie. (generated-autoload-load-name): Set file-local value. * lisp/leim/quail/uni-input.el (ucs-input-activate): Add autoload cookie. (generated-autoload-load-name): Set file-local value. * nt/README.W32: * nt/addpm.c (env_vars): * nt/epaths.nt (PATH_LOADSEARCH, PATH_DUMPLOADSEARCH): * nt/paths.h (PATH_LOADSEARCH): No more leim directory. * src/Makefile.in (leimdir): Now in lisp source directory. ($(leimdir)/leim-list.el): Just use ../leim . * src/epaths.in (PATH_DUMPLOADSEARCH): * src/lread.c (load_path_default): * src/nsterm.m (ns_load_path): No more leim directory. * .bzrignore: Update for relocated leim files.
2013-11-27 06:15:06 +00:00
leim leim/CXTERM-DIC leim/MISC-DIC leim/SKK-DIC \
build-aux \
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 test -type d` \
doc doc/emacs doc/misc doc/man doc/lispref doc/lispintro \
info m4 modules msdos \
Increase compartmentalization of Nextstep builds rules, and store Emacs version number in fewer versioned files. * configure.ac (ns_appsrc): Use relative names. (ns_frag): Remove. (Info-gnustep.plist, Emacs.desktop, Info.plist, InfoPlist.strings) (nextstep/Makefile): Generate these nextstep files. (SUBDIR_MAKEFILES): Add nextstep. * Makefile.in (clean, distclean, bootstrap-clean): Add nextstep. * make-dist (nextstep/templates): Add directory. (nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj): Remove. (nextstep/Cocoa/Emacs.base/Contents) (nextstep/GNUstep/Emacs.base/Resources): Update contents. * .bzrignore: Add some nextstep files. * admin/admin.el (set-version): No more need to set nextstep versions. (set-copyright): Update for moved nextstep files. * nextstep/Makefile.in: New file. * nextstep/templates: New directory. * nextstep/templates/Emacs.desktop.in, nextstep/templates/Info-gnustep.plist.in: * nextstep/templates/Info.plist.in, nextstep/templates/InfoPlist.strings.in: Move here from various Cocoa/, GNUstep/ locations. Let configure set the version number. * nextstep/Cocoa/Emacs.base/Contents/Info.plist: * nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj/InfoPlist.strings: * nextstep/GNUstep/Emacs.base/Resources/Info-gnustep.plist: * nextstep/GNUstep/Emacs.base/Resources/Emacs.desktop: Move to templates/. * nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj: Remove directory. * src/Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables. (ns_frag): Remove. (ns-app): Move here from ns.mk, and simplify. (clean): Simplify nextstep entry. * src/ns.mk: Remove file.
2012-09-16 18:49:00 +00:00
nextstep nextstep/templates \
nextstep/Cocoa nextstep/Cocoa/Emacs.base \
nextstep/Cocoa/Emacs.base/Contents \
nextstep/Cocoa/Emacs.base/Contents/Resources \
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"
[ "$verbose" = "yes" ] && echo " ${tempdir}/${subdir}"
mkdir ${tempdir}/${subdir}
done
echo "Making links to 'lisp' and its subdirectories"
files=`find lisp \( -name '*.el' -o -name '*.elc' -o -name 'ChangeLog*' \
-o -name 'README' \)`
### Don't distribute site-init.el, site-load.el, or default.el.
for file in lisp/Makefile.in $files; do
case $file in
*/site-init*|*/site-load*|*/default*) continue ;;
esac
ln $file $tempdir/$file
done
echo "Making links to 'leim' and its subdirectories"
(cd leim
ln ChangeLog.*[0-9] README ../${tempdir}/leim
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 Makefile.in ../${tempdir}/leim/Makefile.in
Move runtime leim lisp files to lisp/leim directory This allows us to reuse much of the lisp build and installation machinery, rather than duplicating it. * Makefile.in (abs_builddir, leimdir): Remove. (buildlisppath, SUBDIR, COPYDIR, COPYDESTS): No more leim directory. (epaths-force-w32): No longer set BLD. (leim): Remove. (install-arch-indep): No longer run or install leim. (mostlyclean, clean): No longer run leim rule. (bootstrap-clean): Change leim target. (maintainer-clean): Add leim. (check-declare): Remove leim. * README: Update for leim changes. * configure.ac (leimdir): Remove. (standardlisppath): No more leimdir. * make-dist: Update for files from leim/ now being in lisp/leim/. * doc/lispref/loading.texi (Library Search): * doc/lispref/os.texi (Startup Summary): No more leim directory. * leim/Makefile.in (leimdir): New variable. (TIT_GB, TIT_BIG5, MISC, changed.tit, changed.misc) (${leimdir}/leim-list.el, ${leimdir}/ja-dic/ja-dic.el): Generate in $leimdir. (all): Remove compilation, add ja-dic. (leim-list.el): Now PHONY. (setwins, compile-targets, compile-main, clean, mostlyclean) (extraclean): Remove. (bootstrap-clean): Delete all generated files. * leim/README: Update for moved leim/ directory. * leim/leim-ext.el (ucs-input-activate, hangul-input-method-activate): Remove manual autoloads; now in loaddefs.el. Disable byte-compile, version-control, autoloads in the output. * lisp/Makefile.in (setwins_for_subdirs): Skip leim/ directory. (compile-main): Depend on lisp/leim rule. (leim): New rule. * lisp/loadup.el: Move leim-list.el to leim/ subdirectory. * lisp/startup.el (normal-top-level): No more leim directory. * lisp/international/ja-dic-cnv.el (skkdic-convert): Disable version-control and autoloads in output files. * lisp/international/titdic-cnv.el (titdic-convert, miscdic-convert): Disable version-control and autoloads in output files. * lisp/leim/quail: Move here from ../leim. * lisp/leim/quail/hangul.el (hangul-input-method-activate): Add autoload cookie. (generated-autoload-load-name): Set file-local value. * lisp/leim/quail/uni-input.el (ucs-input-activate): Add autoload cookie. (generated-autoload-load-name): Set file-local value. * nt/README.W32: * nt/addpm.c (env_vars): * nt/epaths.nt (PATH_LOADSEARCH, PATH_DUMPLOADSEARCH): * nt/paths.h (PATH_LOADSEARCH): No more leim directory. * src/Makefile.in (leimdir): Now in lisp source directory. ($(leimdir)/leim-list.el): Just use ../leim . * src/epaths.in (PATH_DUMPLOADSEARCH): * src/lread.c (load_path_default): * src/nsterm.m (ns_load_path): No more leim directory. * .bzrignore: Update for relocated leim files.
2013-11-27 06:15:06 +00:00
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'"
Merge from gnulib, using build-aux to remove clutter. * m4/largefile.m4: New file, so that Emacs does not mess up when accessing files with large inode numbers in MacOS X 10.5 and later. * m4/nocrash.m4: New file, to avoid triggering background debugger and/or create core dumps during 'configure'. * build-aux/move-if-change: Renamed from move-if-change. * build-aux/snippet/arg-nonnull.h: Renamed from arg-nonnull.h. * build-aux/snippet/c++defs.h: Renamed from c++defs.h. * build-aux/snippet/warn-on-use.h: Renamed from warn-on-use.h. * build-aux/snippet/_Noreturn.h: New file, for draft C1X _Noreturn. * .bzrignore: The autogenerated files compile, config.guess, config.sub, depcomp, install-sh, and missing are now in build-aux. * Makefile.in (epaths-force, sync-from-gnulib): move-if-change is now in build-aux. (GNULIB_TOOL_FLAGS): Avoid threadlib; this is now a prerequisite of gnulib's pthread_sigmask module, but Emacs doesn't need it. (mkdir): install-sh is now in build-aux. * config.bat: c++defs.h is now in build-aux/snippets. * configure.in: Specify AC_CONFIG_AUX_DIR with build-aux (the usual parameter). * lib/gnulib.mk, m4/gl-comp.m4: Regenerate. * lib/makefile.w32-in (ARG_NONNULL_H): arg-nonnull.h moved to build-aux/snippet. * lib/pthread_sigmask.c, lib/stdlib.in.h, m4/extensions.m4: * m4/getopt.m4, m4/gnulib-common.m4, m4/pthread_sigmask.m4: Merge from gnuilib. This fixes porting bugs on Cygwin, Irix, and Solaris, enables MacOS extensions, and enables nocrash during 'configure'. * make-dist: Adjust to new build-aux and build-aux/snippit dirs. * admin/notes/copyright: The files compile, config.guess, config.sub, depcomp, install-sh, missing, and move-if-change are now in the new build-aux subdirectory. The files arg-nonnull.h, c++defs.h, and warn-on-use.h are now in build-aux/snippets. New file build-aux/snippets/_Noreturn.h. * leim/Makefile.in (install): install-sh is now in build-aux. * lib-src/Makefile.in ($(DESTDIR)${archlibdir}): install-sh moved to build-aux. * msdos/sedlibmk.inp (CONFIG_CLEAN_VPATH_FILES): Adjust to snippet moves from top level to build-aux/snippet. * src/Makefile.in (gl-stamp): move-if-change is now in build-aux.
2011-07-24 22:15:47 +00:00
(cd build-aux
Switch from Automake to GNU Make Emacs assumes GNU Make, and GNU Make has much of the functionality of Automake built-in. The Emacs build process uses Automake primarily because Emacs uses some Gnulib code and Gnulib formerly required Automake. Now that Gnulib no longer requires Automake, Emacs can stop using Automake and this should simplify Emacs maintenance in the future (Bug#26100). Although this patch may look long, most of it is generated automatically: the changes to build-aux/config.guess, build-aux/config.sub, build-aux/install-sh, and lib/gnulib.mk.in are all done by admin/merge-gnulib. * .gitignore: Remove build-aux/ar-lib, build-aux/compile, build-aux/config.guess, build-aux/config.sub, build-aux/depcomp, build-aux/install-sh, build-aux/missing, and lib/Makefile.in, as they are no longer built by autogen.sh. Add lib/gnulib.mk, as it is now built by 'configure'. Remove nt/gnulib.mk, as it is no longer built by 'make'. * INSTALL.REPO, README, admin/make-tarball.txt: Remove mention of Automake. * Makefile.in (AUTOCONF, AUTOMAKE, AUTOHEADER, ACLOCAL, lib) (AUTOCONF_INPUTS, ACLOCAL_PATH, ACLOCAL_INPUTS) ($(srcdir)/aclocal.m4, AUTOMAKE_INPUTS) ($(srcdir)/lib/Makefile.in, $(srcdir)/nt/gnulib.mk, am--refresh): Remove. ($(MAKEFILE_NAME)): Depend on lib/gnulib.mk.in. ($(srcdir)/configure, $(srcdir)/src/stamp-h.in) ($(srcdir)/src/config.in): Use autogen.sh instead of doing it by hand. * admin/merge-gnulib (AVOIDED_MODULES, avoided_flags)): New vars, to simplify processing of avoided modules. (GNULIB_TOOL_FLAGS): Move --avoid flags into AVOIDED_MODULES. Add --gnu-make, and change makefile name to gnulib.mk.in. Copy config.guess, config.sub, and install-sh too, since Automake no longer does that for us. * admin/notes/copyright: * admin/update_autogen (genfiles): Update list of files. Remove hack for nt/gnulib.mk, a file that is no longer needed. * autogen.sh (progs): Remove Automake. (automake_min): Remove. Build aclocal.m4 so that autoreconf need not use aclocal. * build-aux/config.guess, build-aux/config.sub: * build-aux/install-sh: New files, copied from Gnulib. These are now updated by admin/merge-gnulib instead by autogen.sh. * configure.ac (AC_PROG_MAKE_SET, ACLOCAL_PATH, AM_CONDITIONAL): Remove. (AM_INIT_AUTOMAKE, AM_SILENT_RULES): Remove call. (AC_PROG_CC_C_O): Call this instead of AM_PROG_CC_C_O. (BUILDING_FOR_WINDOWSNT, HYBRID_MALLOC_LIB): Remove; no longer needed. (--disable-silent-rules): New option, since Automake no longer does this for us. (AM_V, AM_DEFAULT_V): Set unconditionally, and do not bother with AM_SUBST_NOTMAKE. (AC_PROG_INSTALL): Add call. (MAKEINFO): Do not bother with the 'missing' program. (MAKEINFO, SYSTEM_TYPE): AC_SUBST. (AC_CONFIG_FILES): Add Makefile, lib/gnulib.mk. (SUBDIR_MAKEFILES): Remove duplication. * lib/Makefile.am: Remove, replacing with: * lib/Makefile.in: New file, with the old Makefile.am contents and with the following changes: (AUTOMAKE_OPTIONS, BUILT_SOURCES, CLEANFILES, EXTRA_DIST) (MOSTLYCLEANDIRS, MOSTLYCLEANFILES, noinst_LIBRARIES, SUFFIXES) (AM_CFLAGS, DEFAULT_INCLUDES, libegnu_a_SOURCES, libegnu_a_LIBADD) (EXTRA_libegnu_a_SOURCES, libegnu_a_SHORTNAME, libegnu_a_CPPFLAGS): Remove. (VPATH, abs_top_builddir, top_builddir, top_srcdir, all, AM_V_AR) (AM_V_CC, AM_V_GEN, AM_V_at, DEPDIR, DEPFLAGS, MKDEPDIR, SYSTEM_TYPE) (libgnu.a, libegnu.a, ETAGS, $(ETAGS), tags, TAGS, clean) (mostlyclean, distclean, bootstrap-clean, maintainer-clean): New macros and rules, since Automake no longer does them. Include ../nt/gnulib-cfg.mk if SYSTEM_TYPE is windows-nt, instead of including ../nt/gnulib.mk if BUILDING_FOR_WINDOWS_NT. Include dependency files if AUTO_DEPEND. (ALL_CFLAGS, AUTOCONF_INPUTS, libgnu_a_OBJECTS, libegnu_a_OBJECTS): New macros. (bootstrap-clean): Depend on distclean, not maintainer-clean, and remove gnulib.mk. (AUTOCONF_INPUTS, $(top_srcdir)/configure, ../config.status, Makefile): New macros and rules, copied from ../Makefile.in. ($(libegnu_a_OBJECTS), $(libgnu_a_OBJECTS)): Depend on BUILT_SOURCES. (.c.o, e-%.o): New generic rules. * lib/gnulib.mk: Remove. * lib/gnulib.mk.in: New file, which is built by autogen.sh and contains much of what used to be in lib/gnulib.mk. * m4/gnulib-common.m4: Copy from gnulib. * make-dist: Do not distribute build-aux/compile, build-aux/depcomp, build-aux/missing, build-aux/ar-lib, lib/Makefile.am, nt/gnulib.mk, nt/gnulib-modules-to-delete.cfg. Distribute lib/Makefile.in, lib/gnulib.mk.in, and nt/gnulib-cfg.mk instead. * nt/Makefile.in (AM_V_GEN, am__v_GEN_, am__v_GEN_0) (am__v_GEN_1, ${srcdir}/gnulib.mk): Remove. * nt/gnulib-cfg.mk: New file, which supersedes ... * nt/gnulib-modules-to-delete.cfg: ... this file, which is removed. * src/Makefile.in (ACLOCAL_INPUTS): Remove. (AUTOCONF_INPUTS): Merge ACLOCAL_INPUTS into it. ($(top_srcdir)/configure, ../config.status, config.in Makefile): Defer to parent Makefile.
2017-03-17 18:33:47 +00:00
ln config.guess config.sub msys-to-w32 ../${tempdir}/build-aux
ln gitlog-to-changelog gitlog-to-emacslog ../${tempdir}/build-aux
Switch from Automake to GNU Make Emacs assumes GNU Make, and GNU Make has much of the functionality of Automake built-in. The Emacs build process uses Automake primarily because Emacs uses some Gnulib code and Gnulib formerly required Automake. Now that Gnulib no longer requires Automake, Emacs can stop using Automake and this should simplify Emacs maintenance in the future (Bug#26100). Although this patch may look long, most of it is generated automatically: the changes to build-aux/config.guess, build-aux/config.sub, build-aux/install-sh, and lib/gnulib.mk.in are all done by admin/merge-gnulib. * .gitignore: Remove build-aux/ar-lib, build-aux/compile, build-aux/config.guess, build-aux/config.sub, build-aux/depcomp, build-aux/install-sh, build-aux/missing, and lib/Makefile.in, as they are no longer built by autogen.sh. Add lib/gnulib.mk, as it is now built by 'configure'. Remove nt/gnulib.mk, as it is no longer built by 'make'. * INSTALL.REPO, README, admin/make-tarball.txt: Remove mention of Automake. * Makefile.in (AUTOCONF, AUTOMAKE, AUTOHEADER, ACLOCAL, lib) (AUTOCONF_INPUTS, ACLOCAL_PATH, ACLOCAL_INPUTS) ($(srcdir)/aclocal.m4, AUTOMAKE_INPUTS) ($(srcdir)/lib/Makefile.in, $(srcdir)/nt/gnulib.mk, am--refresh): Remove. ($(MAKEFILE_NAME)): Depend on lib/gnulib.mk.in. ($(srcdir)/configure, $(srcdir)/src/stamp-h.in) ($(srcdir)/src/config.in): Use autogen.sh instead of doing it by hand. * admin/merge-gnulib (AVOIDED_MODULES, avoided_flags)): New vars, to simplify processing of avoided modules. (GNULIB_TOOL_FLAGS): Move --avoid flags into AVOIDED_MODULES. Add --gnu-make, and change makefile name to gnulib.mk.in. Copy config.guess, config.sub, and install-sh too, since Automake no longer does that for us. * admin/notes/copyright: * admin/update_autogen (genfiles): Update list of files. Remove hack for nt/gnulib.mk, a file that is no longer needed. * autogen.sh (progs): Remove Automake. (automake_min): Remove. Build aclocal.m4 so that autoreconf need not use aclocal. * build-aux/config.guess, build-aux/config.sub: * build-aux/install-sh: New files, copied from Gnulib. These are now updated by admin/merge-gnulib instead by autogen.sh. * configure.ac (AC_PROG_MAKE_SET, ACLOCAL_PATH, AM_CONDITIONAL): Remove. (AM_INIT_AUTOMAKE, AM_SILENT_RULES): Remove call. (AC_PROG_CC_C_O): Call this instead of AM_PROG_CC_C_O. (BUILDING_FOR_WINDOWSNT, HYBRID_MALLOC_LIB): Remove; no longer needed. (--disable-silent-rules): New option, since Automake no longer does this for us. (AM_V, AM_DEFAULT_V): Set unconditionally, and do not bother with AM_SUBST_NOTMAKE. (AC_PROG_INSTALL): Add call. (MAKEINFO): Do not bother with the 'missing' program. (MAKEINFO, SYSTEM_TYPE): AC_SUBST. (AC_CONFIG_FILES): Add Makefile, lib/gnulib.mk. (SUBDIR_MAKEFILES): Remove duplication. * lib/Makefile.am: Remove, replacing with: * lib/Makefile.in: New file, with the old Makefile.am contents and with the following changes: (AUTOMAKE_OPTIONS, BUILT_SOURCES, CLEANFILES, EXTRA_DIST) (MOSTLYCLEANDIRS, MOSTLYCLEANFILES, noinst_LIBRARIES, SUFFIXES) (AM_CFLAGS, DEFAULT_INCLUDES, libegnu_a_SOURCES, libegnu_a_LIBADD) (EXTRA_libegnu_a_SOURCES, libegnu_a_SHORTNAME, libegnu_a_CPPFLAGS): Remove. (VPATH, abs_top_builddir, top_builddir, top_srcdir, all, AM_V_AR) (AM_V_CC, AM_V_GEN, AM_V_at, DEPDIR, DEPFLAGS, MKDEPDIR, SYSTEM_TYPE) (libgnu.a, libegnu.a, ETAGS, $(ETAGS), tags, TAGS, clean) (mostlyclean, distclean, bootstrap-clean, maintainer-clean): New macros and rules, since Automake no longer does them. Include ../nt/gnulib-cfg.mk if SYSTEM_TYPE is windows-nt, instead of including ../nt/gnulib.mk if BUILDING_FOR_WINDOWS_NT. Include dependency files if AUTO_DEPEND. (ALL_CFLAGS, AUTOCONF_INPUTS, libgnu_a_OBJECTS, libegnu_a_OBJECTS): New macros. (bootstrap-clean): Depend on distclean, not maintainer-clean, and remove gnulib.mk. (AUTOCONF_INPUTS, $(top_srcdir)/configure, ../config.status, Makefile): New macros and rules, copied from ../Makefile.in. ($(libegnu_a_OBJECTS), $(libgnu_a_OBJECTS)): Depend on BUILT_SOURCES. (.c.o, e-%.o): New generic rules. * lib/gnulib.mk: Remove. * lib/gnulib.mk.in: New file, which is built by autogen.sh and contains much of what used to be in lib/gnulib.mk. * m4/gnulib-common.m4: Copy from gnulib. * make-dist: Do not distribute build-aux/compile, build-aux/depcomp, build-aux/missing, build-aux/ar-lib, lib/Makefile.am, nt/gnulib.mk, nt/gnulib-modules-to-delete.cfg. Distribute lib/Makefile.in, lib/gnulib.mk.in, and nt/gnulib-cfg.mk instead. * nt/Makefile.in (AM_V_GEN, am__v_GEN_, am__v_GEN_0) (am__v_GEN_1, ${srcdir}/gnulib.mk): Remove. * nt/gnulib-cfg.mk: New file, which supersedes ... * nt/gnulib-modules-to-delete.cfg: ... this file, which is removed. * src/Makefile.in (ACLOCAL_INPUTS): Remove. (AUTOCONF_INPUTS): Merge ACLOCAL_INPUTS into it. ($(top_srcdir)/configure, ../config.status, config.in Makefile): Defer to parent Makefile.
2017-03-17 18:33:47 +00:00
ln install-sh move-if-change ../${tempdir}/build-aux
ln update-copyright update-subdirs ../${tempdir}/build-aux
Switch from Automake to GNU Make Emacs assumes GNU Make, and GNU Make has much of the functionality of Automake built-in. The Emacs build process uses Automake primarily because Emacs uses some Gnulib code and Gnulib formerly required Automake. Now that Gnulib no longer requires Automake, Emacs can stop using Automake and this should simplify Emacs maintenance in the future (Bug#26100). Although this patch may look long, most of it is generated automatically: the changes to build-aux/config.guess, build-aux/config.sub, build-aux/install-sh, and lib/gnulib.mk.in are all done by admin/merge-gnulib. * .gitignore: Remove build-aux/ar-lib, build-aux/compile, build-aux/config.guess, build-aux/config.sub, build-aux/depcomp, build-aux/install-sh, build-aux/missing, and lib/Makefile.in, as they are no longer built by autogen.sh. Add lib/gnulib.mk, as it is now built by 'configure'. Remove nt/gnulib.mk, as it is no longer built by 'make'. * INSTALL.REPO, README, admin/make-tarball.txt: Remove mention of Automake. * Makefile.in (AUTOCONF, AUTOMAKE, AUTOHEADER, ACLOCAL, lib) (AUTOCONF_INPUTS, ACLOCAL_PATH, ACLOCAL_INPUTS) ($(srcdir)/aclocal.m4, AUTOMAKE_INPUTS) ($(srcdir)/lib/Makefile.in, $(srcdir)/nt/gnulib.mk, am--refresh): Remove. ($(MAKEFILE_NAME)): Depend on lib/gnulib.mk.in. ($(srcdir)/configure, $(srcdir)/src/stamp-h.in) ($(srcdir)/src/config.in): Use autogen.sh instead of doing it by hand. * admin/merge-gnulib (AVOIDED_MODULES, avoided_flags)): New vars, to simplify processing of avoided modules. (GNULIB_TOOL_FLAGS): Move --avoid flags into AVOIDED_MODULES. Add --gnu-make, and change makefile name to gnulib.mk.in. Copy config.guess, config.sub, and install-sh too, since Automake no longer does that for us. * admin/notes/copyright: * admin/update_autogen (genfiles): Update list of files. Remove hack for nt/gnulib.mk, a file that is no longer needed. * autogen.sh (progs): Remove Automake. (automake_min): Remove. Build aclocal.m4 so that autoreconf need not use aclocal. * build-aux/config.guess, build-aux/config.sub: * build-aux/install-sh: New files, copied from Gnulib. These are now updated by admin/merge-gnulib instead by autogen.sh. * configure.ac (AC_PROG_MAKE_SET, ACLOCAL_PATH, AM_CONDITIONAL): Remove. (AM_INIT_AUTOMAKE, AM_SILENT_RULES): Remove call. (AC_PROG_CC_C_O): Call this instead of AM_PROG_CC_C_O. (BUILDING_FOR_WINDOWSNT, HYBRID_MALLOC_LIB): Remove; no longer needed. (--disable-silent-rules): New option, since Automake no longer does this for us. (AM_V, AM_DEFAULT_V): Set unconditionally, and do not bother with AM_SUBST_NOTMAKE. (AC_PROG_INSTALL): Add call. (MAKEINFO): Do not bother with the 'missing' program. (MAKEINFO, SYSTEM_TYPE): AC_SUBST. (AC_CONFIG_FILES): Add Makefile, lib/gnulib.mk. (SUBDIR_MAKEFILES): Remove duplication. * lib/Makefile.am: Remove, replacing with: * lib/Makefile.in: New file, with the old Makefile.am contents and with the following changes: (AUTOMAKE_OPTIONS, BUILT_SOURCES, CLEANFILES, EXTRA_DIST) (MOSTLYCLEANDIRS, MOSTLYCLEANFILES, noinst_LIBRARIES, SUFFIXES) (AM_CFLAGS, DEFAULT_INCLUDES, libegnu_a_SOURCES, libegnu_a_LIBADD) (EXTRA_libegnu_a_SOURCES, libegnu_a_SHORTNAME, libegnu_a_CPPFLAGS): Remove. (VPATH, abs_top_builddir, top_builddir, top_srcdir, all, AM_V_AR) (AM_V_CC, AM_V_GEN, AM_V_at, DEPDIR, DEPFLAGS, MKDEPDIR, SYSTEM_TYPE) (libgnu.a, libegnu.a, ETAGS, $(ETAGS), tags, TAGS, clean) (mostlyclean, distclean, bootstrap-clean, maintainer-clean): New macros and rules, since Automake no longer does them. Include ../nt/gnulib-cfg.mk if SYSTEM_TYPE is windows-nt, instead of including ../nt/gnulib.mk if BUILDING_FOR_WINDOWS_NT. Include dependency files if AUTO_DEPEND. (ALL_CFLAGS, AUTOCONF_INPUTS, libgnu_a_OBJECTS, libegnu_a_OBJECTS): New macros. (bootstrap-clean): Depend on distclean, not maintainer-clean, and remove gnulib.mk. (AUTOCONF_INPUTS, $(top_srcdir)/configure, ../config.status, Makefile): New macros and rules, copied from ../Makefile.in. ($(libegnu_a_OBJECTS), $(libgnu_a_OBJECTS)): Depend on BUILT_SOURCES. (.c.o, e-%.o): New generic rules. * lib/gnulib.mk: Remove. * lib/gnulib.mk.in: New file, which is built by autogen.sh and contains much of what used to be in lib/gnulib.mk. * m4/gnulib-common.m4: Copy from gnulib. * make-dist: Do not distribute build-aux/compile, build-aux/depcomp, build-aux/missing, build-aux/ar-lib, lib/Makefile.am, nt/gnulib.mk, nt/gnulib-modules-to-delete.cfg. Distribute lib/Makefile.in, lib/gnulib.mk.in, and nt/gnulib-cfg.mk instead. * nt/Makefile.in (AM_V_GEN, am__v_GEN_, am__v_GEN_0) (am__v_GEN_1, ${srcdir}/gnulib.mk): Remove. * nt/gnulib-cfg.mk: New file, which supersedes ... * nt/gnulib-modules-to-delete.cfg: ... this file, which is removed. * src/Makefile.in (ACLOCAL_INPUTS): Remove. (AUTOCONF_INPUTS): Merge ACLOCAL_INPUTS into it. ($(top_srcdir)/configure, ../config.status, config.in Makefile): Defer to parent Makefile.
2017-03-17 18:33:47 +00:00
ln dir_top make-info-dir ../${tempdir}/build-aux)
Merge from gnulib, using build-aux to remove clutter. * m4/largefile.m4: New file, so that Emacs does not mess up when accessing files with large inode numbers in MacOS X 10.5 and later. * m4/nocrash.m4: New file, to avoid triggering background debugger and/or create core dumps during 'configure'. * build-aux/move-if-change: Renamed from move-if-change. * build-aux/snippet/arg-nonnull.h: Renamed from arg-nonnull.h. * build-aux/snippet/c++defs.h: Renamed from c++defs.h. * build-aux/snippet/warn-on-use.h: Renamed from warn-on-use.h. * build-aux/snippet/_Noreturn.h: New file, for draft C1X _Noreturn. * .bzrignore: The autogenerated files compile, config.guess, config.sub, depcomp, install-sh, and missing are now in build-aux. * Makefile.in (epaths-force, sync-from-gnulib): move-if-change is now in build-aux. (GNULIB_TOOL_FLAGS): Avoid threadlib; this is now a prerequisite of gnulib's pthread_sigmask module, but Emacs doesn't need it. (mkdir): install-sh is now in build-aux. * config.bat: c++defs.h is now in build-aux/snippets. * configure.in: Specify AC_CONFIG_AUX_DIR with build-aux (the usual parameter). * lib/gnulib.mk, m4/gl-comp.m4: Regenerate. * lib/makefile.w32-in (ARG_NONNULL_H): arg-nonnull.h moved to build-aux/snippet. * lib/pthread_sigmask.c, lib/stdlib.in.h, m4/extensions.m4: * m4/getopt.m4, m4/gnulib-common.m4, m4/pthread_sigmask.m4: Merge from gnuilib. This fixes porting bugs on Cygwin, Irix, and Solaris, enables MacOS extensions, and enables nocrash during 'configure'. * make-dist: Adjust to new build-aux and build-aux/snippit dirs. * admin/notes/copyright: The files compile, config.guess, config.sub, depcomp, install-sh, missing, and move-if-change are now in the new build-aux subdirectory. The files arg-nonnull.h, c++defs.h, and warn-on-use.h are now in build-aux/snippets. New file build-aux/snippets/_Noreturn.h. * leim/Makefile.in (install): install-sh is now in build-aux. * lib-src/Makefile.in ($(DESTDIR)${archlibdir}): install-sh moved to build-aux. * msdos/sedlibmk.inp (CONFIG_CLEAN_VPATH_FILES): Adjust to snippet moves from top level to build-aux/snippet. * src/Makefile.in (gl-stamp): move-if-change is now in build-aux.
2011-07-24 22:15:47 +00:00
echo "Making links to 'src'"
### Don't distribute the configured versions of
### config.in, paths.in, buildobj.h, or Makefile.in.
(cd src
echo " (It is ok if ln fails in some cases.)"
ln [a-zA-Z]*.[chm] ../${tempdir}/src
ln [a-zA-Z]*.in ../${tempdir}/src
ln deps.mk ../${tempdir}/src
ln README ChangeLog.*[0-9] ../${tempdir}/src
ln .gdbinit .dbxinit ../${tempdir}/src
cd ../${tempdir}/src
rm -f globals.h config.h epaths.h Makefile buildobj.h)
echo "Making links to 'src/bitmaps'"
(cd src/bitmaps
ln README *.xbm ../../${tempdir}/src/bitmaps)
echo "Making links to 'lib'"
(cd lib
ln [a-zA-Z_]*.[ch] ../${tempdir}/lib
Switch from Automake to GNU Make Emacs assumes GNU Make, and GNU Make has much of the functionality of Automake built-in. The Emacs build process uses Automake primarily because Emacs uses some Gnulib code and Gnulib formerly required Automake. Now that Gnulib no longer requires Automake, Emacs can stop using Automake and this should simplify Emacs maintenance in the future (Bug#26100). Although this patch may look long, most of it is generated automatically: the changes to build-aux/config.guess, build-aux/config.sub, build-aux/install-sh, and lib/gnulib.mk.in are all done by admin/merge-gnulib. * .gitignore: Remove build-aux/ar-lib, build-aux/compile, build-aux/config.guess, build-aux/config.sub, build-aux/depcomp, build-aux/install-sh, build-aux/missing, and lib/Makefile.in, as they are no longer built by autogen.sh. Add lib/gnulib.mk, as it is now built by 'configure'. Remove nt/gnulib.mk, as it is no longer built by 'make'. * INSTALL.REPO, README, admin/make-tarball.txt: Remove mention of Automake. * Makefile.in (AUTOCONF, AUTOMAKE, AUTOHEADER, ACLOCAL, lib) (AUTOCONF_INPUTS, ACLOCAL_PATH, ACLOCAL_INPUTS) ($(srcdir)/aclocal.m4, AUTOMAKE_INPUTS) ($(srcdir)/lib/Makefile.in, $(srcdir)/nt/gnulib.mk, am--refresh): Remove. ($(MAKEFILE_NAME)): Depend on lib/gnulib.mk.in. ($(srcdir)/configure, $(srcdir)/src/stamp-h.in) ($(srcdir)/src/config.in): Use autogen.sh instead of doing it by hand. * admin/merge-gnulib (AVOIDED_MODULES, avoided_flags)): New vars, to simplify processing of avoided modules. (GNULIB_TOOL_FLAGS): Move --avoid flags into AVOIDED_MODULES. Add --gnu-make, and change makefile name to gnulib.mk.in. Copy config.guess, config.sub, and install-sh too, since Automake no longer does that for us. * admin/notes/copyright: * admin/update_autogen (genfiles): Update list of files. Remove hack for nt/gnulib.mk, a file that is no longer needed. * autogen.sh (progs): Remove Automake. (automake_min): Remove. Build aclocal.m4 so that autoreconf need not use aclocal. * build-aux/config.guess, build-aux/config.sub: * build-aux/install-sh: New files, copied from Gnulib. These are now updated by admin/merge-gnulib instead by autogen.sh. * configure.ac (AC_PROG_MAKE_SET, ACLOCAL_PATH, AM_CONDITIONAL): Remove. (AM_INIT_AUTOMAKE, AM_SILENT_RULES): Remove call. (AC_PROG_CC_C_O): Call this instead of AM_PROG_CC_C_O. (BUILDING_FOR_WINDOWSNT, HYBRID_MALLOC_LIB): Remove; no longer needed. (--disable-silent-rules): New option, since Automake no longer does this for us. (AM_V, AM_DEFAULT_V): Set unconditionally, and do not bother with AM_SUBST_NOTMAKE. (AC_PROG_INSTALL): Add call. (MAKEINFO): Do not bother with the 'missing' program. (MAKEINFO, SYSTEM_TYPE): AC_SUBST. (AC_CONFIG_FILES): Add Makefile, lib/gnulib.mk. (SUBDIR_MAKEFILES): Remove duplication. * lib/Makefile.am: Remove, replacing with: * lib/Makefile.in: New file, with the old Makefile.am contents and with the following changes: (AUTOMAKE_OPTIONS, BUILT_SOURCES, CLEANFILES, EXTRA_DIST) (MOSTLYCLEANDIRS, MOSTLYCLEANFILES, noinst_LIBRARIES, SUFFIXES) (AM_CFLAGS, DEFAULT_INCLUDES, libegnu_a_SOURCES, libegnu_a_LIBADD) (EXTRA_libegnu_a_SOURCES, libegnu_a_SHORTNAME, libegnu_a_CPPFLAGS): Remove. (VPATH, abs_top_builddir, top_builddir, top_srcdir, all, AM_V_AR) (AM_V_CC, AM_V_GEN, AM_V_at, DEPDIR, DEPFLAGS, MKDEPDIR, SYSTEM_TYPE) (libgnu.a, libegnu.a, ETAGS, $(ETAGS), tags, TAGS, clean) (mostlyclean, distclean, bootstrap-clean, maintainer-clean): New macros and rules, since Automake no longer does them. Include ../nt/gnulib-cfg.mk if SYSTEM_TYPE is windows-nt, instead of including ../nt/gnulib.mk if BUILDING_FOR_WINDOWS_NT. Include dependency files if AUTO_DEPEND. (ALL_CFLAGS, AUTOCONF_INPUTS, libgnu_a_OBJECTS, libegnu_a_OBJECTS): New macros. (bootstrap-clean): Depend on distclean, not maintainer-clean, and remove gnulib.mk. (AUTOCONF_INPUTS, $(top_srcdir)/configure, ../config.status, Makefile): New macros and rules, copied from ../Makefile.in. ($(libegnu_a_OBJECTS), $(libgnu_a_OBJECTS)): Depend on BUILT_SOURCES. (.c.o, e-%.o): New generic rules. * lib/gnulib.mk: Remove. * lib/gnulib.mk.in: New file, which is built by autogen.sh and contains much of what used to be in lib/gnulib.mk. * m4/gnulib-common.m4: Copy from gnulib. * make-dist: Do not distribute build-aux/compile, build-aux/depcomp, build-aux/missing, build-aux/ar-lib, lib/Makefile.am, nt/gnulib.mk, nt/gnulib-modules-to-delete.cfg. Distribute lib/Makefile.in, lib/gnulib.mk.in, and nt/gnulib-cfg.mk instead. * nt/Makefile.in (AM_V_GEN, am__v_GEN_, am__v_GEN_0) (am__v_GEN_1, ${srcdir}/gnulib.mk): Remove. * nt/gnulib-cfg.mk: New file, which supersedes ... * nt/gnulib-modules-to-delete.cfg: ... this file, which is removed. * src/Makefile.in (ACLOCAL_INPUTS): Remove. (AUTOCONF_INPUTS): Merge ACLOCAL_INPUTS into it. ($(top_srcdir)/configure, ../config.status, config.in Makefile): Defer to parent Makefile.
2017-03-17 18:33:47 +00:00
ln gnulib.mk.in Makefile.in ../${tempdir}/lib
2011-01-08 21:02:38 +00:00
cd ../${tempdir}/lib
Merge from gnulib, using build-aux to remove clutter. * m4/largefile.m4: New file, so that Emacs does not mess up when accessing files with large inode numbers in MacOS X 10.5 and later. * m4/nocrash.m4: New file, to avoid triggering background debugger and/or create core dumps during 'configure'. * build-aux/move-if-change: Renamed from move-if-change. * build-aux/snippet/arg-nonnull.h: Renamed from arg-nonnull.h. * build-aux/snippet/c++defs.h: Renamed from c++defs.h. * build-aux/snippet/warn-on-use.h: Renamed from warn-on-use.h. * build-aux/snippet/_Noreturn.h: New file, for draft C1X _Noreturn. * .bzrignore: The autogenerated files compile, config.guess, config.sub, depcomp, install-sh, and missing are now in build-aux. * Makefile.in (epaths-force, sync-from-gnulib): move-if-change is now in build-aux. (GNULIB_TOOL_FLAGS): Avoid threadlib; this is now a prerequisite of gnulib's pthread_sigmask module, but Emacs doesn't need it. (mkdir): install-sh is now in build-aux. * config.bat: c++defs.h is now in build-aux/snippets. * configure.in: Specify AC_CONFIG_AUX_DIR with build-aux (the usual parameter). * lib/gnulib.mk, m4/gl-comp.m4: Regenerate. * lib/makefile.w32-in (ARG_NONNULL_H): arg-nonnull.h moved to build-aux/snippet. * lib/pthread_sigmask.c, lib/stdlib.in.h, m4/extensions.m4: * m4/getopt.m4, m4/gnulib-common.m4, m4/pthread_sigmask.m4: Merge from gnuilib. This fixes porting bugs on Cygwin, Irix, and Solaris, enables MacOS extensions, and enables nocrash during 'configure'. * make-dist: Adjust to new build-aux and build-aux/snippit dirs. * admin/notes/copyright: The files compile, config.guess, config.sub, depcomp, install-sh, missing, and move-if-change are now in the new build-aux subdirectory. The files arg-nonnull.h, c++defs.h, and warn-on-use.h are now in build-aux/snippets. New file build-aux/snippets/_Noreturn.h. * leim/Makefile.in (install): install-sh is now in build-aux. * lib-src/Makefile.in ($(DESTDIR)${archlibdir}): install-sh moved to build-aux. * msdos/sedlibmk.inp (CONFIG_CLEAN_VPATH_FILES): Adjust to snippet moves from top level to build-aux/snippet. * src/Makefile.in (gl-stamp): move-if-change is now in build-aux.
2011-07-24 22:15:47 +00:00
script='/[*]/d; s/\.in\.h$/.h/'
rm -f `ls *.in.h | sed "$script"`)
2011-01-08 21:02:38 +00:00
echo "Making links to 'lib-src'"
(cd lib-src
ln [a-zA-Z]*.[ch] ../${tempdir}/lib-src
ln ChangeLog.*[0-9] Makefile.in README ../${tempdir}/lib-src
ln rcs2log ../${tempdir}/lib-src)
echo "Making links to 'm4'"
(cd m4
ln *.m4 ../${tempdir}/m4)
2016-02-02 21:08:03 +00:00
echo "Making links to 'modules'"
(cd modules
ln *.py ../${tempdir}/modules
)
echo "Making links to 'nt'"
(cd nt
ln emacs-x86.manifest emacs-x64.manifest ../${tempdir}/nt
2016-02-02 21:19:15 +00:00
ln [a-z]*.bat [a-z]*.[ch] ../${tempdir}/nt
Switch from Automake to GNU Make Emacs assumes GNU Make, and GNU Make has much of the functionality of Automake built-in. The Emacs build process uses Automake primarily because Emacs uses some Gnulib code and Gnulib formerly required Automake. Now that Gnulib no longer requires Automake, Emacs can stop using Automake and this should simplify Emacs maintenance in the future (Bug#26100). Although this patch may look long, most of it is generated automatically: the changes to build-aux/config.guess, build-aux/config.sub, build-aux/install-sh, and lib/gnulib.mk.in are all done by admin/merge-gnulib. * .gitignore: Remove build-aux/ar-lib, build-aux/compile, build-aux/config.guess, build-aux/config.sub, build-aux/depcomp, build-aux/install-sh, build-aux/missing, and lib/Makefile.in, as they are no longer built by autogen.sh. Add lib/gnulib.mk, as it is now built by 'configure'. Remove nt/gnulib.mk, as it is no longer built by 'make'. * INSTALL.REPO, README, admin/make-tarball.txt: Remove mention of Automake. * Makefile.in (AUTOCONF, AUTOMAKE, AUTOHEADER, ACLOCAL, lib) (AUTOCONF_INPUTS, ACLOCAL_PATH, ACLOCAL_INPUTS) ($(srcdir)/aclocal.m4, AUTOMAKE_INPUTS) ($(srcdir)/lib/Makefile.in, $(srcdir)/nt/gnulib.mk, am--refresh): Remove. ($(MAKEFILE_NAME)): Depend on lib/gnulib.mk.in. ($(srcdir)/configure, $(srcdir)/src/stamp-h.in) ($(srcdir)/src/config.in): Use autogen.sh instead of doing it by hand. * admin/merge-gnulib (AVOIDED_MODULES, avoided_flags)): New vars, to simplify processing of avoided modules. (GNULIB_TOOL_FLAGS): Move --avoid flags into AVOIDED_MODULES. Add --gnu-make, and change makefile name to gnulib.mk.in. Copy config.guess, config.sub, and install-sh too, since Automake no longer does that for us. * admin/notes/copyright: * admin/update_autogen (genfiles): Update list of files. Remove hack for nt/gnulib.mk, a file that is no longer needed. * autogen.sh (progs): Remove Automake. (automake_min): Remove. Build aclocal.m4 so that autoreconf need not use aclocal. * build-aux/config.guess, build-aux/config.sub: * build-aux/install-sh: New files, copied from Gnulib. These are now updated by admin/merge-gnulib instead by autogen.sh. * configure.ac (AC_PROG_MAKE_SET, ACLOCAL_PATH, AM_CONDITIONAL): Remove. (AM_INIT_AUTOMAKE, AM_SILENT_RULES): Remove call. (AC_PROG_CC_C_O): Call this instead of AM_PROG_CC_C_O. (BUILDING_FOR_WINDOWSNT, HYBRID_MALLOC_LIB): Remove; no longer needed. (--disable-silent-rules): New option, since Automake no longer does this for us. (AM_V, AM_DEFAULT_V): Set unconditionally, and do not bother with AM_SUBST_NOTMAKE. (AC_PROG_INSTALL): Add call. (MAKEINFO): Do not bother with the 'missing' program. (MAKEINFO, SYSTEM_TYPE): AC_SUBST. (AC_CONFIG_FILES): Add Makefile, lib/gnulib.mk. (SUBDIR_MAKEFILES): Remove duplication. * lib/Makefile.am: Remove, replacing with: * lib/Makefile.in: New file, with the old Makefile.am contents and with the following changes: (AUTOMAKE_OPTIONS, BUILT_SOURCES, CLEANFILES, EXTRA_DIST) (MOSTLYCLEANDIRS, MOSTLYCLEANFILES, noinst_LIBRARIES, SUFFIXES) (AM_CFLAGS, DEFAULT_INCLUDES, libegnu_a_SOURCES, libegnu_a_LIBADD) (EXTRA_libegnu_a_SOURCES, libegnu_a_SHORTNAME, libegnu_a_CPPFLAGS): Remove. (VPATH, abs_top_builddir, top_builddir, top_srcdir, all, AM_V_AR) (AM_V_CC, AM_V_GEN, AM_V_at, DEPDIR, DEPFLAGS, MKDEPDIR, SYSTEM_TYPE) (libgnu.a, libegnu.a, ETAGS, $(ETAGS), tags, TAGS, clean) (mostlyclean, distclean, bootstrap-clean, maintainer-clean): New macros and rules, since Automake no longer does them. Include ../nt/gnulib-cfg.mk if SYSTEM_TYPE is windows-nt, instead of including ../nt/gnulib.mk if BUILDING_FOR_WINDOWS_NT. Include dependency files if AUTO_DEPEND. (ALL_CFLAGS, AUTOCONF_INPUTS, libgnu_a_OBJECTS, libegnu_a_OBJECTS): New macros. (bootstrap-clean): Depend on distclean, not maintainer-clean, and remove gnulib.mk. (AUTOCONF_INPUTS, $(top_srcdir)/configure, ../config.status, Makefile): New macros and rules, copied from ../Makefile.in. ($(libegnu_a_OBJECTS), $(libgnu_a_OBJECTS)): Depend on BUILT_SOURCES. (.c.o, e-%.o): New generic rules. * lib/gnulib.mk: Remove. * lib/gnulib.mk.in: New file, which is built by autogen.sh and contains much of what used to be in lib/gnulib.mk. * m4/gnulib-common.m4: Copy from gnulib. * make-dist: Do not distribute build-aux/compile, build-aux/depcomp, build-aux/missing, build-aux/ar-lib, lib/Makefile.am, nt/gnulib.mk, nt/gnulib-modules-to-delete.cfg. Distribute lib/Makefile.in, lib/gnulib.mk.in, and nt/gnulib-cfg.mk instead. * nt/Makefile.in (AM_V_GEN, am__v_GEN_, am__v_GEN_0) (am__v_GEN_1, ${srcdir}/gnulib.mk): Remove. * nt/gnulib-cfg.mk: New file, which supersedes ... * nt/gnulib-modules-to-delete.cfg: ... this file, which is removed. * src/Makefile.in (ACLOCAL_INPUTS): Remove. (AUTOCONF_INPUTS): Merge ACLOCAL_INPUTS into it. ($(top_srcdir)/configure, ../config.status, config.in Makefile): Defer to parent Makefile.
2017-03-17 18:33:47 +00:00
ln *.in gnulib-cfg.mk ../${tempdir}/nt
2016-02-02 21:19:15 +00:00
ln mingw-cfg.site epaths.nt INSTALL.W64 ../${tempdir}/nt
ln ChangeLog.*[0-9] INSTALL README README.W32 ../${tempdir}/nt)
echo "Making links to 'nt/inc' and its subdirectories"
for f in `find nt/inc -type f -name '[a-z]*.h'`; do
ln $f $tempdir/$f
done
echo "Making links to 'nt/icons'"
(cd nt/icons
ln README [a-z]*.ico ../../${tempdir}/nt/icons
ln [a-z]*.cur ../../${tempdir}/nt/icons)
echo "Making links to 'msdos'"
(cd msdos
ln ChangeLog.*[0-9] INSTALL README emacs.ico emacs.pif ../${tempdir}/msdos
ln depfiles.bat inttypes.h ../${tempdir}/msdos
ln mainmake.v2 sed*.inp ../${tempdir}/msdos)
echo "Making links to 'nextstep'"
(cd nextstep
ln ChangeLog.*[0-9] README INSTALL Makefile.in ../${tempdir}/nextstep)
echo "Making links to 'nextstep/templates'"
Increase compartmentalization of Nextstep builds rules, and store Emacs version number in fewer versioned files. * configure.ac (ns_appsrc): Use relative names. (ns_frag): Remove. (Info-gnustep.plist, Emacs.desktop, Info.plist, InfoPlist.strings) (nextstep/Makefile): Generate these nextstep files. (SUBDIR_MAKEFILES): Add nextstep. * Makefile.in (clean, distclean, bootstrap-clean): Add nextstep. * make-dist (nextstep/templates): Add directory. (nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj): Remove. (nextstep/Cocoa/Emacs.base/Contents) (nextstep/GNUstep/Emacs.base/Resources): Update contents. * .bzrignore: Add some nextstep files. * admin/admin.el (set-version): No more need to set nextstep versions. (set-copyright): Update for moved nextstep files. * nextstep/Makefile.in: New file. * nextstep/templates: New directory. * nextstep/templates/Emacs.desktop.in, nextstep/templates/Info-gnustep.plist.in: * nextstep/templates/Info.plist.in, nextstep/templates/InfoPlist.strings.in: Move here from various Cocoa/, GNUstep/ locations. Let configure set the version number. * nextstep/Cocoa/Emacs.base/Contents/Info.plist: * nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj/InfoPlist.strings: * nextstep/GNUstep/Emacs.base/Resources/Info-gnustep.plist: * nextstep/GNUstep/Emacs.base/Resources/Emacs.desktop: Move to templates/. * nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj: Remove directory. * src/Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables. (ns_frag): Remove. (ns-app): Move here from ns.mk, and simplify. (clean): Simplify nextstep entry. * src/ns.mk: Remove file.
2012-09-16 18:49:00 +00:00
(cd nextstep/templates
2012-09-17 19:53:27 +00:00
ln Emacs.desktop.in Info-gnustep.plist.in Info.plist.in InfoPlist.strings.in ../../${tempdir}/nextstep/templates)
Increase compartmentalization of Nextstep builds rules, and store Emacs version number in fewer versioned files. * configure.ac (ns_appsrc): Use relative names. (ns_frag): Remove. (Info-gnustep.plist, Emacs.desktop, Info.plist, InfoPlist.strings) (nextstep/Makefile): Generate these nextstep files. (SUBDIR_MAKEFILES): Add nextstep. * Makefile.in (clean, distclean, bootstrap-clean): Add nextstep. * make-dist (nextstep/templates): Add directory. (nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj): Remove. (nextstep/Cocoa/Emacs.base/Contents) (nextstep/GNUstep/Emacs.base/Resources): Update contents. * .bzrignore: Add some nextstep files. * admin/admin.el (set-version): No more need to set nextstep versions. (set-copyright): Update for moved nextstep files. * nextstep/Makefile.in: New file. * nextstep/templates: New directory. * nextstep/templates/Emacs.desktop.in, nextstep/templates/Info-gnustep.plist.in: * nextstep/templates/Info.plist.in, nextstep/templates/InfoPlist.strings.in: Move here from various Cocoa/, GNUstep/ locations. Let configure set the version number. * nextstep/Cocoa/Emacs.base/Contents/Info.plist: * nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj/InfoPlist.strings: * nextstep/GNUstep/Emacs.base/Resources/Info-gnustep.plist: * nextstep/GNUstep/Emacs.base/Resources/Emacs.desktop: Move to templates/. * nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj: Remove directory. * src/Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables. (ns_frag): Remove. (ns-app): Move here from ns.mk, and simplify. (clean): Simplify nextstep entry. * src/ns.mk: Remove file.
2012-09-16 18:49:00 +00:00
echo "Making links to 'nextstep/Cocoa/Emacs.base/Contents'"
(cd nextstep/Cocoa/Emacs.base/Contents
Increase compartmentalization of Nextstep builds rules, and store Emacs version number in fewer versioned files. * configure.ac (ns_appsrc): Use relative names. (ns_frag): Remove. (Info-gnustep.plist, Emacs.desktop, Info.plist, InfoPlist.strings) (nextstep/Makefile): Generate these nextstep files. (SUBDIR_MAKEFILES): Add nextstep. * Makefile.in (clean, distclean, bootstrap-clean): Add nextstep. * make-dist (nextstep/templates): Add directory. (nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj): Remove. (nextstep/Cocoa/Emacs.base/Contents) (nextstep/GNUstep/Emacs.base/Resources): Update contents. * .bzrignore: Add some nextstep files. * admin/admin.el (set-version): No more need to set nextstep versions. (set-copyright): Update for moved nextstep files. * nextstep/Makefile.in: New file. * nextstep/templates: New directory. * nextstep/templates/Emacs.desktop.in, nextstep/templates/Info-gnustep.plist.in: * nextstep/templates/Info.plist.in, nextstep/templates/InfoPlist.strings.in: Move here from various Cocoa/, GNUstep/ locations. Let configure set the version number. * nextstep/Cocoa/Emacs.base/Contents/Info.plist: * nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj/InfoPlist.strings: * nextstep/GNUstep/Emacs.base/Resources/Info-gnustep.plist: * nextstep/GNUstep/Emacs.base/Resources/Emacs.desktop: Move to templates/. * nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj: Remove directory. * src/Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables. (ns_frag): Remove. (ns-app): Move here from ns.mk, and simplify. (clean): Simplify nextstep entry. * src/ns.mk: Remove file.
2012-09-16 18:49:00 +00:00
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/GNUstep/Emacs.base/Resources'"
(cd nextstep/GNUstep/Emacs.base/Resources
Increase compartmentalization of Nextstep builds rules, and store Emacs version number in fewer versioned files. * configure.ac (ns_appsrc): Use relative names. (ns_frag): Remove. (Info-gnustep.plist, Emacs.desktop, Info.plist, InfoPlist.strings) (nextstep/Makefile): Generate these nextstep files. (SUBDIR_MAKEFILES): Add nextstep. * Makefile.in (clean, distclean, bootstrap-clean): Add nextstep. * make-dist (nextstep/templates): Add directory. (nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj): Remove. (nextstep/Cocoa/Emacs.base/Contents) (nextstep/GNUstep/Emacs.base/Resources): Update contents. * .bzrignore: Add some nextstep files. * admin/admin.el (set-version): No more need to set nextstep versions. (set-copyright): Update for moved nextstep files. * nextstep/Makefile.in: New file. * nextstep/templates: New directory. * nextstep/templates/Emacs.desktop.in, nextstep/templates/Info-gnustep.plist.in: * nextstep/templates/Info.plist.in, nextstep/templates/InfoPlist.strings.in: Move here from various Cocoa/, GNUstep/ locations. Let configure set the version number. * nextstep/Cocoa/Emacs.base/Contents/Info.plist: * nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj/InfoPlist.strings: * nextstep/GNUstep/Emacs.base/Resources/Info-gnustep.plist: * nextstep/GNUstep/Emacs.base/Resources/Emacs.desktop: Move to templates/. * nextstep/Cocoa/Emacs.base/Contents/Resources/English.lproj: Remove directory. * src/Makefile.in (ns_appdir, ns_appbindir, ns_appsrc): Remove variables. (ns_frag): Remove. (ns-app): Move here from ns.mk, and simplify. (clean): Simplify nextstep entry. * src/ns.mk: Remove file.
2012-09-16 18:49:00 +00:00
ln README emacs.tiff ../../../../${tempdir}/nextstep/GNUstep/Emacs.base/Resources )
echo "Making links to 'oldXMenu'"
(cd oldXMenu
ln *.[ch] *.in *.mk ../${tempdir}/oldXMenu
ln README ChangeLog.*[0-9] ../${tempdir}/oldXMenu)
echo "Making links to 'lwlib'"
(cd lwlib
ln *.[ch] *.in *.mk ../${tempdir}/lwlib
ln README ChangeLog.*[0-9] ../${tempdir}/lwlib)
2013-11-11 01:00:03 +00:00
## 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 ! -name '*.log' ! -name a.out \
! -name '*.so' ! -name '*.dll' ! -name '*.o'
`; do
case $f in
*/Makefile) [ -f $f.in ] && 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
2010-12-11 02:30:29 +00:00
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
echo "Making links to 'info'"
ln `find info -type f -print` ${tempdir}/info
echo "Making links to 'doc/emacs'"
(cd doc/emacs
ln *.texi *.in ChangeLog.*[0-9] ../../${tempdir}/doc/emacs)
echo "Making links to 'doc/misc'"
(cd doc/misc
ln *.texi *.tex *.in gnus-news.el ChangeLog.*[0-9] \
../../${tempdir}/doc/misc)
echo "Making links to 'doc/lispref'"
(cd doc/lispref
ln *.texi *.in README ChangeLog.*[0-9] ../../${tempdir}/doc/lispref
ln spellfile ../../${tempdir}/doc/lispref
ln two-volume.make two-volume-cross-refs.txt ../../${tempdir}/doc/lispref)
echo "Making links to 'doc/lispintro'"
(cd doc/lispintro
ln *.texi *.in *.eps *.pdf ../../${tempdir}/doc/lispintro
ln README ChangeLog.*[0-9] ../../${tempdir}/doc/lispintro
cd ../../${tempdir}/doc/lispintro)
echo "Making links to 'doc/man'"
(cd doc/man
ln *.*[0-9] *.in ../../${tempdir}/doc/man
cd ../../${tempdir}/doc/man
rm -f emacs.1)
### 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 leim lib lib-src lisp lwlib msdos nt src; do
rm -f ${tempdir}/${subdir}/COPYING
cp COPYING ${tempdir}/${subdir}
done
if [ "${newer}" ]; then
printf '%s\n' "Removing files older than $newer"
## We remove .elc files unconditionally, on the theory that anyone picking
## up an incremental distribution already has a running Emacs to byte-compile
## them with.
find ${tempparent} \( -name '*.elc' -o ! -newer ${newer} \) -exec rm -f {} \;
fi
## Don't distribute backups, autosaves, etc.
echo "Removing unwanted files"
find ${tempparent} \( -name '*~' -o -name '#*#' -o -name '.*ignore' -o -name '=*' -o -name 'TAGS' \) -exec rm -f {} \;
if [ "${make_tar}" = yes ]; then
echo "Looking for $default_gzip"
found=0
temppath=`printf '%s\n' "$PATH" |
sed -e 's/^:/.:/' -e 's/::/:.:/g' -e 's/:$/:./' -e 's/:/ /g'
`
for dir in ${temppath}; do
[ -x ${dir}/$default_gzip ] || continue
found=1; break
done
if [ "$found" = "0" ]; then
echo "WARNING: '$default_gzip' not found, will not compress" >&2
default_gzip=cat
fi
case "${default_gzip}" in
bzip2) gzip_extension=.bz2 ;;
xz) gzip_extension=.xz ;;
gzip) gzip_extension=.gz ; default_gzip="gzip --best";;
*) gzip_extension= ;;
esac
echo "Creating tar file"
taropt=
[ "$verbose" = "yes" ] && taropt=v
(cd ${tempparent} ; tar c${taropt}f - ${emacsname} ) \
| ${default_gzip} \
> ${emacsname}.tar${gzip_extension}
fi
if [ "${clean_up}" != yes ]; then
(cd ${tempparent}; mv ${emacsname} ..)
rm -rf ${tempparent}
fi
### make-dist ends here