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