(main) [DJGPP v2]: Don't change to binary for a tty.
[bpt/emacs.git] / config.bat
CommitLineData
3382cd59
RS
1@echo off\r
2rem ----------------------------------------------------------------------\r
3rem Configuration script for MSDOS\r
331fdf1e
RS
4rem Copyright (C) 1994 Free Software Foundation, Inc.\r
5\r
3382cd59
RS
6rem This file is part of GNU Emacs.\r
7\r
8rem GNU Emacs is free software; you can redistribute it and/or modify\r
9rem it under the terms of the GNU General Public License as published by\r
10rem the Free Software Foundation; either version 2, or (at your option)\r
11rem any later version.\r
12\r
13rem GNU Emacs is distributed in the hope that it will be useful,\r
14rem but WITHOUT ANY WARRANTY; without even the implied warranty of\r
15rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\r
16rem GNU General Public License for more details.\r
17\r
18rem You should have received a copy of the GNU General Public License\r
19rem along with GNU Emacs; see the file COPYING. If not, write to\r
20rem the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.\r
21rem ----------------------------------------------------------------------\r
22rem YOU'LL NEED THE FOLLOWING UTILITIES TO MAKE EMACS:\r
23rem\r
331fdf1e 24rem + msdos version 3 or better.\r
f56c5217 25rem + djgpp version 1.12maint1 or later (version 2.0 or later recommended).\r
331fdf1e
RS
26rem + make utility that allows breaking of the 128 chars limit on\r
27rem command lines. ndmake (as of version 4.5) won't work due to a\r
293e5aa6 28rem line length limit. The make that comes with djgpp does work.\r
f56c5217
RS
29rem + rm and mv (from GNU file utilities).\r
30rem + sed (you can use the port that comes with DJGPP).\r
331fdf1e 31rem\r
f56c5217
RS
32rem You should be able to get all the above utilities from any SimTel\r
33rem repository, e.g. ftp.coast.net, in the directories\r
34rem "SimTel/vendors/djgpp" and "SimTel/vendors/gnu/gnuish/dos_only". As\r
35rem usual, please use your local mirroring site to reduce trans-Atlantic\r
36rem traffic.\r
3382cd59 37rem ----------------------------------------------------------------------\r
ddff705b
MW
38set X11=\r
39set nodebug=\r
b696f860 40set djgpp_ver=\r
ddff705b
MW
41:again\r
42if "%1" == "" goto usage\r
43if "%1" == "--with-x" goto withx\r
44if "%1" == "--no-debug" goto nodebug\r
3382cd59
RS
45if "%1" == "msdos" goto msdos\r
46:usage\r
ddff705b
MW
47echo Usage: config [--with-x] [--no-debug] msdos\r
48echo [Read the script before you run it.]\r
3382cd59
RS
49goto end\r
50rem ----------------------------------------------------------------------\r
ddff705b
MW
51:withx\r
52set X11=Y\r
53shift\r
54goto again\r
331fdf1e 55rem ----------------------------------------------------------------------\r
ddff705b
MW
56:nodebug\r
57set nodebug=Y\r
58shift\r
59goto again\r
3382cd59 60rem ----------------------------------------------------------------------\r
ddff705b 61:msdos\r
2f3e7987
RS
62Echo Checking whether 'sed' is available...\r
63sed -e "w junk.$$$" <Nul\r
ddff705b 64If Exist junk.$$$ Goto sedOk\r
2f3e7987 65Echo To configure 'Emacs' you need to have 'sed'!\r
ddff705b
MW
66Goto End\r
67:sedOk\r
2f3e7987 68Echo Checking whether 'rm' is available...\r
ddff705b
MW
69rm -f junk.$$$\r
70If Not Exist junk.$$$ Goto rmOk\r
2f3e7987 71Echo To configure 'Emacs' you need to have 'rm'!\r
ddff705b
MW
72Goto End\r
73:rmOk\r
2f3e7987 74Echo Checking whether 'mv' is available...\r
ddff705b
MW
75rm -f junk.1 junk.2\r
76echo foo >junk.1\r
77mv junk.1 junk.2\r
78If Exist junk.2 Goto mvOk\r
2f3e7987 79Echo To configure 'Emacs' you need to have 'mv'!\r
ddff705b
MW
80rm -f junk.1\r
81Goto End\r
82:mvOk\r
83rm -f junk.2\r
2f3e7987 84Echo Checking whether 'gcc' is available...\r
ddff705b
MW
85echo main(){} >junk.c\r
86gcc -c junk.c\r
87if exist junk.o goto gccOk\r
2f3e7987 88Echo To configure 'Emacs' you need to have 'gcc'!\r
ddff705b
MW
89rm -f junk.c\r
90Goto End\r
91:gccOk\r
92rm -f junk.c junk.o\r
f56c5217
RS
93Echo Checking what version of DJGPP is installed...\r
94If Not "%DJGPP%" == "" goto djgppOk\r
95Echo To compile 'Emacs' under MS-DOS you MUST have DJGPP installed!\r
96Goto End\r
97:djgppOk\r
98echo int main() >junk.c\r
99echo #ifdef __DJGPP__ >>junk.c\r
100echo {return (__DJGPP__)*10;} >>junk.c\r
101echo #else >>junk.c\r
102echo #ifdef __GO32__ >>junk.c\r
103echo {return 10;} >>junk.c\r
104echo #else >>junk.c\r
105echo {return 0;} >>junk.c\r
106echo #endif >>junk.c\r
107echo #endif >>junk.c\r
108gcc -o junk.exe junk.c\r
109junk\r
110If ErrorLevel 10 Goto go32Ok\r
111rm -f junk.c junk junk.exe\r
112Echo To compile 'Emacs' under MS-DOS you MUST have DJGPP installed!\r
113Goto End\r
114:go32Ok\r
b696f860
RS
115set djgpp_ver=1\r
116If ErrorLevel 20 set djgpp_ver=2\r
f56c5217 117rm -f junk.c junk junk.exe\r
b696f860 118Echo Configuring for DJGPP Version %DJGPP_VER% ...\r
ddff705b 119Rem ----------------------------------------------------------------------\r
3382cd59
RS
120Echo Configuring the source directory...\r
121cd src\r
3382cd59
RS
122\r
123rem Create "paths.h"\r
2f3e7987 124sed -f ../msdos/sed4.inp <paths.in >paths.tmp\r
ddff705b
MW
125update paths.tmp paths.h >nul\r
126rm -f paths.tmp\r
3382cd59
RS
127\r
128rem Create "config.h"\r
ddff705b 129rm -f config.h2 config.tmp\r
2f3e7987 130cp config.in config.tmp\r
331fdf1e 131if "%X11%" == "" goto src4\r
2f3e7987 132sed -f ../msdos/sed2x.inp <config.in >config.tmp\r
331fdf1e 133:src4\r
ddff705b
MW
134sed -f ../msdos/sed2.inp <config.tmp >config.h2\r
135update config.h2 config.h >nul\r
136rm -f config.tmp config.h2\r
3382cd59
RS
137\r
138rem On my system dir.h gets in the way. It's a VMS file so who cares.\r
139if exist dir.h ren dir.h vmsdir.h\r
140\r
2f3e7987 141rem Create "makefile" from "makefile.in".\r
dd0d2cf3 142rm -f makefile junk.c\r
2f3e7987 143sed -e "1,/cpp stuff/s@^# .*$@@" <makefile.in >junk.c\r
b696f860 144If "%DJGPP_VER%" == "1" Goto mfV1\r
f56c5217
RS
145gcc -E junk.c | sed -f ../msdos/sed1v2.inp >makefile\r
146goto mfDone\r
147:mfV1\r
3382cd59 148gcc -E junk.c | sed -f ../msdos/sed1.inp >makefile\r
f56c5217 149:mfDone\r
dd0d2cf3 150rm -f junk.c\r
2f3e7987 151\r
ddff705b
MW
152if "%X11%" == "" goto src5\r
153mv makefile makefile.tmp\r
154sed -f ../msdos/sed1x.inp <makefile.tmp >makefile\r
155rm -f makefile.tmp\r
156:src5\r
157\r
158if "%nodebug%" == "" goto src6\r
159sed -e "/^CFLAGS *=/s/ *-g//" <makefile >makefile.tmp\r
f56c5217
RS
160sed -e "/^LDFLAGS *=/s/=/=-s/" <makefile.tmp >makefile\r
161rm -f makefile.tmp\r
ddff705b 162:src6\r
3382cd59
RS
163cd ..\r
164rem ----------------------------------------------------------------------\r
165Echo Configuring the library source directory...\r
166cd lib-src\r
167rem Create "makefile" from "makefile.in".\r
2f3e7987
RS
168sed -e "1,/cpp stuff/s@^# .*$@@" <makefile.in >junk.c\r
169gcc -E -I. -I../src junk.c | sed -e "s/^ / /" -e "/^#/d" -e "/^[ \f]*$/d" >makefile.new\r
b696f860 170If "%DJGPP_VER%" == "2" goto libsrc-v2\r
331fdf1e 171sed -f ../msdos/sed3.inp <makefile.new >makefile\r
f56c5217
RS
172Goto libsrc2\r
173:libsrc-v2\r
174sed -f ../msdos/sed3v2.inp <makefile.new >makefile\r
175:libsrc2\r
ddff705b 176rm -f makefile.new junk.c\r
f56c5217 177if "%nodebug%" == "" goto libsrc3\r
ddff705b 178sed -e "/^CFLAGS *=/s/ *-g//" <makefile >makefile.tmp\r
f56c5217
RS
179sed -e "/^ALL_CFLAGS *=/s/=/= -s/" <makefile.tmp >makefile\r
180rm -f makefile.tmp\r
181:libsrc3\r
ddff705b
MW
182cd ..\r
183rem ----------------------------------------------------------------------\r
184if "%X11%" == "" goto oldx1\r
185Echo Configuring the oldxmenu directory...\r
186cd oldxmenu\r
187sed -f ../msdos/sed5x.inp <makefile.in >makefile\r
188if "%nodebug%" == "" goto oldx2\r
189sed -e "/^CFLAGS *=/s/ *-g//" <makefile >makefile.tmp\r
190mv -f makefile.tmp makefile\r
191:oldx2\r
3382cd59 192cd ..\r
ddff705b 193:oldx1\r
3382cd59
RS
194rem ----------------------------------------------------------------------\r
195Echo Configuring the main directory...\r
b696f860
RS
196If "%DJGPP_VER%" == "2" copy msdos\mainmake.v2 makefile >nul\r
197If "%DJGPP_VER%" == "1" copy msdos\mainmake makefile >nul\r
3382cd59
RS
198rem ----------------------------------------------------------------------\r
199:end\r
331fdf1e 200set X11=\r
ddff705b 201set nodebug=\r
b696f860 202set djgpp_ver=\r