Switch to recommended form of GPLv3 permissions notice.
[bpt/emacs.git] / nt / configure.bat
index 725cd09..ff47f03 100755 (executable)
@@ -24,11 +24,11 @@ rem   ----------------------------------------------------------------------
 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   + 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   + Visual Studio 2005 is not supported at this time.\r
 rem\r
-rem For reference, here is a list of which builds of gmake are known to\r
+rem For reference, here is a list of which builds of GNU make 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
@@ -89,6 +89,7 @@ set userldflags=
 set doldflags=\r
 set sep1=\r
 set sep2=\r
+set usefontbackend=Y\r
 \r
 rem ----------------------------------------------------------------------\r
 rem   Handle arguments.\r
@@ -108,6 +109,7 @@ if "%1" == "--without-jpeg" goto withoutjpeg
 if "%1" == "--without-gif" goto withoutgif\r
 if "%1" == "--without-tiff" goto withouttiff\r
 if "%1" == "--without-xpm" goto withoutxpm\r
+if "%1" == "--disable-font-backend" goto withoutfont\r
 if "%1" == "" goto checkutils\r
 :usage\r
 echo Usage: configure [options]\r
@@ -125,6 +127,7 @@ echo.   --without-jpeg          do not use JPEG library even if it is installed
 echo.   --without-gif           do not use GIF library even if it is installed\r
 echo.   --without-tiff          do not use TIFF library even if it is installed\r
 echo.   --without-xpm           do not use XPM library even if it is installed\r
+echo.   --disable-font-backend  build without font backend support\r
 goto end\r
 rem ----------------------------------------------------------------------\r
 :setprefix\r
@@ -211,6 +214,11 @@ set HAVE_XPM=
 shift\r
 goto again\r
 \r
+:withoutfont\r
+set usefontbackend=N\r
+shift\r
+goto again\r
+\r
 rem ----------------------------------------------------------------------\r
 rem    Check that necessary utilities (cp and rm) are present.\r
 :checkutils\r
@@ -235,22 +243,23 @@ rem   Auto-detect compiler if not specified, and validate GCC if chosen.
 if (%COMPILER%)==(cl) goto compilercheckdone\r
 if (%COMPILER%)==(gcc) goto checkgcc\r
 \r
-echo Checking whether 'cl' is available...\r
+echo Checking whether 'gcc' is available...\r
 echo main(){} >junk.c\r
+gcc -c junk.c\r
+if exist junk.o goto checkgcc\r
+\r
+echo Checking whether 'cl' is available...\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
+goto nocompiler\r
 \r
 :checkgcc\r
+if exist junk.o del junk.o\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
+if (%nocygwin%) == (Y) goto chkapiN\r
 echo Checking whether gcc requires '-mno-cygwin'...\r
 echo #include "cygwin/version.h" >junk.c\r
 echo main(){} >>junk.c\r
@@ -260,11 +269,12 @@ if not exist junk.o goto chkapi
 echo gcc -mno-cygwin -c junk.c >>config.log\r
 gcc -mno-cygwin -c junk.c >>config.log 2>&1\r
 if exist junk.o set nocygwin=Y\r
-rm -f junk.c junk.o\r
 \r
 :chkapi\r
 echo The failed program was: >>config.log\r
 type junk.c >>config.log\r
+:chkapiN\r
+rm -f junk.c junk.o\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
@@ -272,9 +282,11 @@ 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\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   Beginning with Emacs 23, we need usp10.h.\r
 rem\r
 echo Checking whether W32 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 {PIMAGE_SECTION_HEADER pSection = IMAGE_FIRST_SECTION(pHeader);} >>junk.c\r
 if (%nocygwin%) == (Y) goto chkapi1\r
@@ -481,6 +493,7 @@ for %%v in (%usercflags%) do if not (%%v)==() set docflags=Y
 if (%docflags%)==(Y) echo USER_CFLAGS=%usercflags%>>config.settings\r
 for %%v in (%userldflags%) do if not (%%v)==() set doldflags=Y\r
 if (%doldflags%)==(Y) echo USER_LDFLAGS=%userldflags%>>config.settings\r
