config.bat 6.67 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 19 20 21 22 23
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
rem   along with GNU Emacs; see the file COPYING.  If not, write to
rem   the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
rem   ----------------------------------------------------------------------
rem   YOU'LL NEED THE FOLLOWING UTILITIES TO MAKE EMACS:
rem
24
rem   + msdos version 3 or better.
25
rem   + djgpp version 1.12maint1 or later (version 2.0 or later recommended).
26 27
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
28
rem     line length limit.  The make that comes with djgpp does work.
29 30
rem   + rm and mv (from GNU file utilities).
rem   + sed (you can use the port that comes with DJGPP).
31
rem
32 33 34 35 36
rem   You should be able to get all the above utilities from any SimTel
rem   repository, e.g. ftp.coast.net, in the directories
rem   "SimTel/vendors/djgpp" and "SimTel/vendors/gnu/gnuish/dos_only".  As
rem   usual, please use your local mirroring site to reduce trans-Atlantic
rem   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=
Morten Welinder's avatar
Morten Welinder committed
41 42 43 44
: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
45 46
if "%1" == "msdos" goto msdos
:usage
Morten Welinder's avatar
Morten Welinder committed
47 48
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
49 50
goto end
rem   ----------------------------------------------------------------------
Morten Welinder's avatar
Morten Welinder committed
51 52 53 54
:withx
set X11=Y
shift
goto again
55
rem   ----------------------------------------------------------------------
Morten Welinder's avatar
Morten Welinder committed
56 57 58 59
:nodebug
set nodebug=Y
shift
goto again
Richard M. Stallman's avatar
Richard M. Stallman committed
60
rem   ----------------------------------------------------------------------
Morten Welinder's avatar
Morten Welinder committed
61
:msdos
62 63
Echo Checking whether 'sed' is available...
sed -e "w junk.$$$" <Nul
Morten Welinder's avatar
Morten Welinder committed
64
If Exist junk.$$$ Goto sedOk
65
Echo To configure 'Emacs' you need to have 'sed'!
Morten Welinder's avatar
Morten Welinder committed
66 67
Goto End
:sedOk
68
Echo Checking whether 'rm' is available...
Morten Welinder's avatar
Morten Welinder committed
69 70
rm -f junk.$$$
If Not Exist junk.$$$ Goto rmOk
71
Echo To configure 'Emacs' you need to have 'rm'!
Morten Welinder's avatar
Morten Welinder committed
72 73
Goto End
:rmOk
74
Echo Checking whether 'mv' is available...
Morten Welinder's avatar
Morten Welinder committed
75 76 77 78
rm -f junk.1 junk.2
echo foo >junk.1
mv junk.1 junk.2
If Exist junk.2 Goto mvOk
79
Echo To configure 'Emacs' you need to have 'mv'!
Morten Welinder's avatar
Morten Welinder committed
80 81 82 83
rm -f junk.1
Goto End
:mvOk
rm -f junk.2
84
Echo Checking whether 'gcc' is available...
Morten Welinder's avatar
Morten Welinder committed
85 86 87
echo main(){} >junk.c
gcc -c junk.c
if exist junk.o goto gccOk
88
Echo To configure 'Emacs' you need to have 'gcc'!
Morten Welinder's avatar
Morten Welinder committed
89 90 91 92
rm -f junk.c
Goto End
:gccOk
rm -f junk.c junk.o
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
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
gcc -o junk.exe junk.c
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
set djgpp-ver=1
If ErrorLevel 20 set djgpp-ver=2
rm -f junk.c junk junk.exe
Echo Configuring for DJGPP Version %DJGPP-VER% ...
Morten Welinder's avatar
Morten Welinder committed
119
Rem   ----------------------------------------------------------------------
Richard M. Stallman's avatar
Richard M. Stallman committed
120 121 122 123
Echo Configuring the source directory...
cd src

rem   Create "paths.h"
124
sed -f ../msdos/sed4.inp <paths.in >paths.tmp
Morten Welinder's avatar
Morten Welinder committed
125 126
update paths.tmp paths.h >nul
rm -f paths.tmp
Richard M. Stallman's avatar
Richard M. Stallman committed
127 128

