]> code.delx.au - gnu-emacs/blob - admin/nt/makedist.bat
updated link(s)
[gnu-emacs] / admin / nt / makedist.bat
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