[HAVE_GTK_AND_PTHREAD]: Define USE_PTHREAD.
[emacs.git] / admin / nt / makedist.bat
blob435462df6bd7915a6eace85fa45fc83e92900183
1 @echo off\r
2 \r
3 rem Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2007\r
4 rem   Free Software Foundation, Inc.\r
5 rem\r
6 rem Cannot use brackets in andrewi's email below because\r
7 rem older Windows shells will treat that as redirection.\r
8 rem\r
9 rem Author: Andrew Innes andrewi@gnu.org\r
10 rem\r
11 rem This file is part of GNU Emacs.\r
12 rem\r
13 rem GNU Emacs is free software; you can redistribute it and/or modify\r
14 rem it under the terms of the GNU General Public License as published by\r
15 rem the Free Software Foundation; either version 2, or (at your option)\r
16 rem any later version.\r
17 rem\r
18 rem GNU Emacs is distributed in the hope that it will be useful,\r
19 rem but WITHOUT ANY WARRANTY; without even the implied warranty of\r
20 rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
21 rem GNU General Public License for more details.\r
22 rem\r
23 rem You should have received a copy of the GNU General Public License\r
24 rem along with GNU Emacs; see the file COPYING.  If not, write to the\r
25 rem Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,\r
26 rem Boston, MA 02110-1301, USA.\r
29 rem Beware broken ports of tar. Recent cygwin versions work well, older\r
30 rem cygwin versions and the current MSys port have problems with DOS\r
31 rem line ends when reading file names from a file. Other ports have their\r
32 rem own problems too.\r
33 set TAR=tar\r
35 rem Make a copy of current Emacs source\r
36 if (%3) == () goto usage\r
37 if not (%4) == () goto %4\r
38 if not (%4) == (src) goto :lisp\r
40 :src\r
42 echo Create full source distribution, excluding leim\r
43 %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
44 if not (%4) == () goto end\r
46 :lisp\r
47 echo Create limited elisp source distribution\r
48 %TAR% --exclude *.rej --exclude *.elc --exclude *~ -cvf - emacs-%1/lisp | gzip -9 > %2-lisp.tar.gz\r
49 if not (%4) == () goto end\r
51 :bin\r
53 set eld=emacs-%1/lisp\r
55 rem List of Lisp files that are not compiled and that should be\r
56 rem included in the bin distribution.\r
58 rem It would be better to generate this list automatically.  It is the\r
59 rem list of all .el files for which there is no corresponding .elc\r
60 rem file, minus ldefs-boot.el.  --lute\r
62 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\r
64 set fns_el=\r
65 for %%f in (emacs-%1/bin/fns*) do set fns_el=%fns_el% emacs-%1/bin/%%f\r
67 echo Create bin distribution\r
68 copy %3\README.W32 emacs-%1\README.W32\r
70 del #files# #elfiles#\r
71 for %%f in (emacs-%1/BUGS emacs-%1/README emacs-%1/README.W32) do echo %%f>>#files#\r
72 for %%f in (emacs-%1/bin/fns*) do echo emacs-%1/bin/%%f>>#elfiles#\r
73 for %%f in (emacs-%1/bin emacs-%1/etc emacs-%1/info emacs-%1/lisp) do echo %%f>>#files#\r
74 for %%f in (emacs-%1/lock emacs-%1/site-lisp) do echo %%f>>#files#\r
75 for %%f in (%elfiles% emacs-%1/site-lisp/subdirs.el) do echo %%f>>#elfiles#\r
77 %TAR% --exclude temacs.exe --exclude emacs.mdp --exclude *.pdb --exclude *.opt --exclude "*.el" --exclude "*~" -T #files# -cvf %2-bin-i386.tar\r
78 %TAR% -T #elfiles# -rvf %2-bin-i386.tar\r
79 gzip -9 %2-bin-i386.tar\r
80 del emacs-%1\README.W32\r
81 rem del #files# #elfiles#\r
82 if not (%4) == () goto end\r
84 :fullbin\r
86 echo Create full bin distribution\r
87 copy %3\README.W32 emacs-%1\README.W32\r
89 %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
90 del emacs-%1\README.W32\r
91 if not (%4) == () goto end\r
93 :leim\r
95 echo Create archive with precompiled leim files\r
96 %TAR% -cvf - emacs-%1/leim/leim-list.el emacs-%1/leim/quail emacs-%1/leim/ja-dic | gzip -9 > %2-leim.tar.gz\r
97 if not (%4) == () goto end\r
99 :undumped\r
101 echo Create archive with extra files needed for redumping emacs\r
102 copy %3\README-UNDUMP.W32 emacs-%1\README-UNDUMP.W32\r
103 copy %3\dump.bat emacs-%1\bin\r
104 if exist emacs-%1\src\obj-spd\i386\temacs.exe copy emacs-%1\src\obj-spd\i386\temacs.exe emacs-%1\bin\r
105 if exist emacs-%1\src\oo-spd\i386\temacs.exe copy emacs-%1\src\oo-spd\i386\temacs.exe emacs-%1\bin\r
106 %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
107 del emacs-%1\bin\temacs.exe\r
108 del emacs-%1\bin\dump.bat\r
109 del emacs-%1\README-UNDUMP.W32\r
110 if not (%4) == () goto end\r
112 :barebin\r
114 echo Create archive with just the basic binaries and generated files\r
115 echo (the user needs to unpack the full source distribution for\r
116 echo  everything else)\r
117 copy %3\README.W32 emacs-%1\README.W32\r
118 %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
119 del emacs-%1\README.W32\r
120 if not (%4) == () goto end\r
122 goto end\r
124 rem Only do this if explicitly requested\r
125 :zipfiles\r
127 echo Create zip files for bin and lisp archives\r
128 mkdir distrib\r
129 cd distrib\r
130 gunzip -c ..\%2-bin-i386.tar.gz | %TAR% xf -\r
131 rem Need to split emacs.exe into fragments because it is too big now\r
132 rem to fit on a floppy even by itself.\r
133 copy %3\stitch.bat %2\bin\r
134 cd %2\bin\r
135 split -b 1000000 emacs.exe emacs\r
136 del emacs.exe\r
137 cd ..\..\r
138 zip -rp9 em%5bin %2\r
139 rm -rf %2\r
140 zipsplit -n 1400000 -b .. em%5bin.zip\r
141 del em%5bin.zip\r
142 gunzip -c ..\%2-lisp.tar.gz | %TAR% xf -\r
143 zip -rp9 em%5lis %2\r
144 rm -rf %2\r
145 zipsplit -n 1400000 -b .. em%5lis.zip\r
146 del em%5lis.zip\r
147 cd ..\r
149 goto end\r
151 :usage\r
152 echo Generate source and binary distributions of emacs.\r
153 echo Usage: %0 emacs-version dist-basename distfiles [lisp,bin,undumped,barebin]\r
154 echo   (e.g., %0 19.34 emacs-19.34.5 d:\andrewi\distfiles)\r
155 echo Or: %0 emacs-version dist-basename distfiles "zipfiles" short-version\r
156 echo   (e.g., %0 20.6 emacs-20.6 d:\andrewi\distfiles zipfiles 206)\r
157 :end\r
159 goto skipArchTag\r
160    arch-tag: 6e2ddd92-c1c9-4992-b6b5-207aaab72f68\r
161 :skipArchTag\r