2 rem ----------------------------------------------------------------------
3 rem Configuration script for MSDOS
4 rem Copyright (C) 1994 Free Software Foundation, Inc.
6 rem This file is part of GNU Emacs.
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.
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.
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:
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).
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 ----------------------------------------------------------------------
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
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
53 echo Usage
: config
[--with
-x
] [--no
-debug] msdos
54 echo [Read the script before you
run it.
]
56 rem ----------------------------------------------------------------------
61 rem ----------------------------------------------------------------------
66 rem ----------------------------------------------------------------------
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'!
74 Echo Checking whether
'rm' is available...
76 If Not Exist junk.$$$
Goto rmOk
77 Echo To configure
'Emacs' you need to have
'rm'!
80 Echo Checking whether
'mv' is available...
84 If Exist junk
.2 Goto mvOk
85 Echo To configure
'Emacs' you need to have
'mv'!
90 Echo Checking whether
'gcc' is available...
93 if exist junk.o
goto gccOk
94 Echo To configure
'Emacs' you need to have
'gcc'!
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
!
104 echo int main
() >junk.c
105 echo #ifdef __DJGPP__
>>junk.c
106 echo {return (__DJGPP__
)*10;} >>junk.c
108 echo #ifdef __GO32__
>>junk.c
109 echo {return 10;} >>junk.c
111 echo {return 0;} >>junk.c
115 if not exist junk.exe coff2exe 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
!
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.
138 Echo Configuring
for DJGPP Version
%DJGPP_VER% ...
139 Rem ----------------------------------------------------------------------
140 Echo Configuring the source directory...
143 rem Create "epaths.h"
144 sed
-f ..
/msdos
/sed4.inp
<epaths.in
>epaths.tmp
145 update epaths.tmp epaths.h
>nul
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
154 sed
-f ..
/msdos
/sed2.inp
<config.tmp
>config.h2
155 update config.h2 config.h
>nul
156 rm
-f config.tmp config.h2
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
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 junk.c | sed
-f ..
/msdos
/sed1v2.inp
>Makefile
168 gcc
-E junk.c | sed
-f ..
/msdos
/sed1.inp
>Makefile
172 if "%X11%" == "" goto src5
173 mv Makefile makefile.tmp
174 sed
-f ..
/msdos
/sed1x.inp
<makefile.tmp
>Makefile
178 if "%nodebug%" == "" goto src6
179 sed
-e
"/^CFLAGS *=/s/ *-gcoff//" <Makefile
>makefile.tmp
180 sed
-e
"/^LDFLAGS *=/s/=/=-s/" <makefile.tmp
>Makefile
184 rem ----------------------------------------------------------------------
185 Echo Configuring the library source directory...
187 rem Create "makefile" from "makefile.in".
188 sed
-e
"1,/== start of cpp stuff ==/s@^# .*$@@" <Makefile.in
>junk.c
189 gcc
-E
-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
194 sed
-f ..
/msdos
/sed3v2.inp
<makefile.new
>Makefile
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
203 rem ----------------------------------------------------------------------
204 if "%X11%" == "" goto oldx1
205 Echo Configuring the oldxmenu directory...
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
214 rem ----------------------------------------------------------------------
215 Echo Configuring the manual directory...
217 sed
-f ..
/msdos
/sed6.inp
< Makefile.in
> Makefile
219 rem ----------------------------------------------------------------------
220 Echo Configuring the lisp directory...
222 sed
-f ..
/msdos
/sedlisp.inp
< Makefile.in
> Makefile
224 rem ----------------------------------------------------------------------
225 If not Exist leim\quail\latin
-pre.el
goto maindir
226 Echo Configuring the leim directory...
228 sed
-f ..
/msdos
/sedleim.inp
< Makefile.in
> Makefile
230 rem ----------------------------------------------------------------------
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
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.
246 Echo Looking
for the GDB init file...found
247 copy msdos\mainmake.v2 Makefile
>nul
249 If "%DJGPP_VER%" == "1" copy msdos\mainmake Makefile
>nul
250 rem ----------------------------------------------------------------------
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.