(parse_str_to_multibyte): Extern it.
[bpt/emacs.git] / config.bat
1 @echo off
2 rem ----------------------------------------------------------------------
3 rem Configuration script for MSDOS
4 rem Copyright (C) 1994 Free Software Foundation, Inc.
5
6 rem This file is part of GNU Emacs.
7
8 rem GNU Emacs is free software; you can redistribute it and/or modify
9 rem it under the terms of the GNU General Public License as published by
10 rem the Free Software Foundation; either version 2, or (at your option)
11 rem any later version.
12
13 rem GNU Emacs is distributed in the hope that it will be useful,
14 rem but WITHOUT ANY WARRANTY; without even the implied warranty of
15 rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16 rem GNU General Public License for more details.
17
18 rem You should have received a copy of the GNU General Public License
19 rem along with GNU Emacs; see the file COPYING. If not, write to the
20 rem Free Software Foundation, Inc., 59 Temple Place - Suite 330,
21 rem Boston, MA 02111-1307, USA.
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 1.12maint1 or later (version 2.0 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.
30 rem + rm and mv (from GNU file utilities).
31 rem + sed (you can use the port that comes with DJGPP).
32 rem
33 rem You should be able to get all the above utilities from any SimTel
34 rem repository, e.g. ftp.simtel.net, in the directory
35 rem "pub/simtelnet/gnu/djgpp/v2gnu". As usual, please use your local
36 rem mirroring site to reduce trans-Atlantic traffic.
37 rem ----------------------------------------------------------------------
38 set X11=
39 set nodebug=
40 set djgpp_ver=
41 if "%1" == "" goto usage
42 rem ----------------------------------------------------------------------
43 rem See if their environment is large enough. We need 28 bytes.
44 set $foo$=789012345678901234567
45 if not "%$foo$%" == "789012345678901234567" goto SmallEnv
46 set $foo$=
47 :again
48 if "%1" == "" goto usage
49 if "%1" == "--with-x" goto withx
50 if "%1" == "--no-debug" goto nodebug
51 if "%1" == "msdos" goto msdos
52 :usage
53 echo Usage: config [--with-x] [--no-debug] msdos
54 echo [Read the script before you run it.]
55 goto end
56 rem ----------------------------------------------------------------------
57 :withx
58 set X11=Y
59 shift
60 goto again
61 rem ----------------------------------------------------------------------
62 :nodebug
63 set nodebug=Y
64 shift
65 goto again
66 rem ----------------------------------------------------------------------
67 :msdos
68 Echo Checking whether 'sed' is available...
69 sed -e "w junk.$$$" <Nul
70 If Exist junk.$$$ Goto sedOk
71 Echo To configure 'Emacs' you need to have 'sed'!
72 Goto End
73 :sedOk
74 Echo Checking whether 'rm' is available...
75 rm -f junk.$$$
76 If Not Exist junk.$$$ Goto rmOk
77 Echo To configure 'Emacs' you need to have 'rm'!
78 Goto End
79 :rmOk
80 Echo Checking whether 'mv' is available...
81 rm -f junk.1 junk.2
82 echo foo >junk.1
83 mv junk.1 ./junk.2
84 If Exist junk.2 Goto mvOk
85 Echo To configure 'Emacs' you need to have 'mv'!
86 rm -f junk.1
87 Goto End
88 :mvOk
89 rm -f junk.2
90 Echo Checking whether 'gcc' is available...
91 echo main(){} >junk.c
92 gcc -c junk.c
93 if exist junk.o goto gccOk
94 Echo To configure 'Emacs' you need to have 'gcc'!
95 rm -f junk.c
96 Goto End
97 :gccOk
98 rm -f junk.c junk.o junk junk.exe
99 Echo Checking what version of DJGPP is installed...
100 If Not "%DJGPP%" == "" goto djgppOk
101 Echo To compile 'Emacs' under MS-DOS you MUST have DJGPP installed!
102 Goto End
103 :djgppOk
104 echo int main() >junk.c
105 echo #ifdef __DJGPP__ >>junk.c
106 echo {return (__DJGPP__)*10;} >>junk.c
107 echo #else >>junk.c
108 echo #ifdef __GO32__ >>junk.c
109 echo {return 10;} >>junk.c
110 echo #else >>junk.c
111 echo {return 0;} >>junk.c
112 echo #endif >>junk.c
113 echo #endif >>junk.c
114 gcc -o junk junk.c
115 if not exist junk.exe coff2exe junk
116 junk
117 If ErrorLevel 10 Goto go32Ok
118 rm -f junk.c junk junk.exe
119 Echo To compile 'Emacs' under MS-DOS you MUST have DJGPP installed!
120 Goto End
121 :go32Ok
122 set djgpp_ver=1
123 If ErrorLevel 20 set djgpp_ver=2
124 rm -f junk.c junk junk.exe
125 rem DJECHO is used by the top-level Makefile
126 Echo Checking whether 'djecho' is available...
127 redir -o Nul -eo djecho -o junk.$$$ foo
128 If Exist junk.$$$ Goto djechoOk
129 Echo To build 'Emacs' you need the 'djecho.exe' program!
130 Echo 'djecho.exe' is part of 'djdevNNN.zip' basic DJGPP development kit.
131 Echo Versions of DJGPP before 2.02 called this program 'echo.exe'.
132 Echo Either unpack 'djecho.exe' from the 'djdevNNN.zip' archive,
133 Echo or, if you have 'echo.exe', copy it to 'djecho.exe'.
134 Echo Then run CONFIG.BAT again with the same arguments you did now.
135 Goto End
136 :djechoOk
137 rm -f junk.$$$
138 Echo Configuring for DJGPP Version %DJGPP_VER% ...
139 Rem ----------------------------------------------------------------------
140 Echo Configuring the source directory...
141 cd src
142
143 rem Create "epaths.h"
144 sed -f ../msdos/sed4.inp <epaths.in >epaths.tmp
145 update epaths.tmp epaths.h >nul
146 rm -f epaths.tmp
147
148 rem Create "config.h"
149 rm -f config.h2 config.tmp
150 sed -e '' config.in > config.tmp
151 if "%X11%" == "" goto src4
152 sed -f ../msdos/sed2x.inp <config.in >config.tmp
153 :src4
154 sed -f ../msdos/sed2.inp <config.tmp >config.h2
155 update config.h2 config.h >nul
156 rm -f config.tmp config.h2
157
158 rem On my system dir.h gets in the way. It's a VMS file so who cares.
159 if exist dir.h ren dir.h vmsdir.h
160
161 rem Create "makefile" from "makefile.in".
162 rm -f Makefile junk.c
163 sed -e "1,/== start of cpp stuff ==/s@^# .*$@@" <Makefile.in >junk.c
164 If "%DJGPP_VER%" == "1" Goto mfV1
165 gcc -E -traditional junk.c | sed -f ../msdos/sed1v2.inp >Makefile
166 goto mfDone
167 :mfV1
168 gcc -E -traditional junk.c | sed -f ../msdos/sed1.inp >Makefile
169 :mfDone
170 rm -f junk.c
171
172 if "%X11%" == "" goto src5
173 mv Makefile makefile.tmp
174 sed -f ../msdos/sed1x.inp <makefile.tmp >Makefile
175 rm -f makefile.tmp
176 :src5
177
178 if "%nodebug%" == "" goto src6
179 sed -e "/^CFLAGS *=/s/ *-gcoff//" <Makefile >makefile.tmp
180 sed -e "/^LDFLAGS *=/s/=/=-s/" <makefile.tmp >Makefile
181 rm -f makefile.tmp
182 :src6
183 cd ..
184 rem ----------------------------------------------------------------------
185 Echo Configuring the library source directory...
186 cd lib-src
187 rem Create "makefile" from "makefile.in".
188 sed -e "1,/== start of cpp stuff ==/s@^# .*$@@" <Makefile.in >junk.c
189 gcc -E -traditional -I. -I../src junk.c | sed -e "s/^ / /" -e "/^#/d" -e "/^[ \f]*$/d" >makefile.new
190 If "%DJGPP_VER%" == "2" goto libsrc-v2
191 sed -f ../msdos/sed3.inp <makefile.new >Makefile
192 Goto libsrc2
193 :libsrc-v2
194 sed -f ../msdos/sed3v2.inp <makefile.new >Makefile
195 :libsrc2
196 rm -f makefile.new junk.c
197 if "%nodebug%" == "" goto libsrc3
198 sed -e "/^CFLAGS *=/s/ *-gcoff//" <Makefile >makefile.tmp
199 sed -e "/^ALL_CFLAGS *=/s/=/= -s/" <makefile.tmp >Makefile
200 rm -f makefile.tmp
201 :libsrc3
202 cd ..
203 rem ----------------------------------------------------------------------
204 if "%X11%" == "" goto oldx1
205 Echo Configuring the oldxmenu directory...
206 cd oldxmenu
207 sed -f ../msdos/sed5x.inp <Makefile.in >Makefile
208 if "%nodebug%" == "" goto oldx2
209 sed -e "/^CFLAGS *=/s/ *-gcoff//" <Makefile >makefile.tmp
210 mv -f makefile.tmp Makefile
211 :oldx2
212 cd ..
213 :oldx1
214 rem ----------------------------------------------------------------------
215 Echo Configuring the manual directory...
216 cd man
217 sed -f ../msdos/sed6.inp < Makefile.in > Makefile
218 cd ..
219 rem ----------------------------------------------------------------------
220 Echo Configuring the lisp directory...
221 cd lisp
222 sed -f ../msdos/sedlisp.inp < Makefile.in > Makefile
223 cd ..
224 rem ----------------------------------------------------------------------
225 If not Exist leim\quail\latin-pre.el goto maindir
226 Echo Configuring the leim directory...
227 cd leim
228 sed -f ../msdos/sedleim.inp < Makefile.in > Makefile
229 cd ..
230 rem ----------------------------------------------------------------------
231 :maindir
232 Echo Configuring the main directory...
233 If "%DJGPP_VER%" == "1" goto mainv1
234 Echo Looking for the GDB init file...
235 If Exist src\.gdbinit update src/.gdbinit src/_gdbinit
236 If Exist src\_gdbinit goto gdbinitOk
237 Echo ERROR:
238 Echo I cannot find the GDB init file. It was called ".gdbinit" in
239 Echo the Emacs distribution, but was probably renamed to some other
240 Echo name without the leading dot when you untarred the archive.
241 Echo It should be in the "src/" subdirectory. Please make sure this
242 Echo file exists and is called "_gdbinit" with a leading underscore.
243 Echo Then run CONFIG.BAT again with the same arguments you did now.
244 goto End
245 :gdbinitOk
246 Echo Looking for the GDB init file...found
247 copy msdos\mainmake.v2 Makefile >nul
248 :mainv1
249 If "%DJGPP_VER%" == "1" copy msdos\mainmake Makefile >nul
250 rem ----------------------------------------------------------------------
251 goto End
252 :SmallEnv
253 echo Your environment size is too small. Please enlarge it and run me again.
254 echo For example, type "command.com /e:2048" to have 2048 bytes available.
255 set $foo$=
256 :end
257 set X11=
258 set nodebug=
259 set djgpp_ver=