+if (%usefontbackend%) == (Y) echo USE_FONTBACKEND=1 >>config.settings\r
 echo # End of settings from configure.bat>>config.settings\r
 echo. >>config.settings\r
 \r
@@ -513,11 +526,13 @@ copy paths.h ..\src\epaths.h
 :dontCopy\r
 if exist config.tmp del config.tmp\r
 copy /b config.settings+%MAKECMD%.defs+..\nt\makefile.w32-in ..\nt\makefile\r
+if exist ..\admin\unidata copy /b config.settings+%MAKECMD%.defs+..\admin\unidata\makefile.w32-in ..\admin\unidata\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
-copy /b config.settings+%MAKECMD%.defs+..\man\makefile.w32-in ..\man\makefile\r
-copy /b config.settings+%MAKECMD%.defs+..\lispref\makefile.w32-in ..\lispref\makefile\r
-copy /b config.settings+%MAKECMD%.defs+..\lispintro\makefile.w32-in ..\lispintro\makefile\r
+copy /b config.settings+%MAKECMD%.defs+..\doc\emacs\makefile.w32-in ..\doc\emacs\makefile\r
+copy /b config.settings+%MAKECMD%.defs+..\doc\misc\makefile.w32-in ..\doc\misc\makefile\r
+copy /b config.settings+%MAKECMD%.defs+..\doc\lispref\makefile.w32-in ..\doc\lispref\makefile\r
+copy /b config.settings+%MAKECMD%.defs+..\doc\lispintro\makefile.w32-in ..\doc\lispintro\makefile\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
@@ -539,8 +554,54 @@ copy subdirs.el ..\site-lisp\subdirs.el
 \r
 :dontUpdateSubdirs\r
 echo.\r
+\r
+rem check that we have all the libraries we need.\r
+set libsOK=1\r
+\r
+if not "(%HAVE_XPM%)" == "()" goto checkpng\r
+if (%xpmsupport%) == (N) goto checkpng\r
+ set libsOK=0\r
+ echo XPM support is missing. It is required for color icons in the toolbar.\r
+ echo   Install libXpm development files or use --without-xpm\r
+\r
+:checkpng\r
+if not "(%HAVE_PNG%)" == "()" goto checkjpeg\r
+if (%pngsupport%) == (N) goto checkjpeg\r
+ set libsOK=0\r
+ echo PNG support is missing.\r
+ echo   Install libpng development files or use --without-png\r
+\r
+:checkjpeg\r
+if not "(%HAVE_JPEG%)" == "()" goto checktiff\r
+if (%jpegsupport%) == (N) goto checktiff\r
+ set libsOK=0\r
+ echo JPEG support is missing.\r
+ echo   Install jpeg development files or use --without-jpeg\r
+\r
+:checktiff\r
+if not "(%HAVE_TIFF%)" == "()" goto checkgif\r
+if (%tiffsupport%) == (N) goto checkgif\r
+ set libsOK=0\r
+ echo TIFF support is missing.\r
+ echo   Install libtiff development files or use --without-tiff\r
+\r
+:checkgif\r
+if not "(%HAVE_GIF%)" == "()" goto donelibchecks\r
+if (%gifsupport%) == (N) goto donelibchecks\r
+ set libsOK=0\r
+ echo GIF support is missing.\r
+ echo   Install giflib or libungif development files or use --without-gif\r
+\r
+:donelibchecks\r
+if (%libsOK%) == (1) goto success\r
+echo.\r
+echo Important libraries are missing. Fix these issues before running make.\r
+goto end\r
+\r
+:success\r
 echo Emacs successfully configured.\r
 echo Emacs successfully configured. >>config.log\r
+if (%MAKECMD%) == (gmake) set MAKECMD=make\r
 echo Run `%MAKECMD%' to build, then run `%MAKECMD% install' to install.\r
 goto end\r
 \r
@@ -556,7 +617,9 @@ set nocygwin=
 set COMPILER=\r
 set MAKECMD=\r
 set usercflags=\r
+set docflags=\r
 set userldflags=\r
+set doldflags=\r
 set mingwflag=\r
 set mf=\r
 \r