config.bat 8.48 KB
Newer Older
Richard M. Stallman's avatar
Richard M. Stallman committed
1 2 3
@echo off
rem   ----------------------------------------------------------------------
rem   Configuration script for MSDOS
4 5
rem   Copyright (C) 1994 Free Software Foundation, Inc.

Richard M. Stallman's avatar
Richard M. Stallman committed
6 7 8 9 10 11 12 13 14 15 16 17 18
rem   This file is part of GNU Emacs.

rem   GNU Emacs is free software; you can redistribute it and/or modify
rem   it under the terms of the GNU General Public License as published by
rem   the Free Software Foundation; either version 2, or (at your option)
rem   any later version.

rem   GNU Emacs is distributed in the hope that it will be useful,
rem   but WITHOUT ANY WARRANTY; without even the implied warranty of
rem   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
rem   GNU General Public License for more details.

rem   You should have received a copy of the GNU General Public License
Karl Heuer's avatar
Karl Heuer committed
19 20 21
rem   along with GNU Emacs; see the file COPYING.  If not, write to the
rem   Free Software Foundation, Inc., 59 Temple Place - Suite 330,
rem   Boston, MA 02111-1307, USA.
Richard M. Stallman's avatar
Richard M. Stallman committed
22 23 24
rem   ----------------------------------------------------------------------
rem   YOU'LL NEED THE FOLLOWING UTILITIES TO MAKE EMACS:
rem
25
rem   + msdos version 3 or better.
26
rem   + djgpp version 1.12maint1 or later (version 2.0 or later recommended).
27 28
rem   + make utility that allows breaking of the 128 chars limit on
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 31
rem   + rm and mv (from GNU file utilities).
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 35 36
rem   repository, e.g. ftp.simtel.net, in the directory
rem   "pub/simtelnet/gnu/djgpp/v2gnu".  As usual, please use your local
rem   mirroring site to reduce trans-Atlantic traffic.
Richard M. Stallman's avatar
Richard M. Stallman committed
37
rem   ----------------------------------------------------------------------
Morten Welinder's avatar
Morten Welinder committed
38 39
set X11=
set nodebug=
40
set djgpp_ver=
41 42 43 44 45 46
if "%1" == "" goto usage
rem   ----------------------------------------------------------------------
rem   See if their environment is large enough.  We need 28 bytes.
set $foo$=789012345678901234567
if not "%$foo$%" == "789012345678901234567" goto SmallEnv
set $foo$=
Morten Welinder's avatar
Morten Welinder committed
47 48 49 50
:again
if "%1" == "" goto usage
if "%1" == "--with-x" goto withx
if "%1" == "--no-debug" goto nodebug
Richard M. Stallman's avatar
Richard M. Stallman committed
51 52
if "%1" == "msdos" goto msdos
:usage
Morten Welinder's avatar
Morten Welinder committed
53 54
echo Usage: config [--with-x] [--no-debug] msdos
echo [Read the script before you run it.]
Richard M. Stallman's avatar
Richard M. Stallman committed
55 56
goto end
rem   ----------------------------------------------------------------------
Morten Welinder's avatar
Morten Welinder committed
57 58 59 60
:withx
set X11=Y
shift
goto again
61
rem   ----------------------------------------------------------------------
Morten Welinder's avatar
Morten Welinder committed
62 63 64 65
:nodebug
set nodebug=Y
shift
goto again
Richard M. Stallman's avatar
Richard M. Stallman committed
66
rem   ----------------------------------------------------------------------
Morten Welinder's avatar
Morten Welinder committed
67
:msdos
68 69
Echo Checking whether 'sed' is available...
sed -e "w junk.$$$" <Nul
Morten Welinder's avatar
Morten Welinder committed
70
If Exist junk.$$$ Goto sedOk
71
Echo To configure 'Emacs' you need to have 'sed'!
Morten Welinder's avatar
Morten Welinder committed
72 73
Goto End
:sedOk
74
Echo Checking whether 'rm' is available...
Morten Welinder's avatar
Morten Welinder committed
75 76
rm -f junk.$$$
If Not Exist junk.$$$ Goto rmOk
77
Echo To configure 'Emacs' you need to have 'rm'!
Morten Welinder's avatar
Morten Welinder committed
78 79
Goto End
:rmOk
80
Echo Checking whether 'mv' is available...
Morten Welinder's avatar
Morten Welinder committed
81 82
rm -f junk.1 junk.2
echo foo >junk.1
83
mv junk.1 ./junk.2
Morten Welinder's avatar
Morten Welinder committed
84
If Exist junk.2 Goto mvOk
85
Echo To configure 'Emacs' you need to have 'mv'!
Morten Welinder's avatar
Morten Welinder committed
86 87 88 89
rm -f junk.1
Goto End
:mvOk
rm -f junk.2
90
Echo Checking whether 'gcc' is available...
Morten Welinder's avatar
Morten Welinder committed
91 92 93
echo main(){} >junk.c
gcc -c junk.c
if exist junk.o goto gccOk
94
Echo To configure 'Emacs' you need to have 'gcc'!
Morten Welinder's avatar
Morten Welinder committed
95 96 97
rm -f junk.c
Goto End
:gccOk
98
rm -f junk.c junk.o junk junk.exe
99 100 101 102 103 104 105 106 107 108 109 110 111 112 113
Echo Checking what version of DJGPP is installed...
If Not "%DJGPP%" == "" goto djgppOk
Echo To compile 'Emacs' under MS-DOS you MUST have DJGPP installed!
Goto End
:djgppOk
echo int main()           >junk.c
echo #ifdef __DJGPP__    >>junk.c
echo {return (__DJGPP__)*10;} >>junk.c
echo #else               >>junk.c
echo #ifdef __GO32__     >>junk.c
echo {return 10;}         >>junk.c
echo #else               >>junk.c
echo {return 0;}         >>junk.c
echo #endif              >>junk.c
echo #endif              >>junk.c
114 115
gcc -o junk junk.c
if not exist junk.exe coff2exe junk
116 117 118 119 120 121
junk
If ErrorLevel 10 Goto go32Ok
rm -f junk.c junk junk.exe
Echo To compile 'Emacs' under MS-DOS you MUST have DJGPP installed!
Goto End
:go32Ok
122 123
set djgpp_ver=1
If ErrorLevel 20 set djgpp_ver=2
124
rm -f junk.c junk junk.exe
125
Echo Configuring for DJGPP Version %DJGPP_VER% ...
Morten Welinder's avatar
Morten Welinder committed
126
Rem   ----------------------------------------------------------------------
Richard M. Stallman's avatar
Richard M. Stallman committed
127 128 129
Echo Configuring the source directory...
cd src

