88155
|
1 @echo off
|
|
2
|
|
3 rem Beware broken ports of tar. Recent cygwin versions work well, older
|
|
4 rem cygwin versions and the current MSys port have problems with DOS
|
|
5 rem line ends when reading file names from a file. Other ports have their
|
|
6 rem own problems too.
|
|
7 set TAR=tar
|
|
8
|
|
9 rem Make a copy of current Emacs source
|
|
10 if (%3) == () goto usage
|
|
11 if not (%4) == () goto %4
|
|
12 if not (%4) == (src) goto :lisp
|
|
13
|
|
14 :src
|
|
15
|
|
16 echo Create full source distribution, excluding leim
|
|
17 %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
|
|
18 if not (%4) == () goto end
|
|
19
|
|
20 :lisp
|
|
21 echo Create limited elisp source distribution
|
|
22 %TAR% --exclude *.rej --exclude *.elc --exclude *~ -cvf - emacs-%1/lisp | gzip -9 > %2-lisp.tar.gz
|
|
23 if not (%4) == () goto end
|
|
24
|
|
25 :bin
|
|
26
|
|
27 set eld=emacs-%1/lisp
|
|
28
|
|
29 rem List of Lisp files that are not compiled and that should be
|
|
30 rem included in the bin distribution.
|
|
31
|
|
32 rem It would be better to generate this list automatically. It is the
|
|
33 rem list of all .el files for which there is no corresponding .elc
|
|
34 rem file, minus ldefs-boot.el. --lute
|
|
35
|
|
36 set elfiles=%eld%/cus-load.el %eld%/emacs-lisp/cl-specs.el %eld%/eshell/esh-groups.el %eld%/eshell/esh-maint.el %eld%/finder-inf.el %eld%/forms-d2.el %eld%/forms-pass.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%/language/czech.el %eld%/language/devanagari.el %eld%/language/english.el %eld%/language/georgian.el %eld%/language/greek.el %eld%/language/hebrew.el %eld%/language/japanese.el %eld%/language/kannada.el %eld%/language/korean.el %eld%/language/lao.el %eld%/language/malayalam.el %eld%/language/misc-lang.el %eld%/language/romanian.el %eld%/language/slovak.el %eld%/language/tamil.el %eld%/language/thai.el %eld%/language/utf-8-lang.el %eld%/loaddefs.el %eld%/loadup.el %eld%/mail/blessmail.el %eld%/mh-e/mh-acros.el %eld%/mh-e/mh-gnus.el %eld%/mh-e/mh-loaddefs.el %eld%/obsolete/keyswap.el %eld%/patcomp.el %eld%/paths.el %eld%/play/bruce.el %eld%/subdirs.el %eld%/term/AT386.el %eld%/term/apollo.el %eld%/term/bobcat.el %eld%/term/internal.el %eld%/term/iris-ansi.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%/version.el
|
|
37
|
|
38 set fns_el=
|
|
39 for %%f in (emacs-%1/bin/fns*) do set fns_el=%fns_el% emacs-%1/bin/%%f
|
|
40
|
|
41 echo Create bin distribution
|
|
42 copy %3\README.W32 emacs-%1\README.W32
|
|
43
|
|
44 del #files# #elfiles#
|
|
45 for %%f in (emacs-%1/BUGS emacs-%1/README emacs-%1/README.W32) do echo %%f>>#files#
|
|
46 for %%f in (emacs-%1/bin/fns*) do echo emacs-%1/bin/%%f>>#elfiles#
|
|
47 for %%f in (emacs-%1/bin emacs-%1/etc emacs-%1/info emacs-%1/lisp) do echo %%f>>#files#
|
|
48 for %%f in (emacs-%1/lock emacs-%1/site-lisp) do echo %%f>>#files#
|
|
49 for %%f in (%elfiles% emacs-%1/site-lisp/subdirs.el) do echo %%f>>#elfiles#
|
|
50
|
|
51 %TAR% --exclude temacs.exe --exclude emacs.mdp --exclude *.pdb --exclude *.opt --exclude "*.el" --exclude "*~" -T #files# -cvf %2-bin-i386.tar
|
|
52 %TAR% -T #elfiles# -rvf %2-bin-i386.tar
|
|
53 gzip -9 %2-bin-i386.tar
|
|
54 del emacs-%1\README.W32
|
|
55 rem del #files# #elfiles#
|
|
56 if not (%4) == () goto end
|
|
57
|
|
58 :fullbin
|
|
59
|
|
60 echo Create full bin distribution
|
|
61 copy %3\README.W32 emacs-%1\README.W32
|
|
62
|
|
63 %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
|
|
64 del emacs-%1\README.W32
|
|
65 if not (%4) == () goto end
|
|
66
|
|
67 :leim
|
|
68
|
|
69 echo Create archive with precompiled leim files
|
|
70 %TAR% -cvf - emacs-%1/leim/leim-list.el emacs-%1/leim/quail emacs-%1/leim/ja-dic | gzip -9 > %2-leim.tar.gz
|
|
71 if not (%4) == () goto end
|
|
72
|
|
73 :undumped
|
|
74
|
|
75 echo Create archive with extra files needed for redumping emacs
|
|
76 copy %3\README-UNDUMP.W32 emacs-%1\README-UNDUMP.W32
|
|
77 copy %3\dump.bat emacs-%1\bin
|
|
78 if exist emacs-%1\src\obj-spd\i386\temacs.exe copy emacs-%1\src\obj-spd\i386\temacs.exe emacs-%1\bin
|
|
79 if exist emacs-%1\src\oo-spd\i386\temacs.exe copy emacs-%1\src\oo-spd\i386\temacs.exe emacs-%1\bin
|
|
80 %TAR% -cvf - emacs-%1/README-UNDUMP.W32 emacs-%1/bin/dump.bat emacs-%1/bin/temacs.exe | gzip -9 > %2-undumped-i386.tar.gz
|
|
81 del emacs-%1\bin\temacs.exe
|
|
82 del emacs-%1\bin\dump.bat
|
|
83 del emacs-%1\README-UNDUMP.W32
|
|
84 if not (%4) == () goto end
|
|
85
|
|
86 :barebin
|
|
87
|
|
88 echo Create archive with just the basic binaries and generated files
|
|
89 echo (the user needs to unpack the full source distribution for
|
|
90 echo everything else)
|
|
91 copy %3\README.W32 emacs-%1\README.W32
|
|
92 %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
|
|
93 del emacs-%1\README.W32
|
|
94 if not (%4) == () goto end
|
|
95
|
|
96 goto end
|
|
97
|
|
98 rem Only do this if explicitly requested
|
|
99 :zipfiles
|
|
100
|
|
101 echo Create zip files for bin and lisp archives
|
|
102 mkdir distrib
|
|
103 cd distrib
|
|
104 gunzip -c ..\%2-bin-i386.tar.gz | %TAR% xf -
|
|
105 rem Need to split emacs.exe into fragments because it is too big now
|
|
106 rem to fit on a floppy even by itself.
|
|
107 copy %3\stitch.bat %2\bin
|
|
108 cd %2\bin
|
|
109 split -b 1000000 emacs.exe emacs
|
|
110 del emacs.exe
|
|
111 cd ..\..
|
|
112 zip -rp9 em%5bin %2
|
|
113 rm -rf %2
|
|
114 zipsplit -n 1400000 -b .. em%5bin.zip
|
|
115 del em%5bin.zip
|
|
116 gunzip -c ..\%2-lisp.tar.gz | %TAR% xf -
|
|
117 zip -rp9 em%5lis %2
|
|
118 rm -rf %2
|
|
119 zipsplit -n 1400000 -b .. em%5lis.zip
|
|
120 del em%5lis.zip
|
|
121 cd ..
|
|
122
|
|
123 goto end
|
|
124
|
|
125 :usage
|
|
126 echo Generate source and binary distributions of emacs.
|
|
127 echo Usage: %0 emacs-version dist-basename distfiles [lisp,bin,undumped,barebin]
|
|
128 echo (e.g., %0 19.34 emacs-19.34.5 d:\andrewi\distfiles)
|
|
129 echo Or: %0 emacs-version dist-basename distfiles "zipfiles" short-version
|
|
130 echo (e.g., %0 20.6 emacs-20.6 d:\andrewi\distfiles zipfiles 206)
|
|
131 :end
|
|
132
|
|
133 goto skipArchTag
|
|
134 arch-tag: 6e2ddd92-c1c9-4992-b6b5-207aaab72f68
|
|
135 :skipArchTag
|