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