X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/05175c54515743480526d99e09f0ffaf42fb01c1..c398358aee8359d7b63621a35cda5110bc99f81b:/config.bat diff --git a/config.bat b/config.bat index f5e73928a9..9a80f5d785 100644 --- a/config.bat +++ b/config.bat @@ -1,7 +1,8 @@ @echo off rem ---------------------------------------------------------------------- rem Configuration script for MSDOS -rem Copyright (C) 1994 Free Software Foundation, Inc. +rem Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2004, 2006 +rem Free Software Foundation, Inc. rem This file is part of GNU Emacs. @@ -17,23 +18,21 @@ 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 the -rem Free Software Foundation, Inc., 59 Temple Place - Suite 330, -rem Boston, MA 02111-1307, USA. +rem Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, +rem Boston, MA 02110-1301, 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 + DJGPP version 1.12maint1 or later (version 2.03 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 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.simtel.net, in the directory -rem "pub/simtelnet/gnu/djgpp/v2gnu". As usual, please use your local -rem mirroring site to reduce trans-Atlantic traffic. +rem You should be able to get all the above utilities from the DJGPP FTP +rem site, ftp.delorie.com, in the directory "pub/djgpp/current/v2gnu". rem ---------------------------------------------------------------------- set X11= set nodebug= @@ -122,6 +121,21 @@ Goto End set djgpp_ver=1 If ErrorLevel 20 set djgpp_ver=2 rm -f junk.c junk junk.exe +rem The v1.x build does not need djecho +if "%DJGPP_VER%" == "1" Goto djechoOk +rem DJECHO is used by the top-level Makefile in the v2.x build +Echo Checking whether 'djecho' is available... +redir -o Nul -eo djecho -o junk.$$$ foo +If Exist junk.$$$ Goto djechoOk +Echo To build 'Emacs' you need the 'djecho.exe' program! +Echo 'djecho.exe' is part of 'djdevNNN.zip' basic DJGPP development kit. +Echo Versions of DJGPP before 2.02 called this program 'echo.exe'. +Echo Either unpack 'djecho.exe' from the 'djdevNNN.zip' archive, +Echo or, if you have 'echo.exe', copy it to 'djecho.exe'. +Echo Then run CONFIG.BAT again with the same arguments you did now. +Goto End +:djechoOk +rm -f junk.$$$ Echo Configuring for DJGPP Version %DJGPP_VER% ... Rem ---------------------------------------------------------------------- Echo Configuring the source directory... @@ -138,7 +152,29 @@ sed -e '' config.in > config.tmp if "%X11%" == "" goto src4 sed -f ../msdos/sed2x.inp config.tmp :src4 +if "%DJGPP_VER%" == "2" Goto src41 sed -f ../msdos/sed2.inp config.h2 +goto src42 +:src41 +sed -f ../msdos/sed2v2.inp config.h2 +:src42 +Rem See if DECL_ALIGN can be supported with this GCC +rm -f junk.c junk.o junk junk.exe +echo struct { int i; char *p; } __attribute__((__aligned__(8))) foo; >junk.c +rem Two percent signs because it is a special character for COMMAND.COM/CMD +rem Filter thru Sed because "&" is special for CMD.EXE +echo int main(void) { return (unsigned long)"&"foo %% 8; } | sed "s/.&./\&/" >>junk.c +gcc -o junk junk.c +if not exist junk.exe coff2exe junk +junk +If Not ErrorLevel 1 Goto alignOk +Echo WARNING: Your GCC does not support 8-byte aligned variables. +Echo WARNING: Therefore Emacs cannot support buffers larger than 128MB. +rem The following line disables DECL_ALIGN which in turn disables USE_LSB_TAG +rem For details see lisp.h where it defines USE_LSB_TAG +echo #define NO_DECL_ALIGN >>config.h2 +:alignOk +rm -f junk.c junk junk.exe update config.h2 config.h >nul rm -f config.tmp config.h2 @@ -147,12 +183,12 @@ 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@^# .*$@@" junk.c +sed -e "1,/== start of cpp stuff ==/s@^# .*$@@" junk.c If "%DJGPP_VER%" == "1" Goto mfV1 -gcc -E junk.c | sed -f ../msdos/sed1v2.inp >Makefile +gcc -E -traditional junk.c | sed -f ../msdos/sed1v2.inp >Makefile goto mfDone :mfV1 -gcc -E junk.c | sed -f ../msdos/sed1.inp >Makefile +gcc -E -traditional junk.c | sed -f ../msdos/sed1.inp >Makefile :mfDone rm -f junk.c @@ -163,7 +199,7 @@ rm -f makefile.tmp :src5 if "%nodebug%" == "" goto src6 -sed -e "/^CFLAGS *=/s/ *-g//" makefile.tmp +sed -e "/^CFLAGS *=/s/ *-gcoff//" makefile.tmp sed -e "/^LDFLAGS *=/s/=/=-s/" Makefile rm -f makefile.tmp :src6 @@ -172,8 +208,8 @@ rem ---------------------------------------------------------------------- Echo Configuring the library source directory... cd lib-src rem Create "makefile" from "makefile.in". -sed -e "1,/cpp stuff/s@^# .*$@@" junk.c -gcc -E -I. -I../src junk.c | sed -e "s/^ / /" -e "/^#/d" -e "/^[ ]*$/d" >makefile.new +sed -e "1,/== start of cpp stuff ==/s@^#[ ].*$@@" junk.c +gcc -E -traditional -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 @@ -182,7 +218,7 @@ 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 "/^CFLAGS *=/s/ *-gcoff//" makefile.tmp sed -e "/^ALL_CFLAGS *=/s/=/= -s/" Makefile rm -f makefile.tmp :libsrc3 @@ -193,7 +229,7 @@ Echo Configuring the oldxmenu directory... cd oldxmenu sed -f ../msdos/sed5x.inp Makefile if "%nodebug%" == "" goto oldx2 -sed -e "/^CFLAGS *=/s/ *-g//" makefile.tmp +sed -e "/^CFLAGS *=/s/ *-gcoff//" makefile.tmp mv -f makefile.tmp Makefile :oldx2 cd .. @@ -204,6 +240,24 @@ cd man sed -f ../msdos/sed6.inp < Makefile.in > Makefile cd .. rem ---------------------------------------------------------------------- +Echo Configuring the ELisp manual directory... +cd lispref +sed -f ../msdos/sed6.inp < Makefile.in > Makefile +cd .. +rem ---------------------------------------------------------------------- +Echo Configuring the ELisp Introduction manual directory... +Rem The two variants for the line below is for when the shell +Rem supports long file names but DJGPP does not +if exist lispintro\Makefile.in cd lispintro +if exist lispintr\Makefile.in cd lispintr +sed -f ../msdos/sed6.inp < Makefile.in > Makefile +cd .. +rem ---------------------------------------------------------------------- +Echo Configuring the lisp directory... +cd lisp +sed -f ../msdos/sedlisp.inp < Makefile.in > Makefile +cd .. +rem ---------------------------------------------------------------------- If not Exist leim\quail\latin-pre.el goto maindir Echo Configuring the leim directory... cd leim @@ -214,7 +268,7 @@ rem ---------------------------------------------------------------------- Echo Configuring the main directory... If "%DJGPP_VER%" == "1" goto mainv1 Echo Looking for the GDB init file... -If not Exist src\_gdbinit If Exist src\.gdbinit update src/.gdbinit src/_gdbinit +If Exist src\.gdbinit update src/.gdbinit src/_gdbinit If Exist src\_gdbinit goto gdbinitOk Echo ERROR: Echo I cannot find the GDB init file. It was called ".gdbinit" in @@ -239,3 +293,7 @@ set $foo$= set X11= set nodebug= set djgpp_ver= + +goto skipArchTag + arch-tag: 2d2fed23-4dc6-4006-a2e4-49daf0031f33 +:skipArchTag