X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/3382cd59427d1d87d2d2500fd94462d102eab750..cb581b1a2eb30a3f6c0bad5e1b88e958bd7cadf9:/config.bat diff --git a/config.bat b/config.bat index 4f8767975b..8f8b4b6629 100644 --- a/config.bat +++ b/config.bat @@ -1,6 +1,8 @@ @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 @@ -14,88 +16,203 @@ 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 along with GNU Emacs; see the file COPYING. If not, write to the +rem Free Software Foundation, Inc., 59 Temple Place - Suite 330, +rem Boston, MA 02111-1307, USA. rem ---------------------------------------------------------------------- rem YOU'LL NEED THE FOLLOWING UTILITIES TO MAKE EMACS: rem -rem + djgpp. -rem + make utility that allows breaking of 128 chars limit of commands. -rem ndmake (as of version 4.5) won't work due to a line length limit. -rem + rm, mv, chmod (From GNU file utilities). -rem + sed. -rem + patch (Larry Wall's for instance. I think it's supplied with djgpp). +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 ---------------------------------------------------------------------- -if not "%2" == "" goto usage +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 msdos -echo [Read the script before you run it; also check that you have all the -echo necessary utilities.] +echo Usage: config [--with-x] [--no-debug] msdos +echo [Read the script before you run it.] goto end rem ---------------------------------------------------------------------- -:msdos -rem Change to the Emacs root -cd c:\emacs +: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.$$$" 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 junk junk.exe +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 junk.c +if not exist junk.exe coff2exe junk +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 -set PATHSH=paths-h.in -if exist %PATHSH% goto src1 -set PATHSH=paths.h-in -if exist %PATHSH% goto src1 -echo config: *** The file originally called "src/paths.h.in" cannot be found. -cd .. -goto end -:src1 -set CONFIGH=config-h.in -if exist %CONFIGH% goto src2 -set CONFIGH=config.h-in -if exist %CONFIGH% goto src2 -echo config: *** The file originally called "src/config.h.in" cannot be found. -cd .. -goto end -:src2 -set MAKEFILEIN=makefile.in-in -if exist %MAKEFILEIN% goto src3 -set MAKEFILEIN=makefile-in.in -if exist %MAKEFILEIN% goto src3 -echo makefile: *** The file originally called "src/makefile.in.in" cannot be found. -cd .. -goto end -:src3 rem Create "paths.h" -rm -f paths.h -sed -e "s!/lib/emacs!!" -e "s!/usr/local!c:/emacs!" -e "s!/data!/etc!" <%PATHSH% >paths.h +sed -f ../msdos/sed4.inp paths.tmp +update paths.tmp paths.h >nul +rm -f paths.tmp rem Create "config.h" -rm -f config.h -sed -f ../msdos/sed2.inp <%CONFIGH% >config.h +rm -f config.h2 config.tmp +cp config.in config.tmp +if "%X11%" == "" goto src4 +sed -f ../msdos/sed2x.inp config.tmp +:src4 +sed -f ../msdos/sed2.inp 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.in" using a context patch. -rm -f makefile -cp %MAKEFILEIN% makefile -patch -p1 -B ! -r patch.rjt makefile ../msdos/patch1 -echo All hunks above should have passed! If they didn't, you'll have to -echo update manually. That should be easy though. -mv makefile junk.c +rem Create "makefile" from "makefile.in". +rm -f makefile junk.c +sed -e "1,/cpp stuff/s@^# .*$@@" 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 -del !makefile -del junk.c +:mfDone +rm -f junk.c + +if "%X11%" == "" goto src5 +mv makefile makefile.tmp +sed -f ../msdos/sed1x.inp makefile +rm -f makefile.tmp +:src5 + +if "%nodebug%" == "" goto src6 +sed -e "/^CFLAGS *=/s/ *-g//" makefile.tmp +sed -e "/^LDFLAGS *=/s/=/=-s/" makefile +rm -f makefile.tmp +:src6 cd .. rem ---------------------------------------------------------------------- Echo Configuring the library source directory... cd lib-src rem Create "makefile" from "makefile.in". -copy makefile makefile.bak >nul -sed -f ../msdos/sed3.inp makefile +sed -e "1,/cpp stuff/s@^# .*$@@" 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 +Goto libsrc2 +:libsrc-v2 +sed -f ../msdos/sed3v2.inp makefile +:libsrc2 +rm -f makefile.new junk.c +if "%nodebug%" == "" goto libsrc3 +sed -e "/^CFLAGS *=/s/ *-g//" makefile.tmp +sed -e "/^ALL_CFLAGS *=/s/=/= -s/" 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 +if "%nodebug%" == "" goto oldx2 +sed -e "/^CFLAGS *=/s/ *-g//" makefile.tmp +mv -f makefile.tmp makefile +:oldx2 cd .. +:oldx1 rem ---------------------------------------------------------------------- Echo Configuring the main directory... -copy msdos\mainmake makefile >nul +If "%DJGPP_VER%" == "1" goto mainv1 +Echo Looking for the GDB init file... +If Exist src\_gdbinit goto gdbinitOk +Echo ERROR: +Echo I cannot find the GDB init file. It was called ".gdbinit" in +Echo the Emacs distribution, but was probably renamed to some other +Echo name without the leading dot when you untarred the archive. +Echo It should be in the "src/" subdirectory. Please make sure this +Echo file exists and is called "_gdbinit" with a leading underscore. +Echo Then run CONFIG.BAT again with the same arguments you did now. +goto End +:gdbinitOk +Echo Looking for the GDB init file...found +copy msdos\mainmake.v2 makefile >nul +:mainv1 +If "%DJGPP_VER%" == "1" copy msdos\mainmake makefile >nul rem ---------------------------------------------------------------------- :end +set X11= +set nodebug= +set djgpp_ver=