rem   Create "config.h"
Morten Welinder's avatar
Morten Welinder committed
129
rm -f config.h2 config.tmp
130
cp config.in config.tmp
131
if "%X11%" == "" goto src4
132
sed -f ../msdos/sed2x.inp <config.in >config.tmp
133
:src4
Morten Welinder's avatar
Morten Welinder committed
134 135 136
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
137 138 139 140

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

141
rem   Create "makefile" from "makefile.in".
142
rm -f makefile junk.c
143
sed -e "1,/cpp stuff/s@^# .*$@@" <makefile.in >junk.c
144 145 146 147
If "%DJGPP-VER%" == "1" Goto mfV1
gcc -E junk.c | sed -f ../msdos/sed1v2.inp >makefile
goto mfDone
:mfV1
Richard M. Stallman's avatar
Richard M. Stallman committed
148
gcc -E junk.c | sed -f ../msdos/sed1.inp >makefile
149
:mfDone
150
rm -f junk.c
151

Morten Welinder's avatar
Morten Welinder committed
152 153 154 155 156 157 158 159
if "%X11%" == "" goto src5
mv makefile makefile.tmp
sed -f ../msdos/sed1x.inp <makefile.tmp >makefile
rm -f makefile.tmp
:src5

if "%nodebug%" == "" goto src6
sed -e "/^CFLAGS *=/s/ *-g//" <makefile >makefile.tmp
160 161
sed -e "/^LDFLAGS *=/s/=/=-s/" <makefile.tmp >makefile
rm -f makefile.tmp
Morten Welinder's avatar
Morten Welinder committed
162
:src6
Richard M. Stallman's avatar
Richard M. Stallman committed
163 164 165 166 167
cd ..
rem   ----------------------------------------------------------------------
Echo Configuring the library source directory...
cd lib-src
rem   Create "makefile" from "makefile.in".
168 169
sed -e "1,/cpp stuff/s@^# .*$@@" <makefile.in >junk.c
gcc -E -I. -I../src junk.c | sed -e "s/^ /	/" -e "/^#/d" -e "/^[ 	]*$/d" >makefile.new
170
If "%DJGPP-VER%" == "2" goto libsrc-v2
171
sed -f ../msdos/sed3.inp <makefile.new >makefile
172 173 174 175
Goto libsrc2
:libsrc-v2
sed -f ../msdos/sed3v2.inp <makefile.new >makefile
:libsrc2
Morten Welinder's avatar
Morten Welinder committed
176
rm -f makefile.new junk.c
177
if "%nodebug%" == "" goto libsrc3
Morten Welinder's avatar
Morten Welinder committed
178
sed -e "/^CFLAGS *=/s/ *-g//" <makefile >makefile.tmp
179 180 181
sed -e "/^ALL_CFLAGS *=/s/=/= -s/" <makefile.tmp >makefile
rm -f makefile.tmp
:libsrc3
Morten Welinder's avatar
Morten Welinder committed
182 183 184 185 186 187 188 189 190 191
cd ..
rem   ----------------------------------------------------------------------
if "%X11%" == "" goto oldx1
Echo Configuring the oldxmenu directory...
cd oldxmenu
sed -f ../msdos/sed5x.inp <makefile.in >makefile
if "%nodebug%" == "" goto oldx2
sed -e "/^CFLAGS *=/s/ *-g//" <makefile >makefile.tmp
mv -f makefile.tmp makefile
:oldx2
Richard M. Stallman's avatar
Richard M. Stallman committed
192
cd ..
Morten Welinder's avatar
Morten Welinder committed
193
:oldx1
Richard M. Stallman's avatar
Richard M. Stallman committed
194 195
rem   ----------------------------------------------------------------------
Echo Configuring the main directory...
196 197
If "%DJGPP-VER%" == "2" copy msdos\mainmake.v2 makefile >nul
If "%DJGPP-VER%" == "1" copy msdos\mainmake makefile >nul
Richard M. Stallman's avatar
Richard M. Stallman committed
198 199
rem   ----------------------------------------------------------------------
:end
200
set X11=
Morten Welinder's avatar
Morten Welinder committed
201
set nodebug=
202
set djgpp-ver=