| 1 |
#!/bin/sh |
|---|
| 2 |
|
|---|
| 3 |
|
|---|
| 4 |
|
|---|
| 5 |
|
|---|
| 6 |
|
|---|
| 7 |
|
|---|
| 8 |
|
|---|
| 9 |
|
|---|
| 10 |
|
|---|
| 11 |
|
|---|
| 12 |
|
|---|
| 13 |
|
|---|
| 14 |
|
|---|
| 15 |
|
|---|
| 16 |
|
|---|
| 17 |
|
|---|
| 18 |
|
|---|
| 19 |
|
|---|
| 20 |
|
|---|
| 21 |
|
|---|
| 22 |
|
|---|
| 23 |
|
|---|
| 24 |
|
|---|
| 25 |
|
|---|
| 26 |
|
|---|
| 27 |
|
|---|
| 28 |
progname="$0" |
|---|
| 29 |
|
|---|
| 30 |
|
|---|
| 31 |
|
|---|
| 32 |
|
|---|
| 33 |
|
|---|
| 34 |
|
|---|
| 35 |
|
|---|
| 36 |
LANGUAGE=C |
|---|
| 37 |
LC_ALL=C |
|---|
| 38 |
LC_MESSAGES= |
|---|
| 39 |
LANG= |
|---|
| 40 |
export LANGUAGE LC_ALL LC_MESSAGES LANG |
|---|
| 41 |
|
|---|
| 42 |
|
|---|
| 43 |
umask 0 |
|---|
| 44 |
|
|---|
| 45 |
update=yes |
|---|
| 46 |
check=yes |
|---|
| 47 |
clean_up=no |
|---|
| 48 |
make_tar=no |
|---|
| 49 |
newer="" |
|---|
| 50 |
|
|---|
| 51 |
while [ $ |
|---|
| 52 |
case "$1" in |
|---|
| 53 |
|
|---|
| 54 |
|
|---|
| 55 |
"--clean-up" ) |
|---|
| 56 |
clean_up=yes |
|---|
| 57 |
;; |
|---|
| 58 |
|
|---|
| 59 |
"--tar" ) |
|---|
| 60 |
make_tar=yes |
|---|
| 61 |
;; |
|---|
| 62 |
|
|---|
| 63 |
"--no-update" ) |
|---|
| 64 |
update=no |
|---|
| 65 |
;; |
|---|
| 66 |
|
|---|
| 67 |
"--no-check" ) |
|---|
| 68 |
check=no |
|---|
| 69 |
;; |
|---|
| 70 |
|
|---|
| 71 |
|
|---|
| 72 |
|
|---|
| 73 |
"--newer") |
|---|
| 74 |
newer="$2" |
|---|
| 75 |
new_extension=".new" |
|---|
| 76 |
shift |
|---|
| 77 |
;; |
|---|
| 78 |
|
|---|
| 79 |
|
|---|
| 80 |
"--compress") |
|---|
| 81 |
default_gzip="compress" |
|---|
| 82 |
;; |
|---|
| 83 |
|
|---|
| 84 |
"--snapshot") |
|---|
| 85 |
clean_up=yes |
|---|
| 86 |
make_tar=yes |
|---|
| 87 |
update=no |
|---|
| 88 |
check=no |
|---|
| 89 |
;; |
|---|
| 90 |
|
|---|
| 91 |
"--help") |
|---|
| 92 |
echo "Usage: ${progname} [options]" |
|---|
| 93 |
echo "" |
|---|
| 94 |
echo " --clean-up delete staging directories when done" |
|---|
| 95 |
echo " --compress use compress instead of gzip" |
|---|
| 96 |
echo " --newer=TIME don't include files older than TIME" |
|---|
| 97 |
echo " --no-check don't check for bad file names etc." |
|---|
| 98 |
echo " --no-update don't recompile or do analogous things" |
|---|
| 99 |
echo " --snapshot same as --clean-up --no-update --tar --no-check" |
|---|
| 100 |
echo " --tar make a tar file" |
|---|
| 101 |
echo "" |
|---|
| 102 |
exit 0 |
|---|
| 103 |
;; |
|---|
| 104 |
|
|---|
| 105 |
* ) |
|---|
| 106 |
echo "${progname}: Unrecognized argument: $1" >&2 |
|---|
| 107 |
exit 1 |
|---|
| 108 |
;; |
|---|
| 109 |
esac |
|---|
| 110 |
shift |
|---|
| 111 |
done |
|---|
| 112 |
|
|---|
| 113 |
|
|---|
| 114 |
if [ ! -d src -o ! -f src/lisp.h -o ! -d lisp -o ! -f lisp/version.el ]; then |
|---|
| 115 |
echo "${progname}: Can't find \`src/lisp.h' and \`lisp/version.el'." >&2 |
|---|
| 116 |
echo "${progname} must be run in the top directory of the Emacs" >&2 |
|---|
| 117 |
echo "distribution tree. cd to that directory and try again." >&2 |
|---|
| 118 |
exit 1 |
|---|
| 119 |
fi |
|---|
| 120 |
|
|---|
| 121 |
|
|---|
| 122 |
|
|---|
| 123 |
|
|---|
| 124 |
if [ $update = yes ]; |
|---|
| 125 |
then |
|---|
| 126 |
unset EMACS_UNIBYTE |
|---|
| 127 |
if [ -f src/emacs ]; |
|---|
| 128 |
then |
|---|
| 129 |
EMACS=`pwd`/src/emacs |
|---|
| 130 |
else |
|---|
| 131 |
if [ "x$EMACS" = "x" -o "x$EMACS" = "xt" ]; |
|---|
| 132 |
then |
|---|
| 133 |
echo You must specify the EMACS environment variable 2>&1 |
|---|
| 134 |
exit 1 |
|---|
| 135 |
fi |
|---|
| 136 |
fi |
|---|
| 137 |
fi |
|---|
| 138 |
|
|---|
| 139 |
|
|---|
| 140 |
shortversion=`grep 'defconst[ ]*emacs-version' lisp/version.el \ |
|---|
| 141 |
| sed -e 's/^.*"\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/'` |
|---|
| 142 |
version=`grep 'defconst[ ]*emacs-version' lisp/version.el \ |
|---|
| 143 |
| sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'` |
|---|
| 144 |
if [ ! "${version}" ]; then |
|---|
| 145 |
echo "${progname}: can't find current Emacs version in \`./lisp/version.el'" >&2 |
|---|
| 146 |
exit 1 |
|---|
| 147 |
fi |
|---|
| 148 |
|
|---|
| 149 |
echo Version numbers are $version and $shortversion |
|---|
| 150 |
|
|---|
| 151 |
if [ $update = yes ]; |
|---|
| 152 |
then |
|---|
| 153 |
if grep -s "@set EMACSVER *${shortversion}" ./man/emacs.texi > /dev/null; then |
|---|
| 154 |
true |
|---|
| 155 |
else |
|---|
| 156 |
echo "You must update the version number in \`./man/emacs.texi'" |
|---|
| 157 |
sleep 5 |
|---|
| 158 |
fi |
|---|
| 159 |
fi |
|---|
| 160 |
|
|---|
| 161 |
### Make sure we don't already have a directory emacs-${version}. |
|---|
| 162 |
|
|---|
| 163 |
emacsname="emacs-${version}${new_extension}" |
|---|
| 164 |
|
|---|
| 165 |
if [ -d ${emacsname} ] |
|---|
| 166 |
then |
|---|
| 167 |
echo Directory "${emacsname}" already exists >&2 |
|---|
| 168 |
exit 1 |
|---|
| 169 |
fi |
|---|
| 170 |
|
|---|
| 171 |
### Make sure the subdirectory is available. |
|---|
| 172 |
tempparent="make-dist.tmp.$$" |
|---|
| 173 |
if [ -d ${tempparent} ]; then |
|---|
| 174 |
echo "${progname}: staging directory \`${tempparent}' already exists. |
|---|
| 175 |
Perhaps a previous invocation of \`${progname}' failed to clean up after |
|---|
| 176 |
itself. Check that directories whose names are of the form |
|---|
| 177 |
\`make-dist.tmp.NNNNN' don't contain any important information, remove |
|---|
| 178 |
them, and try again." >&2 |
|---|
| 179 |
exit 1 |
|---|
| 180 |
fi |
|---|
| 181 |
|
|---|
| 182 |
### Find where to run Emacs. |
|---|
| 183 |
if [ $check = yes ]; |
|---|
| 184 |
then |
|---|
| 185 |
### Check for .elc files with no corresponding .el file. |
|---|
| 186 |
ls -1 lisp/[a-z]*.el lisp/[a-z]*/[a-z]*.el \ |
|---|
| 187 |
leim/[a-z]*/[a-z]*.el | sed 's/\.el$/.elc/' > /tmp/el |
|---|
| 188 |
ls -1 lisp/[a-z]*.elc lisp/[a-z]*/[a-z]*.elc \ |
|---|
| 189 |
leim/[a-z]*/[a-z]*.elc > /tmp/elc |
|---|
| 190 |
bogosities="`comm -13 /tmp/el /tmp/elc`" |
|---|
| 191 |
if [ "${bogosities}" != "" ]; then |
|---|
| 192 |
echo "The following .elc files have no corresponding .el files:" |
|---|
| 193 |
echo "${bogosities}" |
|---|
| 194 |
fi |
|---|
| 195 |
rm -f /tmp/el /tmp/elc |
|---|
| 196 |
|
|---|
| 197 |
### Check for .el files with no corresponding .elc file. |
|---|
| 198 |
(cd lisp; ls -1 [a-z]*.el [a-z]*/[a-z]*.el ; \ |
|---|
| 199 |
cd ../leim; ls -1 [a-z]*/[a-z]*.el) > /tmp/el |
|---|
| 200 |
(cd lisp; ls -1 [a-z]*.elc [a-z]*/[a-z]*.elc; \ |
|---|
| 201 |
cd ../leim; ls -1 [a-z]*/[a-z]*.elc) | sed 's/\.elc$/.el/' > /tmp/elc |
|---|
| 202 |
losers="`comm -23 /tmp/el /tmp/elc`" |
|---|
| 203 |
bogosities= |
|---|
| 204 |
for file in $losers; do |
|---|
| 205 |
file1=`echo $file | sed -e "s|.*/||"` |
|---|
| 206 |
if ! sed -n -e "/^DONTCOMPILE/,/[^\\]\$/p" lisp/Makefile.in | |
|---|
| 207 |
grep -q "[ ]$file1\($\| \)"; then |
|---|
| 208 |
case $file in |
|---|
| 209 |
site-init.el | site-load.el | site-start.el | default.el) |
|---|
| 210 |
;; |
|---|
| 211 |
term/*) |
|---|
| 212 |
;; |
|---|
| 213 |
*) |
|---|
| 214 |
bogosities="$file $bogosities" |
|---|
| 215 |
;; |
|---|
| 216 |
esac |
|---|
| 217 |
fi |
|---|
| 218 |
done |
|---|
| 219 |
if [ x"${bogosities}" != x"" ]; then |
|---|
| 220 |
echo "The following .el files have no corresponding .elc files:" |
|---|
| 221 |
echo "${bogosities}" |
|---|
| 222 |
fi |
|---|
| 223 |
rm -f /tmp/el /tmp/elc |
|---|
| 224 |
|
|---|
| 225 |
### Check for .el files that would overflow the 14-char limit if compiled. |
|---|
| 226 |
long=`find lisp leim -name '[a-zA-Z0-9]??????????*.el' -print` |
|---|
| 227 |
if [ "$long" != "" ]; then |
|---|
| 228 |
echo "The following .el file names are too long:" |
|---|
| 229 |
echo "$long" |
|---|
| 230 |
fi |
|---|
| 231 |
fi |
|---|
| 232 |
|
|---|
| 233 |
### Make sure configure is newer than configure.in. |
|---|
| 234 |
if [ "x`ls -t configure configure.in | sed q`" != "xconfigure" ]; then |
|---|
| 235 |
echo "\`./configure.in' is newer than \`./configure'" >&2 |
|---|
| 236 |
echo "Running autoconf" >&2 |
|---|
| 237 |
autoconf || { x=$?; echo Autoconf FAILED! >&2; exit $x; } |
|---|
| 238 |
fi |
|---|
| 239 |
|
|---|
| 240 |
if [ $update = yes ]; |
|---|
| 241 |
then |
|---|
| 242 |
echo "Updating Info files" |
|---|
| 243 |
(cd man; make -f Makefile.in srcdir=. info) |
|---|
| 244 |
|
|---|
| 245 |
echo "Updating finder, custom and autoload data" |
|---|
| 246 |
(cd lisp; make updates EMACS="$EMACS") |
|---|
| 247 |
|
|---|
| 248 |
if test -f leim/leim-list.el; then |
|---|
| 249 |
echo "Updating leim-list.el" |
|---|
| 250 |
(cd leim; make leim-list.el EMACS="$EMACS") |
|---|
| 251 |
fi |
|---|
| 252 |
|
|---|
| 253 |
echo "Recompiling Lisp files" |
|---|
| 254 |
$EMACS -batch -f batch-byte-recompile-directory lisp leim |
|---|
| 255 |
fi |
|---|
| 256 |
|
|---|
| 257 |
echo "Making lisp/MANIFEST" |
|---|
| 258 |
|
|---|
| 259 |
(cd lisp; |
|---|
| 260 |
files=`echo [!=]*.el | sed -e 's/ subdirs.el / /' -e 's/ default.el / /'` |
|---|
| 261 |
for dir in [!=]*; do |
|---|
| 262 |
if [ -d $dir ] && [ $dir != term ] && [ $dir != CVS ] && [ $dir != RCS ] |
|---|
| 263 |
then |
|---|
| 264 |
echo $dir |
|---|
| 265 |
thisdir=`echo $dir/[!=]*.el | sed -e 's/ subdirs.el / /'` |
|---|
| 266 |
files="$files $thisdir" |
|---|
| 267 |
fi |
|---|
| 268 |
done |
|---|
| 269 |
for file in $files |
|---|
| 270 |
do sed -n 's/^;;; //p; q' $file |
|---|
| 271 |
done | sort > MANIFEST) |
|---|
| 272 |
|
|---|
| 273 |
echo "Creating staging directory: \`${tempparent}'" |
|---|
| 274 |
|
|---|
| 275 |
mkdir ${tempparent} |
|---|
| 276 |
tempdir="${tempparent}/${emacsname}" |
|---|
| 277 |
|
|---|
| 278 |
### This trap ensures that the staging directory will be cleaned up even |
|---|
| 279 |
### when the script is interrupted in mid-career. |
|---|
| 280 |
if [ "${clean_up}" = yes ]; then |
|---|
| 281 |
trap "echo 'Interrupted...cleaning up the staging directory'; rm -rf ${tempparent}; exit 1" 1 2 15 |
|---|
| 282 |
fi |
|---|
| 283 |
|
|---|
| 284 |
echo "Creating top directory: \`${tempdir}'" |
|---|
| 285 |
mkdir ${tempdir} |
|---|
| 286 |
|
|---|
| 287 |
### We copy in the top-level files before creating the subdirectories in |
|---|
| 288 |
### hopes that this will make the top-level files appear first in the |
|---|
| 289 |
### tar file; this means that people can start reading the INSTALL and |
|---|
| 290 |
### README while the rest of the tar file is still unpacking. Whoopee. |
|---|
| 291 |
echo "Making links to top-level files" |
|---|
| 292 |
ln AUTHORS FTP INSTALL README BUGS move-if-change ${tempdir} |
|---|
| 293 |
ln ChangeLog Makefile.in configure configure.in aclocal.m4 ${tempdir} |
|---|
| 294 |
ln config.bat make-dist update-subdirs vpath.sed ${tempdir} |
|---|
| 295 |
### Copy these files; they're cross-filesystem symlinks. |
|---|
| 296 |
cp mkinstalldirs ${tempdir} |
|---|
| 297 |
cp config.sub ${tempdir} |
|---|
| 298 |
cp config.guess ${tempdir} |
|---|
| 299 |
cp install-sh ${tempdir} |
|---|
| 300 |
|
|---|
| 301 |
echo "Updating version number in README" |
|---|
| 302 |
(cd ${tempdir} |
|---|
| 303 |
awk \ |
|---|
| 304 |
'$1 " " $2 " " $3 " " $4 " " $5 == "This directory tree holds version" { $6 = version; print $0 } |
|---|
| 305 |
$1 " " $2 " " $3 " " $4 " " $5 != "This directory tree holds version"' \ |
|---|
| 306 |
version=${version} README > tmp.README |
|---|
| 307 |
mv -f tmp.README README) |
|---|
| 308 |
|
|---|
| 309 |
|
|---|
| 310 |
echo "Creating subdirectories" |
|---|
| 311 |
for subdir in lisp site-lisp \ |
|---|
| 312 |
leim real-leim real-leim/CXTERM-DIC real-leim/MISC-DIC \ |
|---|
| 313 |
real-leim/SKK-DIC real-leim/ja-dic real-leim/quail \ |
|---|
| 314 |
src src/m src/s src/bitmaps lib-src oldXMenu lwlib \ |
|---|
| 315 |
nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \ |
|---|
| 316 |
etc etc/e lock info man msdos vms mac mac/inc mac/inc/sys \ |
|---|
| 317 |
mac/src |
|---|
| 318 |
do |
|---|
| 319 |
echo " ${tempdir}/${subdir}" |
|---|
| 320 |
mkdir ${tempdir}/${subdir} |
|---|
| 321 |
done |
|---|
| 322 |
|
|---|
| 323 |
echo "Initializing \`leim' subdirectory" |
|---|
| 324 |
cp noleim-Makefile.in ${tempdir}/leim/Makefile.in |
|---|
| 325 |
|
|---|
| 326 |
echo "Making links to \`lisp' and its subdirectories" |
|---|
| 327 |
### Don't distribute TAGS, =*.el files, site-init.el, site-load.el, or default.el. |
|---|
| 328 |
(cd lisp |
|---|
| 329 |
ln [a-zA-Z]*.el ../${tempdir}/lisp |
|---|
| 330 |
ln [a-zA-Z]*.elc ../${tempdir}/lisp |
|---|
| 331 |
ln [a-zA-Z]*.dat ../${tempdir}/lisp |
|---|
| 332 |
for img in [a-zA-Z]*.xpm [a-zA-Z]*.xbm [a-zA-Z]*.pbm; do |
|---|
| 333 |
# If there are no images, the shell won't expand the pattern. |
|---|
| 334 |
if [ -f $img ]; then |
|---|
| 335 |
ln $img ../${tempdir}/lisp |
|---|
| 336 |
fi |
|---|
| 337 |
done |
|---|
| 338 |
## simula.el doesn't keep abbreviations in simula.defns any more. |
|---|
| 339 |
## ln [a-zA-Z]*.defns ../${tempdir}/lisp |
|---|
| 340 |
ln ChangeLog Makefile.in makefile.nt ChangeLog.? ../${tempdir}/lisp |
|---|
| 341 |
ln makefile.w32-in ../${tempdir}/lisp |
|---|
| 342 |
test -f README && ln README ../${tempdir}/lisp |
|---|
| 343 |
(cd ../${tempdir}/lisp |
|---|
| 344 |
rm -f TAGS =* |
|---|
| 345 |
rm -f site-init site-init.el site-init.elc |
|---|
| 346 |
rm -f site-load site-load.el site-load.elc |
|---|
| 347 |
rm -f site-start site-start.el site-start.elc |
|---|
| 348 |
rm -f default default.el default.elc |
|---|
| 349 |
) |
|---|
| 350 |
|
|---|
| 351 |
## Find all subdirs of lisp dir |
|---|
| 352 |
for file in `find . -type d -print`; do |
|---|
| 353 |
case $file in |
|---|
| 354 |
. | .. | */Old | */CVS | */RCS | */=*) |
|---|
| 355 |
;; |
|---|
| 356 |
*) |
|---|
| 357 |
if [ -d $file ]; then |
|---|
| 358 |
subdirs="$file $subdirs" |
|---|
| 359 |
fi |
|---|
| 360 |
;; |
|---|
| 361 |
esac |
|---|
| 362 |
done |
|---|
| 363 |
|
|---|
| 364 |
for file in $subdirs; do |
|---|
| 365 |
echo " lisp/$file" |
|---|
| 366 |
mkdir ../${tempdir}/lisp/$file |
|---|
| 367 |
ln $file/[a-zA-Z0-9]*.el ../${tempdir}/lisp/$file |
|---|
| 368 |
ln $file/[a-zA-Z0-9]*.elc ../${tempdir}/lisp/$file |
|---|
| 369 |
for img in $file/[a-zA-Z]*.xpm $file/[a-zA-Z]*.xbm $file/[a-zA-Z]*.pbm; do |
|---|
| 370 |
if [ -f $img ]; then |
|---|
| 371 |
ln $img ../${tempdir}/lisp/$file |
|---|
| 372 |
fi |
|---|
| 373 |
done |
|---|
| 374 |
if [ -f $file/README ]; then |
|---|
| 375 |
ln $file/README ../${tempdir}/lisp/$file |
|---|
| 376 |
fi |
|---|
| 377 |
|
|---|
| 378 |
if [ -f $file/ChangeLog ]; then |
|---|
| 379 |
ln $file/ChangeLog ../${tempdir}/lisp/$file |
|---|
| 380 |
for f in $file/ChangeLog.[0-9]; do |
|---|
| 381 |
if [ -f $f ]; then |
|---|
| 382 |
ln $f ../${tempdir}/lisp/$file |
|---|
| 383 |
fi |
|---|
| 384 |
done |
|---|
| 385 |
fi |
|---|
| 386 |
done ) |
|---|
| 387 |
|
|---|
| 388 |
### Don't distribute an empty calc directory, present due to CVS |
|---|
| 389 |
### misfeatures. |
|---|
| 390 |
(cd ./${tempdir}/lisp |
|---|
| 391 |
rm -rf calc |
|---|
| 392 |
) |
|---|
| 393 |
|
|---|
| 394 |
echo "Making links to \`leim' and its subdirectories for the LEIM distribution" |
|---|
| 395 |
### Don't distribute TAGS, or =*.el files. |
|---|
| 396 |
(cd leim |
|---|
| 397 |
ln makefile.nt makefile.w32-in ../${tempdir}/real-leim |
|---|
| 398 |
ln ChangeLog README ../${tempdir}/real-leim |
|---|
| 399 |
|
|---|
| 400 |
ln CXTERM-DIC/*.tit ../${tempdir}/real-leim/CXTERM-DIC |
|---|
| 401 |
ln SKK-DIC/README SKK-DIC/SKK-JISYO.L ../${tempdir}/real-leim/SKK-DIC |
|---|
| 402 |
ln MISC-DIC/*.* ../${tempdir}/real-leim/MISC-DIC |
|---|
| 403 |
ln ja-dic/*.el ja-dic/*.elc ../${tempdir}/real-leim/ja-dic |
|---|
| 404 |
ln Makefile.in ../${tempdir}/real-leim/Makefile.in |
|---|
| 405 |
ln quail/[a-z]*.el quail/[a-z]*.elc ../${tempdir}/real-leim/quail |
|---|
| 406 |
rm -f ../${tempdir}/real-leim/quail/quick-b5.* |
|---|
| 407 |
rm -f ../${tempdir}/real-leim/quail/quick-cns.* |
|---|
| 408 |
rm -f ../${tempdir}/real-leim/quail/tsang-b5.* |
|---|
| 409 |
rm -f ../${tempdir}/real-leim/quail/tsang-cns.* |
|---|
| 410 |
|
|---|
| 411 |
cd ../${tempdir}/real-leim |
|---|
| 412 |
rm -f TAGS =* */=*) |
|---|
| 413 |
|
|---|
| 414 |
### Move the real-leim directory outside of Emacs proper. |
|---|
| 415 |
(cd ${tempparent} |
|---|
| 416 |
mkdir ${emacsname}-leim |
|---|
| 417 |
mkdir ${emacsname}-leim/${emacsname} |
|---|
| 418 |
mv ${emacsname}/real-leim ${emacsname}-leim/${emacsname}/leim) |
|---|
| 419 |
|
|---|
| 420 |
echo "Making links to \`src'" |
|---|
| 421 |
### Don't distribute =*.[ch] files, or the configured versions of |
|---|
| 422 |
### config.in, paths.in, or Makefile.in, or TAGS. |
|---|
| 423 |
(cd src |
|---|
| 424 |
echo " (It is ok if ln fails in some cases.)" |
|---|
| 425 |
ln [a-zA-Z]*.c ../${tempdir}/src |
|---|
| 426 |
ln [a-zA-Z]*.h ../${tempdir}/src |
|---|
| 427 |
ln [a-zA-Z]*.s ../${tempdir}/src |
|---|
| 428 |
ln [a-zA-Z]*.in ../${tempdir}/src |
|---|
| 429 |
ln [a-zA-Z]*.opt ../${tempdir}/src |
|---|
| 430 |
## If we ended up with a symlink, or if we did not get anything |
|---|
| 431 |
## due to a cross-device symlink, copy the file. |
|---|
| 432 |
for file in [a-zA-Z]*.[hcs] [a-zA-Z]*.in [a-zA-Z]*.opt; do |
|---|
| 433 |
if test -f ../${tempdir}/src/$file; then |
|---|
| 434 |
# test -f appears to succeed for a symlink |
|---|
| 435 |
if test -L ../${tempdir}/src/$file; then |
|---|
| 436 |
rm ../${tempdir}/src/$file |
|---|
| 437 |
cp -p $file ../${tempdir}/src |
|---|
| 438 |
chmod a-w ../${tempdir}/src/$file |
|---|
| 439 |
fi |
|---|
| 440 |
else |
|---|
| 441 |
rm ../${tempdir}/src/$file |
|---|
| 442 |
cp -p $file ../${tempdir}/src |
|---|
| 443 |
chmod a-w ../${tempdir}/src/$file |
|---|
| 444 |
fi |
|---|
| 445 |
done |
|---|
| 446 |
ln README ChangeLog ChangeLog.*[0-9] ../${tempdir}/src |
|---|
| 447 |
ln makefile.nt makefile.w32-in vms-pp.trans ../${tempdir}/src |
|---|
| 448 |
ln .gdbinit .dbxinit ../${tempdir}/src |
|---|
| 449 |
cd ../${tempdir}/src |
|---|
| 450 |
rm -f config.h epaths.h Makefile Makefile.c |
|---|
| 451 |
rm -f =* TAGS) |
|---|
| 452 |
|
|---|
| 453 |
echo "Making links to \`src/bitmaps'" |
|---|
| 454 |
(cd src/bitmaps |
|---|
| 455 |
ln README *.xbm ../../${tempdir}/src/bitmaps) |
|---|
| 456 |
|
|---|
| 457 |
echo "Making links to \`src/m'" |
|---|
| 458 |
(cd src/m |
|---|
| 459 |
# We call files for miscellaneous input (to linker etc) .inp. |
|---|
| 460 |
ln README [a-zA-Z0-9]*.h *.inp ../../${tempdir}/src/m) |
|---|
| 461 |
|
|---|
| 462 |
echo "Making links to \`src/s'" |
|---|
| 463 |
(cd src/s |
|---|
| 464 |
ln README [a-zA-Z0-9]*.h ../../${tempdir}/src/s) |
|---|
| 465 |
|
|---|
| 466 |
echo "Making links to \`lib-src'" |
|---|
| 467 |
(cd lib-src |
|---|
| 468 |
ln [a-zA-Z]*.[chy] ../${tempdir}/lib-src |
|---|
| 469 |
ln ChangeLog Makefile.in README testfile vcdiff ../${tempdir}/lib-src |
|---|
| 470 |
ln grep-changelog rcs2log rcs-checkin makefile.nt ../${tempdir}/lib-src |
|---|
| 471 |
ln makefile.w32-in ../${tempdir}/lib-src |
|---|
| 472 |
## If we ended up with a symlink, or if we did not get anything |
|---|
| 473 |
## due to a cross-device symlink, copy the file. |
|---|
| 474 |
for file in [a-zA-Z]*.[chy]; do |
|---|
| 475 |
if test -f ../${tempdir}/lib-src/$file; then |
|---|
| 476 |
# test -f appears to succeed for a symlink |
|---|
| 477 |
if test -L ../${tempdir}/lib-src/$file; then |
|---|
| 478 |
rm ../${tempdir}/lib-src/$file |
|---|
| 479 |
cp $file ../${tempdir}/lib-src |
|---|
| 480 |
chmod a-w ../${tempdir}/lib-src/$file |
|---|
| 481 |
fi |
|---|
| 482 |
else |
|---|
| 483 |
rm ../${tempdir}/lib-src/$file |
|---|
| 484 |
cp $file ../${tempdir}/lib-src |
|---|
| 485 |
chmod a-w ../${tempdir}/lib-src/$file |
|---|
| 486 |
fi |
|---|
| 487 |
done |
|---|
| 488 |
cd ../${tempdir}/lib-src |
|---|
| 489 |
rm -f Makefile.c |
|---|
| 490 |
rm -f =* TAGS) |
|---|
| 491 |
|
|---|
| 492 |
echo "Making links to \`nt'" |
|---|
| 493 |
(cd nt |
|---|
| 494 |
ln emacs.rc config.nt [a-z]*.in [a-z]*.c ../${tempdir}/nt |
|---|
| 495 |
ln _emacs nmake.defs gmake.defs subdirs.el ../${tempdir}/nt |
|---|
| 496 |
ln [a-z]*.bat [a-z]*.h makefile.def makefile.nt ../${tempdir}/nt |
|---|
| 497 |
ln TODO ChangeLog INSTALL README makefile.w32-in ../${tempdir}/nt) |
|---|
| 498 |
|
|---|
| 499 |
echo "Making links to \`nt/inc'" |
|---|
| 500 |
(cd nt/inc |
|---|
| 501 |
ln [a-z]*.h ../../${tempdir}/nt/inc) |
|---|
| 502 |
|
|---|
| 503 |
echo "Making links to \`nt/inc/sys'" |
|---|
| 504 |
(cd nt/inc/sys |
|---|
| 505 |
ln [a-z]*.h ../../../${tempdir}/nt/inc/sys) |
|---|
| 506 |
|
|---|
| 507 |
echo "Making links to \`nt/inc/arpa'" |
|---|
| 508 |
(cd nt/inc/arpa |
|---|
| 509 |
ln [a-z]*.h ../../../${tempdir}/nt/inc/arpa) |
|---|
| 510 |
|
|---|
| 511 |
echo "Making links to \`nt/inc/netinet'" |
|---|
| 512 |
(cd nt/inc/netinet |
|---|
| 513 |
ln [a-z]*.h ../../../${tempdir}/nt/inc/netinet) |
|---|
| 514 |
|
|---|
| 515 |
echo "Making links to \`nt/icons'" |
|---|
| 516 |
(cd nt/icons |
|---|
| 517 |
ln [a-z]*.ico ../../${tempdir}/nt/icons) |
|---|
| 518 |
|
|---|
| 519 |
echo "Making links to \`mac'" |
|---|
| 520 |
(cd mac |
|---|
| 521 |
ln ChangeLog INSTALL README *.xml *.MPW ../${tempdir}/mac) |
|---|
| 522 |
|
|---|
| 523 |
echo "Making links to \`mac/inc'" |
|---|
| 524 |
(cd mac/inc |
|---|
| 525 |
ln [a-z]*.h ../../${tempdir}/mac/inc) |
|---|
| 526 |
|
|---|
| 527 |
echo "Making links to \`mac/inc/sys'" |
|---|
| 528 |
(cd mac/inc/sys |
|---|
| 529 |
ln [a-z]*.h ../../../${tempdir}/mac/inc/sys) |
|---|
| 530 |
|
|---|
| 531 |
echo "Making links to \`mac/src'" |
|---|
| 532 |
(cd mac/src |
|---|
| 533 |
ln [a-z]*.c *.r ../../${tempdir}/mac/src) |
|---|
| 534 |
|
|---|
| 535 |
echo "Making links to \`msdos'" |
|---|
| 536 |
(cd msdos |
|---|
| 537 |
ln ChangeLog emacs.ico emacs.pif ../${tempdir}/msdos |
|---|
| 538 |
ln is_exec.c sigaction.c mainmake mainmake.v2 sed*.inp ../${tempdir}/msdos |
|---|
| 539 |
cd ../${tempdir}/msdos |
|---|
| 540 |
rm -f =*) |
|---|
| 541 |
|
|---|
| 542 |
echo "Making links to \`oldXMenu'" |
|---|
| 543 |
(cd oldXMenu |
|---|
| 544 |
ln *.c *.h *.in ../${tempdir}/oldXMenu |
|---|
| 545 |
ln README Imakefile ChangeLog ../${tempdir}/oldXMenu |
|---|
| 546 |
ln compile.com descrip.mms ../${tempdir}/oldXMenu) |
|---|
| 547 |
|
|---|
| 548 |
echo "Making links to \`lwlib'" |
|---|
| 549 |
(cd lwlib |
|---|
| 550 |
ln *.c *.h *.in ../${tempdir}/lwlib |
|---|
| 551 |
ln README Imakefile ChangeLog ../${tempdir}/lwlib |
|---|
| 552 |
cd ../${tempdir}/lwlib |
|---|
| 553 |
rm -f lwlib-Xol*) |
|---|
| 554 |
|
|---|
| 555 |
echo "Making links to \`etc'" |
|---|
| 556 |
### Don't distribute = files, TAGS, DOC files, backups, autosaves, or |
|---|
| 557 |
### tex litter. |
|---|
| 558 |
(cd etc |
|---|
| 559 |
files=`ls -d * | grep -v CVS | grep -v RCS | grep -v 'Old' | grep -v '^e$'` |
|---|
| 560 |
ln $files ../${tempdir}/etc |
|---|
| 561 |
## If we ended up with a symlink, or if we did not get anything |
|---|
| 562 |
## due to a cross-device symlink, copy the file. |
|---|
| 563 |
for file in $files; do |
|---|
| 564 |
if test -f ../${tempdir}/etc/$file; then |
|---|
| 565 |
# test -f appears to succeed for a symlink |
|---|
| 566 |
if test -L ../${tempdir}/etc/$file; then |
|---|
| 567 |
rm ../${tempdir}/etc/$file |
|---|
| 568 |
cp $file ../${tempdir}/etc |
|---|
| 569 |
chmod a-w ../${tempdir}/etc/$file |
|---|
| 570 |
fi |
|---|
| 571 |
else |
|---|
| 572 |
rm ../${tempdir}/etc/$file |
|---|
| 573 |
cp $file ../${tempdir}/etc |
|---|
| 574 |
chmod a-w ../${tempdir}/etc/$file |
|---|
| 575 |
fi |
|---|
| 576 |
done |
|---|
| 577 |
cd ../${tempdir}/etc |
|---|
| 578 |
rm -f fns*.el |
|---|
| 579 |
rm -f DOC* *~ \#*\# *.dvi *.log *.orig *.rej *,v =* core |
|---|
| 580 |
rm -f TAGS) |
|---|
| 581 |
|
|---|
| 582 |
echo "Making links to \`etc/e'" |
|---|
| 583 |
(cd etc/e |
|---|
| 584 |
ln `ls -d * | grep -v CVS | grep -v RCS` ../../${tempdir}/etc/e |
|---|
| 585 |
cd ../../${tempdir}/etc/e |
|---|
| 586 |
rm -f *~ \#*\# *,v =* core) |
|---|
| 587 |
|
|---|
| 588 |
echo "Making links to \`info'" |
|---|
| 589 |
# Don't distribute backups or autosaves. |
|---|
| 590 |
(cd info |
|---|
| 591 |
ln `find . -type f -print | grep -v CVS | grep -v RCS | grep -v cvsignore` ../${tempdir}/info |
|---|
| 592 |
#ln [a-zA-Z]* ../${tempdir}/info |
|---|
| 593 |
cd ../${tempdir}/info |
|---|
| 594 |
# Avoid an error when expanding the wildcards later. |
|---|
| 595 |
ln emacs dummy~ ; ln emacs \#dummy\# |
|---|
| 596 |
rm -f *~ \#*\# core) |
|---|
| 597 |
|
|---|
| 598 |
echo "Making links to \`man'" |
|---|
| 599 |
(cd man |
|---|
| 600 |
ln *.texi *.aux *.cps *.fns *.kys *.vrs ../${tempdir}/man |
|---|
| 601 |
test -f README && ln README ../${tempdir}/man |
|---|
| 602 |
test -f Makefile.in && ln Makefile.in ../${tempdir}/man |
|---|
| 603 |
ln ChangeLog ../${tempdir}/man |
|---|
| 604 |
test -f split-man && ln split-man ../${tempdir}/man |
|---|
| 605 |
cp texinfo.tex ../${tempdir}/man |
|---|
| 606 |
cd ../${tempdir}/man |
|---|
| 607 |
rm -f \#*\# =* *~ core emacs-index* *.Z *.z xmail |
|---|
| 608 |
rm -f emacs.?? termcap.?? gdb.?? *.log *.toc *.dvi *.oaux) |
|---|
| 609 |
|
|---|
| 610 |
echo "Making links to \`vms'" |
|---|
| 611 |
(cd vms |
|---|
| 612 |
test -f README && ln README ../${tempdir}/vms |
|---|
| 613 |
cd ../${tempdir}/vms |
|---|
| 614 |
rm -f *~) |
|---|
| 615 |
|
|---|
| 616 |
### It would be nice if they could all be symlinks to etc's copy, but |
|---|
| 617 |
### you're not supposed to have any symlinks in distribution tar files. |
|---|
| 618 |
echo "Making sure copying notices are all copies of \`etc/COPYING'" |
|---|
| 619 |
rm -f ${tempdir}/etc/COPYING |
|---|
| 620 |
cp etc/COPYING ${tempdir}/etc/COPYING |
|---|
| 621 |
for subdir in lisp src lib-src info msdos; do |
|---|
| 622 |
if [ -f ${tempdir}/${subdir}/COPYING ]; then |
|---|
| 623 |
rm ${tempdir}/${subdir}/COPYING |
|---|
| 624 |
fi |
|---|
| 625 |
cp etc/COPYING ${tempdir}/${subdir} |
|---|
| 626 |
done |
|---|
| 627 |
|
|---|
| 628 |
#### Make sure that there aren't any hard links between files in the |
|---|
| 629 |
#### distribution; people with afs can't deal with that. Okay, |
|---|
| 630 |
#### actually we just re-copy anything with a link count greater |
|---|
| 631 |
#### than two. (Yes, strictly greater than 2 is correct; since we |
|---|
| 632 |
#### created these files by linking them in from the original tree, |
|---|
| 633 |
#### they'll have exactly two links normally.) |
|---|
| 634 |
#### |
|---|
| 635 |
#### Commented out since it's not strictly necessary; it should suffice |
|---|
| 636 |
#### to just break the link on alloca.c. |
|---|
| 637 |
#echo "Breaking intra-tree links." |
|---|
| 638 |
#find ${tempdir} ! -type d -links +2 \ |
|---|
| 639 |
# -exec cp -p {} $$ \; -exec rm -f {} \; -exec mv $$ {} \; |
|---|
| 640 |
rm -f $tempdir/lib-src/alloca.c |
|---|
| 641 |
cp $tempdir/src/alloca.c $tempdir/lib-src/alloca.c |
|---|
| 642 |
|
|---|
| 643 |
if [ "${newer}" ]; then |
|---|
| 644 |
echo "Removing files older than $newer" |
|---|
| 645 |
## We remove .elc files unconditionally, on the theory that anyone picking |
|---|
| 646 |
## up an incremental distribution already has a running Emacs to byte-compile |
|---|
| 647 |
## them with. |
|---|
| 648 |
find ${tempparent} \( -name '*.elc' -o ! -newer ${newer} \) -exec rm -f {} \; |
|---|
| 649 |
fi |
|---|
| 650 |
|
|---|
| 651 |
if [ "${make_tar}" = yes ]; then |
|---|
| 652 |
if [ "${default_gzip}" = "" ]; then |
|---|
| 653 |
echo "Looking for gzip" |
|---|
| 654 |
temppath=`echo $PATH | sed 's/^:/.:/ |
|---|
| 655 |
s/::/:.:/g |
|---|
| 656 |
s/:$/:./ |
|---|
| 657 |
s/:/ /g'` |
|---|
| 658 |
default_gzip=`( |
|---|
| 659 |
for dir in ${temppath}; do |
|---|
| 660 |
if [ -f ${dir}/gzip ]; then echo 'gzip --best'; exit 0; fi |
|---|
| 661 |
done |
|---|
| 662 |
echo compress |
|---|
| 663 |
)` |
|---|
| 664 |
fi |
|---|
| 665 |
case "${default_gzip}" in |
|---|
| 666 |
compress* ) gzip_extension=.Z ;; |
|---|
| 667 |
* ) gzip_extension=.gz ;; |
|---|
| 668 |
esac |
|---|
| 669 |
echo "Creating tar files" |
|---|
| 670 |
(cd ${tempparent} ; tar cvf - ${emacsname} ) \ |
|---|
| 671 |
| ${default_gzip} \ |
|---|
| 672 |
> ${emacsname}.tar${gzip_extension} |
|---|
| 673 |
(cd ${tempparent}/${emacsname}-leim ; tar cvf - ${emacsname} ) \ |
|---|
| 674 |
| ${default_gzip} \ |
|---|
| 675 |
> leim-${version}${new_extension}.tar${gzip_extension} |
|---|
| 676 |
fi |
|---|
| 677 |
|
|---|
| 678 |
if [ "${clean_up}" = yes ]; then |
|---|
| 679 |
echo "Cleaning up the staging directory" |
|---|
| 680 |
rm -rf ${tempparent} |
|---|
| 681 |
else |
|---|
| 682 |
(cd ${tempparent}; mv ${emacsname} ${emacsname}-leim ..) |
|---|
| 683 |
rm -rf ${tempparent} |
|---|
| 684 |
fi |
|---|
| 685 |
|
|---|
| 686 |
### make-dist ends here |
|---|
| 687 |
|
|---|