130 131 132 133
rem   Create "epaths.h"
sed -f ../msdos/sed4.inp <epaths.in >epaths.tmp
update epaths.tmp epaths.h >nul
rm -f epaths.tmp
Richard M. Stallman's avatar
Richard M. Stallman committed
134 135

rem   Create "config.h"
Morten Welinder's avatar
Morten Welinder committed
136
rm -f config.h2 config.tmp
137
sed -e '' config.in > config.tmp
138
if "%X11%" == "" goto src4
139
sed -f ../msdos/sed2x.inp <config.in >config.tmp
140
:src4
Morten Welinder's avatar
Morten Welinder committed
141 142 143
sed -f ../msdos/sed2.inp <config.tmp >config.h2
update config.h2 config.h >nul
rm -f config.tmp config.h2
Richard M. Stallman's avatar
Richard M. Stallman committed
144 145 146 147

rem   On my system dir.h gets in the way.  It's a VMS file so who cares.
if exist dir.h ren dir.h vmsdir.h

148
rem   Create "makefile" from "makefile.in".
149
rm -f Makefile junk.c
150
sed -e "1,/== start of cpp stuff ==/s@^# .*$@@" <Makefile.in >junk.c
151
If "%DJGPP_VER%" == "1" Goto mfV1
152
gcc -E junk.c | sed -f ../msdos/sed1v2.inp >Makefile
153 154
goto mfDone
:mfV1
155
gcc -E junk.c | sed -f ../msdos/sed1.inp >Makefile
156
:mfDone
157
rm -f junk.c
158

Morten Welinder's avatar
Morten Welinder committed
159
if "%X11%" == "" goto src5
160 161
mv Makefile makefile.tmp
sed -f ../msdos/sed1x.inp <makefile.tmp >Makefile
Morten Welinder's avatar
Morten Welinder committed
162 163 164 165
rm -f makefile.tmp
:src5

