Add arch taglines
[bpt/emacs.git] / nt / configure.bat
index 7d644fd..7d064ab 100755 (executable)
-@echo off
-rem   ----------------------------------------------------------------------
-rem   Configuration script for MS Windows 95/98 and NT/2000
-rem   Copyright (C) 1999, 2000 Free Software Foundation, Inc.
+@echo off\r
+rem   ----------------------------------------------------------------------\r
+rem   Configuration script for MS Windows 95/98/Me and NT/2000/XP\r
+rem   Copyright (C) 1999-2003 Free Software Foundation, 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   it under the terms of the GNU General Public License as published by\r
+rem   the Free Software Foundation; either version 2, or (at your option)\r
+rem   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   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\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., 59 Temple Place - Suite 330,\r
+rem   Boston, MA 02111-1307, USA.\r
+rem   ----------------------------------------------------------------------\r
+rem   YOU'LL NEED THE FOLLOWING UTILITIES TO MAKE EMACS:\r
+rem\r
+rem   + MS Windows 95/98/Me or NT/2000/XP\r
+rem   + either MSVC 2.x or later, or gcc-2.95 or later (with gmake 3.75\r
+rem     or later) and the Mingw32 and W32 API headers and libraries\r
+rem\r
+rem For reference, here is a list of which builds of gmake are known to\r
+rem work or not, and whether they work in the presence and/or absence of\r
+rem sh.exe.\r
+rem\r
+rem                                       sh exists     no sh\r
+rem  cygwin b20.1 make (3.75):            okay[1]       fails[2]\r
+rem  MSVC compiled gmake 3.77:            okay          okay\r
+rem  MSVC compiled gmake 3.78.1:          okay          okay\r
+rem  MSVC compiled gmake 3.79.1:          okay          okay\r
+rem  mingw32/gcc-2.92.2 make (3.77):      okay          okay\r
+rem  cygwin compiled gmake 3.77:          okay[1]       fails[2]\r
+rem  cygwin compiled gmake 3.78.1:        okay          fails[2]\r
+rem  cygwin compiled gmake 3.79.1:        couldn't build make[3]\r
+rem\r
+rem [1] doesn't cope with makefiles with DOS line endings, so must mount\r
+rem     emacs source with text!=binary.\r
+rem [2] fails when needs to invoke shell commands; okay invoking gcc etc.\r
+rem [3] requires LC_MESSAGES support to build; maybe 2.95.x update to\r
+rem     cygwin provides this?\r
+rem\r
+\r
+rem ----------------------------------------------------------------------\r
+rem   See if the environment is large enough.  We need 43 (?) bytes.\r
+set $foo$=123456789_123456789_123456789_123456789_123\r
+if not "%$foo$%" == "123456789_123456789_123456789_123456789_123" goto SmallEnv\r
+set $foo$=\r
+\r
+rem ----------------------------------------------------------------------\r
+rem   Make sure we are running in the nt subdir\r
+if exist configure.bat goto start\r
+echo You must run configure from the nt subdirectory.\r
+goto end\r
+\r
+:start\r
+rem ----------------------------------------------------------------------\r
+rem   Default settings.\r
+set prefix=\r
+set nodebug=N\r
+set noopt=N\r
+set nocygwin=N\r
+set COMPILER=\r
+set usercflags=\r
+set userldflags=\r
+set sep1=\r
+set sep2=\r
+\r
+rem ----------------------------------------------------------------------\r
+rem   Handle arguments.\r
+:again\r
+if "%1" == "-h" goto usage\r
+if "%1" == "--help" goto usage\r
+if "%1" == "--prefix" goto setprefix\r
+if "%1" == "--with-gcc" goto withgcc\r
+if "%1" == "--with-msvc" goto withmsvc\r
+if "%1" == "--no-debug" goto nodebug\r
+if "%1" == "--no-opt" goto noopt\r
+if "%1" == "--no-cygwin" goto nocygwin\r
+if "%1" == "--cflags" goto usercflags\r
+if "%1" == "--ldflags" goto userldflags\r
+if "%1" == "--without-png" goto withoutpng\r
+if "%1" == "--without-jpeg" goto withoutjpeg\r
+if "%1" == "--without-gif" goto withoutgif\r
+if "%1" == "--without-tiff" goto withouttiff\r
+if "%1" == "--without-xpm" goto withoutxpm\r
+if "%1" == "" goto checkutils\r
+:usage\r
+echo Usage: configure [options]\r
+echo Options:\r
+echo.   --prefix PREFIX         install Emacs in directory PREFIX\r
+echo.   --with-gcc              use GCC to compile Emacs\r
+echo.   --with-msvc             use MSVC to compile Emacs\r
+echo.   --no-debug              exclude debug info from executables\r
+echo.   --no-opt                disable optimization\r
+echo.   --no-cygwin             use -mno-cygwin option with GCC\r
+echo.   --cflags FLAG           pass FLAG to compiler\r
+echo.   --ldflags FLAG          pass FLAG to compiler when linking\r
+echo.   --without-png           do not use libpng even if it is installed\r
+echo.   --without-jpeg          do not use jpeg-6b even if it is installed\r
+echo.   --without-gif           do not use libungif even if it is installed\r
+echo.   --without-tiff          do not use libtiff even if it is installed\r
+echo.   --without-xpm           do not use libXpm even if it is installed\r
+goto end\r
+rem ----------------------------------------------------------------------\r
+:setprefix\r
+shift\r
+set prefix=%1\r
+shift\r
+goto again\r
+rem ----------------------------------------------------------------------\r
+:withgcc\r
+set COMPILER=gcc\r
+shift\r
+goto again\r
+rem ----------------------------------------------------------------------\r
+:withmsvc\r
+set COMPILER=cl\r
+shift\r
+goto again\r
+rem ----------------------------------------------------------------------\r
+:nodebug\r
+set nodebug=Y\r
+shift\r
+goto again\r
+rem ----------------------------------------------------------------------\r
+:noopt\r
+set noopt=Y\r
+shift\r
+goto again\r
+rem ----------------------------------------------------------------------\r
+:nocygwin\r
+set nocygwin=Y\r
+shift\r
+goto again\r
+rem ----------------------------------------------------------------------\r
+:usercflags\r
+shift\r
+set usercflags=%usercflags%%sep1%%1\r
+set sep1= %nothing%\r
+shift\r
+goto again\r
+rem ----------------------------------------------------------------------\r
+:userldflags\r
+shift\r
+set userldflags=%userldflags%%sep2%%1\r
+set sep2= %nothing%\r
+shift\r
+goto again\r
+rem ----------------------------------------------------------------------\r
+\r
+:withoutpng\r
+set pngsupport=N\r
+set HAVE_PNG=\r
+shift\r
+goto again\r
+\r
+rem ----------------------------------------------------------------------\r
+\r
+:withoutjpeg\r
+set jpegsupport=N\r
+set HAVE_JPEG=\r
+shift\r
+goto again\r
+\r
+rem ----------------------------------------------------------------------\r
+\r
+:withoutgif\r
+set gifsupport=N\r
+set HAVE_GIF=\r
+shift\r
+goto again\r
+\r
+rem ----------------------------------------------------------------------\r
+\r
+:withouttiff\r
+set tiffsupport=N\r
+set HAVE_TIFF=\r
+shift\r
+goto again\r
+\r
+rem ----------------------------------------------------------------------\r
+\r
+:withoutxpm\r
+set xpmsupport=N\r
+set HAVE_XPM=\r
+shift\r
+goto again\r
+\r
+rem ----------------------------------------------------------------------\r
+rem    Check that necessary utilities (cp and rm) are present.\r
+:checkutils\r
+echo Checking for 'cp'...\r
+cp configure.bat junk.bat\r
+if not exist junk.bat goto needcp\r
+echo Checking for 'rm'...\r
+rm junk.bat\r
+if exist junk.bat goto needrm\r
+goto checkcompiler\r
+:needcp\r
+echo You need 'cp' (the Unix file copy program) to build Emacs.\r
+goto end\r
+:needrm\r
+del junk.bat\r
+echo You need 'rm' (the Unix file delete program) to build Emacs.\r
+goto end\r
+\r
+rem ----------------------------------------------------------------------\r
+rem   Auto-detect compiler if not specified, and validate GCC if chosen.\r
+:checkcompiler\r
+if (%COMPILER%)==(cl) goto compilercheckdone\r
+if (%COMPILER%)==(gcc) goto checkgcc\r
+\r
+echo Checking whether 'cl' is available...\r
+echo main(){} >junk.c\r
+cl -nologo -c junk.c\r
+if exist junk.obj goto clOK\r
+\r
+echo Checking whether 'gcc' is available...\r
+gcc -c junk.c\r
+if not exist junk.o goto nocompiler\r
+del junk.o\r
+\r
+:checkgcc\r
+Rem WARNING -- COMMAND.COM on some systems only looks at the first\r
+Rem            8 characters of a label.  So do NOT be tempted to change\r
+Rem            chkapi* into something fancier like checkw32api\r
+Rem You HAVE been warned!\r
+if (%nocygwin%) == (Y) goto chkapi\r
+echo Checking whether gcc requires '-mno-cygwin'...\r
+echo #include "cygwin/version.h" >junk.c\r
+echo main(){} >>junk.c\r
+gcc -c junk.c\r
+if not exist junk.o goto chkapi\r
+gcc -mno-cygwin -c junk.c\r
+if exist junk.o set nocygwin=Y\r
+rm -f junk.c junk.o\r
+\r
+:chkapi\r
+rem ----------------------------------------------------------------------\r
+rem   Older versions of the Windows API headers either don't have any of\r
+rem   the IMAGE_xxx definitions (the headers that come with Cygwin b20.1\r
+rem   are like this), or have a typo in the definition of\r
+rem   IMAGE_FIRST_SECTION (the headers with gcc/mingw32 2.95 have this\r
+rem   problem).  The gcc/mingw32 2.95.2 headers are okay, as are distros\r
+rem   of w32api-xxx.zip from Anders Norlander since 1999-11-18 at least.\r
+rem\r
+echo Checking whether W32 API headers are too old...\r
+echo #include "windows.h" >junk.c\r
+echo test(PIMAGE_NT_HEADERS pHeader) >>junk.c\r
+echo {PIMAGE_SECTION_HEADER pSection = IMAGE_FIRST_SECTION(pHeader);} >>junk.c\r
+if (%nocygwin%) == (Y) goto chkapi1\r
+set cf=%usercflags%\r
+goto chkapi2\r
+:chkapi1\r
+set cf=%usercflags% -mno-cygwin\r
+:chkapi2\r
+echo on\r
+gcc %cf% -c junk.c\r
+echo off\r
+set cf=\r
+if exist junk.o goto gccOk\r
+\r
+:nocompiler\r
+echo.\r
+echo Configure failed.\r
+echo To configure Emacs for Windows, you need to have either\r
+echo gcc-2.95 or later with Mingw32 and the W32 API headers,\r
+echo or MSVC 2.x or later.\r
+del junk.c\r
+goto end\r
+\r
+:gccOk\r
+set COMPILER=gcc\r
+rm -f junk.c junk.o\r
+echo Using 'gcc'\r
+goto compilercheckdone\r
+\r
+:clOk\r
+set COMPILER=cl\r
+rm -f junk.c junk.obj\r
+echo Using 'MSVC'\r
+\r
+:compilercheckdone\r
+\r
+rem ----------------------------------------------------------------------\r
+rem   Check for external image libraries. Since they are loaded\r
+rem   dynamically, the libraries themselves do not need to be present\r
+rem   at compile time, but the header files are required.\r
+\r
+if (%pngsupport%) == (N) goto pngDone\r
+\r
+echo Checking for libpng...\r
+echo #include "png.h" >junk.c\r
+echo main (){} >>junk.c\r
+rem   -o option is ignored with cl, but allows result to be consistent.\r
+%COMPILER% %usercflags% -c junk.c -o junk.obj >junk.out 2>junk.err\r
+if exist junk.obj goto havePng\r
+\r
+echo ...png.h not found, building without PNG support.\r
+set HAVE_PNG=\r
+goto :pngDone\r
+\r
+:havePng\r
+echo ...PNG header available, building with PNG support.\r
+set HAVE_PNG=1\r
+\r
+:pngDone\r
+rm -f junk.c junk.obj\r
+\r
+if (%jpegsupport%) == (N) goto jpegDone\r
+\r
+echo Checking for jpeg-6b...\r
+echo #include "jconfig.h" >junk.c\r
+echo main (){} >>junk.c\r
+rem   -o option is ignored with cl, but allows result to be consistent.\r
+%COMPILER% %usercflags% -c junk.c -o junk.obj >junk.out 2>junk.err\r
+if exist junk.obj goto haveJpeg\r
+\r
+echo ...jconfig.h not found, building without JPEG support.\r
+set HAVE_JPEG=\r
+goto :jpegDone\r
+\r
+:haveJpeg\r
+echo ...JPEG header available, building with JPEG support.\r
+set HAVE_JPEG=1\r
+\r
+:jpegDone\r
+rm -f junk.c junk.obj\r
+\r
+if (%gifsupport%) == (N) goto gifDone\r
+\r
+echo Checking for libgif...\r
+echo #include "gif_lib.h" >junk.c\r
+echo main (){} >>junk.c\r
+rem   -o option is ignored with cl, but allows result to be consistent.\r
+%COMPILER% %usercflags% -c junk.c -o junk.obj >junk.out 2>junk.err\r
+if exist junk.obj goto haveGif\r
+\r
+echo ...gif_lib.h not found, building without GIF support.\r
+set HAVE_GIF=\r
+goto :gifDone\r
+\r
+:haveGif\r
+echo ...GIF header available, building with GIF support.\r
+set HAVE_GIF=1\r
+\r
+:gifDone\r
+rm -f junk.c junk.obj\r
+\r
+if (%tiffsupport%) == (N) goto tiffDone\r
+\r
+echo Checking for tiff...\r
+echo #include "tiffio.h" >junk.c\r
+echo main (){} >>junk.c\r
+rem   -o option is ignored with cl, but allows result to be consistent.\r
+%COMPILER% %usercflags% -c junk.c -o junk.obj >junk.out 2>junk.err\r
+if exist junk.obj goto haveTiff\r
+\r
+echo ...tiffio.h not found, building without TIFF support.\r
+set HAVE_TIFF=\r
+goto :tiffDone\r
+\r
+:haveTiff\r
+echo ...TIFF header available, building with TIFF support.\r
+set HAVE_TIFF=1\r
+\r
+:tiffDone\r
+rm -f junk.c junk.obj\r
+\r
+if (%xpmsupport%) == (N) goto xpmDone\r
+\r
+echo Checking for libXpm...\r
+echo #define FOR_MSW 1 >junk.c\r
+echo #include "X11/xpm.h" >>junk.c\r
+echo main (){} >>junk.c\r
+rem   -o option is ignored with cl, but allows result to be consistent.\r
+%COMPILER% %usercflags% -c junk.c -o junk.obj >junk.out 2>junk.err\r
+if exist junk.obj goto haveXpm\r
+\r
+echo ...X11/xpm.h not found, building without XPM support.\r
+set HAVE_XPM=\r
+goto :xpmDone\r
+\r
+:haveXpm\r
+echo ...XPM header available, building with XPM support.\r
+set HAVE_XPM=1\r
+\r
+:xpmDone\r
+rm -f junk.c junk.obj junk.err junk.out\r
+\r
+rem ----------------------------------------------------------------------\r
+:genmakefiles\r
+echo Generating makefiles\r
+if %COMPILER% == gcc set MAKECMD=gmake\r
+if %COMPILER% == cl set MAKECMD=nmake\r
+\r
+rem   Pass on chosen settings to makefiles.\r
+rem   NB. Be very careful to not have a space before redirection symbols\r
+rem   except when there is a preceding digit, when a space is required.\r
+rem\r
+echo # Start of settings from configure.bat >config.settings\r
+echo COMPILER=%COMPILER%>>config.settings\r
+if (%nodebug%) == (Y) echo NODEBUG=1 >>config.settings\r
+if (%noopt%) == (Y) echo NOOPT=1 >>config.settings\r
+if (%nocygwin%) == (Y) echo NOCYGWIN=1 >>config.settings\r
+if not "(%prefix%)" == "()" echo INSTALL_DIR=%prefix%>>config.settings\r
+if not "(%usercflags%)" == "()" echo USER_CFLAGS=%usercflags%>>config.settings\r
+if not "(%userldflags%)" == "()" echo USER_LDFLAGS=%userldflags%>>config.settings\r
+echo # End of settings from configure.bat>>config.settings\r
+echo. >>config.settings\r
+\r
+copy config.nt ..\src\config.h\r
+echo. >>..\src\config.h\r
+echo /* Start of settings from configure.bat.  */ >>..\src\config.h\r
+if not "(%usercflags%)" == "()" echo #define USER_CFLAGS " %usercflags%">>..\src\config.h\r
+if not "(%userldflags%)" == "()" echo #define USER_LDFLAGS " %userldflags%">>..\src\config.h\r
+if not "(%HAVE_PNG%)" == "()" echo #define HAVE_PNG 1 >>..\src\config.h\r
+if not "(%HAVE_JPEG%)" == "()" echo #define HAVE_JPEG 1 >>..\src\config.h\r
+if not "(%HAVE_GIF%)" == "()" echo #define HAVE_GIF 1 >>..\src\config.h\r
+if not "(%HAVE_TIFF%)" == "()" echo #define HAVE_TIFF 1 >>..\src\config.h\r
+if not "(%HAVE_XPM%)" == "()" echo #define HAVE_XPM 1 >>..\src\config.h\r
+echo /* End of settings from configure.bat.  */ >>..\src\config.h\r
+\r
+copy paths.h ..\src\epaths.h\r
+\r
+copy /b config.settings+%MAKECMD%.defs+..\nt\makefile.w32-in ..\nt\makefile\r
+copy /b config.settings+%MAKECMD%.defs+..\lib-src\makefile.w32-in ..\lib-src\makefile\r
+copy /b config.settings+%MAKECMD%.defs+..\src\makefile.w32-in ..\src\makefile\r
+if not exist ..\lisp\Makefile.unix rename ..\lisp\Makefile.in Makefile.unix\r
+if exist ..\lisp\makefile rm -f ../lisp/[Mm]akefile\r
+copy /b config.settings+%MAKECMD%.defs+..\lisp\makefile.w32-in ..\lisp\makefile\r
+rem   Use the default (no-op) Makefile.in if the nt version is not present.\r
+if exist ..\leim\makefile.w32-in copy /b config.settings+%MAKECMD%.defs+..\leim\makefile.w32-in ..\leim\makefile\r
+if not exist ..\leim\makefile.w32-in copy /b config.settings+%MAKECMD%.defs+..\leim\Makefile.in ..\leim\makefile\r
+del config.settings\r
+\r
+Rem Some people use WinZip which doesn't create empty directories!\r
+if not exist ..\site-lisp\nul mkdir ..\site-lisp\\r
+if not exist ..\site-lisp\subdirs.el copy subdirs.el ..\site-lisp\subdirs.el\r
+\r
+echo.\r
+echo Emacs successfully configured.\r
+echo Run `%MAKECMD%' to build, then run `%MAKECMD% install' to install.\r
+goto end\r
+\r
+:SmallEnv\r
+echo Your environment size is too small.  Please enlarge it and rerun configure.\r
+echo For example, type "command.com /e:2048" to have 2048 bytes available.\r
+set $foo$=\r
+:end\r
+set prefix=\r
+set nodebug=\r
+set noopt=\r
+set nocygwin=\r
+set COMPILER=\r
+set MAKECMD=\r
+set usercflags=\r
+set userldflags=\r
 
