config.bat 6.72 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
rm -f junk.c
Goto End
:gccOk
92
rm -f junk.c junk.o junk junk.exe
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107
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
108 109
gcc -o junk junk.c
if not exist junk.exe coff2exe junk
110 111 112 113 114 115
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
116 117
set djgpp_ver=1
If ErrorLevel 20 set djgpp_ver=2
118
rm -f junk.c junk junk.exe
119
Echo Configuring for DJGPP Version %DJGPP_VER% ...
Morten Welinder's avatar
Morten Welinder committed
120
Rem   ----------------------------------------------------------------------
Richard M. Stallman's avatar
Richard M. Stallman committed
121 122 123 124
Echo Configuring the source directory...
cd src

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

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

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

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

Morten Welinder's avatar
Morten Welinder committed
153 154 155 156 157 158 159 160
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
161 162
sed -e "/^LDFLAGS *=/s/=/=-s/" <makefile.tmp >makefile
rm -f makefile.tmp
Morten Welinder's avatar
Morten Welinder committed
163
:src6
Richard M. Stallman's avatar
Richard M. Stallman committed
164 165 166 167 168
cd ..
rem   ----------------------------------------------------------------------
Echo Configuring the library source directory...
cd lib-src
rem   Create "makefile" from "makefile.in".
169 170
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
171
If "%DJGPP_VER%" == "2" goto libsrc-v2
172
sed -f ../msdos/sed3.inp <makefile.new >makefile
173 174 175 176
Goto libsrc2
:libsrc-v2
sed -f ../msdos/sed3v2.inp <makefile.new >makefile
:libsrc2
Morten Welinder's avatar
Morten Welinder committed
177
rm -f makefile.new junk.c
178
if "%nodebug%" == "" goto libsrc3
Morten Welinder's avatar
Morten Welinder committed
179
sed -e "/^CFLAGS *=/s/ *-g//" <makefile >makefile.tmp
180 181 182
sed -e "/^ALL_CFLAGS *=/s/=/= -s/" <makefile.tmp >makefile
rm -f makefile.tmp
:libsrc3
Morten Welinder's avatar
Morten Welinder committed
183 184 185 186 187 188 189 190 191 192
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
193
cd ..
Morten Welinder's avatar
Morten Welinder committed
194
:oldx1
Richard M. Stallman's avatar
Richard M. Stallman committed
195 196
rem   ----------------------------------------------------------------------
Echo Configuring the main directory...
197 198
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
199 200
rem   ----------------------------------------------------------------------
:end
201
set X11=
Morten Welinder's avatar
Morten Welinder committed
202
set nodebug=
203
set djgpp_ver=