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