3 rem This batch file doesn't work with Cygwin tar because #files#
\r
4 rem has DOS line endings, which Cygwin tar misinterprets.
\r
5 rem I use the version of tar from
\r
6 rem ftp://ftp.gnu.org/gnu/windows/emacs/utilities/i386/tar-1.11.2a.exe
\r
7 rem renamed as wtar.exe.
\r
10 rem Make a copy of current Emacs source
\r
11 if (%3) == () goto usage
\r
12 if not (%4) == () goto %4
\r
13 if not (%4) == (src) goto :lisp
\r
17 echo Create full source distribution, excluding leim
\r
18 %TAR% --exclude leim --exclude _marker --exclude DOC --exclude DOC-X --exclude TAGS --exclude bin --exclude obj --exclude obj-spd --exclude oo --exclude oo-spd --exclude *~ --exclude *.rej -cvf - emacs-%1 | gzip -9 > %2-src.tar.gz
\r
19 if not (%4) == () goto end
\r
22 echo Create limited elisp source distribution
\r
23 %TAR% --exclude *.rej --exclude *.elc --exclude *~ -cvf - emacs-%1/lisp | gzip -9 > %2-lisp.tar.gz
\r
24 if not (%4) == () goto end
\r
28 set eld=emacs-%1/lisp
\r
30 rem Keep this list in sync with the DONTCOMPILE list in lisp/Makefile.in
\r
32 set elfiles=%eld%/cus-load.el %eld%/cus-start.el %eld%/emacs-lisp/cl-specs.el %eld%/eshell/esh-maint.el %eld%/eshell/esh-groups.el %eld%/finder-inf.el %eld%/forms-d2.el %eld%/forms-pass.el %eld%/generic-x.el %eld%/international/latin-1.el %eld%/international/latin-2.el %eld%/international/latin-3.el %eld%/international/latin-4.el %eld%/international/latin-5.el %eld%/international/latin-8.el %eld%/international/latin-9.el %eld%/international/mule-conf.el %eld%/loaddefs.el %eld%/loadup.el %eld%/mail/blessmail.el %eld%/patcomp.el %eld%/paths.el %eld%/play/bruce.el %eld%/subdirs.el %eld%/term/internal.el %eld%/term/AT386.el %eld%/term/apollo.el %eld%/term/bobcat.el %eld%/term/iris-ansi.el %eld%/term/keyswap.el %eld%/term/linux.el %eld%/term/lk201.el %eld%/term/news.el %eld%/term/vt102.el %eld%/term/vt125.el %eld%/term/vt200.el %eld%/term/vt201.el %eld%/term/vt220.el %eld%/term/vt240.el %eld%/term/vt300.el %eld%/term/vt320.el %eld%/term/vt400.el %eld%/term/vt420.el %eld%/term/wyse50.el %eld%/term/xterm.el %eld%/version.el
\r
35 for %%f in (emacs-%1/bin/fns*) do set fns_el=%fns_el% emacs-%1/bin/%%f
\r
37 echo Create bin distribution
\r
38 copy %3\README.W32 emacs-%1\README.W32
\r
41 for %%f in (emacs-%1/BUGS emacs-%1/README emacs-%1/README.W32) do echo %%f>>#files#
\r
42 for %%f in (emacs-%1/bin/fns*) do echo emacs-%1/bin/%%f>>#files#
\r
43 for %%f in (emacs-%1/bin emacs-%1/etc emacs-%1/info emacs-%1/lisp %elfiles%) do echo %%f>>#files#
\r
44 for %%f in (%eld%/term/*.el) do echo %eld%/term/%%f>>#files#
\r
45 for %%f in (emacs-%1/lock emacs-%1/site-lisp emacs-%1/site-lisp/subdirs.el) do echo %%f>>#files#
\r
46 %TAR% --exclude temacs.exe --exclude emacs.mdp --exclude *.pdb --exclude *.opt --exclude *.el --exclude *~ -T #files# -cvf - | gzip -9 > %2-bin-i386.tar.gz
\r
47 del emacs-%1\README.W32
\r
49 if not (%4) == () goto end
\r
53 echo Create full bin distribution
\r
54 copy %3\README.W32 emacs-%1\README.W32
\r
56 %TAR% --exclude temacs.exe --exclude emacs.mdp --exclude *.pdb --exclude *.opt --exclude *~ -cvf - emacs-%1/BUGS emacs-%1/README emacs-%1/README.W32 emacs-%1/bin emacs-%1/etc emacs-%1/info emacs-%1/lisp emacs-%1/lock emacs-%1/site-lisp | gzip -9 > %2-fullbin-i386.tar.gz
\r
57 del emacs-%1\README.W32
\r
58 if not (%4) == () goto end
\r
62 echo Create archive with precompiled leim files
\r
63 %TAR% -cvf - emacs-%1/leim/leim-list.el emacs-%1/leim/quail emacs-%1/leim/ja-dic | gzip -9 > %2-leim.tar.gz
\r
64 if not (%4) == () goto end
\r
68 echo Create archive with extra files needed for redumping emacs
\r
69 copy %3\README-UNDUMP.W32 emacs-%1\README-UNDUMP.W32
\r
70 copy %3\dump.bat emacs-%1\bin
\r
71 if exist emacs-%1\src\obj-spd\i386\temacs.exe copy emacs-%1\src\obj-spd\i386\temacs.exe emacs-%1\bin
\r
72 if exist emacs-%1\src\oo-spd\i386\temacs.exe copy emacs-%1\src\oo-spd\i386\temacs.exe emacs-%1\bin
\r
73 %TAR% -cvf - emacs-%1/README-UNDUMP.W32 emacs-%1/bin/dump.bat emacs-%1/bin/temacs.exe | gzip -9 > %2-undumped-i386.tar.gz
\r
74 del emacs-%1\bin\temacs.exe
\r
75 del emacs-%1\bin\dump.bat
\r
76 del emacs-%1\README-UNDUMP.W32
\r
77 if not (%4) == () goto end
\r
81 echo Create archive with just the basic binaries and generated files
\r
82 echo (the user needs to unpack the full source distribution for
\r
83 echo everything else)
\r
84 copy %3\README.W32 emacs-%1\README.W32
\r
85 %TAR% -cvf - emacs-%1/README.W32 emacs-%1/bin emacs-%1/etc/DOC emacs-%1/etc/DOC-X | gzip -9 > %2-barebin-i386.tar.gz
\r
86 del emacs-%1\README.W32
\r
87 if not (%4) == () goto end
\r
91 rem Only do this if explicitly requested
\r
94 echo Create zip files for bin and lisp archives
\r
97 gunzip -c ..\%2-bin-i386.tar.gz | %TAR% xf -
\r
98 zip -rp9 em%5_bin %2
\r
100 zipsplit -n 2000000 -b .. em%5_bin.zip
\r
102 gunzip -c ..\%2-lisp.tar.gz | %TAR% xf -
\r
103 zip -rp9 em%5_lis %2
\r
105 zipsplit -n 1400000 -b .. em%5_lis.zip
\r
112 echo Generate source and binary distributions of emacs.
\r
113 echo Usage: %0 emacs-version dist-basename distfiles [lisp,bin,undumped,barebin]
\r
114 echo (e.g., %0 19.34 emacs-19.34.5 d:\andrewi\distfiles)
\r
115 echo Or: %0 emacs-version dist-basename distfiles "zipfiles" short-version
\r
116 echo (e.g., %0 20.6 emacs-20.6 d:\andrewi\distfiles zipfiles 206)
\r