rem ----------------------------------------------------------------------\r
rem Configuration script for MSDOS\r
rem Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2001, 2002, 2003\r
-rem 2004, 2005, 2006, 2007 Free Software Foundation, Inc.\r
+rem 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011 Free Software Foundation,\r
+rem Inc.\r
\r
rem This file is part of GNU Emacs.\r
\r
-rem GNU Emacs is free software; you can redistribute it and/or modify\r
+rem GNU Emacs is free software: you can redistribute it and/or modify\r
rem it under the terms of the GNU General Public License as published by\r
-rem the Free Software Foundation; either version 3, or (at your option)\r
-rem any later version.\r
+rem the Free Software Foundation, either version 3 of the License, or\r
+rem (at your option) any later version.\r
\r
rem GNU Emacs is distributed in the hope that it will be useful,\r
rem but WITHOUT ANY WARRANTY; without even the implied warranty of\r
rem GNU General Public License for more details.\r
\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., 51 Franklin Street, Fifth Floor,\r
-rem Boston, MA 02110-1301, USA.\r
+rem along with GNU Emacs. If not, see http://www.gnu.org/licenses/.\r
+\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.03 or later recommended).\r
+rem + DJGPP version 2.0 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 + rm and mv (from GNU file utilities).\r
+rem line length limit. The make that comes with DJGPP does work (and is\r
+rem recommended).\r
+rem + rm, mv, and cp (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 the DJGPP FTP\r
set X11=\r
set nodebug=\r
set djgpp_ver=\r
+set sys_malloc=\r
+set libxml=\r
if "%1" == "" goto usage\r
rem ----------------------------------------------------------------------\r
rem See if their environment is large enough. We need 28 bytes.\r
if "%1" == "--with-x" goto withx\r
if "%1" == "--no-debug" goto nodebug\r
if "%1" == "msdos" goto msdos\r
+if "%1" == "--with-system-malloc" goto sysmalloc\r
:usage\r
-echo Usage: config [--with-x] [--no-debug] msdos\r
+echo Usage: config [--no-debug] [--with-system-malloc] [--with-x] msdos\r
echo [Read the script before you run it.]\r
goto end\r
rem ----------------------------------------------------------------------\r
shift\r
goto again\r
rem ----------------------------------------------------------------------\r
+:sysmalloc\r
+set sys_malloc=Y\r
+shift\r
+goto again\r
+rem ----------------------------------------------------------------------\r
:msdos\r
Echo Checking whether 'sed' is available...\r
sed -e "w junk.$$$" <Nul\r
Echo To compile 'Emacs' under MS-DOS you MUST have DJGPP installed!\r
Goto End\r
:go32Ok\r
-set djgpp_ver=1\r
-If ErrorLevel 20 set djgpp_ver=2\r
+set djgpp_ver=2\r
+If Not ErrorLevel 20 Echo To build 'Emacs' you need DJGPP v2.0 or later!\r
+If Not ErrorLevel 20 Goto End\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
\r
rem Create "config.h"\r
rm -f config.h2 config.tmp\r
-sed -e '' config.in > config.tmp\r
+sed -e '' ../autogen/config.in > config.tmp\r
if "%X11%" == "" goto src4\r
-sed -f ../msdos/sed2x.inp <config.in >config.tmp\r
+sed -f ../msdos/sed2x.inp < ..\autogen\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 For details see lisp.h where it defines USE_LSB_TAG\r
echo #define NO_DECL_ALIGN >>config.h2\r
:alignOk\r
+Rem See if they have libxml2 later than v2.2.0 installed\r
+Echo Checking whether libxml2 v2.2.1 or later is installed ...\r
+rm -f junk.c junk.o junk junk.exe\r
+rem Use djecho here because we need to quote brackets\r
+djecho "#include <libxml/xmlversion.h>" >junk.c\r
+djecho "int main()" >>junk.c\r
+djecho "{return (LIBXML_VERSION > 20200 ? 0 : 1);}" >>junk.c\r
+redir -o Nul -eo gcc -I/dev/env/DJDIR/include/libxml2 -o junk junk.c\r
+if not exist junk Goto xmlDone\r
+if not exist junk.exe coff2exe junk\r
+junk\r
+If ErrorLevel 1 Goto xmlDone\r
+Echo Configuring with libxml2 ...\r
+sed -e "/#undef HAVE_LIBXML2/s/^.*$/#define HAVE_LIBXML2 1/" <config.h2 >config.h3\r
+mv config.h3 config.h2\r
+set libxml=1\r
+:xmlDone\r
+rm -f junk.c junk junk.exe\r
+Rem See if they requested a SYSTEM_MALLOC build\r
+if "%sys_malloc%" == "" Goto cfgDone\r
+rm -f config.tmp\r
+ren config.h2 config.tmp\r
+sed -f ../msdos/sedalloc.inp <config.tmp >config.h2\r
+\r
+:cfgDone\r
rm -f junk.c junk junk.exe\r
update config.h2 config.h >nul\r
rm -f config.tmp config.h2\r
if exist dir.h ren dir.h vmsdir.h\r
\r
rem Create "makefile" from "makefile.in".\r
-rm -f Makefile 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 -traditional junk.c | sed -f ../msdos/sed1v2.inp >Makefile\r
-goto mfDone\r
-:mfV1\r
-gcc -E -traditional junk.c | sed -f ../msdos/sed1.inp >Makefile\r
-:mfDone\r
-rm -f junk.c\r
+rm -f Makefile makefile.tmp\r
+copy Makefile.in+lisp.mk+deps.mk makefile.tmp\r
+sed -f ../msdos/sed1v2.inp <makefile.tmp >Makefile\r
+rm -f makefile.tmp\r
\r
if "%X11%" == "" goto src5\r
mv Makefile makefile.tmp\r
rm -f makefile.tmp\r
:src5\r
\r
+if "%sys_malloc%" == "" goto src5a\r
+sed -e "/^GMALLOC_OBJ *=/s/gmalloc.o//" <Makefile >makefile.tmp\r
+sed -e "/^VMLIMIT_OBJ *=/s/vm-limit.o//" <makefile.tmp >makefile.tmp2\r
+sed -e "/^RALLOC_OBJ *=/s/ralloc.o//" <makefile.tmp2 >Makefile\r
+rm -f makefile.tmp makefile.tmp2\r
+:src5a\r
+\r
if "%nodebug%" == "" goto src6\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
+\r
+if "%libxml%" == "" goto src7\r
+sed -e "/^LIBXML2_LIBS *=/s/=/= -lxml2 -lz -liconv/" <Makefile >makefile.tmp\r
+sed -e "/^LIBXML2_CFLAGS *=/s|=|= -I/dev/env/DJDIR/include/libxml2|" <makefile.tmp >Makefile\r
+rm -f makefile.tmp\r
+:src7\r
cd ..\r
rem ----------------------------------------------------------------------\r
Echo Configuring the library source directory...\r
cd lib-src\r
-rem Create "makefile" from "makefile.in".\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
-:libsrc-v2\r
-sed -f ../msdos/sed3v2.inp <makefile.new >Makefile\r
-:libsrc2\r
-rm -f makefile.new junk.c\r
+sed -f ../msdos/sed3v2.inp <Makefile.in >Makefile\r
+if "%X11%" == "" goto libsrc2a\r
+mv Makefile makefile.tmp\r
+sed -f ../msdos/sed3x.inp <makefile.tmp >Makefile\r
+rm -f makefile.tmp\r
+:libsrc2a\r
if "%nodebug%" == "" goto libsrc3\r
sed -e "/^CFLAGS *=/s/ *-gcoff//" <Makefile >makefile.tmp\r
sed -e "/^ALL_CFLAGS *=/s/=/= -s/" <makefile.tmp >Makefile\r
cd ..\r
:oldx1\r
rem ----------------------------------------------------------------------\r
-Echo Configuring the manual directory...\r
-cd man\r
-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
+Echo Configuring the doc directory, expect one "File not found" message...\r
+cd doc\r
+Rem The two variants for lispintro below is for when the shell\r
+Rem supports long file names but DJGPP does not\r
+for %%d in (emacs lispref lispintro lispintr misc) do sed -f ../msdos/sed6.inp < %%d\Makefile.in > %%d\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
+Echo Configuring the lib directory...\r
+If Exist c++defs.h update c++defs.h cxxdefs.h\r
+cd lib\r
+Rem Rename files like djtar on plain DOS filesystem would.\r
+If Exist c++defs.h update c++defs.h cxxdefs.h\r
+If Exist getopt.in.h update getopt.in.h getopt.in-h\r
+If Exist stdbool.in.h update stdbool.in.h stdbool.in-h\r
+If Exist stddef.in.h update stddef.in.h stddef.in-h\r
+If Exist stdint.in.h update stdint.in.h stdint.in-h\r
+If Exist stdio.in.h update stdio.in.h stdio.in-h\r
+If Exist stdlib.in.h update stdlib.in.h stdlib.in-h\r
+If Exist sys_stat.in.h update sys_stat.in.h sys_stat.in-h\r
+If Exist time.in.h update time.in.h time.in-h\r
+If Exist unistd.in.h update unistd.in.h unistd.in-h\r
+sed -f ../msdos/sedlibcf.inp < ..\autogen\Makefile.in > makefile.tmp\r
+sed -f ../msdos/sedlibmk.inp < makefile.tmp > Makefile\r
+rm -f makefile.tmp\r
+Rem Create .Po files for new files in lib/\r
+If Not Exist deps\stamp mkdir deps\r
+for %%f in (*.c) do @call ..\msdos\depfiles.bat %%f\r
+echo deps-stamp > deps\stamp\r
cd ..\r
rem ----------------------------------------------------------------------\r
Echo Configuring the lisp directory...\r
cd lisp\r
+If Exist gnus\.dir-locals.el update gnus/.dir-locals.el gnus/_dir-locals.el\r
sed -f ../msdos/sedlisp.inp < Makefile.in > Makefile\r
cd ..\r
rem ----------------------------------------------------------------------\r
rem ----------------------------------------------------------------------\r
:maindir\r
Echo Configuring the main directory...\r
-If "%DJGPP_VER%" == "1" goto mainv1\r
+If Exist .dir-locals.el update .dir-locals.el _dir-locals.el\r
+If Exist src\.dbxinit update src/.dbxinit src/_dbxinit\r
Echo Looking for the GDB init file...\r
If Exist src\.gdbinit update src/.gdbinit src/_gdbinit\r
If Exist src\_gdbinit goto gdbinitOk\r
:gdbinitOk\r
Echo Looking for the GDB init file...found\r
copy msdos\mainmake.v2 Makefile >nul\r
-:mainv1\r
-If "%DJGPP_VER%" == "1" copy msdos\mainmake Makefile >nul\r
rem ----------------------------------------------------------------------\r
goto End\r
:SmallEnv\r
set X11=\r
set nodebug=\r
set djgpp_ver=\r
+set sys_malloc=\r
+set libxml=\r
\r
-goto skipArchTag\r
- arch-tag: 2d2fed23-4dc6-4006-a2e4-49daf0031f33\r
-:skipArchTag\r