dae69a84bf16de6e51b623eadfef8c21acb6a4a5
[gnus] / make.bat
1 @echo off\r
2 \r
3 rem Written by Frank Schmitt (ich@frank-schmitt.net)\r
4 rem based on the work by David Charlap (shamino@writeme.com)\r
5 rem .\r
6 rem Clear PWD so emacs doesn't get confused\r
7 set GNUS_PWD_SAVE=%PWD%\r
8 set PWD=\r
9 set ERROR=:\r
10 \r
11 if "%1" == "" goto usage\r
12 \r
13 rem Emacs 20.7 no longer includes emacs.bat. Use emacs.exe if the batch file is\r
14 rem not present -- this also fixes the problem about too many parameters on Win9x.\r
15 if exist %1\emacs.bat goto ebat\r
16 if exist %1\emacs.exe goto eexe\r
17 if exist %1\xemacs.exe goto xemacs\r
18 goto noemacs\r
19 \r
20 :ebat\r
21 set EMACS=emacs.bat\r
22 echo.\r
23 echo ***************************************************************************\r
24 echo * Using emacs.bat (If you've got en Emacs >= 20.3 please remove Emacs.bat,\r
25 echo * it isn't needed anymore.\r
26 echo ***************************************************************************\r
27 echo.\r
28 goto emacs\r
29 \r
30 :eexe\r
31 set EMACS=emacs.exe\r
32 echo.\r
33 echo ***************************************************************************\r
34 echo * Using emacs.exe\r
35 echo ***************************************************************************\r
36 echo.\r
37 goto emacs\r
38 \r
39 :emacs\r
40 if not "%2" == "/copy" goto emacsnocopy\r
41 if not exist %1\..\site-lisp\nul mkdir %1\..\site-lisp\r
42 if not exist %1\..\site-lisp\gnus\nul mkdir %1\..\site-lisp\gnus\r
43 if not exist %1\..\site-lisp\subdirs.el set subdirwarning=yes\r
44 :emacsnocopy\r
45 set EMACS_ARGS=-batch -q -no-site-file\r
46 set GNUS_INFO_DIR=%1\..\info\r
47 set GNUS_LISP_DIR=%1\..\site-lisp\gnus\lisp\r
48 set GNUS_ETC_DIR=%1\..\site-lisp\gnus\etc\r
49 goto lisp\r
50 \r
51 :xemacs\r
52 set EMACS=xemacs.exe\r
53 if not "%2" == "/copy" goto xemacsnocopy\r
54 if not exist %1\..\..\site-packages\nul mkdir %1\..\..\site-packages\\r
55 if not exist %1\..\..\site-packages\info\nul mkdir %1\..\..\site-packages\info\r
56 if not exist %1\..\..\site-packages\lisp\nul mkdir %1\..\..\site-packages\lisp\r
57 if not exist %1\..\..\site-packages\etc\nul mkdir %1\..\..\site-packages\etc\r
58 :xemacsnocopy\r
59 set EMACS_ARGS=-batch -no-autoloads\r
60 set GNUS_INFO_DIR=%1\..\..\site-packages\info\r
61 set GNUS_LISP_DIR=%1\..\..\site-packages\lisp\gnus\r
62 set GNUS_ETC_DIR=%1\..\..\site-packages\etc\r
63 echo.\r
64 echo ***************************************************************************\r
65 echo * Using xemacs.exe\r
66 echo ***************************************************************************\r
67 echo.\r
68 goto lisp\r
69 \r
70 :lisp\r
71 set EMACSBATCH=call %1\%EMACS% %EMACS_ARGS%\r
72 cd lisp\r
73 attrib -r gnus-load.el\r
74 if exist gnus-load.el del gnus-load.el\r
75 echo.\r
76 echo Stand by while generating autoloads.\r
77 echo.\r
78 %EMACSBATCH% -l ./dgnushack.el -f dgnushack-make-cus-load .\r
79 if ErrorLevel 1 set ERROR=make-cus-load\r
80 %EMACSBATCH% -l ./dgnushack.el -f dgnushack-make-auto-load .\r
81 if ErrorLevel 1 set ERROR=%ERROR%,make-auto-load\r
82 %EMACSBATCH% -l ./dgnushack.el -f dgnushack-make-load\r
83 if ErrorLevel 1 set ERROR=%ERROR%,make-load\r
84 echo.\r
85 echo Stand by while compiling lisp files.\r
86 echo.\r
87 %EMACSBATCH% -l ./dgnushack.el -f dgnushack-compile\r
88 if ErrorLevel 1 set ERROR=%ERROR%,compile\r
89 \r
90 if not "%2" == "/copy" goto infotest\r
91 echo.\r
92 echo Stand by while copying lisp files.\r
93 echo.\r
94 if not exist %GNUS_LISP_DIR%\nul mkdir %GNUS_LISP_DIR%\r
95 xcopy /R /Q /Y *.el* %GNUS_LISP_DIR%\r
96 if ErrorLevel 1 set ERROR=%ERROR%,copy-lisp\r
97 goto infotest\r
98 \r
99 :infotest\r
100 cd ..\texi\r
101 attrib -r sieve\r
102 if exist sieve del sieve\r
103 \r
104 makeinfo sieve.texi\r
105 if exist sieve goto minfo\r
106 REM It seems that makeinfo isn't available\r
107 set EMACSINFO=%EMACSBATCH% -l infohack.el -f batch-makeinfo\r
108 echo.\r
109 echo ***************************************************************************\r
110 echo * Using infohack.el, if you've got makeinfo.exe put it in PATH.\r
111 echo ***************************************************************************\r
112 echo.\r
113 goto info\r
114 \r
115 :minfo\r
116 set EMACSINFO=makeinfo\r
117 echo.\r
118 echo ***************************************************************************\r
119 echo * Using makeinfo\r
120 echo ***************************************************************************\r
121 echo.\r
122 goto info\r
123 \r
124 :info\r
125 echo.\r
126 echo Stand by while generating info files.\r
127 echo.\r
128 %EMACSINFO% emacs-mime.texi\r
129 if ErrorLevel 1 set ERROR=%ERROR%,emacs-mime.texi\r
130 %EMACSINFO% gnus.texi\r
131 if ErrorLevel 1 set ERROR=%ERROR%,gnus.texi\r
132 %EMACSINFO% sieve.texi\r
133 if ErrorLevel 1 set ERROR=%ERROR%,sieve.texi\r
134 %EMACSINFO% pgg.texi\r
135 if ErrorLevel 1 set ERROR=%ERROR%,pgg.texi\r
136 %EMACSINFO% message.texi\r
137 if ErrorLevel 1 set ERROR=%ERROR%,message.texi\r
138 \r
139 if not "%2" == "/copy" goto nocopy\r
140 if not exist %GNUS_INFO_DIR%\nul mkdir %GNUS_INFO_DIR%\r
141 \r
142 echo.\r
143 echo Stand by while copying info files.\r
144 echo.\r
145 xcopy /R /Q /Y gnus       %GNUS_INFO_DIR%\r
146 if ErrorLevel 1 set ERROR=%ERROR%,copy-gnus-info\r
147 xcopy /R /Q /Y gnus-?     %GNUS_INFO_DIR%\r
148 if ErrorLevel 1 set ERROR=%ERROR%,copy-gnus-x-info\r
149 xcopy /R /Q /Y gnus-??    %GNUS_INFO_DIR%\r
150 if ErrorLevel 1 set ERROR=%ERROR%,copy-gnus-xx-info\r
151 xcopy /R /Q /Y message    %GNUS_INFO_DIR%\r
152 if ErrorLevel 1 set ERROR=%ERROR%,copy-message-info\r
153 if exist message-1 xcopy /R /Q /Y message-?  %GNUS_INFO_DIR%\r
154 if ErrorLevel 1 set ERROR=%ERROR%,copy-message-x-info\r
155 xcopy /R /Q /Y emacs-mime %GNUS_INFO_DIR%\r
156 if ErrorLevel 1 set ERROR=%ERROR%,copy-emacs-mime-info\r
157 xcopy /R /Q /Y sieve      %GNUS_INFO_DIR%\r
158 if ErrorLevel 1 set ERROR=%ERROR%,copy-sieve-info\r
159 xcopy /R /Q /Y pgg        %GNUS_INFO_DIR%\r
160 if ErrorLevel 1 set ERROR=%ERROR%,copy-pgg-info\r
161 \r
162 echo.\r
163 echo ***************************************************************************\r
164 echo * You should add the following lines to\r
165 echo * %GNUS_INFO_DIR%\dir\r
166 echo * if they aren't already there:\r
167 echo *\r
168 echo * * PGG: (pgg).    Emacs interface to various PGP implementations.\r
169 echo * * Sieve: (sieve).        Managing Sieve scripts in Emacs.\r
170 echo ***************************************************************************\r
171 echo.\r
172 \r
173 :etc\r
174 cd ..\etc\r
175 echo.\r
176 echo Stand by while copying etc files.\r
177 echo.\r
178 if not exist %GNUS_ETC_DIR%\nul mkdir %GNUS_ETC_DIR%\r
179 xcopy /R /Q /Y gnus-tut.txt %GNUS_ETC_DIR%\r
180 if ErrorLevel 1 set ERROR=%ERROR%,copy-etc-gnus-tut-txt\r
181 if not exist %GNUS_ETC_DIR%\gnus\nul mkdir %GNUS_ETC_DIR%\gnus\r
182 xcopy /R /Q /Y .\gnus\* %GNUS_ETC_DIR%\gnus\\r
183 if ErrorLevel 1 set ERROR=%ERROR%,copy-etc-gnus-*\r
184 if not exist %GNUS_ETC_DIR%\smilies\nul mkdir %GNUS_ETC_DIR%\smilies\r
185 xcopy /R /Q /Y .\smilies\* %GNUS_ETC_DIR%\smilies\\r
186 if ErrorLevel 1 set ERROR=%ERROR%,copy-etc-smilies-*\r
187 goto warnings\r
188 \r
189 :nocopy\r
190 echo.\r
191 echo ***************************************************************************\r
192 echo * You chose not to copy the files, therefore you should add the\r
193 echo * following lines to the TOP of your [X]emacs customization file:\r
194 echo *\r
195 echo * (add-to-list 'load-path "/Path/to/gnus/lisp")\r
196 echo * (if (featurep 'xemacs)\r
197 echo *     (add-to-list 'Info-directory-list "c:/Path/to/gnus/texi/")\r
198 echo *   (add-to-list 'Info-default-directory-list "c:/Path/to/gnus/texi/"))\r
199 echo * (require 'gnus-load)\r
200 echo *\r
201 echo * Replace c:/Path/to/gnus with the Path where your new Gnus is (that's here\r
202 echo * and yes, you've got to use forward slashes).\r
203 echo ***************************************************************************\r
204 echo.\r
205 \r
206 :warnings\r
207 if not "%subdirwarning%" == "yes" goto warngnusload\r
208 echo.\r
209 echo ***************************************************************************\r
210 echo * There's no subdirs.el file in your site-lisp directory, you should\r
211 echo * therefor add the following line to the TOP of your Emacs\r
212 echo * customization file:\r
213 echo *\r
214 echo * (add-to-list 'load-path "/Path/to/emacs-site-lisp-directory/gnus/lisp")\r
215 echo * (require 'gnus-load)\r
216 echo * Yes, it must be forward slashes.\r
217 echo ***************************************************************************\r
218 echo.\r
219 goto warnerrors\r
220 \r
221 :warngnusload\r
222 echo.\r
223 echo ***************************************************************************\r
224 echo * You should add the following line to the TOP of your Emacs\r
225 echo * customization file:\r
226 echo *\r
227 echo * (require 'gnus-load)\r
228 echo ***************************************************************************\r
229 echo.\r
230 \r
231 :warnerrors\r
232 if "%ERROR%"==":" goto noerrors\r
233 set errorlevel=1\r
234 echo.\r
235 echo ***************************************************************************\r
236 echo * WARNING ERRORS OCCURRED!\r
237 echo * You should look for error messages in the output of the called programs\r
238 echo * and try to find out what exactly went wrong.\r
239 echo * Errors occured in the following modules:\r
240 echo * %ERROR%\r
241 echo ***************************************************************************\r
242 echo.\r
243 goto done\r
244 \r
245 :noerrors\r
246 set errorlevel=0\r
247 \r
248 :done\r
249 cd ..\r
250 goto end\r
251 \r
252 :noemacs\r
253 echo.\r
254 echo ***************************************************************************\r
255 echo * Unable to find emacs.exe or xemacs.exe on the path you specified!\r
256 echo * STOP!\r
257 echo ***************************************************************************\r
258 echo.\r
259 goto usage\r
260 \r
261 :usage\r
262 echo.\r
263 echo ***************************************************************************\r
264 echo * Usage: make.bat :[X]Emacs-exe-dir: [/copy]\r
265 echo *\r
266 echo * where: :[X]Emacs-exe-dir: is the directory your\r
267 echo *           emacs.exe respectively xemacs.exe resides in,\r
268 echo *           e.g. G:\Programme\XEmacs\XEmacs-21.4.11\i586-pc-win32\\r
269 echo *           or G:\Emacs\bin\r
270 echo *        /copy indicates that the compiled files should be copied to your\r
271 echo *           emacs lisp, info, and etc site directories.\r
272 echo *\r
273 echo * Note: If you have Emacs/w3 you should set the environment variable\r
274 echo *       W3DIR to the directory where w3 is installed eg.\r
275 echo *                set W3DIR=d:\lisp\w3-4.0pre46\lisp\r
276 echo ***************************************************************************\r
277 echo.\r
278 \r
279 :end\r
280 rem Restore environment variables\r
281 set PWD=%GNUS_PWD_SAVE%\r
282 set GNUS_PWD_SAVE=\r
283 set EMACSBATCH=\r
284 set GNUS_LISP_DIR=\r
285 set GNUS_INFO_DIR=\r
286 set GNUS_ETC_DIR=\r
287 set subdirwarning=\r
288 set ERROR=\r