source: trunk/third/emacs/make-dist @ 17041

Revision 17041, 20.9 KB checked in by zacheiss, 22 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r17040, which included commits to RCS files with non-trunk default branches.
  • Property svn:executable set to *
Line 
1#!/bin/sh
2
3#### make-dist: create an Emacs distribution tar file from the current
4#### source tree.  This basically creates a duplicate directory
5#### structure, and then hard links into it only those files that should
6#### be distributed.  This means that if you add a file with an odd name,
7#### you should make sure that this script will include it.
8
9# Copyright (C) 1995, 1997, 1998, 2000, 2001 Free Software Foundation, Inc.
10#
11# This file is part of GNU Emacs.
12#
13# GNU Emacs is free software; you can redistribute it and/or modify
14# it under the terms of the GNU General Public License as published by
15# the Free Software Foundation; either version 2, or (at your option)
16# any later version.
17#
18# GNU Emacs is distributed in the hope that it will be useful,
19# but WITHOUT ANY WARRANTY; without even the implied warranty of
20# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21# GNU General Public License for more details.
22#
23# You should have received a copy of the GNU General Public License
24# along with GNU Emacs; see the file COPYING.  If not, write to the
25# Free Software Foundation, Inc., 59 Temple Place - Suite 330,
26# Boston, MA 02111-1307, USA.
27
28progname="$0"
29
30### Exit if a command fails.
31#set -e
32
33### Print out each line we read, for debugging's sake.
34#set -v
35
36LANGUAGE=C
37LC_ALL=C
38LC_MESSAGES=
39LANG=
40export LANGUAGE LC_ALL LC_MESSAGES LANG
41
42## Don't restrict access to any files.
43umask 0
44
45update=yes
46check=yes
47clean_up=no
48make_tar=no
49newer=""
50
51while [ $# -gt 0 ]; do
52  case "$1" in
53    ## This option tells make-dist to delete the staging directory
54    ## when done.  It is useless to use this unless you make a tar file.
55    "--clean-up" )
56      clean_up=yes
57    ;;
58    ## This option tells make-dist to make a tar file.
59    "--tar" )
60      make_tar=yes
61    ;;
62    ## This option tells make-dist not to recompile or do analogous things.
63    "--no-update" )
64      update=no
65    ;;
66    ## This option says don't check for bad file names, etc.
67    "--no-check" )
68      check=no
69    ;;
70    ## This option tells make-dist to make the distribution normally, then
71    ## remove all files older than the given timestamp file.  This is useful
72    ## for creating incremental or patch distributions.
73    "--newer")
74      newer="$2"
75      new_extension=".new"
76      shift
77    ;;
78    ## This option tells make-dist to use `compress' instead of gzip.
79    ## Normally, make-dist uses gzip whenever it is present.
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
111done
112
113### Make sure we're running in the right place.
114if [ ! -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
119fi
120
121### Find where to run Emacs.
122### (We don't accept EMACS=t as an answer, since that probably only means
123### that the shell is running in an Emacs window.)
124if [ $update = yes ];
125then
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
137fi
138
139### Find out which version of Emacs this is.
140shortversion=`grep 'defconst[    ]*emacs-version' lisp/version.el \
141         | sed -e 's/^.*"\([0-9][0-9]*\.[0-9][0-9]*\).*$/\1/'`
142version=`grep 'defconst[         ]*emacs-version' lisp/version.el \
143         | sed -e 's/^[^"]*"\([^"]*\)".*$/\1/'`
144if [ ! "${version}" ]; then
145  echo "${progname}: can't find current Emacs version in \`./lisp/version.el'" >&2
146  exit 1
147fi
148
149echo Version numbers are $version and $shortversion
150
151if [ $update = yes ];
152then
153  if grep -s "GNU Emacs version ${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
159fi
160
161### Make sure we don't already have a directory  emacs-${version}.
162
163emacsname="emacs-${version}${new_extension}"
164
165if [ -d ${emacsname} ]
166then
167  echo Directory "${emacsname}" already exists >&2
168  exit 1
169fi
170
171### Make sure the subdirectory is available.
172tempparent="make-dist.tmp.$$"
173if [ -d ${tempparent} ]; then
174  echo "${progname}: staging directory \`${tempparent}' already exists.
175Perhaps a previous invocation of \`${progname}' failed to clean up after
176itself.  Check that directories whose names are of the form
177\`make-dist.tmp.NNNNN' don't contain any important information, remove
178them, and try again." >&2
179  exit 1
180fi
181
182### Find where to run Emacs.
183if [ $check = yes ];
184then
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
231fi
232
233### Make sure configure is newer than configure.in.
234if [ "x`ls -t configure configure.in | head -1`" != "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; }
238fi
239
240if [ $update = yes ];
241then
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
255fi
256
257echo "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 head -1 $files | grep '^;' | sed -e 's/;;; //' | sort > MANIFEST)
270
271echo "Creating staging directory: \`${tempparent}'"
272
273mkdir ${tempparent}
274tempdir="${tempparent}/${emacsname}"
275
276### This trap ensures that the staging directory will be cleaned up even
277### when the script is interrupted in mid-career.
278if [ "${clean_up}" = yes ]; then
279  trap "echo 'Interrupted...cleaning up the staging directory'; rm -rf ${tempparent}; exit 1" 1 2 15
280fi
281
282echo "Creating top directory: \`${tempdir}'"
283mkdir ${tempdir}
284
285### We copy in the top-level files before creating the subdirectories in
286### hopes that this will make the top-level files appear first in the
287### tar file; this means that people can start reading the INSTALL and
288### README while the rest of the tar file is still unpacking.  Whoopee.
289echo "Making links to top-level files"
290ln FTP INSTALL README BUGS move-if-change ${tempdir}
291ln ChangeLog Makefile.in configure configure.in aclocal.m4 ${tempdir}
292ln config.bat make-dist update-subdirs vpath.sed ${tempdir}
293### Copy these files; they're cross-filesystem symlinks.
294cp mkinstalldirs ${tempdir}
295cp config.sub ${tempdir}
296cp config.guess ${tempdir}
297cp install-sh ${tempdir}
298
299echo "Updating version number in README"
300(cd ${tempdir}
301 awk \
302   '$1 " " $2 " " $3 " " $4 " " $5 == "This directory tree holds version" { $6 = version; print $0 }
303    $1 " " $2 " " $3 " " $4 " " $5 != "This directory tree holds version"' \
304   version=${version} README > tmp.README
305 mv -f tmp.README README)
306
307
308echo "Creating subdirectories"
309for subdir in lisp site-lisp \
310              leim real-leim real-leim/CXTERM-DIC real-leim/MISC-DIC \
311              real-leim/SKK-DIC real-leim/ja-dic real-leim/quail \
312              src src/m src/s src/bitmaps lib-src oldXMenu lwlib \
313              nt nt/inc nt/inc/sys nt/inc/arpa nt/inc/netinet nt/icons \
314              etc etc/e lock info man msdos vms mac mac/inc mac/inc/sys \
315              mac/src
316do
317  echo "  ${tempdir}/${subdir}"
318  mkdir ${tempdir}/${subdir}
319done
320
321echo "Initializing \`leim' subdirectory"
322cp noleim-Makefile.in ${tempdir}/leim/Makefile.in
323
324echo "Making links to \`lisp' and its subdirectories"
325### Don't distribute TAGS, =*.el files, site-init.el, site-load.el, or default.el.
326(cd lisp
327 ln [a-zA-Z]*.el ../${tempdir}/lisp
328 ln [a-zA-Z]*.elc ../${tempdir}/lisp
329 ln [a-zA-Z]*.dat ../${tempdir}/lisp
330 for img in [a-zA-Z]*.xpm [a-zA-Z]*.xbm [a-zA-Z]*.pbm; do
331   # If there are no images, the shell won't expand the pattern.
332   if [ -f $img ]; then
333     ln $img ../${tempdir}/lisp
334   fi
335 done
336 ## simula.el doesn't keep abbreviations in simula.defns any more.
337 ## ln [a-zA-Z]*.defns ../${tempdir}/lisp
338 ln ChangeLog Makefile.in makefile.nt ChangeLog.? ../${tempdir}/lisp
339 ln makefile.w32-in ../${tempdir}/lisp
340 test -f README && ln README ../${tempdir}/lisp
341 (cd ../${tempdir}/lisp
342  rm -f TAGS =*
343  rm -f site-init site-init.el site-init.elc
344  rm -f site-load site-load.el site-load.elc
345  rm -f site-start site-start.el site-start.elc
346  rm -f default default.el default.elc
347  )
348
349 ## Find all subdirs of lisp dir
350 for file in `find . -type d -print`; do
351   case $file in
352     . | .. | */Old | */CVS | */RCS | */=*)
353       ;;       
354     *)
355       if [ -d $file ]; then
356         subdirs="$file $subdirs"
357       fi
358       ;;
359   esac
360 done
361
362 for file in $subdirs; do
363   echo "  lisp/$file"
364   mkdir ../${tempdir}/lisp/$file
365   ln $file/[a-zA-Z0-9]*.el ../${tempdir}/lisp/$file
366   ln $file/[a-zA-Z0-9]*.elc ../${tempdir}/lisp/$file
367   for img in $file/[a-zA-Z]*.xpm $file/[a-zA-Z]*.xbm $file/[a-zA-Z]*.pbm; do
368     if [ -f $img ]; then
369       ln $img ../${tempdir}/lisp/$file
370     fi
371   done
372   if [ -f $file/README ]; then
373     ln $file/README ../${tempdir}/lisp/$file
374   fi
375
376   if [ -f $file/ChangeLog ]; then
377     ln $file/ChangeLog ../${tempdir}/lisp/$file
378     for f in $file/ChangeLog.[0-9]; do
379       if [ -f $f ]; then
380         ln $f ../${tempdir}/lisp/$file
381       fi
382     done
383   fi
384 done )
385
386echo "Making links to \`leim' and its subdirectories for the LEIM distribution"
387### Don't distribute TAGS, or =*.el files.
388(cd leim
389 ln makefile.nt makefile.w32-in ../${tempdir}/real-leim
390 ln ChangeLog README ../${tempdir}/real-leim
391
392 ln CXTERM-DIC/*.tit ../${tempdir}/real-leim/CXTERM-DIC
393 ln SKK-DIC/README SKK-DIC/SKK-JISYO.L ../${tempdir}/real-leim/SKK-DIC
394 ln MISC-DIC/*.* ../${tempdir}/real-leim/MISC-DIC
395 ln ja-dic/*.el ja-dic/*.elc ../${tempdir}/real-leim/ja-dic
396 ln Makefile.in ../${tempdir}/real-leim/Makefile.in
397 ln quail/[a-z]*.el quail/[a-z]*.elc ../${tempdir}/real-leim/quail
398 rm -f ../${tempdir}/real-leim/quail/quick-b5.*
399 rm -f ../${tempdir}/real-leim/quail/quick-cns.*
400 rm -f ../${tempdir}/real-leim/quail/tsang-b5.*
401 rm -f ../${tempdir}/real-leim/quail/tsang-cns.*
402
403 cd ../${tempdir}/real-leim
404 rm -f TAGS =* */=*)
405
406### Move the real-leim directory outside of Emacs proper.
407(cd ${tempparent}
408 mkdir ${emacsname}-leim
409 mkdir ${emacsname}-leim/${emacsname}
410 mv ${emacsname}/real-leim ${emacsname}-leim/${emacsname}/leim)
411
412echo "Making links to \`src'"
413### Don't distribute =*.[ch] files, or the configured versions of
414### config.in, paths.in, or Makefile.in, or TAGS.
415(cd src
416 echo "  (It is ok if ln fails in some cases.)"
417 ln [a-zA-Z]*.c ../${tempdir}/src
418 ln [a-zA-Z]*.h ../${tempdir}/src
419 ln [a-zA-Z]*.s ../${tempdir}/src
420 ln [a-zA-Z]*.in ../${tempdir}/src
421 ln [a-zA-Z]*.opt ../${tempdir}/src
422 ## If we ended up with a symlink, or if we did not get anything
423 ## due to a cross-device symlink, copy the file.
424 for file in [a-zA-Z]*.[hcs] [a-zA-Z]*.in [a-zA-Z]*.opt; do
425   if test -f ../${tempdir}/src/$file; then
426     # test -f appears to succeed for a symlink
427     if test -L ../${tempdir}/src/$file; then
428       rm ../${tempdir}/src/$file
429       cp -p $file ../${tempdir}/src
430       chmod a-w ../${tempdir}/src/$file
431     fi
432   else
433     rm ../${tempdir}/src/$file
434     cp -p $file ../${tempdir}/src
435     chmod a-w ../${tempdir}/src/$file
436   fi
437 done
438 ln README ChangeLog ChangeLog.*[0-9] ../${tempdir}/src
439 ln makefile.nt makefile.w32-in vms-pp.trans ../${tempdir}/src
440 ln .gdbinit .dbxinit ../${tempdir}/src
441 cd ../${tempdir}/src
442 rm -f config.h epaths.h Makefile Makefile.c
443 rm -f =* TAGS)
444
445echo "Making links to \`src/bitmaps'"
446(cd src/bitmaps
447 ln README *.xbm ../../${tempdir}/src/bitmaps)
448
449echo "Making links to \`src/m'"
450(cd src/m
451 # We call files for miscellaneous input (to linker etc) .inp.
452 ln README [a-zA-Z0-9]*.h *.inp ../../${tempdir}/src/m)
453
454echo "Making links to \`src/s'"
455(cd src/s
456 ln README [a-zA-Z0-9]*.h ../../${tempdir}/src/s)
457
458echo "Making links to \`lib-src'"
459(cd lib-src
460 ln [a-zA-Z]*.[chy] ../${tempdir}/lib-src
461 ln ChangeLog Makefile.in README testfile vcdiff ../${tempdir}/lib-src
462 ln grep-changelog rcs2log rcs-checkin makefile.nt ../${tempdir}/lib-src
463 ln makefile.w32-in ../${tempdir}/lib-src
464 ## If we ended up with a symlink, or if we did not get anything
465 ## due to a cross-device symlink, copy the file.
466 for file in [a-zA-Z]*.[chy]; do
467   if test -f ../${tempdir}/lib-src/$file; then
468     # test -f appears to succeed for a symlink
469     if test -L ../${tempdir}/lib-src/$file; then
470       rm ../${tempdir}/lib-src/$file
471       cp $file ../${tempdir}/lib-src
472       chmod a-w ../${tempdir}/lib-src/$file
473     fi
474   else
475     rm ../${tempdir}/lib-src/$file
476     cp $file ../${tempdir}/lib-src
477     chmod a-w ../${tempdir}/lib-src/$file
478   fi
479 done
480 cd ../${tempdir}/lib-src
481 rm -f Makefile.c
482 rm -f =* TAGS)
483
484echo "Making links to \`nt'"
485(cd nt
486 ln emacs.rc config.nt [a-z]*.in [a-z]*.c ../${tempdir}/nt
487 ln _emacs nmake.defs gmake.defs subdirs.el ../${tempdir}/nt
488 ln [a-z]*.bat [a-z]*.h makefile.def makefile.nt ../${tempdir}/nt
489 ln TODO ChangeLog INSTALL README makefile.w32-in ../${tempdir}/nt)
490
491echo "Making links to \`nt/inc'"
492(cd nt/inc
493 ln [a-z]*.h ../../${tempdir}/nt/inc)
494
495echo "Making links to \`nt/inc/sys'"
496(cd nt/inc/sys
497 ln [a-z]*.h ../../../${tempdir}/nt/inc/sys)
498
499echo "Making links to \`nt/inc/arpa'"
500(cd nt/inc/arpa
501 ln [a-z]*.h ../../../${tempdir}/nt/inc/arpa)
502
503echo "Making links to \`nt/inc/netinet'"
504(cd nt/inc/netinet
505 ln [a-z]*.h ../../../${tempdir}/nt/inc/netinet)
506
507echo "Making links to \`nt/icons'"
508(cd nt/icons
509 ln [a-z]*.ico ../../${tempdir}/nt/icons)
510
511echo "Making links to \`mac'"
512(cd mac
513 ln ChangeLog INSTALL README *.xml *.MPW ../${tempdir}/mac)
514
515echo "Making links to \`mac/inc'"
516(cd mac/inc
517 ln [a-z]*.h ../../${tempdir}/mac/inc)
518
519echo "Making links to \`mac/inc/sys'"
520(cd mac/inc/sys
521 ln [a-z]*.h ../../../${tempdir}/mac/inc/sys)
522
523echo "Making links to \`mac/src'"
524(cd mac/src
525 ln [a-z]*.c *.r ../../${tempdir}/mac/src)
526
527echo "Making links to \`msdos'"
528(cd msdos
529 ln  ChangeLog emacs.ico emacs.pif ../${tempdir}/msdos
530 ln is_exec.c sigaction.c mainmake mainmake.v2 sed*.inp ../${tempdir}/msdos
531 cd ../${tempdir}/msdos
532 rm -f =*)
533
534echo "Making links to \`oldXMenu'"
535(cd oldXMenu
536 ln *.c *.h *.in ../${tempdir}/oldXMenu
537 ln README Imakefile ChangeLog ../${tempdir}/oldXMenu
538 ln compile.com descrip.mms ../${tempdir}/oldXMenu)
539
540echo "Making links to \`lwlib'"
541(cd lwlib
542 ln *.c *.h *.in ../${tempdir}/lwlib
543 ln README Imakefile ChangeLog ../${tempdir}/lwlib
544 cd ../${tempdir}/lwlib
545 rm -f lwlib-Xol*)
546
547echo "Making links to \`etc'"
548### Don't distribute = files, TAGS, DOC files, backups, autosaves, or
549### tex litter.
550(cd etc
551 files=`ls -d * | grep -v CVS | grep -v RCS | grep -v 'Old' | grep -v '^e$'`
552 ln $files ../${tempdir}/etc
553 ## If we ended up with a symlink, or if we did not get anything
554 ## due to a cross-device symlink, copy the file.
555 for file in $files; do
556   if test -f ../${tempdir}/etc/$file; then
557     # test -f appears to succeed for a symlink
558     if test -L ../${tempdir}/etc/$file; then
559       rm ../${tempdir}/etc/$file
560       cp $file ../${tempdir}/etc
561       chmod a-w ../${tempdir}/etc/$file
562     fi
563   else
564     rm ../${tempdir}/etc/$file
565     cp $file ../${tempdir}/etc
566     chmod a-w ../${tempdir}/etc/$file
567   fi
568 done
569 cd ../${tempdir}/etc
570 rm -f fns*.el
571 rm -f DOC* *~ \#*\# *.dvi *.log *.orig *.rej *,v =* core
572 rm -f TAGS)
573
574echo "Making links to \`etc/e'"
575(cd etc/e
576 ln `ls -d * | grep -v CVS | grep -v RCS` ../../${tempdir}/etc/e
577 cd ../../${tempdir}/etc/e
578 rm -f *~ \#*\# *,v =* core)
579
580echo "Making links to \`info'"
581# Don't distribute backups or autosaves.
582(cd info
583 ln `find . -type f -print | grep -v CVS | grep -v RCS | grep -v cvsignore` ../${tempdir}/info
584 #ln [a-zA-Z]* ../${tempdir}/info
585 cd ../${tempdir}/info
586 # Avoid an error when expanding the wildcards later.
587 ln emacs dummy~ ; ln emacs \#dummy\#
588 rm -f *~ \#*\# core)
589
590echo "Making links to \`man'"
591(cd man
592 ln *.texi *.aux *.cps *.fns *.kys *.vrs ../${tempdir}/man
593 test -f README && ln README ../${tempdir}/man
594 test -f Makefile.in && ln Makefile.in ../${tempdir}/man
595 ln ChangeLog ../${tempdir}/man
596 test -f split-man && ln split-man ../${tempdir}/man
597 cp texinfo.tex ../${tempdir}/man
598 cd ../${tempdir}/man
599 rm -f \#*\# =* *~ core emacs-index* *.Z *.z xmail
600 rm -f emacs.?? termcap.?? gdb.?? *.log *.toc *.dvi *.oaux)
601
602echo "Making links to \`vms'"
603(cd vms
604 test -f README && ln README ../${tempdir}/vms
605 cd ../${tempdir}/vms
606 rm -f *~)
607
608### It would be nice if they could all be symlinks to etc's copy, but
609### you're not supposed to have any symlinks in distribution tar files.
610echo "Making sure copying notices are all copies of \`etc/COPYING'"
611rm -f ${tempdir}/etc/COPYING
612cp etc/COPYING ${tempdir}/etc/COPYING
613for subdir in lisp src lib-src info msdos; do
614  if [ -f ${tempdir}/${subdir}/COPYING ]; then
615    rm ${tempdir}/${subdir}/COPYING
616  fi
617  cp etc/COPYING ${tempdir}/${subdir}
618done
619
620#### Make sure that there aren't any hard links between files in the
621#### distribution; people with afs can't deal with that.  Okay,
622#### actually we just re-copy anything with a link count greater
623#### than two.  (Yes, strictly greater than 2 is correct; since we
624#### created these files by linking them in from the original tree,
625#### they'll have exactly two links normally.)
626####
627#### Commented out since it's not strictly necessary; it should suffice
628#### to just break the link on alloca.c.
629#echo "Breaking intra-tree links."
630#find ${tempdir} ! -type d -links +2 \
631#  -exec cp -p {} $$ \; -exec rm -f {} \; -exec mv $$ {} \;
632rm -f $tempdir/lib-src/alloca.c
633cp $tempdir/src/alloca.c $tempdir/lib-src/alloca.c
634
635if [ "${newer}" ]; then
636  echo "Removing files older than $newer"
637  ## We remove .elc files unconditionally, on the theory that anyone picking
638  ## up an incremental distribution already has a running Emacs to byte-compile
639  ## them with.
640  find ${tempparent} \( -name '*.elc' -o ! -newer ${newer} \) -exec rm -f {} \;
641fi
642
643if [ "${make_tar}" = yes ]; then
644  if [ "${default_gzip}" = "" ]; then
645    echo "Looking for gzip"
646    temppath=`echo $PATH | sed 's/^:/.:/
647                                s/::/:.:/g
648                                s/:$/:./
649                                s/:/ /g'`
650    default_gzip=`(
651      for dir in ${temppath}; do
652        if [ -f ${dir}/gzip ]; then echo 'gzip --best'; exit 0; fi
653      done
654      echo compress
655    )`
656  fi
657  case "${default_gzip}" in
658    compress* ) gzip_extension=.Z ;;
659    * )         gzip_extension=.gz ;;
660  esac
661  echo "Creating tar files"
662  (cd ${tempparent} ; tar cvf - ${emacsname} ) \
663    | ${default_gzip} \
664    > ${emacsname}.tar${gzip_extension}
665  (cd ${tempparent}/${emacsname}-leim ; tar cvf - ${emacsname} ) \
666    | ${default_gzip} \
667    > leim-${version}${new_extension}.tar${gzip_extension}
668fi
669
670if [ "${clean_up}" = yes ]; then
671  echo "Cleaning up the staging directory"
672  rm -rf ${tempparent}
673else
674  (cd ${tempparent}; mv ${emacsname} ${emacsname}-leim ..)
675  rm -rf ${tempparent}
676fi
677
678### make-dist ends here
Note: See TracBrowser for help on using the repository browser.