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