if "%nodebug%" == "" goto src6
166
sed -e "/^CFLAGS *=/s/ *-gcoff//" <Makefile >makefile.tmp
167
sed -e "/^LDFLAGS *=/s/=/=-s/" <makefile.tmp >Makefile
168
rm -f makefile.tmp
Morten Welinder's avatar
Morten Welinder committed
169
:src6
Richard M. Stallman's avatar
Richard M. Stallman committed
170 171 172 173 174
cd ..
rem   ----------------------------------------------------------------------
Echo Configuring the library source directory...
cd lib-src
rem   Create "makefile" from "makefile.in".
175
sed -e "1,/== start of cpp stuff ==/s@^# .*$@@" <Makefile.in >junk.c
176
gcc -E -I. -I../src junk.c | sed -e "s/^ /	/" -e "/^#/d" -e "/^[ 	]*$/d" >makefile.new
177
If "%DJGPP_VER%" == "2" goto libsrc-v2
178
sed -f ../msdos/sed3.inp <makefile.new >Makefile
179 180
Goto libsrc2
:libsrc-v2
181
sed -f ../msdos/sed3v2.inp <makefile.new >Makefile
182
:libsrc2
Morten Welinder's avatar
Morten Welinder committed
183
rm -f makefile.new junk.c
184
if "%nodebug%" == "" goto libsrc3
185
sed -e "/^CFLAGS *=/s/ *-gcoff//" <Makefile >makefile.tmp
186
sed -e "/^ALL_CFLAGS *=/s/=/= -s/" <makefile.tmp >Makefile
187 188
rm -f makefile.tmp
:libsrc3
Morten Welinder's avatar
Morten Welinder committed
189 190 191 192 193
cd ..
rem   ----------------------------------------------------------------------
if "%X11%" == "" goto oldx1
Echo Configuring the oldxmenu directory...
cd oldxmenu
194
sed -f ../msdos/sed5x.inp <Makefile.in >Makefile
Morten Welinder's avatar
Morten Welinder committed
195
if "%nodebug%" == "" goto oldx2
196
sed -e "/^CFLAGS *=/s/ *-gcoff//" <Makefile >makefile.tmp
197
mv -f makefile.tmp Makefile
Morten Welinder's avatar
Morten Welinder committed
198
:oldx2
Richard M. Stallman's avatar
Richard M. Stallman committed
199
cd ..
Morten Welinder's avatar
Morten Welinder committed
200
:oldx1
Richard M. Stallman's avatar
Richard M. Stallman committed
201
rem   ----------------------------------------------------------------------
202 203 204 205 206
Echo Configuring the manual directory...
cd man
sed -f ../msdos/sed6.inp < Makefile.in > Makefile
cd ..
rem   ----------------------------------------------------------------------
207 208 209 210 211
Echo Configuring the lisp directory...
cd lisp
sed -f ../msdos/sedlisp.inp < Makefile.in > Makefile
cd ..
rem   ----------------------------------------------------------------------
Eli Zaretskii's avatar
Eli Zaretskii committed
212 213 214 215 216 217 218
If not Exist leim\quail\latin-pre.el goto maindir
Echo Configuring the leim directory...
cd leim
sed -f ../msdos/sedleim.inp < Makefile.in > Makefile
cd ..
rem   ----------------------------------------------------------------------
:maindir
Richard M. Stallman's avatar
Richard M. Stallman committed
219
Echo Configuring the main directory...
220 221
If "%DJGPP_VER%" == "1" goto mainv1
Echo Looking for the GDB init file...
222
If not Exist src\_gdbinit If Exist src\.gdbinit update src/.gdbinit src/_gdbinit
223 224 225 226 227 228 229 230 231 232 233
If Exist src\_gdbinit goto gdbinitOk
Echo ERROR:
Echo I cannot find the GDB init file.  It was called ".gdbinit" in
Echo the Emacs distribution, but was probably renamed to some other
Echo name without the leading dot when you untarred the archive.
Echo It should be in the "src/" subdirectory.  Please make sure this
Echo file exists and is called "_gdbinit" with a leading underscore.
Echo Then run CONFIG.BAT again with the same arguments you did now.
goto End
:gdbinitOk
Echo Looking for the GDB init file...found
234
copy msdos\mainmake.v2 Makefile >nul
235
:mainv1
236
If "%DJGPP_VER%" == "1" copy msdos\mainmake Makefile >nul
Richard M. Stallman's avatar
Richard M. Stallman committed
237
rem   ----------------------------------------------------------------------
238 239 240 241 242
goto End
:SmallEnv
echo Your environment size is too small.  Please enlarge it and run me again.
echo For example, type "command.com /e:2048" to have 2048 bytes available.
set $foo$=
Richard M. Stallman's avatar
Richard M. Stallman committed
243
:end
244
set X11=
Morten Welinder's avatar
Morten Welinder committed
245
set nodebug=
246
set djgpp_ver=