* emacs-lisp/smie.el (smie-indent--hanging-p): Use `smie-indent--bolp'.
[emacs.git] / nt / configure.bat
blobc7bfad35189f004090b2641af625bcb2673c0fca
1 @echo off\r
2 rem   ----------------------------------------------------------------------\r
3 rem   Configuration script for MS Windows 95/98/Me and NT/2000/XP\r
4 rem   Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005,\r
5 rem      2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.\r
6 \r
7 rem   This file is part of GNU Emacs.\r
8 \r
9 rem   GNU Emacs is free software: you can redistribute it and/or modify\r
10 rem   it under the terms of the GNU General Public License as published by\r
11 rem   the Free Software Foundation, either version 3 of the License, or\r
12 rem   (at your option) any later version.\r
14 rem   GNU Emacs is distributed in the hope that it will be useful,\r
15 rem   but WITHOUT ANY WARRANTY; without even the implied warranty of\r
16 rem   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\r
17 rem   GNU General Public License for more details.\r
19 rem   You should have received a copy of the GNU General Public License\r
20 rem   along with GNU Emacs.  If not, see http://www.gnu.org/licenses/.\r
22 rem   ----------------------------------------------------------------------\r
23 rem   YOU'LL NEED THE FOLLOWING UTILITIES TO MAKE EMACS:\r
24 rem\r
25 rem   + MS Windows 95/98/Me or NT/2000/XP\r
26 rem   + either MSVC 2.x or later, or gcc-2.95 or later (with GNU make 3.75\r
27 rem     or later) and the Mingw32 and W32 API headers and libraries.\r
28 rem   + Visual Studio 2005 is not supported at this time.\r
29 rem\r
30 rem For reference, here is a list of which builds of GNU make are known to\r
31 rem work or not, and whether they work in the presence and/or absence of\r
32 rem sh.exe.\r
33 rem\r
34 rem                                       sh exists     no sh\r
35 rem  cygwin b20.1 make (3.75):            fails[1,5]    fails[2,5]\r
36 rem  MSVC compiled gmake 3.77:            okay          okay\r
37 rem  MSVC compiled gmake 3.78.1:          okay          okay\r
38 rem  MSVC compiled gmake 3.79.1:          okay          okay\r
39 rem  mingw32/gcc-2.92.2 make (3.77):      okay          okay[4]\r
40 rem  cygwin compiled gmake 3.77:          fails[1,5]    fails[2,5]\r
41 rem  cygwin compiled gmake 3.78.1:        fails[5]      fails[2,5]\r
42 rem  cygwin compiled gmake 3.79.1:        fails[3,5]    fails[2?,5]\r
43 rem  cygwin compiled make 3.80:           okay[6]       fails?[7]\r
44 rem  cygwin compiled make 3.81:           fails         fails?[7]\r
45 rem  mingw32 compiled make 3.79.1:        okay          okay\r
46 rem  mingw32 compiled make 3.80:          okay          okay?[7]\r
47 rem  mingw32 compiled make 3.81:          okay          okay[8]\r
48 rem\r
49 rem [1] doesn't cope with makefiles with DOS line endings, so must mount\r
50 rem     emacs source with text!=binary.\r
51 rem [2] fails when needs to invoke shell commands; okay invoking gcc etc.\r
52 rem [3] requires LC_MESSAGES support to build; cannot build with early\r
53 rem     versions of cygwin.\r
54 rem [4] may fail on Windows 9X and Windows ME; if so, install Bash.\r
55 rem [5] fails when building leim due to the use of cygwin style paths.\r
56 rem     May work if building emacs without leim.\r
57 rem [6] need to uncomment 3 lines in nt/gmake.defs that invoke `cygpath';\r
58 rem     look for "cygpath" near line 85 of gmake.defs.\r
59 rem [7] not recommended; please report if you try this combination.\r
60 rem [8] tested only on Windows XP.\r
61 rem\r
63 if exist config.log del config.log\r
65 rem ----------------------------------------------------------------------\r
66 rem   See if the environment is large enough.  We need 43 (?) bytes.\r
67 set $foo$=123456789_123456789_123456789_123456789_123\r
68 if not "%$foo$%" == "123456789_123456789_123456789_123456789_123" goto SmallEnv\r
69 set $foo$=\r
71 rem ----------------------------------------------------------------------\r
72 rem   Make sure we are running in the nt subdir\r
73 if exist configure.bat goto start\r
74 echo You must run configure from the nt subdirectory.\r
75 goto end\r
77 :start\r
78 rem ----------------------------------------------------------------------\r
79 rem   Default settings.\r
80 set prefix=\r
81 set nodebug=N\r
82 set noopt=N\r
83 set enablechecking=N\r
84 set profile=N\r
85 set nocygwin=N\r
86 set COMPILER=\r
87 set usercflags=\r
88 set docflags=\r
89 set userldflags=\r
90 set doldflags=\r
91 set sep1=\r
92 set sep2=\r
93 set sep3=\r
94 set distfiles=\r
96 rem ----------------------------------------------------------------------\r
97 rem   Handle arguments.\r
98 :again\r
99 if "%1" == "-h" goto usage\r
100 if "%1" == "--help" goto usage\r
101 if "%1" == "--prefix" goto setprefix\r
102 if "%1" == "--with-gcc" goto withgcc\r
103 if "%1" == "--with-msvc" goto withmsvc\r
104 if "%1" == "--no-debug" goto nodebug\r
105 if "%1" == "--no-opt" goto noopt\r
106 if "%1" == "--enable-checking" goto enablechecking\r
107 if "%1" == "--profile" goto profile\r
108 if "%1" == "--no-cygwin" goto nocygwin\r
109 if "%1" == "--cflags" goto usercflags\r
110 if "%1" == "--ldflags" goto userldflags\r
111 if "%1" == "--without-png" goto withoutpng\r
112 if "%1" == "--without-jpeg" goto withoutjpeg\r
113 if "%1" == "--without-gif" goto withoutgif\r
114 if "%1" == "--without-tiff" goto withouttiff\r
115 if "%1" == "--without-xpm" goto withoutxpm\r
116 if "%1" == "--with-svg" goto withsvg\r
117 if "%1" == "--distfiles" goto distfiles\r
118 if "%1" == "" goto checkutils\r
119 :usage\r
120 echo Usage: configure [options]\r
121 echo Options:\r
122 echo.   --prefix PREFIX         install Emacs in directory PREFIX\r
123 echo.   --with-gcc              use GCC to compile Emacs\r
124 echo.   --with-msvc             use MSVC to compile Emacs\r
125 echo.   --no-debug              exclude debug info from executables\r
126 echo.   --no-opt                disable optimization\r
127 echo.   --enable-checking       enable checks and assertions\r
128 echo.   --profile               enable profiling\r
129 echo.   --no-cygwin             use -mno-cygwin option with GCC\r
130 echo.   --cflags FLAG           pass FLAG to compiler\r
131 echo.   --ldflags FLAG          pass FLAG to compiler when linking\r
132 echo.   --without-png           do not use PNG library even if it is installed\r
133 echo.   --without-jpeg          do not use JPEG library even if it is installed\r
134 echo.   --without-gif           do not use GIF library even if it is installed\r
135 echo.   --without-tiff          do not use TIFF library even if it is installed\r
136 echo.   --without-xpm           do not use XPM library even if it is installed\r
137 echo.   --with-svg              use the RSVG library (experimental)\r
138 echo.   --distfiles             path to files for make dist, e.g. libXpm.dll\r
139 goto end\r
140 rem ----------------------------------------------------------------------\r
141 :setprefix\r
142 shift\r
143 set prefix=%1\r
144 shift\r
145 goto again\r
146 rem ----------------------------------------------------------------------\r
147 :withgcc\r
148 set COMPILER=gcc\r
149 shift\r
150 goto again\r
151 rem ----------------------------------------------------------------------\r
152 :withmsvc\r
153 set COMPILER=cl\r
154 shift\r
155 goto again\r
156 rem ----------------------------------------------------------------------\r
157 :nodebug\r
158 set nodebug=Y\r
159 shift\r
160 goto again\r
161 rem ----------------------------------------------------------------------\r
162 :noopt\r
163 set noopt=Y\r
164 shift\r
165 goto again\r
166 rem ----------------------------------------------------------------------\r
167 :enablechecking\r
168 set enablechecking=Y\r
169 shift\r
170 goto again\r
171 rem ----------------------------------------------------------------------\r
172 :profile\r
173 set profile=Y\r
174 shift\r
175 goto again\r
176 rem ----------------------------------------------------------------------\r
177 :nocygwin\r
178 set nocygwin=Y\r
179 shift\r
180 goto again\r
181 rem ----------------------------------------------------------------------\r
182 :usercflags\r
183 shift\r
184 set usercflags=%usercflags%%sep1%%1\r
185 set sep1= %nothing%\r
186 shift\r
187 goto again\r
188 rem ----------------------------------------------------------------------\r
189 :userldflags\r
190 shift\r
191 set userldflags=%userldflags%%sep2%%1\r
192 set sep2= %nothing%\r
193 shift\r
194 goto again\r
195 rem ----------------------------------------------------------------------\r
197 :withoutpng\r
198 set pngsupport=N\r
199 set HAVE_PNG=\r
200 shift\r
201 goto again\r
203 rem ----------------------------------------------------------------------\r
205 :withoutjpeg\r
206 set jpegsupport=N\r
207 set HAVE_JPEG=\r
208 shift\r
209 goto again\r
211 rem ----------------------------------------------------------------------\r
213 :withoutgif\r
214 set gifsupport=N\r
215 set HAVE_GIF=\r
216 shift\r
217 goto again\r
219 rem ----------------------------------------------------------------------\r
221 :withouttiff\r
222 set tiffsupport=N\r
223 set HAVE_TIFF=\r
224 shift\r
225 goto again\r
227 rem ----------------------------------------------------------------------\r
229 :withoutxpm\r
230 set xpmsupport=N\r
231 set HAVE_XPM=\r
232 shift\r
233 goto again\r
235 :withsvg\r
236 shift\r
237 set svgsupport=Y\r
238 goto again\r
240 rem ----------------------------------------------------------------------\r
242 :distfiles\r
243 set HAVE_DISTFILES=1\r
244 shift\r
245 set distfiles=%distfiles%%sep3%%1\r
246 set sep3= %nothing%\r
247 shift\r
248 goto again\r
250 rem ----------------------------------------------------------------------\r
251 rem    Check that necessary utilities (cp and rm) are present.\r
252 :checkutils\r
253 echo Checking for 'cp'...\r
254 cp configure.bat junk.bat\r
255 if not exist junk.bat goto needcp\r
256 echo Checking for 'rm'...\r
257 rm junk.bat\r
258 if exist junk.bat goto needrm\r
259 goto checkcompiler\r
260 :needcp\r
261 echo You need 'cp' (the Unix file copy program) to build Emacs.\r
262 goto end\r
263 :needrm\r
264 del junk.bat\r
265 echo You need 'rm' (the Unix file delete program) to build Emacs.\r
266 goto end\r
268 rem ----------------------------------------------------------------------\r
269 rem   Auto-detect compiler if not specified, and validate GCC if chosen.\r
270 :checkcompiler\r
271 if (%COMPILER%)==(cl) goto compilercheckdone\r
272 if (%COMPILER%)==(gcc) goto checkgcc\r
274 echo Checking whether 'gcc' is available...\r
275 echo main(){} >junk.c\r
276 gcc -c junk.c\r
277 if exist junk.o goto checkgcc\r
279 echo Checking whether 'cl' is available...\r
280 cl -nologo -c junk.c\r
281 if exist junk.obj goto clOK\r
282 goto nocompiler\r
284 :checkgcc\r
285 if exist junk.o del junk.o\r
286 Rem WARNING -- COMMAND.COM on some systems only looks at the first\r
287 Rem            8 characters of a label.  So do NOT be tempted to change\r
288 Rem            chkapi* into something fancier like checkw32api\r
289 Rem You HAVE been warned!\r
290 if (%nocygwin%) == (Y) goto chkapiN\r
291 echo Checking whether gcc requires '-mno-cygwin'...\r
292 echo #include "cygwin/version.h" >junk.c\r
293 echo main(){} >>junk.c\r
294 echo gcc -c junk.c >>config.log\r
295 gcc -c junk.c >>config.log 2>&1\r
296 if not exist junk.o goto chkapi\r
297 echo gcc -mno-cygwin -c junk.c >>config.log\r
298 gcc -mno-cygwin -c junk.c >>config.log 2>&1\r
299 if exist junk.o set nocygwin=Y\r
301 :chkapi\r
302 echo The failed program was: >>config.log\r
303 type junk.c >>config.log\r
304 :chkapiN\r
305 rm -f junk.c junk.o\r
306 rem ----------------------------------------------------------------------\r
307 rem   Older versions of the Windows API headers either don't have any of\r
308 rem   the IMAGE_xxx definitions (the headers that come with Cygwin b20.1\r
309 rem   are like this), or have a typo in the definition of\r
310 rem   IMAGE_FIRST_SECTION (the headers with gcc/mingw32 2.95 have this\r
311 rem   problem).  The gcc/mingw32 2.95.2 headers are okay, as are distros\r
312 rem   of w32api-xxx.zip from Anders Norlander since 1999-11-18 at least.\r
313 rem   Beginning with Emacs 23, we need usp10.h.\r
314 rem\r
315 echo Checking whether W32 API headers are too old...\r
316 echo #include "windows.h" >junk.c\r
317 echo #include "usp10.h" >>junk.c\r
318 echo test(PIMAGE_NT_HEADERS pHeader) >>junk.c\r
319 echo {PIMAGE_SECTION_HEADER pSection = IMAGE_FIRST_SECTION(pHeader);} >>junk.c\r
320 if (%nocygwin%) == (Y) goto chkapi1\r
321 set cf=%usercflags%\r
322 goto chkapi2\r
323 :chkapi1\r
324 set cf=%usercflags% -mno-cygwin\r
325 :chkapi2\r
326 echo on\r
327 gcc %cf% -c junk.c\r
328 @echo off\r
329 @echo gcc %cf% -c junk.c >>config.log\r
330 gcc %cf% -c junk.c >>config.log 2>&1\r
331 set cf=\r
332 if exist junk.o goto gccOk\r
333 echo The failed program was: >>config.log\r
334 type junk.c >>config.log\r
336 :nocompiler\r
337 echo.\r
338 echo Configure failed.\r
339 echo To configure Emacs for Windows, you need to have either\r
340 echo gcc-2.95 or later with Mingw32 and the W32 API headers,\r
341 echo or MSVC 2.x or later.\r
342 del junk.c\r
343 goto end\r
345 :gccOk\r
346 set COMPILER=gcc\r
347 echo Using 'gcc'\r
348 rm -f junk.c junk.o\r
349 Rem It is not clear what GCC version began supporting -mtune\r
350 Rem and pentium4 on x86, so check this explicitly.\r
351 echo main(){} >junk.c\r
352 echo gcc -c -O2 -mtune=pentium4 junk.c >>config.log\r
353 gcc -c -O2 -mtune=pentium4 junk.c >>config.log 2>&1\r
354 if not errorlevel 1 goto gccMtuneOk\r
355 echo The failed program was: >>config.log\r
356 type junk.c >>config.log\r
357 set mf=-mcpu=i686\r
358 rm -f junk.c junk.o\r
359 goto gccdebug\r
360 :gccMtuneOk\r
361 echo GCC supports -mtune=pentium4 >>config.log\r
362 set mf=-mtune=pentium4\r
363 rm -f junk.c junk.o\r
364 :gccdebug\r
365 rem Check for DWARF-2 debug info support, else default to stabs\r
366 echo main(){} >junk.c\r
367 echo gcc -c -gdwarf-2 -g3 junk.c >>config.log\r
368 gcc -c -gdwarf-2 -g3 junk.c >>config.log 2>&1\r
369 if not errorlevel 1 goto gccdwarf\r
370 echo The failed program was: >>config.log\r
371 type junk.c >>config.log\r
372 set dbginfo=-gstabs+\r
373 rm -f junk.c junk.o\r
374 goto compilercheckdone\r
375 :gccdwarf\r
376 echo GCC supports DWARF-2 >>config.log\r
377 set dbginfo=-gdwarf-2 -g3\r
378 rm -f junk.c junk.o\r
379 goto compilercheckdone\r
381 :clOk\r
382 set COMPILER=cl\r
383 rm -f junk.c junk.obj\r
384 echo Using 'MSVC'\r
386 :compilercheckdone\r
388 rem ----------------------------------------------------------------------\r
389 rem   Check for external image libraries. Since they are loaded\r
390 rem   dynamically, the libraries themselves do not need to be present\r
391 rem   at compile time, but the header files are required.\r
393 set mingwflag=\r
395 if (%nocygwin%) == (N) goto flagsOK\r
396 set mingwflag=-mno-cygwin\r
398 :flagsOK\r
400 if (%pngsupport%) == (N) goto pngDone\r
402 echo Checking for libpng...\r
403 echo #include "png.h" >junk.c\r
404 echo main (){} >>junk.c\r
405 rem   -o option is ignored with cl, but allows result to be consistent.\r
406 echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log\r
407 %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log\r
408 if exist junk.obj goto havePng\r
410 echo ...png.h not found, building without PNG support.\r
411 echo The failed program was: >>config.log\r
412 type junk.c >>config.log\r
413 set HAVE_PNG=\r
414 goto :pngDone\r
416 :havePng\r
417 echo ...PNG header available, building with PNG support.\r
418 set HAVE_PNG=1\r
420 :pngDone\r
421 rm -f junk.c junk.obj\r
423 if (%jpegsupport%) == (N) goto jpegDone\r
425 echo Checking for jpeg-6b...\r
426 echo #include "jconfig.h" >junk.c\r
427 echo main (){} >>junk.c\r
428 rem   -o option is ignored with cl, but allows result to be consistent.\r
429 echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log\r
430 %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log\r
431 if exist junk.obj goto haveJpeg\r
433 echo ...jconfig.h not found, building without JPEG support.\r
434 echo The failed program was: >>config.log\r
435 type junk.c >>config.log\r
436 set HAVE_JPEG=\r
437 goto :jpegDone\r
439 :haveJpeg\r
440 echo ...JPEG header available, building with JPEG support.\r
441 set HAVE_JPEG=1\r
443 :jpegDone\r
444 rm -f junk.c junk.obj\r
446 if (%gifsupport%) == (N) goto gifDone\r
448 echo Checking for libgif...\r
449 echo #include "gif_lib.h" >junk.c\r
450 echo main (){} >>junk.c\r
451 rem   -o option is ignored with cl, but allows result to be consistent.\r
452 echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log\r
453 %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log\r
454 if exist junk.obj goto haveGif\r
456 echo ...gif_lib.h not found, building without GIF support.\r
457 echo The failed program was: >>config.log\r
458 type junk.c >>config.log\r
459 set HAVE_GIF=\r
460 goto :gifDone\r
462 :haveGif\r
463 echo ...GIF header available, building with GIF support.\r
464 set HAVE_GIF=1\r
466 :gifDone\r
467 rm -f junk.c junk.obj\r
469 if (%tiffsupport%) == (N) goto tiffDone\r
471 echo Checking for tiff...\r
472 echo #include "tiffio.h" >junk.c\r
473 echo main (){} >>junk.c\r
474 rem   -o option is ignored with cl, but allows result to be consistent.\r
475 echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log\r
476 %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log\r
477 if exist junk.obj goto haveTiff\r
479 echo ...tiffio.h not found, building without TIFF support.\r
480 echo The failed program was: >>config.log\r
481 type junk.c >>config.log\r
482 set HAVE_TIFF=\r
483 goto :tiffDone\r
485 :haveTiff\r
486 echo ...TIFF header available, building with TIFF support.\r
487 set HAVE_TIFF=1\r
489 :tiffDone\r
490 rm -f junk.c junk.obj\r
492 if (%xpmsupport%) == (N) goto xpmDone\r
494 echo Checking for libXpm...\r
495 echo #define FOR_MSW 1 >junk.c\r
496 echo #include "X11/xpm.h" >>junk.c\r
497 echo main (){} >>junk.c\r
498 rem   -o option is ignored with cl, but allows result to be consistent.\r
499 echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log\r
500 %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log\r
501 if exist junk.obj goto haveXpm\r
503 echo ...X11/xpm.h not found, building without XPM support.\r
504 echo The failed program was: >>config.log\r
505 type junk.c >>config.log\r
506 set HAVE_XPM=\r
507 goto :xpmDone\r
509 :haveXpm\r
510 echo ...XPM header available, building with XPM support.\r
511 set HAVE_XPM=1\r
513 :xpmDone\r
514 rm -f junk.c junk.obj\r
516 if not (%svgsupport%) == (Y) goto :svgDone\r
517 echo Checking for librsvg...\r
518 echo #include "librsvg/rsvg.h" >junk.c\r
519 echo main (){} >>junk.c\r
520 rem   -o option is ignored with cl, but allows result to be consistent.\r
521 echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log\r
522 %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log\r
523 if exist junk.obj goto haveSvg\r
525 echo ...librsvg/rsvg.h or dependencies not found, building without SVG support.\r
526 echo The failed program was: >>config.log\r
527 type junk.c >>config.log\r
528 set HAVE_RSVG=\r
529 goto :svgDone\r
531 :haveSvg\r
532 echo ...librsvg header available, building with SVG support (EXPERIMENTAL).\r
533 set HAVE_RSVG=1\r
535 :svgDone\r
536 rm -f junk.c junk.obj junk.err junk.out\r
538 rem Any distfiles provided for building distribution? If no, we're done.\r
539 if "(%HAVE_DISTFILES%)"=="()" goto :distFilesDone\r
541 rem Any arguments to --distfiles specified? If no, we're done.\r
542 if not "%distfiles%"=="" goto :checkDistFiles\r
543 set distFilesOk=0\r
544 echo No arguments specified for option --distfiles!\r
545 goto distfilesDone\r
547 :checkDistFiles\r
548 echo Checking for distfiles...\r
549 rem Check if all specified distfiles exist\r
550 set fileNotFound=\r
551 for %%d in (%distfiles%) do if not exist %%d set fileNotFound=%%d\r
552 if not "%fileNotFound%"=="" goto distFilesNotFound\r
554 set distFilesOK=1\r
555 echo ...all distfiles found.\r
556 goto :distFilesDone\r
558 :distFilesNotFound\r
559 set distFilesOk=0\r
560 echo ...%fileNotFound% not found.\r
561 set distfiles=\r
562 goto :distfilesDone\r
564 :distFilesDone\r
565 set fileNotFound=\r
567 rem ----------------------------------------------------------------------\r
568 :genmakefiles\r
569 echo Generating makefiles\r
570 if %COMPILER% == gcc set MAKECMD=gmake\r
571 if %COMPILER% == cl set MAKECMD=nmake\r
573 rem   Pass on chosen settings to makefiles.\r
574 rem   NB. Be very careful to not have a space before redirection symbols\r
575 rem   except when there is a preceding digit, when a space is required.\r
576 rem\r
577 echo # Start of settings from configure.bat >config.settings\r
578 echo COMPILER=%COMPILER%>>config.settings\r
579 if not "(%mf%)" == "()" echo MCPU_FLAG=%mf%>>config.settings\r
580 if not "(%dbginfo%)" == "()" echo DEBUG_INFO=%dbginfo%>>config.settings\r
581 if (%nodebug%) == (Y) echo NODEBUG=1 >>config.settings\r
582 if (%noopt%) == (Y) echo NOOPT=1 >>config.settings\r
583 if (%enablechecking%) == (Y) echo ENABLECHECKS=1 >>config.settings\r
584 if (%profile%) == (Y) echo PROFILE=1 >>config.settings\r
585 if (%nocygwin%) == (Y) echo NOCYGWIN=1 >>config.settings\r
586 if not "(%prefix%)" == "()" echo INSTALL_DIR=%prefix%>>config.settings\r
587 if not "(%distfiles%)" == "()" echo DIST_FILES=%distfiles%>>config.settings\r
588 rem We go thru docflags because usercflags could be "-DFOO=bar" -something\r
589 rem and the if command cannot cope with this\r
590 for %%v in (%usercflags%) do if not (%%v)==() set docflags=Y\r
591 if (%docflags%)==(Y) echo USER_CFLAGS=%usercflags%>>config.settings\r
592 for %%v in (%userldflags%) do if not (%%v)==() set doldflags=Y\r
593 if (%doldflags%)==(Y) echo USER_LDFLAGS=%userldflags%>>config.settings\r
594 echo # End of settings from configure.bat>>config.settings\r
595 echo. >>config.settings\r
597 copy config.nt config.tmp\r
598 echo. >>config.tmp\r
599 echo /* Start of settings from configure.bat.  */ >>config.tmp\r
600 if (%docflags%) == (Y) echo #define USER_CFLAGS " %usercflags%">>config.tmp\r
601 if (%doldflags%) == (Y) echo #define USER_LDFLAGS " %userldflags%">>config.tmp\r
602 if (%profile%) == (Y) echo #define PROFILING 1 >>config.tmp\r
603 if not "(%HAVE_PNG%)" == "()" echo #define HAVE_PNG 1 >>config.tmp\r
604 if not "(%HAVE_JPEG%)" == "()" echo #define HAVE_JPEG 1 >>config.tmp\r
605 if not "(%HAVE_GIF%)" == "()" echo #define HAVE_GIF 1 >>config.tmp\r
606 if not "(%HAVE_TIFF%)" == "()" echo #define HAVE_TIFF 1 >>config.tmp\r
607 if not "(%HAVE_XPM%)" == "()" echo #define HAVE_XPM 1 >>config.tmp\r
608 if "(%HAVE_RSVG%)" == "(1)" echo #define HAVE_RSVG 1 >>config.tmp\r
610 echo /* End of settings from configure.bat.  */ >>config.tmp\r
612 Rem See if fc.exe returns a meaningful exit status.  If it does, we\r
613 Rem might as well avoid unnecessary overwriting of config.h and epaths.h,\r
614 Rem since this forces recompilation of every source file.\r
615 if exist foo.bar del foo.bar\r
616 fc /b foo.bar foo.bar >nul 2>&1\r
617 if not errorlevel 2 goto doCopy\r
618 fc /b config.tmp ..\src\config.h >nul 2>&1\r
619 if errorlevel 1 goto doCopy\r
620 fc /b paths.h ..\src\epaths.h >nul 2>&1\r
621 if errorlevel 0 goto dontCopy\r
622 :doCopy\r
623 copy config.tmp ..\src\config.h\r
624 copy paths.h ..\src\epaths.h\r
626 :dontCopy\r
627 if exist config.tmp del config.tmp\r
628 copy /b config.settings+%MAKECMD%.defs+..\nt\makefile.w32-in ..\nt\makefile\r
629 if exist ..\admin\unidata copy /b config.settings+%MAKECMD%.defs+..\admin\unidata\makefile.w32-in ..\admin\unidata\makefile\r
630 copy /b config.settings+%MAKECMD%.defs+..\lib-src\makefile.w32-in ..\lib-src\makefile\r
631 copy /b config.settings+%MAKECMD%.defs+..\src\makefile.w32-in ..\src\makefile\r
632 copy /b config.settings+%MAKECMD%.defs+..\doc\emacs\makefile.w32-in ..\doc\emacs\makefile\r
633 copy /b config.settings+%MAKECMD%.defs+..\doc\misc\makefile.w32-in ..\doc\misc\makefile\r
634 copy /b config.settings+%MAKECMD%.defs+..\doc\lispref\makefile.w32-in ..\doc\lispref\makefile\r
635 copy /b config.settings+%MAKECMD%.defs+..\doc\lispintro\makefile.w32-in ..\doc\lispintro\makefile\r
636 if exist ..\lisp\makefile rm -f ../lisp/[Mm]akefile\r
637 copy /b config.settings+%MAKECMD%.defs+..\lisp\makefile.w32-in ..\lisp\makefile\r
638 rem   Use the default (no-op) Makefile.in if the nt version is not present.\r
639 if exist ..\leim\makefile.w32-in copy /b config.settings+%MAKECMD%.defs+..\leim\makefile.w32-in ..\leim\makefile\r
640 if not exist ..\leim\makefile.w32-in copy /b config.settings+%MAKECMD%.defs+..\leim\Makefile.in ..\leim\makefile\r
641 del config.settings\r
643 Rem Some people use WinZip which doesn't create empty directories!\r
644 if not exist ..\site-lisp\nul mkdir ..\site-lisp\\r
645 Rem Update subdirs.el only if it is different or fc.exe doesn't work.\r
646 if exist foo.bar del foo.bar\r
647 fc /b foo.bar foo.bar >nul 2>&1\r
648 if not errorlevel 2 goto doUpdateSubdirs\r
649 fc /b subdirs.el ..\site-lisp\subdirs.el >nul 2>&1\r
650 if not errorlevel 1 goto dontUpdateSubdirs\r
651 :doUpdateSubdirs\r
652 if exist ..\site-lisp\subdirs.el del ..\site-lisp\subdirs.el\r
653 copy subdirs.el ..\site-lisp\subdirs.el\r
655 :dontUpdateSubdirs\r
656 echo.\r
658 rem check that we have all the libraries we need.\r
659 set libsOK=1\r
661 if not "(%HAVE_XPM%)" == "()" goto checkpng\r
662 if (%xpmsupport%) == (N) goto checkpng\r
663  set libsOK=0\r
664  echo XPM support is missing. It is required for color icons in the toolbar.\r
665  echo   Install libXpm development files or use --without-xpm\r
667 :checkpng\r
668 if not "(%HAVE_PNG%)" == "()" goto checkjpeg\r
669 if (%pngsupport%) == (N) goto checkjpeg\r
670  set libsOK=0\r
671  echo PNG support is missing.\r
672  echo   Install libpng development files or use --without-png\r
674 :checkjpeg\r
675 if not "(%HAVE_JPEG%)" == "()" goto checktiff\r
676 if (%jpegsupport%) == (N) goto checktiff\r
677  set libsOK=0\r
678  echo JPEG support is missing.\r
679  echo   Install jpeg development files or use --without-jpeg\r
681 :checktiff\r
682 if not "(%HAVE_TIFF%)" == "()" goto checkgif\r
683 if (%tiffsupport%) == (N) goto checkgif\r
684  set libsOK=0\r
685  echo TIFF support is missing.\r
686  echo   Install libtiff development files or use --without-tiff\r
688 :checkgif\r
689 if not "(%HAVE_GIF%)" == "()" goto checkdistfiles\r
690 if (%gifsupport%) == (N) goto checkdistfiles\r
691  set libsOK=0\r
692  echo GIF support is missing.\r
693  echo   Install giflib or libungif development files or use --without-gif\r
695 :checkdistfiles\r
696 if "(%HAVE_DISTFILES%)" == "()" goto donelibchecks\r
697 if (%distFilesOk%) == (1) goto donelibchecks\r
698 echo.\r
699 echo Files specified with option --distfiles could not be found.\r
700 echo   Fix these issues before running make dist\r
702 :donelibchecks\r
703 if (%libsOK%) == (1) goto success\r
704 echo.\r
705 echo Important libraries are missing. Fix these issues before running make.\r
706 goto end\r
708 :success\r
709 echo Emacs successfully configured.\r
710 echo Emacs successfully configured. >>config.log\r
711 if (%MAKECMD%) == (gmake) set MAKECMD=make\r
712 echo Run `%MAKECMD%' to build, then run `%MAKECMD% install' to install.\r
713 goto end\r
715 :SmallEnv\r
716 echo Your environment size is too small.  Please enlarge it and rerun configure.\r
717 echo For example, type "command.com /e:2048" to have 2048 bytes available.\r
718 set $foo$=\r
719 :end\r
720 set prefix=\r
721 set nodebug=\r
722 set noopt=\r
723 set enablechecking=\r
724 set profile=\r
725 set nocygwin=\r
726 set COMPILER=\r
727 set MAKECMD=\r
728 set usercflags=\r
729 set docflags=\r
730 set userldflags=\r
731 set doldflags=\r
732 set mingwflag=\r
733 set mf=\r
734 set distfiles=\r
735 set HAVE_DISTFILES=\r
736 set distFilesOk=\r
738 goto skipArchTag\r
739    arch-tag: 300d20a4-1675-4e75-b615-7ce1a8c5376c\r
740 :skipArchTag\r