Merge from emacs-23 branch
[bpt/emacs.git] / config.bat
index a37a7a7..dba3600 100644 (file)
@@ -2,7 +2,8 @@
 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, 2008, 2009, 2010  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
@@ -38,6 +39,7 @@ set X11=
 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
@@ -154,9 +156,9 @@ rm -f epaths.tmp
 \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
 sed -f ../msdos/sed2v2.inp <config.tmp >config.h2\r
 Rem See if DECL_ALIGN can be supported with this GCC\r
@@ -175,6 +177,24 @@ 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\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
@@ -191,7 +211,7 @@ if exist dir.h ren dir.h vmsdir.h
 \r
 rem   Create "makefile" from "makefile.in".\r
 rm -f Makefile makefile.tmp\r
-copy Makefile.in + deps.mk 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
@@ -213,6 +233,12 @@ sed -e "/^CFLAGS *=/s/ *-gcoff//" <Makefile >makefile.tmp
 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
@@ -248,8 +274,32 @@ Rem supports long file names but DJGPP does not
 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 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
@@ -288,7 +338,5 @@ set X11=
 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