-rem   This file is part of GNU Emacs.
-
-rem   GNU Emacs is free software; you can redistribute it and/or modify
-rem   it under the terms of the GNU General Public License as published by
-rem   the Free Software Foundation; either version 2, or (at your option)
-rem   any later version.
-
-rem   GNU Emacs is distributed in the hope that it will be useful,
-rem   but WITHOUT ANY WARRANTY; without even the implied warranty of
-rem   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-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   ----------------------------------------------------------------------
-rem   YOU'LL NEED THE FOLLOWING UTILITIES TO MAKE EMACS:
-rem
-rem   + MS Windows 95/98 or NT/2000
-rem   + either MSVC 2.x or later, or gcc-2.95 or later (with gmake 3.75
-rem     or later) and the Mingw32 and W32 API headers and libraries
-rem
-rem For reference, here is a list of which builds of gmake are known to
-rem work or not, and whether they work in the presence and/or absence of
-rem sh.exe.
-rem  
-rem                                       sh exists     no sh
-rem  cygwin b20.1 make (3.75):            okay[1]       fails[2]
-rem  MSVC compiled gmake 3.77:            okay          okay
-rem  MSVC compiled gmake 3.78.1:          okay          okay
-rem  MSVC compiled gmake 3.79.1:          okay          okay
-rem  mingw32/gcc-2.92.2 make (3.77):      okay          okay
-rem  cygwin compiled gmake 3.77:          okay[1]       fails[2]
-rem  cygwin compiled gmake 3.78.1:        okay          fails[2]
-rem  cygwin compiled gmake 3.79.1:        couldn't build make[3]
-rem
-rem [1] doesn't cope with makefiles with DOS line endings, so must mount
-rem     emacs source with text!=binary.
-rem [2] fails when needs to invoke shell commands; okay invoking gcc etc.
-rem [3] requires LC_MESSAGES support to build; maybe 2.95.x update to
-rem     cygwin provides this?
-rem
-
-rem ----------------------------------------------------------------------
-rem   See if the environment is large enough.  We need 43 (?) bytes.
-set $foo$=123456789_123456789_123456789_123456789_123
-if not "%$foo$%" == "123456789_123456789_123456789_123456789_123" goto SmallEnv
-set $foo$=
-
-rem ----------------------------------------------------------------------
-rem   Make sure we are running in the nt subdir
-if exist configure.bat goto start
-echo You must run configure from the nt subdirectory.
-goto end
-
-:start
-rem ----------------------------------------------------------------------
-rem   Default settings.
-set prefix=
-set nodebug=N
-set noopt=N
-set nocygwin=N
-set COMPILER=
-set usercflags=
-set userldflags=
-set sep1=
-set sep2=
-
-rem ----------------------------------------------------------------------
-rem   Handle arguments.
-:again
-if "%1" == "-h" goto usage
-if "%1" == "--help" goto usage
-if "%1" == "--prefix" goto setprefix
-if "%1" == "--with-gcc" goto withgcc
-if "%1" == "--with-msvc" goto withmsvc
-if "%1" == "--no-debug" goto nodebug
-if "%1" == "--no-opt" goto noopt
-if "%1" == "--no-cygwin" goto nocygwin
-if "%1" == "--cflags" goto usercflags
-if "%1" == "--ldflags" goto userldflags
-if "%1" == "" goto checkutils
-:usage
-echo Usage: configure [options]
-echo Options:
-echo.   --prefix PREFIX         install Emacs in directory PREFIX
-echo.   --with-gcc              use GCC to compile Emacs
-echo.   --with-msvc             use MSVC to compile Emacs
-echo.   --no-debug              exclude debug info from executables
-echo.   --no-opt                disable optimization
-echo.   --no-cygwin             use -mno-cygwin option with GCC
-echo.   --cflags FLAG           pass FLAG to compiler
-echo.   --ldflags FLAG          pass FLAG to compiler when linking
-goto end
-rem ----------------------------------------------------------------------
-:setprefix
-shift
-set prefix=%1
-shift
-goto again
-rem ----------------------------------------------------------------------
-:withgcc
-set COMPILER=gcc
-shift
-goto again
-rem ----------------------------------------------------------------------
-:withmsvc
-set COMPILER=cl
-shift
-goto again
-rem ----------------------------------------------------------------------
-:nodebug
-set nodebug=Y
-shift
-goto again
-rem ----------------------------------------------------------------------
-:noopt
-set noopt=Y
-shift
-goto again
-rem ----------------------------------------------------------------------
-:nocygwin
-set nocygwin=Y
-shift
-goto again
-rem ----------------------------------------------------------------------
-:usercflags
-shift
-set usercflags=%usercflags%%sep1%%1
-set sep1= %nothing%
-shift
-goto again
-rem ----------------------------------------------------------------------
-:userldflags
-shift
-set userldflags=%userldflags%%sep2%%1
-set sep2= %nothing%
-shift
-goto again
-
-rem ----------------------------------------------------------------------
-rem    Check that necessary utilities (cp and rm) are present.
-:checkutils
-echo Checking for 'cp'...
-cp configure.bat junk.bat
-if not exist junk.bat goto needcp
-echo Checking for 'rm'...
-rm junk.bat
-if exist junk.bat goto needrm
-goto checkcompiler
-:needcp
-echo You need 'cp' (the Unix file copy program) to build Emacs.
-goto end
-:needrm
-del junk.bat
-echo You need 'rm' (the Unix file delete program) to build Emacs.
-goto end
-
-rem ----------------------------------------------------------------------
-rem   Auto-detect compiler if not specified, and validate GCC if chosen.
-:checkcompiler
-if (%COMPILER%)==(cl) goto genmakefiles
-if (%COMPILER%)==(gcc) goto checkgcc
-
-echo Checking whether 'cl' is available...
-echo main(){} >junk.c
-cl -nologo -c junk.c
-if exist junk.obj goto clOK
-
-echo Checking whether 'gcc' is available...
-gcc -c junk.c
-if not exist junk.o goto nocompiler
-del junk.o
-
-:checkgcc
-if (%nocygwin%) == (Y) goto checkw32api
-echo Checking whether gcc requires '-mno-cygwin'...
-echo #include "cygwin/version.h" >junk.c
-echo main(){} >>junk.c
-gcc -c junk.c
-if not exist junk.o goto checkw32api
-gcc -mno-cygwin -c junk.c
-if exist junk.o set nocygwin=Y
-del junk.o junk.c
-
-:checkw32api
-rem ----------------------------------------------------------------------
-rem   Older versions of the Windows API headers either don't have any of
-rem   the IMAGE_xxx definitions (the headers that come with Cygwin b20.1
-rem   are like this), or have a typo in the definition of
-rem   IMAGE_FIRST_SECTION (the headers with gcc/mingw32 2.95 have this
-rem   problem).  The gcc/mingw32 2.95.2 headers are okay, as are distros
-rem   of w32api-xxx.zip from Anders Norlander since 1999-11-18 at least.
-rem
-echo Checking whether W32 API headers are too old...
-echo #include "windows.h" >junk.c
-echo test(PIMAGE_NT_HEADERS pHeader)>>junk.c
-echo {PIMAGE_SECTION_HEADER pSection = IMAGE_FIRST_SECTION(pHeader);}>>junk.c
-gcc -c junk.c
-if exist junk.o goto gccOk
-
-:nocompiler
-echo.
-echo Configure failed.
-echo To configure Emacs for Windows, you need to have either
-echo gcc-2.95 or later with Mingw32 and the W32 API headers,
-echo or MSVC 2.x or later.
-del junk.c
-goto end
-
-:gccOk
-set COMPILER=gcc
-del junk.c junk.o
-echo Using 'gcc'
-goto genmakefiles
-
-:clOk
-set COMPILER=cl
-del junk.c junk.obj
-echo Using 'MSVC'
-goto genmakefiles
-
-rem ----------------------------------------------------------------------
-:genmakefiles
-echo Generating makefiles
-if %COMPILER% == gcc set MAKECMD=gmake
-if %COMPILER% == cl set MAKECMD=nmake
-
-rem   Pass on chosen settings to makefiles.
-echo # Start of settings from configure.bat >config.settings
-echo COMPILER=%COMPILER% >>config.settings
-if (%nodebug%) == (Y) echo NODEBUG=1 >>config.settings
-if (%noopt%) == (Y) echo NOOPT=1 >>config.settings
-if (%nocygwin%) == (Y) echo NOCYGWIN=1 >>config.settings
-if not "(%prefix%)" == "()" echo INSTALL_DIR=%prefix% >>config.settings
-if not "(%usercflags%)" == "()" echo USER_CFLAGS=%usercflags% >>config.settings
-if not "(%userldflags%)" == "()" echo USER_LDFLAGS=%userldflags% >>config.settings
-echo # End of settings from configure.bat >>config.settings
-echo. >>config.settings
-
-copy config.nt ..\src\config.h
-if not "(%usercflags%)" == "()" echo #define USER_CFLAGS " %usercflags%">>..\src\config.h
-if not "(%userldflags%)" == "()" echo #define USER_LDFLAGS " %userldflags%">>..\src\config.h
-copy paths.h ..\src\epaths.h
-
-rem   gmake doesn't support "cd foo" in commands (except as part of a
-rem   compound statement which command.com doesn't support), but nmake
-rem   doesn't support the -C dir command line switch, so generate the
-rem   necessary makefile fragment for targets that involve changing dir.
-rem 
-if %MAKECMD% == nmake goto gen1
-
-echo. > make-frag
-echo all-other-dirs: >> make-frag
-echo.  $(MAKE) -C ../lib-src all >> make-frag
-echo.  $(MAKE) -C ../src all >> make-frag
-echo.  $(MAKE) -C ../lisp all >> make-frag
-echo.  $(MAKE) -C ../leim all >> make-frag
-echo. >> make-frag
-echo clean-other-dirs: >> make-frag
-echo.  $(MAKE) -C ../lib-src clean >> make-frag
-echo.  $(MAKE) -C ../src clean >> make-frag
-echo.  $(MAKE) -C ../lisp clean >> make-frag
-echo.  $(MAKE) -C ../leim clean >> make-frag
-echo. >> make-frag
-echo install-other-dirs: >> make-frag
-echo.  $(MAKE) -C ../lib-src install >> make-frag
-echo.  $(MAKE) -C ../src install >> make-frag
-echo.  $(MAKE) -C ../lisp install >> make-frag
-echo.  $(MAKE) -C ../leim install >> make-frag
-echo. >> make-frag
-goto gen2
-
-:gen1
-echo. > make-frag
-echo all-other-dirs: >> make-frag
-echo.  cd ..\lib-src >> make-frag
-echo.  $(MAKE) all >> make-frag
-echo.  cd ..\src >> make-frag
-echo.  $(MAKE) all >> make-frag
-echo.  cd ..\lisp >> make-frag
-echo.  $(MAKE) all >> make-frag
-echo.  cd ..\leim >> make-frag
-echo.  $(MAKE) all >> make-frag
-echo.  cd ..\nt >> make-frag
-echo. >> make-frag
-echo clean-other-dirs: >> make-frag
-echo.  cd ..\lib-src >> make-frag
-echo.  $(MAKE) clean >> make-frag
-echo.  cd ..\src >> make-frag
-echo.  $(MAKE) clean >> make-frag
-echo.  cd ..\lisp >> make-frag
-echo.  $(MAKE) clean >> make-frag
-echo.  cd ..\leim >> make-frag
-echo.  $(MAKE) clean >> make-frag
-echo.  cd ..\nt >> make-frag
-echo. >> make-frag
-echo install-other-dirs: >> make-frag
-echo.  cd ..\lib-src >> make-frag
-echo.  $(MAKE) install >> make-frag
-echo.  cd ..\src >> make-frag
-echo.  $(MAKE) install >> make-frag
-echo.  cd ..\lisp >> make-frag
-echo.  $(MAKE) install >> make-frag
-echo.  cd ..\leim >> make-frag
-echo.  $(MAKE) install >> make-frag
-echo.  cd ..\nt >> make-frag
-echo. >> make-frag
-
-:gen2
-copy /b config.settings+%MAKECMD%.defs+make-frag+..\nt\makefile.w32-in ..\nt\makefile
-del make-frag
-copy /b config.settings+%MAKECMD%.defs+..\lib-src\makefile.w32-in ..\lib-src\makefile
-copy /b config.settings+%MAKECMD%.defs+..\src\makefile.w32-in ..\src\makefile
-if not exist ..\lisp\Makefile.unix rename ..\lisp\Makefile Makefile.unix
-if exist ..\lisp\makefile del /f ..\lisp\makefile
-copy /b config.settings+%MAKECMD%.defs+..\lisp\makefile.w32-in ..\lisp\makefile
-rem   Use the default (no-op) Makefile.in if the nt version is not present.
-if exist ..\leim\makefile.w32-in copy /b config.settings+%MAKECMD%.defs+..\leim\makefile.w32-in ..\leim\makefile
-if not exist ..\leim\makefile.w32-in copy /b config.settings+%MAKECMD%.defs+..\leim\Makefile.in ..\leim\makefile
-del config.settings
-
-echo.
-echo Emacs successfully configured.
-echo Run `%MAKECMD%' to build, then run `%MAKECMD% install' to install.
-goto end
-
-:SmallEnv
-echo Your environment size is too small.  Please enlarge it and rerun configure.
-echo For example, type "command.com /e:2048" to have 2048 bytes available.
-set $foo$=
-:end
-set prefix=
-set nodebug=
-set noopt=
-set nocygwin=
-set COMPILER=
-set MAKECMD=
-set usercflags=
-set userldflags=
+goto skipArchTag
+   arch-tag: 300d20a4-1675-4e75-b615-7ce1a8c5376c
+:skipArchTag