@echo off\r
rem ----------------------------------------------------------------------\r
rem Configuration script for MS Windows operating systems\r
-rem Copyright (C) 1999-2012 Free Software Foundation, Inc.\r
+rem Copyright (C) 1999-2014 Free Software Foundation, Inc.\r
\r
rem This file is part of GNU Emacs.\r
\r
rem\r
rem + MS Windows 95, NT or later\r
rem + either MSVC 2.x or later, or gcc-2.95 or later (with GNU make 3.75\r
-rem or later) and the Mingw32 and W32 API headers and libraries.\r
+rem or later) and the Mingw32 and Windows API headers and libraries.\r
rem + Visual Studio 2005 is not supported at this time.\r
rem\r
rem For reference, here is a list of which builds of GNU make are known to\r
rem [7] not recommended; please report if you try this combination.\r
rem [8] tested only on Windows XP.\r
rem\r
-\r
+echo ****************************************************************\r
+echo *** THIS METHOD OF BUILDING EMACS IS NO LONGER SUPPORTED. **\r
+echo *** INSTEAD, FOLLOW THE INSTRUCTIONS FROM INSTALL. **\r
+echo ****************************************************************\r
+:confirm_continue\r
+set /p answer=Continue running this script at your own risks ? (Y/N)\r
+if x%answer% == xy (goto confirm_continue_y)\r
+if x%answer% == xY (goto confirm_continue_y)\r
+if x%answer% == xn (goto end)\r
+if x%answer% == xN (goto end)\r
+echo Please answer by Y or N\r
+goto confirm_continue\r
+\r
+:confirm_continue_y\r
if exist config.log del config.log\r
\r
rem ----------------------------------------------------------------------\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. --enable-checking enable checks and assertions\r
+echo. --enable-checking enable additional run-time checks\r
echo. --profile enable profiling\r
echo. --no-cygwin use -mno-cygwin option with GCC\r
echo. --cflags FLAG pass FLAG to compiler\r
echo. character depends on command extensions. This batch file attempts to\r
echo. enable command extensions. If command extensions cannot be enabled, a\r
echo. warning message will be displayed.\r
+echo.\r
+echo. IMPORTANT: This method of building Emacs for MS-Windows is deprecated,\r
+echo. and could be removed in a future version of Emacs. The preferred way\r
+echo to build Emacs for MS-Windows from now on is using the MSYS environment\r
+echo. and MinGW development tools. Please see nt/INSTALL for details.\r
goto end\r
\r
rem ----------------------------------------------------------------------\r
rem of w32api-xxx.zip from Anders Norlander since 1999-11-18 at least.\r
rem Beginning with Emacs 23, we need usp10.h.\r
rem\r
-echo Checking whether W32 API headers are too old...\r
+echo Checking whether Windows API headers are too old...\r
echo #include "windows.h" >junk.c\r
echo #include "usp10.h" >>junk.c\r
-echo test(PIMAGE_NT_HEADERS pHeader) >>junk.c\r
+echo void 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
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 gcc-2.95 or later with Mingw32 and the Windows API headers,\r
echo or MSVC 2.x or later.\r
del junk.c\r
goto end\r
if (%gifsupport%) == (N) goto gifDone\r
\r
echo Checking for libgif...\r
-echo #include "gif_lib.h" >junk.c\r
+rem giflib-5.0.0 needs size_t defined before gif_lib.h is included\r
+rem redirection characters need to be protected from the shell\r
+echo #include ^<stddef.h^> >junk.c\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
echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log\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
+rem The weird place we put the redirection is to make sure no extra\r
+rem whitespace winds up at the end of the Make variables, since some\r
+rem variables, e.g. INSTALL_DIR, cannot stand that. Yes, echo will\r
+rem write the blanks between the end of command arguments and the\r
+rem redirection symbol to the file. OTOH, we cannot put the\r
+rem redirection immediately after the last character of the command,\r
+rem because environment variable expansion can yield a digit there,\r
+rem which will then be misinterpreted as the file descriptor to\r
+rem redirect...\r
echo # Start of settings from configure.bat >config.settings\r
-echo COMPILER=%COMPILER%>>config.settings\r
-if not "(%mf%)" == "()" echo MCPU_FLAG=%mf%>>config.settings\r
-if not "(%dbginfo%)" == "()" echo DEBUG_INFO=%dbginfo%>>config.settings\r
-if (%nodebug%) == (Y) echo NODEBUG=1 >>config.settings\r
-if (%noopt%) == (Y) echo NOOPT=1 >>config.settings\r
-if (%enablechecking%) == (Y) echo ENABLECHECKS=1 >>config.settings\r
-if (%profile%) == (Y) echo PROFILE=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 "(%distfiles%)" == "()" echo DIST_FILES=%distfiles%>>config.settings\r
+>>config.settings echo COMPILER=%COMPILER%\r
+if not "(%mf%)" == "()" >>config.settings echo MCPU_FLAG=%mf%\r
+if not "(%dbginfo%)" == "()" >>config.settings echo DEBUG_INFO=%dbginfo%\r
+if (%nodebug%) == (Y) >>config.settings echo NODEBUG=1\r
+if (%noopt%) == (Y) >>config.settings echo NOOPT=1\r
+if (%profile%) == (Y) >>config.settings echo PROFILE=1\r
+if (%nocygwin%) == (Y) >>config.settings echo NOCYGWIN=1\r
+if not "(%prefix%)" == "()" >>config.settings echo INSTALL_DIR=%prefix%\r
+if not "(%distfiles%)" == "()" >>config.settings echo DIST_FILES=%distfiles%\r
rem We go thru docflags because usercflags could be "-DFOO=bar" -something\r
rem and the if command cannot cope with this\r
for %%v in (%usercflags%) do if not (%%v)==() set docflags=Y\r
-if (%docflags%)==(Y) echo USER_CFLAGS=%usercflags%>>config.settings\r
-if (%docflags%)==(Y) echo ESC_USER_CFLAGS=%escusercflags%>>config.settings\r
+if (%docflags%)==(Y) >>config.settings echo USER_CFLAGS=%usercflags%\r
+if (%docflags%)==(Y) >>config.settings echo ESC_USER_CFLAGS=%escusercflags%\r
for %%v in (%userldflags%) do if not (%%v)==() set doldflags=Y\r
-if (%doldflags%)==(Y) echo USER_LDFLAGS=%userldflags%>>config.settings\r
+if (%doldflags%)==(Y) >>config.settings echo USER_LDFLAGS=%userldflags%\r
for %%v in (%extrauserlibs%) do if not (%%v)==() set doextralibs=Y\r
-if (%doextralibs%)==(Y) echo USER_LIBS=%extrauserlibs%>>config.settings\r
+if (%doextralibs%)==(Y) >>config.settings echo USER_LIBS=%extrauserlibs%\r
echo # End of settings from configure.bat>>config.settings\r
echo. >>config.settings\r
\r
echo /* Start of settings from configure.bat. */ >>config.tmp\r
rem We write USER_CFLAGS and USER_LDFLAGS starting with a space to simplify\r
rem processing of compiler options in w32.c:get_emacs_configuration_options\r
-if (%docflags%) == (Y) echo #define USER_CFLAGS " %escusercflags%">>config.tmp\r
-if (%doldflags%) == (Y) echo #define USER_LDFLAGS " %escuserldflags%">>config.tmp\r
+if (%docflags%) == (Y) echo #define USER_CFLAGS " %escusercflags%" >>config.tmp\r
+if (%doldflags%) == (Y) echo #define USER_LDFLAGS " %escuserldflags%" >>config.tmp\r
if (%profile%) == (Y) echo #define PROFILING 1 >>config.tmp\r
+if (%enablechecking%) == (Y) echo #define ENABLE_CHECKING 1 >>config.tmp\r
if not "(%HAVE_PNG%)" == "()" echo #define HAVE_PNG 1 >>config.tmp\r
if not "(%HAVE_GNUTLS%)" == "()" echo #define HAVE_GNUTLS 1 >>config.tmp\r
if not "(%HAVE_LIBXML2%)" == "()" echo #define HAVE_LIBXML2 1 >>config.tmp\r
set HAVE_TIFF=\r
set HAVE_XPM=\r
set dbginfo=\r
-\r
+endlocal\r
+set use_extensions=\r