diff options
Diffstat (limited to 'config.bat')
| -rw-r--r-- | config.bat | 321 |
1 files changed, 321 insertions, 0 deletions
diff --git a/config.bat b/config.bat new file mode 100644 index 00000000000..63f9c5d5865 --- /dev/null +++ b/config.bat | |||
| @@ -0,0 +1,321 @@ | |||
| 1 | @echo off | ||
| 2 | rem ---------------------------------------------------------------------- | ||
| 3 | rem Configuration script for MSDOS | ||
| 4 | rem Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003 | ||
| 5 | rem 2004, 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc. | ||
| 6 | |||
| 7 | rem This file is part of GNU Emacs. | ||
| 8 | |||
| 9 | rem GNU Emacs is free software: you can redistribute it and/or modify | ||
| 10 | rem it under the terms of the GNU General Public License as published by | ||
| 11 | rem the Free Software Foundation, either version 3 of the License, or | ||
| 12 | rem (at your option) any later version. | ||
| 13 | |||
| 14 | rem GNU Emacs is distributed in the hope that it will be useful, | ||
| 15 | rem but WITHOUT ANY WARRANTY; without even the implied warranty of | ||
| 16 | rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the | ||
| 17 | rem GNU General Public License for more details. | ||
| 18 | |||
| 19 | rem You should have received a copy of the GNU General Public License | ||
| 20 | rem along with GNU Emacs. If not, see http://www.gnu.org/licenses/. | ||
| 21 | |||
| 22 | rem ---------------------------------------------------------------------- | ||
| 23 | rem YOU'LL NEED THE FOLLOWING UTILITIES TO MAKE EMACS: | ||
| 24 | rem | ||
| 25 | rem + msdos version 3 or better. | ||
| 26 | rem + DJGPP version 2.0 or later (version 2.03 or later recommended). | ||
| 27 | rem + make utility that allows breaking of the 128 chars limit on | ||
| 28 | 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 (and is | ||
| 30 | rem recommended). | ||
| 31 | rem + rm, mv, and cp (from GNU file utilities). | ||
| 32 | rem + sed (you can use the port that comes with DJGPP). | ||
| 33 | rem | ||
| 34 | rem You should be able to get all the above utilities from the DJGPP FTP | ||
| 35 | rem site, ftp.delorie.com, in the directory "pub/djgpp/current/v2gnu". | ||
| 36 | rem ---------------------------------------------------------------------- | ||
| 37 | set X11= | ||
| 38 | set nodebug= | ||
| 39 | set djgpp_ver= | ||
| 40 | set sys_malloc= | ||
| 41 | set libxml= | ||
| 42 | if "%1" == "" goto usage | ||
| 43 | rem ---------------------------------------------------------------------- | ||
| 44 | rem See if their environment is large enough. We need 28 bytes. | ||
| 45 | set $foo$=789012345678901234567 | ||
| 46 | if not "%$foo$%" == "789012345678901234567" goto SmallEnv | ||
| 47 | set $foo$= | ||
| 48 | :again | ||
| 49 | if "%1" == "" goto usage | ||
| 50 | if "%1" == "--with-x" goto withx | ||
| 51 | if "%1" == "--no-debug" goto nodebug | ||
| 52 | if "%1" == "msdos" goto msdos | ||
| 53 | if "%1" == "--with-system-malloc" goto sysmalloc | ||
| 54 | :usage | ||
| 55 | echo Usage: config [--no-debug] [--with-system-malloc] [--with-x] msdos | ||
| 56 | echo [Read the script before you run it.] | ||
| 57 | goto end | ||
| 58 | rem ---------------------------------------------------------------------- | ||
| 59 | :withx | ||
| 60 | set X11=Y | ||
| 61 | shift | ||
| 62 | goto again | ||
| 63 | rem ---------------------------------------------------------------------- | ||
| 64 | :nodebug | ||
| 65 | set nodebug=Y | ||
| 66 | shift | ||
| 67 | goto again | ||
| 68 | rem ---------------------------------------------------------------------- | ||
| 69 | :sysmalloc | ||
| 70 | set sys_malloc=Y | ||
| 71 | shift | ||
| 72 | goto again | ||
| 73 | rem ---------------------------------------------------------------------- | ||
| 74 | :msdos | ||
| 75 | Echo Checking whether 'sed' is available... | ||
| 76 | sed -e "w junk.$$$" <Nul | ||
| 77 | If Exist junk.$$$ Goto sedOk | ||
| 78 | Echo To configure 'Emacs' you need to have 'sed'! | ||
| 79 | Goto End | ||
| 80 | :sedOk | ||
| 81 | Echo Checking whether 'rm' is available... | ||
| 82 | rm -f junk.$$$ | ||
| 83 | If Not Exist junk.$$$ Goto rmOk | ||
| 84 | Echo To configure 'Emacs' you need to have 'rm'! | ||
| 85 | Goto End | ||
| 86 | :rmOk | ||
| 87 | Echo Checking whether 'mv' is available... | ||
| 88 | rm -f junk.1 junk.2 | ||
| 89 | echo foo >junk.1 | ||
| 90 | mv junk.1 ./junk.2 | ||
| 91 | If Exist junk.2 Goto mvOk | ||
| 92 | Echo To configure 'Emacs' you need to have 'mv'! | ||
| 93 | rm -f junk.1 | ||
| 94 | Goto End | ||
| 95 | :mvOk | ||
| 96 | rm -f junk.2 | ||
| 97 | Echo Checking whether 'gcc' is available... | ||
| 98 | echo main(){} >junk.c | ||
| 99 | gcc -c junk.c | ||
| 100 | if exist junk.o goto gccOk | ||
| 101 | Echo To configure 'Emacs' you need to have 'gcc'! | ||
| 102 | rm -f junk.c | ||
| 103 | Goto End | ||
| 104 | :gccOk | ||
| 105 | rm -f junk.c junk.o junk junk.exe | ||
| 106 | Echo Checking what version of DJGPP is installed... | ||
| 107 | If Not "%DJGPP%" == "" goto djgppOk | ||
| 108 | Echo To compile 'Emacs' under MS-DOS you MUST have DJGPP installed! | ||
| 109 | Goto End | ||
| 110 | :djgppOk | ||
| 111 | echo int main() >junk.c | ||
| 112 | echo #ifdef __DJGPP__ >>junk.c | ||
| 113 | echo {return (__DJGPP__)*10;} >>junk.c | ||
| 114 | echo #else >>junk.c | ||
| 115 | echo #ifdef __GO32__ >>junk.c | ||
| 116 | echo {return 10;} >>junk.c | ||
| 117 | echo #else >>junk.c | ||
| 118 | echo {return 0;} >>junk.c | ||
| 119 | echo #endif >>junk.c | ||
| 120 | echo #endif >>junk.c | ||
| 121 | gcc -o junk junk.c | ||
| 122 | if not exist junk.exe coff2exe junk | ||
| 123 | junk | ||
| 124 | If ErrorLevel 10 Goto go32Ok | ||
| 125 | rm -f junk.c junk junk.exe | ||
| 126 | Echo To compile 'Emacs' under MS-DOS you MUST have DJGPP installed! | ||
| 127 | Goto End | ||
| 128 | :go32Ok | ||
| 129 | set djgpp_ver=2 | ||
| 130 | If Not ErrorLevel 20 Echo To build 'Emacs' you need DJGPP v2.0 or later! | ||
| 131 | If Not ErrorLevel 20 Goto End | ||
| 132 | rm -f junk.c junk junk.exe | ||
| 133 | rem DJECHO is used by the top-level Makefile in the v2.x build | ||
| 134 | Echo Checking whether 'djecho' is available... | ||
| 135 | redir -o Nul -eo djecho -o junk.$$$ foo | ||
| 136 | If Exist junk.$$$ Goto djechoOk | ||
| 137 | Echo To build 'Emacs' you need the 'djecho.exe' program! | ||
| 138 | Echo 'djecho.exe' is part of 'djdevNNN.zip' basic DJGPP development kit. | ||
| 139 | Echo Versions of DJGPP before 2.02 called this program 'echo.exe'. | ||
| 140 | Echo Either unpack 'djecho.exe' from the 'djdevNNN.zip' archive, | ||
| 141 | Echo or, if you have 'echo.exe', copy it to 'djecho.exe'. | ||
| 142 | Echo Then run CONFIG.BAT again with the same arguments you did now. | ||
| 143 | Goto End | ||
| 144 | :djechoOk | ||
| 145 | rm -f junk.$$$ | ||
| 146 | Echo Configuring for DJGPP Version %DJGPP_VER% ... | ||
| 147 | Rem ---------------------------------------------------------------------- | ||
| 148 | Echo Configuring the source directory... | ||
| 149 | cd src | ||
| 150 | |||
| 151 | rem Create "epaths.h" | ||
| 152 | sed -f ../msdos/sed4.inp <epaths.in >epaths.tmp | ||
| 153 | update epaths.tmp epaths.h >nul | ||
| 154 | rm -f epaths.tmp | ||
| 155 | |||
| 156 | rem Create "config.h" | ||
| 157 | rm -f config.h2 config.tmp | ||
| 158 | sed -e '' config.in > config.tmp | ||
| 159 | if "%X11%" == "" goto src4 | ||
| 160 | sed -f ../msdos/sed2x.inp <config.in >config.tmp | ||
| 161 | :src4 | ||
| 162 | sed -f ../msdos/sed2v2.inp <config.tmp >config.h2 | ||
| 163 | Rem See if DECL_ALIGN can be supported with this GCC | ||
| 164 | rm -f junk.c junk.o junk junk.exe | ||
| 165 | echo struct { int i; char *p; } __attribute__((__aligned__(8))) foo; >junk.c | ||
| 166 | rem Two percent signs because it is a special character for COMMAND.COM/CMD | ||
| 167 | rem Filter thru Sed because "&" is special for CMD.EXE | ||
| 168 | echo int main(void) { return (unsigned long)"&"foo %% 8; } | sed "s/.&./\&/" >>junk.c | ||
| 169 | gcc -o junk junk.c | ||
| 170 | if not exist junk.exe coff2exe junk | ||
| 171 | junk | ||
| 172 | If Not ErrorLevel 1 Goto alignOk | ||
| 173 | Echo WARNING: Your GCC does not support 8-byte aligned variables. | ||
| 174 | Echo WARNING: Therefore Emacs cannot support buffers larger than 128MB. | ||
| 175 | rem The following line disables DECL_ALIGN which in turn disables USE_LSB_TAG | ||
| 176 | rem For details see lisp.h where it defines USE_LSB_TAG | ||
| 177 | echo #define NO_DECL_ALIGN >>config.h2 | ||
| 178 | :alignOk | ||
| 179 | Rem See if they have libxml2 later than v2.2.0 installed | ||
| 180 | Echo Checking whether libxml2 v2.2.1 or later is installed ... | ||
| 181 | rm -f junk.c junk.o junk junk.exe | ||
| 182 | rem Use djecho here because we need to quote brackets | ||
| 183 | djecho "#include <libxml/xmlversion.h>" >junk.c | ||
| 184 | djecho "int main()" >>junk.c | ||
| 185 | djecho "{return (LIBXML_VERSION > 20200 ? 0 : 1);}" >>junk.c | ||
| 186 | redir -o Nul -eo gcc -I/dev/env/DJDIR/include/libxml2 -o junk junk.c | ||
| 187 | if not exist junk Goto xmlDone | ||
| 188 | if not exist junk.exe coff2exe junk | ||
| 189 | junk | ||
| 190 | If ErrorLevel 1 Goto xmlDone | ||
| 191 | Echo Configuring with libxml2 ... | ||
| 192 | sed -e "/#undef HAVE_LIBXML2/s/^.*$/#define HAVE_LIBXML2 1/" <config.h2 >config.h3 | ||
| 193 | mv config.h3 config.h2 | ||
| 194 | set libxml=1 | ||
| 195 | :xmlDone | ||
| 196 | rm -f junk.c junk junk.exe | ||
| 197 | Rem See if they requested a SYSTEM_MALLOC build | ||
| 198 | if "%sys_malloc%" == "" Goto cfgDone | ||
| 199 | rm -f config.tmp | ||
| 200 | ren config.h2 config.tmp | ||
| 201 | sed -f ../msdos/sedalloc.inp <config.tmp >config.h2 | ||
| 202 | |||
| 203 | :cfgDone | ||
| 204 | rm -f junk.c junk junk.exe | ||
| 205 | update config.h2 config.h >nul | ||
| 206 | rm -f config.tmp config.h2 | ||
| 207 | |||
| 208 | rem On my system dir.h gets in the way. It's a VMS file so who cares. | ||
| 209 | if exist dir.h ren dir.h vmsdir.h | ||
| 210 | |||
| 211 | rem Create "makefile" from "makefile.in". | ||
| 212 | rm -f Makefile makefile.tmp | ||
| 213 | copy Makefile.in+deps.mk makefile.tmp | ||
| 214 | sed -f ../msdos/sed1v2.inp <makefile.tmp >Makefile | ||
| 215 | rm -f makefile.tmp | ||
| 216 | |||
| 217 | if "%X11%" == "" goto src5 | ||
| 218 | mv Makefile makefile.tmp | ||
| 219 | sed -f ../msdos/sed1x.inp <makefile.tmp >Makefile | ||
| 220 | rm -f makefile.tmp | ||
| 221 | :src5 | ||
| 222 | |||
| 223 | if "%sys_malloc%" == "" goto src5a | ||
| 224 | sed -e "/^GMALLOC_OBJ *=/s/gmalloc.o//" <Makefile >makefile.tmp | ||
| 225 | sed -e "/^VMLIMIT_OBJ *=/s/vm-limit.o//" <makefile.tmp >makefile.tmp2 | ||
| 226 | sed -e "/^RALLOC_OBJ *=/s/ralloc.o//" <makefile.tmp2 >Makefile | ||
| 227 | rm -f makefile.tmp makefile.tmp2 | ||
| 228 | :src5a | ||
| 229 | |||
| 230 | if "%nodebug%" == "" goto src6 | ||
| 231 | sed -e "/^CFLAGS *=/s/ *-gcoff//" <Makefile >makefile.tmp | ||
| 232 | sed -e "/^LDFLAGS *=/s/=/=-s/" <makefile.tmp >Makefile | ||
| 233 | rm -f makefile.tmp | ||
| 234 | :src6 | ||
| 235 | |||
| 236 | if "%libxml%" == "" goto src7 | ||
| 237 | sed -e "/^LIBXML2_LIBS *=/s/=/= -lxml2 -lz -liconv/" <Makefile >makefile.tmp | ||
| 238 | sed -e "/^LIBXML2_CFLAGS *=/s|=|= -I/dev/env/DJDIR/include/libxml2|" <makefile.tmp >Makefile | ||
| 239 | rm -f makefile.tmp | ||
| 240 | :src7 | ||
| 241 | cd .. | ||
| 242 | rem ---------------------------------------------------------------------- | ||
| 243 | Echo Configuring the library source directory... | ||
| 244 | cd lib-src | ||
| 245 | sed -f ../msdos/sed3v2.inp <Makefile.in >Makefile | ||
| 246 | if "%X11%" == "" goto libsrc2a | ||
| 247 | mv Makefile makefile.tmp | ||
| 248 | sed -f ../msdos/sed3x.inp <makefile.tmp >Makefile | ||
| 249 | rm -f makefile.tmp | ||
| 250 | :libsrc2a | ||
| 251 | if "%nodebug%" == "" goto libsrc3 | ||
| 252 | sed -e "/^CFLAGS *=/s/ *-gcoff//" <Makefile >makefile.tmp | ||
| 253 | sed -e "/^ALL_CFLAGS *=/s/=/= -s/" <makefile.tmp >Makefile | ||
| 254 | rm -f makefile.tmp | ||
| 255 | :libsrc3 | ||
| 256 | cd .. | ||
| 257 | rem ---------------------------------------------------------------------- | ||
| 258 | if "%X11%" == "" goto oldx1 | ||
| 259 | Echo Configuring the oldxmenu directory... | ||
| 260 | cd oldxmenu | ||
| 261 | sed -f ../msdos/sed5x.inp <Makefile.in >Makefile | ||
| 262 | if "%nodebug%" == "" goto oldx2 | ||
| 263 | sed -e "/^CFLAGS *=/s/ *-gcoff//" <Makefile >makefile.tmp | ||
| 264 | mv -f makefile.tmp Makefile | ||
| 265 | :oldx2 | ||
| 266 | cd .. | ||
| 267 | :oldx1 | ||
| 268 | rem ---------------------------------------------------------------------- | ||
| 269 | Echo Configuring the doc directory, expect one "File not found" message... | ||
| 270 | cd doc | ||
| 271 | Rem The two variants for lispintro below is for when the shell | ||
| 272 | Rem supports long file names but DJGPP does not | ||
| 273 | for %%d in (emacs lispref lispintro lispintr misc) do sed -f ../msdos/sed6.inp < %%d\Makefile.in > %%d\Makefile | ||
| 274 | cd .. | ||
| 275 | rem ---------------------------------------------------------------------- | ||
| 276 | Echo Configuring the lisp directory... | ||
| 277 | cd lisp | ||
| 278 | If Exist gnus\.dir-locals.el update gnus/.dir-locals.el gnus/_dir-locals.el | ||
| 279 | sed -f ../msdos/sedlisp.inp < Makefile.in > Makefile | ||
| 280 | cd .. | ||
| 281 | rem ---------------------------------------------------------------------- | ||
| 282 | If not Exist leim\quail\latin-pre.el goto maindir | ||
| 283 | Echo Configuring the leim directory... | ||
| 284 | cd leim | ||
| 285 | sed -f ../msdos/sedleim.inp < Makefile.in > Makefile | ||
| 286 | cd .. | ||
| 287 | rem ---------------------------------------------------------------------- | ||
| 288 | :maindir | ||
| 289 | Echo Configuring the main directory... | ||
| 290 | If Exist .dir-locals.el update .dir-locals.el _dir-locals.el | ||
| 291 | If Exist src\.dbxinit update src/.dbxinit src/_dbxinit | ||
| 292 | Echo Looking for the GDB init file... | ||
| 293 | If Exist src\.gdbinit update src/.gdbinit src/_gdbinit | ||
| 294 | If Exist src\_gdbinit goto gdbinitOk | ||
| 295 | Echo ERROR: | ||
| 296 | Echo I cannot find the GDB init file. It was called ".gdbinit" in | ||
| 297 | Echo the Emacs distribution, but was probably renamed to some other | ||
| 298 | Echo name without the leading dot when you untarred the archive. | ||
| 299 | Echo It should be in the "src/" subdirectory. Please make sure this | ||
| 300 | Echo file exists and is called "_gdbinit" with a leading underscore. | ||
| 301 | Echo Then run CONFIG.BAT again with the same arguments you did now. | ||
| 302 | goto End | ||
| 303 | :gdbinitOk | ||
| 304 | Echo Looking for the GDB init file...found | ||
| 305 | copy msdos\mainmake.v2 Makefile >nul | ||
| 306 | rem ---------------------------------------------------------------------- | ||
| 307 | goto End | ||
| 308 | :SmallEnv | ||
| 309 | echo Your environment size is too small. Please enlarge it and run me again. | ||
| 310 | echo For example, type "command.com /e:2048" to have 2048 bytes available. | ||
| 311 | set $foo$= | ||
| 312 | :end | ||
| 313 | set X11= | ||
| 314 | set nodebug= | ||
| 315 | set djgpp_ver= | ||
| 316 | set sys_malloc= | ||
| 317 | set libxml= | ||
| 318 | |||
| 319 | goto skipArchTag | ||
| 320 | arch-tag: 2d2fed23-4dc6-4006-a2e4-49daf0031f33 | ||
| 321 | :skipArchTag | ||