1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
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
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
|
@echo off
rem ----------------------------------------------------------------------
rem Configuration script for MSDOS
rem Copyright (C) 1994 Free Software Foundation, Inc.
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
rem + msdos version 3 or better.
rem + djgpp version 1.12maint1 or later (version 2.0 or later recommended).
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
rem line length limit. The make that comes with djgpp does work.
rem + rm and mv (from GNU file utilities).
rem + sed (you can use the port that comes with DJGPP).
rem
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.
rem ----------------------------------------------------------------------
set X11=
set nodebug=
set djgpp-ver=
:again
if "%1" == "" goto usage
if "%1" == "--with-x" goto withx
if "%1" == "--no-debug" goto nodebug
if "%1" == "msdos" goto msdos
:usage
echo Usage: config [--with-x] [--no-debug] msdos
echo [Read the script before you run it.]
goto end
rem ----------------------------------------------------------------------
:withx
set X11=Y
shift
goto again
rem ----------------------------------------------------------------------
:nodebug
set nodebug=Y
shift
goto again
rem ----------------------------------------------------------------------
:msdos
Echo Checking whether 'sed' is available...
sed -e "w junk.$$$" <Nul
If Exist junk.$$$ Goto sedOk
Echo To configure 'Emacs' you need to have 'sed'!
Goto End
:sedOk
Echo Checking whether 'rm' is available...
rm -f junk.$$$
If Not Exist junk.$$$ Goto rmOk
Echo To configure 'Emacs' you need to have 'rm'!
Goto End
:rmOk
Echo Checking whether 'mv' is available...
rm -f junk.1 junk.2
echo foo >junk.1
mv junk.1 junk.2
If Exist junk.2 Goto mvOk
Echo To configure 'Emacs' you need to have 'mv'!
rm -f junk.1
Goto End
:mvOk
rm -f junk.2
Echo Checking whether 'gcc' is available...
echo main(){} >junk.c
gcc -c junk.c
if exist junk.o goto gccOk
Echo To configure 'Emacs' you need to have 'gcc'!
rm -f junk.c
Goto End
:gccOk
rm -f junk.c junk.o
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% ...
Rem ----------------------------------------------------------------------
Echo Configuring the source directory...
cd src
rem Create "paths.h"
sed -f ../msdos/sed4.inp <paths.in >paths.tmp
update paths.tmp paths.h >nul
rm -f paths.tmp
rem Create "config.h"
rm -f config.h2 config.tmp
cp config.in config.tmp
if "%X11%" == "" goto src4
sed -f ../msdos/sed2x.inp <config.in >config.tmp
:src4
sed -f ../msdos/sed2.inp <config.tmp >config.h2
update config.h2 config.h >nul
rm -f config.tmp config.h2
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
rem Create "makefile" from "makefile.in".
rm -f makefile junk.c
sed -e "1,/cpp stuff/s@^# .*$@@" <makefile.in >junk.c
If "%DJGPP-VER%" == "1" Goto mfV1
gcc -E junk.c | sed -f ../msdos/sed1v2.inp >makefile
goto mfDone
:mfV1
gcc -E junk.c | sed -f ../msdos/sed1.inp >makefile
:mfDone
rm -f junk.c
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
sed -e "/^LDFLAGS *=/s/=/=-s/" <makefile.tmp >makefile
rm -f makefile.tmp
:src6
cd ..
rem ----------------------------------------------------------------------
Echo Configuring the library source directory...
cd lib-src
rem Create "makefile" from "makefile.in".
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
If "%DJGPP-VER%" == "2" goto libsrc-v2
sed -f ../msdos/sed3.inp <makefile.new >makefile
Goto libsrc2
:libsrc-v2
sed -f ../msdos/sed3v2.inp <makefile.new >makefile
:libsrc2
rm -f makefile.new junk.c
if "%nodebug%" == "" goto libsrc3
sed -e "/^CFLAGS *=/s/ *-g//" <makefile >makefile.tmp
sed -e "/^ALL_CFLAGS *=/s/=/= -s/" <makefile.tmp >makefile
rm -f makefile.tmp
:libsrc3
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
cd ..
:oldx1
rem ----------------------------------------------------------------------
Echo Configuring the main directory...
If "%DJGPP-VER%" == "2" copy msdos\mainmake.v2 makefile >nul
If "%DJGPP-VER%" == "1" copy msdos\mainmake makefile >nul
rem ----------------------------------------------------------------------
:end
set X11=
set nodebug=
set djgpp-ver=
|