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