2 rem ----------------------------------------------------------------------
\r
3 rem Configuration script for MS Windows operating systems
\r
4 rem Copyright (C) 1999-2012 Free Software Foundation, Inc.
\r
6 rem This file is part of GNU Emacs.
\r
8 rem GNU Emacs is free software: you can redistribute it and/or modify
\r
9 rem it under the terms of the GNU General Public License as published by
\r
10 rem the Free Software Foundation, either version 3 of the License, or
\r
11 rem (at your option) any later version.
\r
13 rem GNU Emacs is distributed in the hope that it will be useful,
\r
14 rem but WITHOUT ANY WARRANTY; without even the implied warranty of
\r
15 rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
\r
16 rem GNU General Public License for more details.
\r
18 rem You should have received a copy of the GNU General Public License
\r
19 rem along with GNU Emacs. If not, see http://www.gnu.org/licenses/.
\r
21 rem ----------------------------------------------------------------------
\r
22 rem YOU'LL NEED THE FOLLOWING UTILITIES TO MAKE EMACS:
\r
24 rem + MS Windows 95, NT or later
\r
25 rem + either MSVC 2.x or later, or gcc-2.95 or later (with GNU make 3.75
\r
26 rem or later) and the Mingw32 and W32 API headers and libraries.
\r
27 rem + Visual Studio 2005 is not supported at this time.
\r
29 rem For reference, here is a list of which builds of GNU make are known to
\r
30 rem work or not, and whether they work in the presence and/or absence of
\r
34 rem cygwin b20.1 make (3.75): fails[1,5] fails[2,5]
\r
35 rem MSVC compiled gmake 3.77: okay okay
\r
36 rem MSVC compiled gmake 3.78.1: okay okay
\r
37 rem MSVC compiled gmake 3.79.1: okay okay
\r
38 rem mingw32/gcc-2.92.2 make (3.77): okay okay[4]
\r
39 rem cygwin compiled gmake 3.77: fails[1,5] fails[2,5]
\r
40 rem cygwin compiled gmake 3.78.1: fails[5] fails[2,5]
\r
41 rem cygwin compiled gmake 3.79.1: fails[3,5] fails[2?,5]
\r
42 rem cygwin compiled make 3.80: okay[6] fails?[7]
\r
43 rem cygwin compiled make 3.81: fails fails?[7]
\r
44 rem mingw32 compiled make 3.79.1: okay okay
\r
45 rem mingw32 compiled make 3.80: okay okay?[7]
\r
46 rem mingw32 compiled make 3.81: okay okay[8]
\r
48 rem [1] doesn't cope with makefiles with DOS line endings, so must mount
\r
49 rem emacs source with text!=binary.
\r
50 rem [2] fails when needs to invoke shell commands; okay invoking gcc etc.
\r
51 rem [3] requires LC_MESSAGES support to build; cannot build with early
\r
52 rem versions of cygwin.
\r
53 rem [4] may fail on Windows 9X and Windows ME; if so, install Bash.
\r
54 rem [5] fails when building leim due to the use of cygwin style paths.
\r
55 rem May work if building emacs without leim.
\r
56 rem [6] need to uncomment 3 lines in nt/gmake.defs that invoke `cygpath';
\r
57 rem look for "cygpath" near line 85 of gmake.defs.
\r
58 rem [7] not recommended; please report if you try this combination.
\r
59 rem [8] tested only on Windows XP.
\r
62 if exist config.log del config.log
\r
64 rem ----------------------------------------------------------------------
\r
65 rem See if the environment is large enough. We need 43 (?) bytes.
\r
66 set $foo$=123456789_123456789_123456789_123456789_123
\r
67 if not "%$foo$%" == "123456789_123456789_123456789_123456789_123" goto SmallEnv
\r
70 rem ----------------------------------------------------------------------
\r
71 rem Make sure we are running in the nt subdir
\r
72 if exist configure.bat goto start
\r
73 echo You must run configure from the nt subdirectory.
\r
77 rem ----------------------------------------------------------------------
\r
78 rem Attempt to enable command extensions. Set use_extensions to 1 if
\r
79 rem they are available and 0 if they are not available.
\r
80 set use_extensions=1
\r
81 setlocal ENABLEEXTENSIONS
\r
82 if "%CMDEXTVERSION%" == "" set use_extensions=0
\r
83 if "%use_extensions%" == "1" goto afterext
\r
85 echo. Command extensions are not available. Using parameters that include the =
\r
86 echo. character by enclosing them in quotes will not be supported.
\r
90 rem ----------------------------------------------------------------------
\r
91 rem Default settings.
\r
95 set enablechecking=N
\r
103 set escuserldflags=
\r
113 rem ----------------------------------------------------------------------
\r
114 rem Handle arguments.
\r
116 if "%1" == "-h" goto usage
\r
117 if "%1" == "--help" goto usage
\r
118 if "%1" == "--prefix" goto setprefix
\r
119 if "%1" == "--with-gcc" goto withgcc
\r
120 if "%1" == "--with-msvc" goto withmsvc
\r
121 if "%1" == "--no-debug" goto nodebug
\r
122 if "%1" == "--no-opt" goto noopt
\r
123 if "%1" == "--enable-checking" goto enablechecking
\r
124 if "%1" == "--profile" goto profile
\r
125 if "%1" == "--no-cygwin" goto nocygwin
\r
126 if "%1" == "--cflags" goto usercflags
\r
127 if "%1" == "--ldflags" goto userldflags
\r
128 if "%1" == "--lib" goto extrauserlibs
\r
129 if "%1" == "--without-png" goto withoutpng
\r
130 if "%1" == "--without-jpeg" goto withoutjpeg
\r
131 if "%1" == "--without-gif" goto withoutgif
\r
132 if "%1" == "--without-tiff" goto withouttiff
\r
133 if "%1" == "--without-gnutls" goto withoutgnutls
\r
134 if "%1" == "--without-xpm" goto withoutxpm
\r
135 if "%1" == "--with-svg" goto withsvg
\r
136 if "%1" == "--distfiles" goto distfiles
\r
137 if "%1" == "" goto checkutils
\r
140 echo Usage: configure [options]
\r
142 echo. --prefix PREFIX install Emacs in directory PREFIX
\r
143 echo. --with-gcc use GCC to compile Emacs
\r
144 echo. --with-msvc use MSVC to compile Emacs
\r
145 echo. --no-debug exclude debug info from executables
\r
146 echo. --no-opt disable optimization
\r
147 echo. --enable-checking enable checks and assertions
\r
148 echo. --profile enable profiling
\r
149 echo. --no-cygwin use -mno-cygwin option with GCC
\r
150 echo. --cflags FLAG pass FLAG to compiler
\r
151 echo. --ldflags FLAG pass FLAG to compiler when linking
\r
152 echo. --lib LIB link to extra library LIB
\r
153 echo. --without-png do not use PNG library even if it is installed
\r
154 echo. --without-jpeg do not use JPEG library even if it is installed
\r
155 echo. --without-gif do not use GIF library even if it is installed
\r
156 echo. --without-tiff do not use TIFF library even if it is installed
\r
157 echo. --without-xpm do not use XPM library even if it is installed
\r
158 echo. --without-gnutls do not use GnuTLS library even if it is installed
\r
159 echo. --with-svg use the RSVG library (experimental)
\r
160 echo. --distfiles path to files for make dist, e.g. libXpm.dll
\r
161 if "%use_extensions%" == "0" goto end
\r
163 echo. The cflags and ldflags arguments support parameters that include the =
\r
164 echo. character. However, since the = character is normally treated as a
\r
165 echo. separator character you will need to enclose any parameter that includes
\r
166 echo. the = character in quotes. For example, to include
\r
167 echo. -DSITELOAD_PURESIZE_EXTRA=100000 as one of the cflags you would run
\r
168 echo. configure.bat as follows:
\r
169 echo. configure.bat --cflags "-DSITELOAD_PURESIZE_EXTRA=100000"
\r
171 echo. Note that this capability of processing parameters that include the =
\r
172 echo. character depends on command extensions. This batch file attempts to
\r
173 echo. enable command extensions. If command extensions cannot be enabled, a
\r
174 echo. warning message will be displayed.
\r
177 rem ----------------------------------------------------------------------
\r
185 rem ----------------------------------------------------------------------
\r
192 rem ----------------------------------------------------------------------
\r
199 rem ----------------------------------------------------------------------
\r
206 rem ----------------------------------------------------------------------
\r
213 rem ----------------------------------------------------------------------
\r
216 set enablechecking=Y
\r
220 rem ----------------------------------------------------------------------
\r
227 rem ----------------------------------------------------------------------
\r
234 rem ----------------------------------------------------------------------
\r
237 if "%use_extensions%" == "1" goto ucflagex
\r
242 set usercflags=%usercflags%%sep1%%~1
\r
243 set escusercflags=%usercflags:"=\"%
\r
244 set sep1= %nothing%
\r
250 set usercflags=%usercflags%%sep1%%1
\r
251 set escusercflags=%usercflags%
\r
252 set sep1= %nothing%
\r
258 echo. extrauserlibs: %extrauserlibs%
\r
259 set extrauserlibs=%extrauserlibs%%sep4%%1
\r
260 set sep4= %nothing%
\r
264 rem ----------------------------------------------------------------------
\r
267 if "%use_extensions%" == "1" goto ulflagex
\r
272 set userldflags=%userldflags%%sep2%%~1
\r
273 set escuserldflags=%userldflags:"=\"%
\r
274 set sep2= %nothing%
\r
280 set userldflags=%userldflags%%sep2%%1
\r
281 set escuserldflags=%userldflags%
\r
282 set sep2= %nothing%
\r
286 rem ----------------------------------------------------------------------
\r
294 rem ----------------------------------------------------------------------
\r
302 rem ----------------------------------------------------------------------
\r
310 rem ----------------------------------------------------------------------
\r
318 rem ----------------------------------------------------------------------
\r
326 rem ----------------------------------------------------------------------
\r
339 rem ----------------------------------------------------------------------
\r
342 set HAVE_DISTFILES=1
\r
344 set distfiles=%distfiles%%sep3%%1
\r
345 set sep3= %nothing%
\r
349 rem ----------------------------------------------------------------------
\r
350 rem Check that necessary utilities (cp and rm) are present.
\r
353 echo Checking for 'cp'...
\r
354 cp configure.bat junk.bat
\r
355 if not exist junk.bat goto needcp
\r
356 echo Checking for 'rm'...
\r
358 if exist junk.bat goto needrm
\r
362 echo You need 'cp' (the Unix file copy program) to build Emacs.
\r
367 echo You need 'rm' (the Unix file delete program) to build Emacs.
\r
370 rem ----------------------------------------------------------------------
\r
371 rem Auto-detect compiler if not specified, and validate GCC if chosen.
\r
374 if (%COMPILER%)==(cl) goto compilercheckdone
\r
375 if (%COMPILER%)==(gcc) goto checkgcc
\r
377 echo Checking whether 'gcc' is available...
\r
378 echo main(){} >junk.c
\r
380 if exist junk.o goto checkgcc
\r
382 echo Checking whether 'cl' is available...
\r
383 cl -nologo -c junk.c
\r
384 if exist junk.obj goto clOK
\r
388 if exist junk.o del junk.o
\r
389 Rem WARNING -- COMMAND.COM on some systems only looks at the first
\r
390 Rem 8 characters of a label. So do NOT be tempted to change
\r
391 Rem chkapi* into something fancier like checkw32api
\r
392 Rem You HAVE been warned!
\r
393 if (%nocygwin%) == (Y) goto chkapiN
\r
394 echo Checking whether gcc requires '-mno-cygwin'...
\r
395 echo #include "cygwin/version.h" >junk.c
\r
396 echo main(){} >>junk.c
\r
397 echo gcc -c junk.c >>config.log
\r
398 gcc -c junk.c >>config.log 2>&1
\r
399 if not exist junk.o goto chkapi
\r
400 echo gcc -mno-cygwin -c junk.c >>config.log
\r
401 gcc -mno-cygwin -c junk.c >>config.log 2>&1
\r
402 if exist junk.o set nocygwin=Y
\r
405 echo The failed program was: >>config.log
\r
406 type junk.c >>config.log
\r
409 rm -f junk.c junk.o
\r
410 rem ----------------------------------------------------------------------
\r
411 rem Older versions of the Windows API headers either don't have any of
\r
412 rem the IMAGE_xxx definitions (the headers that come with Cygwin b20.1
\r
413 rem are like this), or have a typo in the definition of
\r
414 rem IMAGE_FIRST_SECTION (the headers with gcc/mingw32 2.95 have this
\r
415 rem problem). The gcc/mingw32 2.95.2 headers are okay, as are distros
\r
416 rem of w32api-xxx.zip from Anders Norlander since 1999-11-18 at least.
\r
417 rem Beginning with Emacs 23, we need usp10.h.
\r
419 echo Checking whether W32 API headers are too old...
\r
420 echo #include "windows.h" >junk.c
\r
421 echo #include "usp10.h" >>junk.c
\r
422 echo test(PIMAGE_NT_HEADERS pHeader) >>junk.c
\r
423 echo {PIMAGE_SECTION_HEADER pSection = IMAGE_FIRST_SECTION(pHeader);} >>junk.c
\r
424 if (%nocygwin%) == (Y) goto chkapi1
\r
425 set cf=%usercflags%
\r
429 set cf=%usercflags% -mno-cygwin
\r
435 @echo gcc %cf% -c junk.c >>config.log
\r
436 gcc %cf% -c junk.c >>config.log 2>&1
\r
438 if exist junk.o goto chkuser
\r
439 echo The failed program was: >>config.log
\r
440 type junk.c >>config.log
\r
445 echo int main (int argc, char *argv[]) {>junk.c
\r
446 echo char *usercflags = "%escusercflags%";>>junk.c
\r
448 echo gcc -Werror -c junk.c >>config.log
\r
449 gcc -Werror -c junk.c >>config.log 2>&1
\r
450 if exist junk.o goto gccOk
\r
452 echo Error in --cflags argument: %usercflags%
\r
453 echo Backslashes and quotes cannot be used with --cflags. Please use forward
\r
454 echo slashes for filenames and paths (e.g. when passing directories to -I).
\r
460 echo Configure failed.
\r
461 echo To configure Emacs for Windows, you need to have either
\r
462 echo gcc-2.95 or later with Mingw32 and the W32 API headers,
\r
463 echo or MSVC 2.x or later.
\r
470 rm -f junk.c junk.o
\r
471 Rem It is not clear what GCC version began supporting -mtune
\r
472 Rem and pentium4 on x86, so check this explicitly.
\r
473 echo main(){} >junk.c
\r
474 echo gcc -c -O2 -mtune=pentium4 junk.c >>config.log
\r
475 gcc -c -O2 -mtune=pentium4 junk.c >>config.log 2>&1
\r
476 if not errorlevel 1 goto gccMtuneOk
\r
477 echo The failed program was: >>config.log
\r
478 type junk.c >>config.log
\r
480 rm -f junk.c junk.o
\r
484 echo GCC supports -mtune=pentium4 >>config.log
\r
485 set mf=-mtune=pentium4
\r
486 rm -f junk.c junk.o
\r
489 rem Check for DWARF-2 debug info support, else default to stabs
\r
490 echo main(){} >junk.c
\r
491 echo gcc -c -gdwarf-2 -g3 junk.c >>config.log
\r
492 gcc -c -gdwarf-2 -g3 junk.c >>config.log 2>&1
\r
493 if not errorlevel 1 goto gccdwarf
\r
494 echo The failed program was: >>config.log
\r
495 type junk.c >>config.log
\r
496 set dbginfo=-gstabs+
\r
497 rm -f junk.c junk.o
\r
498 goto compilercheckdone
\r
501 echo GCC supports DWARF-2 >>config.log
\r
502 set dbginfo=-gdwarf-2 -g3
\r
503 rm -f junk.c junk.o
\r
504 goto compilercheckdone
\r
508 rm -f junk.c junk.obj
\r
513 rem ----------------------------------------------------------------------
\r
514 rem Check for external image libraries. Since they are loaded
\r
515 rem dynamically, the libraries themselves do not need to be present
\r
516 rem at compile time, but the header files are required.
\r
520 if (%nocygwin%) == (N) goto flagsOK
\r
521 set mingwflag=-mno-cygwin
\r
525 if (%pngsupport%) == (N) goto pngDone
\r
527 echo Checking for libpng...
\r
528 echo #include "png.h" >junk.c
\r
529 echo main (){} >>junk.c
\r
530 rem -o option is ignored with cl, but allows result to be consistent.
\r
531 echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log
\r
532 %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log
\r
533 if exist junk.obj goto havePng
\r
535 echo ...png.h not found, building without PNG support.
\r
536 echo The failed program was: >>config.log
\r
537 type junk.c >>config.log
\r
542 echo ...PNG header available, building with PNG support.
\r
546 rm -f junk.c junk.obj
\r
548 if (%tlssupport%) == (N) goto tlsDone
\r
550 rem this is a copy of the PNG detection
\r
551 echo Checking for libgnutls...
\r
552 echo #include "gnutls/gnutls.h" >junk.c
\r
553 echo main (){} >>junk.c
\r
554 rem -o option is ignored with cl, but allows result to be consistent.
\r
555 echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log
\r
556 %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log
\r
557 if exist junk.obj goto haveTls
\r
559 echo ...gnutls.h not found, building without TLS support.
\r
560 echo The failed program was: >>config.log
\r
561 type junk.c >>config.log
\r
566 echo ...GnuTLS header available, building with GnuTLS support.
\r
570 rm -f junk.c junk.obj
\r
572 if (%jpegsupport%) == (N) goto jpegDone
\r
574 echo Checking for jpeg-6b...
\r
575 echo #include "jconfig.h" >junk.c
\r
576 echo main (){} >>junk.c
\r
577 rem -o option is ignored with cl, but allows result to be consistent.
\r
578 echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log
\r
579 %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log
\r
580 if exist junk.obj goto haveJpeg
\r
582 echo ...jconfig.h not found, building without JPEG support.
\r
583 echo The failed program was: >>config.log
\r
584 type junk.c >>config.log
\r
589 echo ...JPEG header available, building with JPEG support.
\r
593 rm -f junk.c junk.obj
\r
595 if (%gifsupport%) == (N) goto gifDone
\r
597 echo Checking for libgif...
\r
598 echo #include "gif_lib.h" >junk.c
\r
599 echo main (){} >>junk.c
\r
600 rem -o option is ignored with cl, but allows result to be consistent.
\r
601 echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log
\r
602 %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log
\r
603 if exist junk.obj goto haveGif
\r
605 echo ...gif_lib.h not found, building without GIF support.
\r
606 echo The failed program was: >>config.log
\r
607 type junk.c >>config.log
\r
612 echo ...GIF header available, building with GIF support.
\r
616 rm -f junk.c junk.obj
\r
618 if (%tiffsupport%) == (N) goto tiffDone
\r
620 echo Checking for tiff...
\r
621 echo #include "tiffio.h" >junk.c
\r
622 echo main (){} >>junk.c
\r
623 rem -o option is ignored with cl, but allows result to be consistent.
\r
624 echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log
\r
625 %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log
\r
626 if exist junk.obj goto haveTiff
\r
628 echo ...tiffio.h not found, building without TIFF support.
\r
629 echo The failed program was: >>config.log
\r
630 type junk.c >>config.log
\r
635 echo ...TIFF header available, building with TIFF support.
\r
639 rm -f junk.c junk.obj
\r
641 if (%xpmsupport%) == (N) goto xpmDone
\r
643 echo Checking for libXpm...
\r
644 echo #define FOR_MSW 1 >junk.c
\r
645 echo #include "X11/xpm.h" >>junk.c
\r
646 echo main (){} >>junk.c
\r
647 rem -o option is ignored with cl, but allows result to be consistent.
\r
648 echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log
\r
649 %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log
\r
650 if exist junk.obj goto haveXpm
\r
652 echo ...X11/xpm.h not found, building without XPM support.
\r
653 echo The failed program was: >>config.log
\r
654 type junk.c >>config.log
\r
659 echo ...XPM header available, building with XPM support.
\r
663 rm -f junk.c junk.obj
\r
665 if not (%svgsupport%) == (Y) goto :svgDone
\r
666 echo Checking for librsvg...
\r
667 echo #include "librsvg/rsvg.h" >junk.c
\r
668 echo main (){} >>junk.c
\r
669 rem -o option is ignored with cl, but allows result to be consistent.
\r
670 echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log
\r
671 %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log
\r
672 if exist junk.obj goto haveSvg
\r
674 echo ...librsvg/rsvg.h or dependencies not found, building without SVG support.
\r
675 echo The failed program was: >>config.log
\r
676 type junk.c >>config.log
\r
681 echo ...librsvg header available, building with SVG support (EXPERIMENTAL).
\r
685 rm -f junk.c junk.obj junk.err junk.out
\r
687 rem Any distfiles provided for building distribution? If no, we're done.
\r
688 if "(%HAVE_DISTFILES%)"=="()" goto :distFilesDone
\r
690 rem Any arguments to --distfiles specified? If no, we're done.
\r
691 if not "%distfiles%"=="" goto :checkDistFiles
\r
693 echo No arguments specified for option --distfiles!
\r
697 echo Checking for distfiles...
\r
698 rem Check if all specified distfiles exist
\r
700 for %%d in (%distfiles%) do if not exist %%d set fileNotFound=%%d
\r
701 if not "%fileNotFound%"=="" goto distFilesNotFound
\r
704 echo ...all distfiles found.
\r
705 goto :distFilesDone
\r
709 echo ...%fileNotFound% not found.
\r
711 goto :distfilesDone
\r
716 rem ----------------------------------------------------------------------
\r
719 echo Generating makefiles
\r
720 if %COMPILER% == gcc set MAKECMD=gmake
\r
721 if %COMPILER% == cl set MAKECMD=nmake
\r
723 rem Pass on chosen settings to makefiles.
\r
724 rem NB. Be very careful to not have a space before redirection symbols
\r
725 rem except when there is a preceding digit, when a space is required.
\r
727 echo # Start of settings from configure.bat >config.settings
\r
728 echo COMPILER=%COMPILER%>>config.settings
\r
729 if not "(%mf%)" == "()" echo MCPU_FLAG=%mf%>>config.settings
\r
730 if not "(%dbginfo%)" == "()" echo DEBUG_INFO=%dbginfo%>>config.settings
\r
731 if (%nodebug%) == (Y) echo NODEBUG=1 >>config.settings
\r
732 if (%noopt%) == (Y) echo NOOPT=1 >>config.settings
\r
733 if (%enablechecking%) == (Y) echo ENABLECHECKS=1 >>config.settings
\r
734 if (%profile%) == (Y) echo PROFILE=1 >>config.settings
\r
735 if (%nocygwin%) == (Y) echo NOCYGWIN=1 >>config.settings
\r
736 if not "(%prefix%)" == "()" echo INSTALL_DIR=%prefix%>>config.settings
\r
737 if not "(%distfiles%)" == "()" echo DIST_FILES=%distfiles%>>config.settings
\r
738 rem We go thru docflags because usercflags could be "-DFOO=bar" -something
\r
739 rem and the if command cannot cope with this
\r
740 for %%v in (%usercflags%) do if not (%%v)==() set docflags=Y
\r
741 if (%docflags%)==(Y) echo USER_CFLAGS=%usercflags%>>config.settings
\r
742 if (%docflags%)==(Y) echo ESC_USER_CFLAGS=%escusercflags%>>config.settings
\r
743 for %%v in (%userldflags%) do if not (%%v)==() set doldflags=Y
\r
744 if (%doldflags%)==(Y) echo USER_LDFLAGS=%userldflags%>>config.settings
\r
745 for %%v in (%extrauserlibs%) do if not (%%v)==() set doextralibs=Y
\r
746 if (%doextralibs%)==(Y) echo USER_LIBS=%extrauserlibs%>>config.settings
\r
747 echo # End of settings from configure.bat>>config.settings
\r
748 echo. >>config.settings
\r
750 copy config.nt config.tmp
\r
752 echo /* Start of settings from configure.bat. */ >>config.tmp
\r
753 rem We write USER_CFLAGS and USER_LDFLAGS starting with a space to simplify
\r
754 rem processing of compiler options in w32.c:get_emacs_configuration_options
\r
755 if (%docflags%) == (Y) echo #define USER_CFLAGS " %escusercflags%">>config.tmp
\r
756 if (%doldflags%) == (Y) echo #define USER_LDFLAGS " %escuserldflags%">>config.tmp
\r
757 if (%profile%) == (Y) echo #define PROFILING 1 >>config.tmp
\r
758 if not "(%HAVE_PNG%)" == "()" echo #define HAVE_PNG 1 >>config.tmp
\r
759 if not "(%HAVE_GNUTLS%)" == "()" echo #define HAVE_GNUTLS 1 >>config.tmp
\r
760 if not "(%HAVE_JPEG%)" == "()" echo #define HAVE_JPEG 1 >>config.tmp
\r
761 if not "(%HAVE_GIF%)" == "()" echo #define HAVE_GIF 1 >>config.tmp
\r
762 if not "(%HAVE_TIFF%)" == "()" echo #define HAVE_TIFF 1 >>config.tmp
\r
763 if not "(%HAVE_XPM%)" == "()" echo #define HAVE_XPM 1 >>config.tmp
\r
764 if "(%HAVE_RSVG%)" == "(1)" echo #define HAVE_RSVG 1 >>config.tmp
\r
766 echo /* End of settings from configure.bat. */ >>config.tmp
\r
768 Rem See if fc.exe returns a meaningful exit status. If it does, we
\r
769 Rem might as well avoid unnecessary overwriting of config.h and epaths.h,
\r
770 Rem since this forces recompilation of every source file.
\r
771 if exist foo.bar del foo.bar
\r
772 fc /b foo.bar foo.bar >nul 2>&1
\r
773 if not errorlevel 2 goto doCopy
\r
774 fc /b config.tmp ..\src\config.h >nul 2>&1
\r
775 if errorlevel 1 goto doCopy
\r
776 fc /b paths.h ..\src\epaths.h >nul 2>&1
\r
777 if not errorlevel 1 goto dontCopy
\r
780 copy config.tmp ..\src\config.h
\r
781 copy paths.h ..\src\epaths.h
\r
784 if exist config.tmp del config.tmp
\r
785 copy /b config.settings+%MAKECMD%.defs+..\nt\makefile.w32-in ..\nt\makefile
\r
786 if exist ..\admin\unidata copy /b config.settings+%MAKECMD%.defs+..\admin\unidata\makefile.w32-in ..\admin\unidata\makefile
\r
787 copy /b config.settings+%MAKECMD%.defs+..\lib-src\makefile.w32-in ..\lib-src\makefile
\r
788 copy /b config.settings+%MAKECMD%.defs+..\lib\makefile.w32-in ..\lib\makefile
\r
789 copy /b config.settings+%MAKECMD%.defs+..\src\makefile.w32-in ..\src\makefile
\r
790 copy /b config.settings+%MAKECMD%.defs+..\doc\emacs\makefile.w32-in ..\doc\emacs\makefile
\r
791 copy /b config.settings+%MAKECMD%.defs+..\doc\misc\makefile.w32-in ..\doc\misc\makefile
\r
792 copy /b config.settings+%MAKECMD%.defs+..\doc\lispref\makefile.w32-in ..\doc\lispref\makefile
\r
793 copy /b config.settings+%MAKECMD%.defs+..\doc\lispintro\makefile.w32-in ..\doc\lispintro\makefile
\r
794 if exist ..\lisp\makefile rm -f ../lisp/[Mm]akefile
\r
795 copy /b config.settings+%MAKECMD%.defs+..\lisp\makefile.w32-in ..\lisp\makefile
\r
796 rem Use the default (no-op) Makefile.in if the nt version is not present.
\r
797 if exist ..\leim\makefile.w32-in copy /b config.settings+%MAKECMD%.defs+..\leim\makefile.w32-in ..\leim\makefile
\r
798 if not exist ..\leim\makefile.w32-in copy /b config.settings+%MAKECMD%.defs+..\leim\Makefile.in ..\leim\makefile
\r
799 del config.settings
\r
801 Rem Some people use WinZip which doesn't create empty directories!
\r
802 if not exist ..\site-lisp\nul mkdir ..\site-lisp\
\r
803 Rem Update subdirs.el only if it is different or fc.exe doesn't work.
\r
804 if exist foo.bar del foo.bar
\r
805 fc /b foo.bar foo.bar >nul 2>&1
\r
806 if not errorlevel 2 goto doUpdateSubdirs
\r
807 fc /b subdirs.el ..\site-lisp\subdirs.el >nul 2>&1
\r
808 if not errorlevel 1 goto dontUpdateSubdirs
\r
811 if exist ..\site-lisp\subdirs.el del ..\site-lisp\subdirs.el
\r
812 copy subdirs.el ..\site-lisp\subdirs.el
\r
817 rem check that we have all the libraries we need.
\r
820 if not "(%HAVE_XPM%)" == "()" goto checkpng
\r
821 if (%xpmsupport%) == (N) goto checkpng
\r
823 echo XPM support is missing. It is required for color icons in the toolbar.
\r
824 echo Install libXpm development files or use --without-xpm
\r
827 if not "(%HAVE_PNG%)" == "()" goto checkjpeg
\r
828 if (%pngsupport%) == (N) goto checkjpeg
\r
830 echo PNG support is missing.
\r
831 echo Install libpng development files or use --without-png
\r
834 if not "(%HAVE_JPEG%)" == "()" goto checktiff
\r
835 if (%jpegsupport%) == (N) goto checktiff
\r
837 echo JPEG support is missing.
\r
838 echo Install jpeg development files or use --without-jpeg
\r
841 if not "(%HAVE_TIFF%)" == "()" goto checkgif
\r
842 if (%tiffsupport%) == (N) goto checkgif
\r
844 echo TIFF support is missing.
\r
845 echo Install libtiff development files or use --without-tiff
\r
848 if not "(%HAVE_GIF%)" == "()" goto checkdistfiles
\r
849 if (%gifsupport%) == (N) goto checkdistfiles
\r
851 echo GIF support is missing.
\r
852 echo Install giflib or libungif development files or use --without-gif
\r
855 if "(%HAVE_DISTFILES%)" == "()" goto donelibchecks
\r
856 if (%distFilesOk%) == (1) goto donelibchecks
\r
858 echo Files specified with option --distfiles could not be found.
\r
859 echo Fix these issues before running make dist
\r
862 if (%libsOK%) == (1) goto success
\r
864 echo Important libraries are missing. Fix these issues before running make.
\r
868 echo Emacs successfully configured.
\r
869 echo Emacs successfully configured. >>config.log
\r
870 if (%MAKECMD%) == (gmake) set MAKECMD=make
\r
871 echo Run `%MAKECMD%' to build, then run `%MAKECMD% install' to install.
\r
875 echo Your environment size is too small. Please enlarge it and rerun configure.
\r
876 echo For example, type "command.com /e:2048" to have 2048 bytes available.
\r
883 set enablechecking=
\r
895 set HAVE_DISTFILES=
\r