Mercurial > emacs
comparison config.bat @ 111811:ced73eea562f
Restore files that I seem to have mistakenly deleted.
author | Katsumi Yamaoka <yamaoka@jpl.org> |
---|---|
date | Fri, 03 Dec 2010 14:45:09 +0000 |
parents | |
children | 417b1e4d63cd |
comparison
equal
deleted
inserted
replaced
111810:a669b2ecba3a | 111811:ced73eea562f |
---|---|
1 @echo off | |
2 rem ---------------------------------------------------------------------- | |
3 rem Configuration script for MSDOS | |
4 rem Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003 | |
5 rem 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. | |
6 | |
7 rem This file is part of GNU Emacs. | |
8 | |
9 rem GNU Emacs is free software: you can redistribute it and/or modify | |
10 rem it under the terms of the GNU General Public License as published by | |
11 rem the Free Software Foundation, either version 3 of the License, or | |
12 rem (at your option) any later version. | |
13 | |
14 rem GNU Emacs is distributed in the hope that it will be useful, | |
15 rem but WITHOUT ANY WARRANTY; without even the implied warranty of | |
16 rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | |
17 rem GNU General Public License for more details. | |
18 | |
19 rem You should have received a copy of the GNU General Public License | |
20 rem along with GNU Emacs. If not, see http://www.gnu.org/licenses/. | |
21 | |
22 rem ---------------------------------------------------------------------- | |
23 rem YOU'LL NEED THE FOLLOWING UTILITIES TO MAKE EMACS: | |
24 rem | |
25 rem + msdos version 3 or better. | |
26 rem + DJGPP version 2.0 or later (version 2.03 or later recommended). | |
27 rem + make utility that allows breaking of the 128 chars limit on | |
28 rem command lines. ndmake (as of version 4.5) won't work due to a | |
29 rem line length limit. The make that comes with DJGPP does work (and is | |
30 rem recommended). | |
31 rem + rm, mv, and cp (from GNU file utilities). | |
32 rem + sed (you can use the port that comes with DJGPP). | |
33 rem | |
34 rem You should be able to get all the above utilities from the DJGPP FTP | |
35 rem site, ftp.delorie.com, in the directory "pub/djgpp/current/v2gnu". | |
36 rem ---------------------------------------------------------------------- | |
37 set X11= | |
38 set nodebug= | |
39 set djgpp_ver= | |
40 set sys_malloc= | |
41 set libxml= | |
42 if "%1" == "" goto usage | |
43 rem ---------------------------------------------------------------------- | |
44 rem See if their environment is large enough. We need 28 bytes. | |
45 set $foo$=789012345678901234567 | |
46 if not "%$foo$%" == "789012345678901234567" goto SmallEnv | |
47 set $foo$= | |
48 :again | |
49 if "%1" == "" goto usage | |
50 if "%1" == "--with-x" goto withx | |
51 if "%1" == "--no-debug" goto nodebug | |
52 if "%1" == "msdos" goto msdos | |
53 if "%1" == "--with-system-malloc" goto sysmalloc | |
54 :usage | |
55 echo Usage: config [--no-debug] [--with-system-malloc] [--with-x] msdos | |
56 echo [Read the script before you run it.] | |
57 goto end | |
58 rem ---------------------------------------------------------------------- | |
59 :withx | |
60 set X11=Y | |
61 shift | |
62 goto again | |
63 rem ---------------------------------------------------------------------- | |
64 :nodebug | |
65 set nodebug=Y | |
66 shift | |
67 goto again | |
68 rem ---------------------------------------------------------------------- | |
69 :sysmalloc | |
70 set sys_malloc=Y | |
71 shift | |
72 goto again | |
73 rem ---------------------------------------------------------------------- | |
74 :msdos | |
75 Echo Checking whether 'sed' is available... | |
76 sed -e "w junk.$$$" <Nul | |
77 If Exist junk.$$$ Goto sedOk | |
78 Echo To configure 'Emacs' you need to have 'sed'! | |
79 Goto End | |
80 :sedOk | |
81 Echo Checking whether 'rm' is available... | |
82 rm -f junk.$$$ | |
83 If Not Exist junk.$$$ Goto rmOk | |
84 Echo To configure 'Emacs' you need to have 'rm'! | |
85 Goto End | |
86 :rmOk | |
87 Echo Checking whether 'mv' is available... | |
88 rm -f junk.1 junk.2 | |
89 echo foo >junk.1 | |
90 mv junk.1 ./junk.2 | |
91 If Exist junk.2 Goto mvOk | |
92 Echo To configure 'Emacs' you need to have 'mv'! | |
93 rm -f junk.1 | |
94 Goto End | |
95 :mvOk | |
96 rm -f junk.2 | |
97 Echo Checking whether 'gcc' is available... | |
98 echo main(){} >junk.c | |
99 gcc -c junk.c | |
100 if exist junk.o goto gccOk | |
101 Echo To configure 'Emacs' you need to have 'gcc'! | |
102 rm -f junk.c | |
103 Goto End | |
104 :gccOk | |
105 rm -f junk.c junk.o junk junk.exe | |
106 Echo Checking what version of DJGPP is installed... | |
107 If Not "%DJGPP%" == "" goto djgppOk | |
108 Echo To compile 'Emacs' under MS-DOS you MUST have DJGPP installed! | |
109 Goto End | |
110 :djgppOk | |
111 echo int main() >junk.c | |
112 echo #ifdef __DJGPP__ >>junk.c | |
113 echo {return (__DJGPP__)*10;} >>junk.c | |
114 echo #else >>junk.c | |
115 echo #ifdef __GO32__ >>junk.c | |
116 echo {return 10;} >>junk.c | |
117 echo #else >>junk.c | |
118 echo {return 0;} >>junk.c | |
119 echo #endif >>junk.c | |
120 echo #endif >>junk.c | |
121 gcc -o junk junk.c | |
122 if not exist junk.exe coff2exe junk | |
123 junk | |
124 If ErrorLevel 10 Goto go32Ok | |
125 rm -f junk.c junk junk.exe | |
126 Echo To compile 'Emacs' under MS-DOS you MUST have DJGPP installed! | |
127 Goto End | |
128 :go32Ok | |
129 set djgpp_ver=2 | |
130 If Not ErrorLevel 20 Echo To build 'Emacs' you need DJGPP v2.0 or later! | |
131 If Not ErrorLevel 20 Goto End | |
132 rm -f junk.c junk junk.exe | |
133 rem DJECHO is used by the top-level Makefile in the v2.x build | |
134 Echo Checking whether 'djecho' is available... | |
135 redir -o Nul -eo djecho -o junk.$$$ foo | |
136 If Exist junk.$$$ Goto djechoOk | |
137 Echo To build 'Emacs' you need the 'djecho.exe' program! | |
138 Echo 'djecho.exe' is part of 'djdevNNN.zip' basic DJGPP development kit. | |
139 Echo Versions of DJGPP before 2.02 called this program 'echo.exe'. | |
140 Echo Either unpack 'djecho.exe' from the 'djdevNNN.zip' archive, | |
141 Echo or, if you have 'echo.exe', copy it to 'djecho.exe'. | |
142 Echo Then run CONFIG.BAT again with the same arguments you did now. | |
143 Goto End | |
144 :djechoOk | |
145 rm -f junk.$$$ | |
146 Echo Configuring for DJGPP Version %DJGPP_VER% ... | |
147 Rem ---------------------------------------------------------------------- | |
148 Echo Configuring the source directory... | |
149 cd src | |
150 | |
151 rem Create "epaths.h" | |
152 sed -f ../msdos/sed4.inp <epaths.in >epaths.tmp | |
153 update epaths.tmp epaths.h >nul | |
154 rm -f epaths.tmp | |
155 | |
156 rem Create "config.h" | |
157 rm -f config.h2 config.tmp | |
158 sed -e '' config.in > config.tmp | |
159 if "%X11%" == "" goto src4 | |
160 sed -f ../msdos/sed2x.inp <config.in >config.tmp | |
161 :src4 | |
162 sed -f ../msdos/sed2v2.inp <config.tmp >config.h2 | |
163 Rem See if DECL_ALIGN can be supported with this GCC | |
164 rm -f junk.c junk.o junk junk.exe | |
165 echo struct { int i; char *p; } __attribute__((__aligned__(8))) foo; >junk.c | |
166 rem Two percent signs because it is a special character for COMMAND.COM/CMD | |
167 rem Filter thru Sed because "&" is special for CMD.EXE | |
168 echo int main(void) { return (unsigned long)"&"foo %% 8; } | sed "s/.&./\&/" >>junk.c | |
169 gcc -o junk junk.c | |
170 if not exist junk.exe coff2exe junk | |
171 junk | |
172 If Not ErrorLevel 1 Goto alignOk | |
173 Echo WARNING: Your GCC does not support 8-byte aligned variables. | |
174 Echo WARNING: Therefore Emacs cannot support buffers larger than 128MB. | |
175 rem The following line disables DECL_ALIGN which in turn disables USE_LSB_TAG | |
176 rem For details see lisp.h where it defines USE_LSB_TAG | |
177 echo #define NO_DECL_ALIGN >>config.h2 | |
178 :alignOk | |
179 Rem See if they have libxml2 later than v2.2.0 installed | |
180 Echo Checking whether libxml2 v2.2.1 or later is installed ... | |
181 rm -f junk.c junk.o junk junk.exe | |
182 rem Use djecho here because we need to quote brackets | |
183 djecho "#include <libxml/xmlversion.h>" >junk.c | |
184 djecho "int main()" >>junk.c | |
185 djecho "{return (LIBXML_VERSION > 20200 ? 0 : 1);}" >>junk.c | |
186 redir -o Nul -eo gcc -I/dev/env/DJDIR/include/libxml2 -o junk junk.c | |
187 if not exist junk Goto xmlDone | |
188 if not exist junk.exe coff2exe junk | |
189 junk | |
190 If ErrorLevel 1 Goto xmlDone | |
191 Echo Configuring with libxml2 ... | |
192 sed -e "/#undef HAVE_LIBXML2/s/^.*$/#define HAVE_LIBXML2 1/" <config.h2 >config.h3 | |
193 mv config.h3 config.h2 | |
194 set libxml=1 | |
195 :xmlDone | |
196 rm -f junk.c junk junk.exe | |
197 Rem See if they requested a SYSTEM_MALLOC build | |
198 if "%sys_malloc%" == "" Goto cfgDone | |
199 rm -f config.tmp | |
200 ren config.h2 config.tmp | |
201 sed -f ../msdos/sedalloc.inp <config.tmp >config.h2 | |
202 | |
203 :cfgDone | |
204 rm -f junk.c junk junk.exe | |
205 update config.h2 config.h >nul | |
206 rm -f config.tmp config.h2 | |
207 | |
208 rem On my system dir.h gets in the way. It's a VMS file so who cares. | |
209 if exist dir.h ren dir.h vmsdir.h | |
210 | |
211 rem Create "makefile" from "makefile.in". | |
212 rm -f Makefile makefile.tmp | |
213 copy Makefile.in+deps.mk makefile.tmp | |
214 sed -f ../msdos/sed1v2.inp <makefile.tmp >Makefile | |
215 rm -f makefile.tmp | |
216 | |
217 if "%X11%" == "" goto src5 | |
218 mv Makefile makefile.tmp | |
219 sed -f ../msdos/sed1x.inp <makefile.tmp >Makefile | |
220 rm -f makefile.tmp | |
221 :src5 | |
222 | |
223 if "%sys_malloc%" == "" goto src5a | |
224 sed -e "/^GMALLOC_OBJ *=/s/gmalloc.o//" <Makefile >makefile.tmp | |
225 sed -e "/^VMLIMIT_OBJ *=/s/vm-limit.o//" <makefile.tmp >makefile.tmp2 | |
226 sed -e "/^RALLOC_OBJ *=/s/ralloc.o//" <makefile.tmp2 >Makefile | |
227 rm -f makefile.tmp makefile.tmp2 | |
228 :src5a | |
229 | |
230 if "%nodebug%" == "" goto src6 | |
231 sed -e "/^CFLAGS *=/s/ *-gcoff//" <Makefile >makefile.tmp | |
232 sed -e "/^LDFLAGS *=/s/=/=-s/" <makefile.tmp >Makefile | |
233 rm -f makefile.tmp | |
234 :src6 | |
235 | |
236 if "%libxml%" == "" goto src7 | |
237 sed -e "/^LIBXML2_LIBS *=/s/=/= -lxml2 -lz -liconv/" <Makefile >makefile.tmp | |
238 sed -e "/^LIBXML2_CFLAGS *=/s|=|= -I/dev/env/DJDIR/include/libxml2|" <makefile.tmp >Makefile | |
239 rm -f makefile.tmp | |
240 :src7 | |
241 cd .. | |
242 rem ---------------------------------------------------------------------- | |
243 Echo Configuring the library source directory... | |
244 cd lib-src | |
245 sed -f ../msdos/sed3v2.inp <Makefile.in >Makefile | |
246 if "%X11%" == "" goto libsrc2a | |
247 mv Makefile makefile.tmp | |
248 sed -f ../msdos/sed3x.inp <makefile.tmp >Makefile | |
249 rm -f makefile.tmp | |
250 :libsrc2a | |
251 if "%nodebug%" == "" goto libsrc3 | |
252 sed -e "/^CFLAGS *=/s/ *-gcoff//" <Makefile >makefile.tmp | |
253 sed -e "/^ALL_CFLAGS *=/s/=/= -s/" <makefile.tmp >Makefile | |
254 rm -f makefile.tmp | |
255 :libsrc3 | |
256 cd .. | |
257 rem ---------------------------------------------------------------------- | |
258 if "%X11%" == "" goto oldx1 | |
259 Echo Configuring the oldxmenu directory... | |
260 cd oldxmenu | |
261 sed -f ../msdos/sed5x.inp <Makefile.in >Makefile | |
262 if "%nodebug%" == "" goto oldx2 | |
263 sed -e "/^CFLAGS *=/s/ *-gcoff//" <Makefile >makefile.tmp | |
264 mv -f makefile.tmp Makefile | |
265 :oldx2 | |
266 cd .. | |
267 :oldx1 | |
268 rem ---------------------------------------------------------------------- | |
269 Echo Configuring the doc directory, expect one "File not found" message... | |
270 cd doc | |
271 Rem The two variants for lispintro below is for when the shell | |
272 Rem supports long file names but DJGPP does not | |
273 for %%d in (emacs lispref lispintro lispintr misc) do sed -f ../msdos/sed6.inp < %%d\Makefile.in > %%d\Makefile | |
274 cd .. | |
275 rem ---------------------------------------------------------------------- | |
276 Echo Configuring the lisp directory... | |
277 cd lisp | |
278 If Exist gnus\.dir-locals.el update gnus/.dir-locals.el gnus/_dir-locals.el | |
279 sed -f ../msdos/sedlisp.inp < Makefile.in > Makefile | |
280 cd .. | |
281 rem ---------------------------------------------------------------------- | |
282 If not Exist leim\quail\latin-pre.el goto maindir | |
283 Echo Configuring the leim directory... | |
284 cd leim | |
285 sed -f ../msdos/sedleim.inp < Makefile.in > Makefile | |
286 cd .. | |
287 rem ---------------------------------------------------------------------- | |
288 :maindir | |
289 Echo Configuring the main directory... | |
290 If Exist .dir-locals.el update .dir-locals.el _dir-locals.el | |
291 If Exist src\.dbxinit update src/.dbxinit src/_dbxinit | |
292 Echo Looking for the GDB init file... | |
293 If Exist src\.gdbinit update src/.gdbinit src/_gdbinit | |
294 If Exist src\_gdbinit goto gdbinitOk | |
295 Echo ERROR: | |
296 Echo I cannot find the GDB init file. It was called ".gdbinit" in | |
297 Echo the Emacs distribution, but was probably renamed to some other | |
298 Echo name without the leading dot when you untarred the archive. | |
299 Echo It should be in the "src/" subdirectory. Please make sure this | |
300 Echo file exists and is called "_gdbinit" with a leading underscore. | |
301 Echo Then run CONFIG.BAT again with the same arguments you did now. | |
302 goto End | |
303 :gdbinitOk | |
304 Echo Looking for the GDB init file...found | |
305 copy msdos\mainmake.v2 Makefile >nul | |
306 rem ---------------------------------------------------------------------- | |
307 goto End | |
308 :SmallEnv | |
309 echo Your environment size is too small. Please enlarge it and run me again. | |
310 echo For example, type "command.com /e:2048" to have 2048 bytes available. | |
311 set $foo$= | |
312 :end | |
313 set X11= | |
314 set nodebug= | |
315 set djgpp_ver= | |
316 set sys_malloc= | |
317 set libxml= | |
318 | |
319 goto skipArchTag | |
320 arch-tag: 2d2fed23-4dc6-4006-a2e4-49daf0031f33 | |
321 :skipArchTag |