guile-elisp bootstrap (lisp)
[bpt/emacs.git] / config.bat
index a37a7a7..cc35447 100644 (file)
@@ -1,8 +1,7 @@
 @echo off\r
 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   Copyright (C) 1994-1999, 2001-2014 Free Software Foundation, Inc.\r
 \r
 rem   This file is part of GNU Emacs.\r
 \r
@@ -38,6 +37,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,27 +154,31 @@ rm -f epaths.tmp
 \r
 rem   Create "config.h"\r
 rm -f config.h2 config.tmp\r
-sed -e '' config.in > config.tmp\r
+if exist config.in sed -e '' config.in > config.tmp\r
+if exist ..\msdos\autogen\config.in sed -e '' ../msdos/autogen/config.in > config.tmp\r
 if "%X11%" == "" goto src4\r
-sed -f ../msdos/sed2x.inp <config.in >config.tmp\r
+if exist config.in sed -f ../msdos/sed2x.inp < config.in > config.tmp\r
+if exist ..\msdos\autogen\config.in sed -f ../msdos/sed2x.inp < ..\msdos\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
+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
-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
+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 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
+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 +195,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 +217,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,18 +258,63 @@ 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 build-aux\snippet\c++defs.h update build-aux/snippet/c++defs.h build-aux/snippet/cxxdefs.h\r
+cd lib\r
+Rem Rename files like djtar on plain DOS filesystem would.\r
+If Exist build-aux\snippet\c++defs.h update build-aux/snippet/c++defs.h build-aux/snippet/cxxdefs.h\r
+If Exist alloca.in.h update alloca.in.h alloca.in-h\r
+If Exist byteswap.in.h update byteswap.in.h byteswap.in-h\r
+If Exist dirent.in.h update dirent.in.h dirent.in-h\r
+If Exist errno.in.h update errno.in.h errno.in-h\r
+If Exist execinfo.in.h update execinfo.in.h execinfo.in-h\r
+If Exist fcntl.in.h update fcntl.in.h fcntl.in-h\r
+If Exist getopt.in.h update getopt.in.h getopt.in-h\r
+If Exist inttypes.in.h update inttypes.in.h inttypes.in-h\r
+If Exist stdarg.in.h update stdarg.in.h stdarg.in-h\r
+If Exist stdalign.in.h update stdalign.in.h stdalign.in-h\r
+If Exist stdbool.in.h update stdbool.in.h stdbool.in-h\r
+If Exist signal.in.h update signal.in.h signal.in-h\r
+If Exist stdalign.in.h update stdalign.in.h  stdalign.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 string.in.h update string.in.h string.in-h\r
+If Exist sys_select.in.h update sys_select.in.h sys_select.in-h\r
+If Exist sys_stat.in.h update sys_stat.in.h sys_stat.in-h\r
+If Exist sys_types.in.h update sys_types.in.h sys_types.in-h\r
+If Exist sys_time.in.h update sys_time.in.h sys_time.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
+If Exist Makefile.in sed -f ../msdos/sedlibcf.inp < Makefile.in > makefile.tmp\r
+If Exist ..\msdos\autogen\Makefile.in sed -f ../msdos/sedlibcf.inp < ..\msdos\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
-If not Exist leim\quail\latin-pre.el goto maindir\r
 Echo Configuring the leim directory...\r
 cd leim\r
 sed -f ../msdos/sedleim.inp < Makefile.in > Makefile\r
 cd ..\r
 rem   ----------------------------------------------------------------------\r
-:maindir\r
+If Not Exist admin\unidata goto noadmin\r
+Echo Configuring the admin/unidata directory...\r
+cd admin\unidata\r
+sed -f ../../msdos/sedadmin.inp < Makefile.in > Makefile\r
+cd ..\..\r
+:noadmin\r
+rem   ----------------------------------------------------------------------\r
 Echo Configuring the main directory...\r
 If Exist .dir-locals.el update .dir-locals.el _dir-locals.el\r
 If Exist src\.dbxinit update src/.dbxinit src/_dbxinit\r
@@ -276,6 +331,8 @@ Echo Then run CONFIG.BAT again with the same arguments you did now.
 goto End\r
 :gdbinitOk\r
 Echo Looking for the GDB init file...found\r
+rem GNUMakefile is not appropriate for MS-DOS so move it out of the way\r
+If Exist GNUmakefile mv -f GNUmakefile GNUmakefile.unix\r
 copy msdos\mainmake.v2 Makefile >nul\r
 rem   ----------------------------------------------------------------------\r
 goto End\r
@@ -288,7 +345,4 @@ set X11=
 set nodebug=\r
 set djgpp_ver=\r
 set sys_malloc=\r
-\r
-goto skipArchTag\r
-   arch-tag: 2d2fed23-4dc6-4006-a2e4-49daf0031f33\r
-:skipArchTag\r
+set libxml=\r