| 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 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, or (at your option) |
|---|
| 12 |
rem 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; see the file COPYING. If not, write to the |
|---|
| 21 |
rem Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, |
|---|
| 22 |
rem Boston, MA 02110-1301, USA. |
|---|
| 23 |
rem ---------------------------------------------------------------------- |
|---|
| 24 |
rem YOU'LL NEED THE FOLLOWING UTILITIES TO MAKE EMACS: |
|---|
| 25 |
rem |
|---|
| 26 |
rem + MS Windows 95/98/Me or NT/2000/XP |
|---|
| 27 |
rem + either MSVC 2.x or later, or gcc-2.95 or later (with gmake 3.75 |
|---|
| 28 |
rem or later) and the Mingw32 and W32 API headers and libraries. |
|---|
| 29 |
rem + Visual Studio 2005 is not supported at this time. |
|---|
| 30 |
rem |
|---|
| 31 |
rem For reference, here is a list of which builds of gmake are known to |
|---|
| 32 |
rem work or not, and whether they work in the presence and/or absence of |
|---|
| 33 |
rem sh.exe. |
|---|
| 34 |
rem |
|---|
| 35 |
rem sh exists no sh |
|---|
| 36 |
rem cygwin b20.1 make (3.75): fails[1,5] fails[2,5] |
|---|
| 37 |
rem MSVC compiled gmake 3.77: okay okay |
|---|
| 38 |
rem MSVC compiled gmake 3.78.1: okay okay |
|---|
| 39 |
rem MSVC compiled gmake 3.79.1: okay okay |
|---|
| 40 |
rem mingw32/gcc-2.92.2 make (3.77): okay okay[4] |
|---|
| 41 |
rem cygwin compiled gmake 3.77: fails[1,5] fails[2,5] |
|---|
| 42 |
rem cygwin compiled gmake 3.78.1: fails[5] fails[2,5] |
|---|
| 43 |
rem cygwin compiled gmake 3.79.1: fails[3,5] fails[2?,5] |
|---|
| 44 |
rem cygwin compiled make 3.80: okay[6] fails?[7] |
|---|
| 45 |
rem cygwin compiled make 3.81: fails fails?[7] |
|---|
| 46 |
rem mingw32 compiled make 3.79.1: okay okay |
|---|
| 47 |
rem mingw32 compiled make 3.80: okay okay?[7] |
|---|
| 48 |
rem mingw32 compiled make 3.81: okay okay[8] |
|---|
| 49 |
rem |
|---|
| 50 |
rem [1] doesn't cope with makefiles with DOS line endings, so must mount |
|---|
| 51 |
rem emacs source with text!=binary. |
|---|
| 52 |
rem [2] fails when needs to invoke shell commands; okay invoking gcc etc. |
|---|
| 53 |
rem [3] requires LC_MESSAGES support to build; cannot build with early |
|---|
| 54 |
rem versions of cygwin. |
|---|
| 55 |
rem [4] may fail on Windows 9X and Windows ME; if so, install Bash. |
|---|
| 56 |
rem [5] fails when building leim due to the use of cygwin style paths. |
|---|
| 57 |
rem May work if building emacs without leim. |
|---|
| 58 |
rem [6] need to uncomment 3 lines in nt/gmake.defs that invoke `cygpath'; |
|---|
| 59 |
rem look for "cygpath" near line 85 of gmake.defs. |
|---|
| 60 |
rem [7] not recommended; please report if you try this combination. |
|---|
| 61 |
rem [8] tested only on Windows XP. |
|---|
| 62 |
rem |
|---|
| 63 |
|
|---|
| 64 |
if exist config.log del config.log |
|---|
| 65 |
|
|---|
| 66 |
rem ---------------------------------------------------------------------- |
|---|
| 67 |
rem See if the environment is large enough. We need 43 (?) bytes. |
|---|
| 68 |
set $foo$=123456789_123456789_123456789_123456789_123 |
|---|
| 69 |
if not "%$foo$%" == "123456789_123456789_123456789_123456789_123" goto SmallEnv |
|---|
| 70 |
set $foo$= |
|---|
| 71 |
|
|---|
| 72 |
rem ---------------------------------------------------------------------- |
|---|
| 73 |
rem Make sure we are running in the nt subdir |
|---|
| 74 |
if exist configure.bat goto start |
|---|
| 75 |
echo You must run configure from the nt subdirectory. |
|---|
| 76 |
goto end |
|---|
| 77 |
|
|---|
| 78 |
:start |
|---|
| 79 |
rem ---------------------------------------------------------------------- |
|---|
| 80 |
rem Default settings. |
|---|
| 81 |
set prefix= |
|---|
| 82 |
set nodebug=N |
|---|
| 83 |
set noopt=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" == "--no-cygwin" goto nocygwin |
|---|
| 104 |
if "%1" == "--cflags" goto usercflags |
|---|
| 105 |
if "%1" == "--ldflags" goto userldflags |
|---|
| 106 |
if "%1" == "--without-png" goto withoutpng |
|---|
| 107 |
if "%1" == "--without-jpeg" goto withoutjpeg |
|---|
| 108 |
if "%1" == "--without-gif" goto withoutgif |
|---|
| 109 |
if "%1" == "--without-tiff" goto withouttiff |
|---|
| 110 |
if "%1" == "--without-xpm" goto withoutxpm |
|---|
| 111 |
if "%1" == "" goto checkutils |
|---|
| 112 |
:usage |
|---|
| 113 |
echo Usage: configure [options] |
|---|
| 114 |
echo Options: |
|---|
| 115 |
echo. --prefix PREFIX install Emacs in directory PREFIX |
|---|
| 116 |
echo. --with-gcc use GCC to compile Emacs |
|---|
| 117 |
echo. --with-msvc use MSVC to compile Emacs |
|---|
| 118 |
echo. --no-debug exclude debug info from executables |
|---|
| 119 |
echo. --no-opt disable optimization |
|---|
| 120 |
echo. --no-cygwin use -mno-cygwin option with GCC |
|---|
| 121 |
echo. --cflags FLAG pass FLAG to compiler |
|---|
| 122 |
echo. --ldflags FLAG pass FLAG to compiler when linking |
|---|
| 123 |
echo. --without-png do not use PNG library even if it is installed |
|---|
| 124 |
echo. --without-jpeg do not use JPEG library even if it is installed |
|---|
| 125 |
echo. --without-gif do not use GIF library even if it is installed |
|---|
| 126 |
echo. --without-tiff do not use TIFF library even if it is installed |
|---|
| 127 |
echo. --without-xpm do not use XPM library even if it is installed |
|---|
| 128 |
goto end |
|---|
| 129 |
rem ---------------------------------------------------------------------- |
|---|
| 130 |
:setprefix |
|---|
| 131 |
shift |
|---|
| 132 |
set prefix=%1 |
|---|
| 133 |
shift |
|---|
| 134 |
goto again |
|---|
| 135 |
rem ---------------------------------------------------------------------- |
|---|
| 136 |
:withgcc |
|---|
| 137 |
set COMPILER=gcc |
|---|
| 138 |
shift |
|---|
| 139 |
goto again |
|---|
| 140 |
rem ---------------------------------------------------------------------- |
|---|
| 141 |
:withmsvc |
|---|
| 142 |
set COMPILER=cl |
|---|
| 143 |
shift |
|---|
| 144 |
goto again |
|---|
| 145 |
rem ---------------------------------------------------------------------- |
|---|
| 146 |
:nodebug |
|---|
| 147 |
set nodebug=Y |
|---|
| 148 |
shift |
|---|
| 149 |
goto again |
|---|
| 150 |
rem ---------------------------------------------------------------------- |
|---|
| 151 |
:noopt |
|---|
| 152 |
set noopt=Y |
|---|
| 153 |
shift |
|---|
| 154 |
goto again |
|---|
| 155 |
rem ---------------------------------------------------------------------- |
|---|
| 156 |
:nocygwin |
|---|
| 157 |
set nocygwin=Y |
|---|
| 158 |
shift |
|---|
| 159 |
goto again |
|---|
| 160 |
rem ---------------------------------------------------------------------- |
|---|
| 161 |
:usercflags |
|---|
| 162 |
shift |
|---|
| 163 |
set usercflags=%usercflags%%sep1%%1 |
|---|
| 164 |
set sep1= %nothing% |
|---|
| 165 |
shift |
|---|
| 166 |
goto again |
|---|
| 167 |
rem ---------------------------------------------------------------------- |
|---|
| 168 |
:userldflags |
|---|
| 169 |
shift |
|---|
| 170 |
set userldflags=%userldflags%%sep2%%1 |
|---|
| 171 |
set sep2= %nothing% |
|---|
| 172 |
shift |
|---|
| 173 |
goto again |
|---|
| 174 |
rem ---------------------------------------------------------------------- |
|---|
| 175 |
|
|---|
| 176 |
:withoutpng |
|---|
| 177 |
set pngsupport=N |
|---|
| 178 |
set HAVE_PNG= |
|---|
| 179 |
shift |
|---|
| 180 |
goto again |
|---|
| 181 |
|
|---|
| 182 |
rem ---------------------------------------------------------------------- |
|---|
| 183 |
|
|---|
| 184 |
:withoutjpeg |
|---|
| 185 |
set jpegsupport=N |
|---|
| 186 |
set HAVE_JPEG= |
|---|
| 187 |
shift |
|---|
| 188 |
goto again |
|---|
| 189 |
|
|---|
| 190 |
rem ---------------------------------------------------------------------- |
|---|
| 191 |
|
|---|
| 192 |
:withoutgif |
|---|
| 193 |
set gifsupport=N |
|---|
| 194 |
set HAVE_GIF= |
|---|
| 195 |
shift |
|---|
| 196 |
goto again |
|---|
| 197 |
|
|---|
| 198 |
rem ---------------------------------------------------------------------- |
|---|
| 199 |
|
|---|
| 200 |
:withouttiff |
|---|
| 201 |
set tiffsupport=N |
|---|
| 202 |
set HAVE_TIFF= |
|---|
| 203 |
shift |
|---|
| 204 |
goto again |
|---|
| 205 |
|
|---|
| 206 |
rem ---------------------------------------------------------------------- |
|---|
| 207 |
|
|---|
| 208 |
:withoutxpm |
|---|
| 209 |
set xpmsupport=N |
|---|
| 210 |
set HAVE_XPM= |
|---|
| 211 |
shift |
|---|
| 212 |
goto again |
|---|
| 213 |
|
|---|
| 214 |
rem ---------------------------------------------------------------------- |
|---|
| 215 |
rem Check that necessary utilities (cp and rm) are present. |
|---|
| 216 |
:checkutils |
|---|
| 217 |
echo Checking for 'cp'... |
|---|
| 218 |
cp configure.bat junk.bat |
|---|
| 219 |
if not exist junk.bat goto needcp |
|---|
| 220 |
echo Checking for 'rm'... |
|---|
| 221 |
rm junk.bat |
|---|
| 222 |
if exist junk.bat goto needrm |
|---|
| 223 |
goto checkcompiler |
|---|
| 224 |
:needcp |
|---|
| 225 |
echo You need 'cp' (the Unix file copy program) to build Emacs. |
|---|
| 226 |
goto end |
|---|
| 227 |
:needrm |
|---|
| 228 |
del junk.bat |
|---|
| 229 |
echo You need 'rm' (the Unix file delete program) to build Emacs. |
|---|
| 230 |
goto end |
|---|
| 231 |
|
|---|
| 232 |
rem ---------------------------------------------------------------------- |
|---|
| 233 |
rem Auto-detect compiler if not specified, and validate GCC if chosen. |
|---|
| 234 |
:checkcompiler |
|---|
| 235 |
if (%COMPILER%)==(cl) goto compilercheckdone |
|---|
| 236 |
if (%COMPILER%)==(gcc) goto checkgcc |
|---|
| 237 |
|
|---|
| 238 |
echo Checking whether 'cl' is available... |
|---|
| 239 |
echo main(){} >junk.c |
|---|
| 240 |
cl -nologo -c junk.c |
|---|
| 241 |
if exist junk.obj goto clOK |
|---|
| 242 |
|
|---|
| 243 |
echo Checking whether 'gcc' is available... |
|---|
| 244 |
gcc -c junk.c |
|---|
| 245 |
if not exist junk.o goto nocompiler |
|---|
| 246 |
del junk.o |
|---|
| 247 |
|
|---|
| 248 |
:checkgcc |
|---|
| 249 |
Rem WARNING -- COMMAND.COM on some systems only looks at the first |
|---|
| 250 |
Rem 8 characters of a label. So do NOT be tempted to change |
|---|
| 251 |
Rem chkapi* into something fancier like checkw32api |
|---|
| 252 |
Rem You HAVE been warned! |
|---|
| 253 |
if (%nocygwin%) == (Y) goto chkapi |
|---|
| 254 |
echo Checking whether gcc requires '-mno-cygwin'... |
|---|
| 255 |
echo #include "cygwin/version.h" >junk.c |
|---|
| 256 |
echo main(){} >>junk.c |
|---|
| 257 |
echo gcc -c junk.c >>config.log |
|---|
| 258 |
gcc -c junk.c >>config.log 2>&1 |
|---|
| 259 |
if not exist junk.o goto chkapi |
|---|
| 260 |
echo gcc -mno-cygwin -c junk.c >>config.log |
|---|
| 261 |
gcc -mno-cygwin -c junk.c >>config.log 2>&1 |
|---|
| 262 |
if exist junk.o set nocygwin=Y |
|---|
| 263 |
rm -f junk.c junk.o |
|---|
| 264 |
|
|---|
| 265 |
:chkapi |
|---|
| 266 |
echo The failed program was: >>config.log |
|---|
| 267 |
type junk.c >>config.log |
|---|
| 268 |
rem ---------------------------------------------------------------------- |
|---|
| 269 |
rem Older versions of the Windows API headers either don't have any of |
|---|
| 270 |
rem the IMAGE_xxx definitions (the headers that come with Cygwin b20.1 |
|---|
| 271 |
rem are like this), or have a typo in the definition of |
|---|
| 272 |
rem IMAGE_FIRST_SECTION (the headers with gcc/mingw32 2.95 have this |
|---|
| 273 |
rem problem). The gcc/mingw32 2.95.2 headers are okay, as are distros |
|---|
| 274 |
rem of w32api-xxx.zip from Anders Norlander since 1999-11-18 at least. |
|---|
| 275 |
rem |
|---|
| 276 |
echo Checking whether W32 API headers are too old... |
|---|
| 277 |
echo #include "windows.h" >junk.c |
|---|
| 278 |
echo test(PIMAGE_NT_HEADERS pHeader) >>junk.c |
|---|
| 279 |
echo {PIMAGE_SECTION_HEADER pSection = IMAGE_FIRST_SECTION(pHeader);} >>junk.c |
|---|
| 280 |
if (%nocygwin%) == (Y) goto chkapi1 |
|---|
| 281 |
set cf=%usercflags% |
|---|
| 282 |
goto chkapi2 |
|---|
| 283 |
:chkapi1 |
|---|
| 284 |
set cf=%usercflags% -mno-cygwin |
|---|
| 285 |
:chkapi2 |
|---|
| 286 |
echo on |
|---|
| 287 |
gcc %cf% -c junk.c |
|---|
| 288 |
@echo off |
|---|
| 289 |
@echo gcc %cf% -c junk.c >>config.log |
|---|
| 290 |
gcc %cf% -c junk.c >>config.log 2>&1 |
|---|
| 291 |
set cf= |
|---|
| 292 |
if exist junk.o goto gccOk |
|---|
| 293 |
echo The failed program was: >>config.log |
|---|
| 294 |
type junk.c >>config.log |
|---|
| 295 |
|
|---|
| 296 |
:nocompiler |
|---|
| 297 |
echo. |
|---|
| 298 |
echo Configure failed. |
|---|
| 299 |
echo To configure Emacs for Windows, you need to have either |
|---|
| 300 |
echo gcc-2.95 or later with Mingw32 and the W32 API headers, |
|---|
| 301 |
echo or MSVC 2.x or later. |
|---|
| 302 |
del junk.c |
|---|
| 303 |
goto end |
|---|
| 304 |
|
|---|
| 305 |
:gccOk |
|---|
| 306 |
set COMPILER=gcc |
|---|
| 307 |
echo Using 'gcc' |
|---|
| 308 |
rm -f junk.c junk.o |
|---|
| 309 |
Rem It is not clear what GCC version began supporting -mtune |
|---|
| 310 |
Rem and pentium4 on x86, so check this explicitly. |
|---|
| 311 |
echo main(){} >junk.c |
|---|
| 312 |
echo gcc -c -O2 -mtune=pentium4 junk.c >>config.log |
|---|
| 313 |
gcc -c -O2 -mtune=pentium4 junk.c >>config.log 2>&1 |
|---|
| 314 |
if not errorlevel 1 goto gccMtuneOk |
|---|
| 315 |
echo The failed program was: >>config.log |
|---|
| 316 |
type junk.c >>config.log |
|---|
| 317 |
set mf=-mcpu=i686 |
|---|
| 318 |
rm -f junk.c junk.o |
|---|
| 319 |
goto compilercheckdone |
|---|
| 320 |
:gccMtuneOk |
|---|
| 321 |
echo GCC supports -mtune=pentium4 >>config.log |
|---|
| 322 |
set mf=-mtune=pentium4 |
|---|
| 323 |
rm -f junk.c junk.o |
|---|
| 324 |
goto compilercheckdone |
|---|
| 325 |
|
|---|
| 326 |
:clOk |
|---|
| 327 |
set COMPILER=cl |
|---|
| 328 |
rm -f junk.c junk.obj |
|---|
| 329 |
echo Using 'MSVC' |
|---|
| 330 |
|
|---|
| 331 |
:compilercheckdone |
|---|
| 332 |
|
|---|
| 333 |
rem ---------------------------------------------------------------------- |
|---|
| 334 |
rem Check for external image libraries. Since they are loaded |
|---|
| 335 |
rem dynamically, the libraries themselves do not need to be present |
|---|
| 336 |
rem at compile time, but the header files are required. |
|---|
| 337 |
|
|---|
| 338 |
set mingwflag= |
|---|
| 339 |
|
|---|
| 340 |
if (%nocygwin%) == (N) goto flagsOK |
|---|
| 341 |
set mingwflag=-mno-cygwin |
|---|
| 342 |
|
|---|
| 343 |
:flagsOK |
|---|
| 344 |
|
|---|
| 345 |
if (%pngsupport%) == (N) goto pngDone |
|---|
| 346 |
|
|---|
| 347 |
echo Checking for libpng... |
|---|
| 348 |
echo #include "png.h" >junk.c |
|---|
| 349 |
echo main (){} >>junk.c |
|---|
| 350 |
rem -o option is ignored with cl, but allows result to be consistent. |
|---|
| 351 |
echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log |
|---|
| 352 |
%COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log |
|---|
| 353 |
if exist junk.obj goto havePng |
|---|
| 354 |
|
|---|
| 355 |
echo ...png.h not found, building without PNG support. |
|---|
| 356 |
echo The failed program was: >>config.log |
|---|
| 357 |
type junk.c >>config.log |
|---|
| 358 |
set HAVE_PNG= |
|---|
| 359 |
goto :pngDone |
|---|
| 360 |
|
|---|
| 361 |
:havePng |
|---|
| 362 |
echo ...PNG header available, building with PNG support. |
|---|
| 363 |
set HAVE_PNG=1 |
|---|
| 364 |
|
|---|
| 365 |
:pngDone |
|---|
| 366 |
rm -f junk.c junk.obj |
|---|
| 367 |
|
|---|
| 368 |
if (%jpegsupport%) == (N) goto jpegDone |
|---|
| 369 |
|
|---|
| 370 |
echo Checking for jpeg-6b... |
|---|
| 371 |
echo #include "jconfig.h" >junk.c |
|---|
| 372 |
echo main (){} >>junk.c |
|---|
| 373 |
rem -o option is ignored with cl, but allows result to be consistent. |
|---|
| 374 |
echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log |
|---|
| 375 |
%COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log |
|---|
| 376 |
if exist junk.obj goto haveJpeg |
|---|
| 377 |
|
|---|
| 378 |
echo ...jconfig.h not found, building without JPEG support. |
|---|
| 379 |
echo The failed program was: >>config.log |
|---|
| 380 |
type junk.c >>config.log |
|---|
| 381 |
set HAVE_JPEG= |
|---|
| 382 |
goto :jpegDone |
|---|
| 383 |
|
|---|
| 384 |
:haveJpeg |
|---|
| 385 |
echo ...JPEG header available, building with JPEG support. |
|---|
| 386 |
set HAVE_JPEG=1 |
|---|
| 387 |
|
|---|
| 388 |
:jpegDone |
|---|
| 389 |
rm -f junk.c junk.obj |
|---|
| 390 |
|
|---|
| 391 |
if (%gifsupport%) == (N) goto gifDone |
|---|
| 392 |
|
|---|
| 393 |
echo Checking for libgif... |
|---|
| 394 |
echo #include "gif_lib.h" >junk.c |
|---|
| 395 |
echo main (){} >>junk.c |
|---|
| 396 |
rem -o option is ignored with cl, but allows result to be consistent. |
|---|
| 397 |
echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log |
|---|
| 398 |
%COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log |
|---|
| 399 |
if exist junk.obj goto haveGif |
|---|
| 400 |
|
|---|
| 401 |
echo ...gif_lib.h not found, building without GIF support. |
|---|
| 402 |
echo The failed program was: >>config.log |
|---|
| 403 |
type junk.c >>config.log |
|---|
| 404 |
set HAVE_GIF= |
|---|
| 405 |
goto :gifDone |
|---|
| 406 |
|
|---|
| 407 |
:haveGif |
|---|
| 408 |
echo ...GIF header available, building with GIF support. |
|---|
| 409 |
set HAVE_GIF=1 |
|---|
| 410 |
|
|---|
| 411 |
:gifDone |
|---|
| 412 |
rm -f junk.c junk.obj |
|---|
| 413 |
|
|---|
| 414 |
if (%tiffsupport%) == (N) goto tiffDone |
|---|
| 415 |
|
|---|
| 416 |
echo Checking for tiff... |
|---|
| 417 |
echo #include "tiffio.h" >junk.c |
|---|
| 418 |
echo main (){} >>junk.c |
|---|
| 419 |
rem -o option is ignored with cl, but allows result to be consistent. |
|---|
| 420 |
echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log |
|---|
| 421 |
%COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log |
|---|
| 422 |
if exist junk.obj goto haveTiff |
|---|
| 423 |
|
|---|
| 424 |
echo ...tiffio.h not found, building without TIFF support. |
|---|
| 425 |
echo The failed program was: >>config.log |
|---|
| 426 |
type junk.c >>config.log |
|---|
| 427 |
set HAVE_TIFF= |
|---|
| 428 |
goto :tiffDone |
|---|
| 429 |
|
|---|
| 430 |
:haveTiff |
|---|
| 431 |
echo ...TIFF header available, building with TIFF support. |
|---|
| 432 |
set HAVE_TIFF=1 |
|---|
| 433 |
|
|---|
| 434 |
:tiffDone |
|---|
| 435 |
rm -f junk.c junk.obj |
|---|
| 436 |
|
|---|
| 437 |
if (%xpmsupport%) == (N) goto xpmDone |
|---|
| 438 |
|
|---|
| 439 |
echo Checking for libXpm... |
|---|
| 440 |
echo #define FOR_MSW 1 >junk.c |
|---|
| 441 |
echo #include "X11/xpm.h" >>junk.c |
|---|
| 442 |
echo main (){} >>junk.c |
|---|
| 443 |
rem -o option is ignored with cl, but allows result to be consistent. |
|---|
| 444 |
echo %COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >>config.log |
|---|
| 445 |
%COMPILER% %usercflags% %mingwflag% -c junk.c -o junk.obj >junk.out 2>>config.log |
|---|
| 446 |
if exist junk.obj goto haveXpm |
|---|
| 447 |
|
|---|
| 448 |
echo ...X11/xpm.h not found, building without XPM support. |
|---|
| 449 |
echo The failed program was: >>config.log |
|---|
| 450 |
type junk.c >>config.log |
|---|
| 451 |
set HAVE_XPM= |
|---|
| 452 |
goto :xpmDone |
|---|
| 453 |
|
|---|
| 454 |
:haveXpm |
|---|
| 455 |
echo ...XPM header available, building with XPM support. |
|---|
| 456 |
set HAVE_XPM=1 |
|---|
| 457 |
|
|---|
| 458 |
:xpmDone |
|---|
| 459 |
rm -f junk.c junk.obj junk.err junk.out |
|---|
| 460 |
|
|---|
| 461 |
rem ---------------------------------------------------------------------- |
|---|
| 462 |
:genmakefiles |
|---|
| 463 |
echo Generating makefiles |
|---|
| 464 |
if %COMPILER% == gcc set MAKECMD=gmake |
|---|
| 465 |
if %COMPILER% == cl set MAKECMD=nmake |
|---|
| 466 |
|
|---|
| 467 |
rem Pass on chosen settings to makefiles. |
|---|
| 468 |
rem NB. Be very careful to not have a space before redirection symbols |
|---|
| 469 |
rem except when there is a preceding digit, when a space is required. |
|---|
| 470 |
rem |
|---|
| 471 |
echo # Start of settings from configure.bat >config.settings |
|---|
| 472 |
echo COMPILER=%COMPILER%>>config.settings |
|---|
| 473 |
if not "(%mf%)" == "()" echo MCPU_FLAG=%mf%>>config.settings |
|---|
| 474 |
if (%nodebug%) == (Y) echo NODEBUG=1 >>config.settings |
|---|
| 475 |
if (%noopt%) == (Y) echo NOOPT=1 >>config.settings |
|---|
| 476 |
if (%nocygwin%) == (Y) echo NOCYGWIN=1 >>config.settings |
|---|
| 477 |
if not "(%prefix%)" == "()" echo INSTALL_DIR=%prefix%>>config.settings |
|---|
| 478 |
rem We go thru docflags because usercflags could be "-DFOO=bar" -something |
|---|
| 479 |
rem and the if command cannot cope with this |
|---|
| 480 |
for %%v in (%usercflags%) do if not (%%v)==() set docflags=Y |
|---|
| 481 |
if (%docflags%)==(Y) echo USER_CFLAGS=%usercflags%>>config.settings |
|---|
| 482 |
for %%v in (%userldflags%) do if not (%%v)==() set doldflags=Y |
|---|
| 483 |
if (%doldflags%)==(Y) echo USER_LDFLAGS=%userldflags%>>config.settings |
|---|
| 484 |
echo # End of settings from configure.bat>>config.settings |
|---|
| 485 |
echo. >>config.settings |
|---|
| 486 |
|
|---|
| 487 |
copy config.nt config.tmp |
|---|
| 488 |
echo. >>config.tmp |
|---|
| 489 |
echo /* Start of settings from configure.bat. */ >>config.tmp |
|---|
| 490 |
if (%docflags%) == (Y) echo #define USER_CFLAGS " %usercflags%">>config.tmp |
|---|
| 491 |
if (%doldflags%) == (Y) echo #define USER_LDFLAGS " %userldflags%">>config.tmp |
|---|
| 492 |
if not "(%HAVE_PNG%)" == "()" echo #define HAVE_PNG 1 >>config.tmp |
|---|
| 493 |
if not "(%HAVE_JPEG%)" == "()" echo #define HAVE_JPEG 1 >>config.tmp |
|---|
| 494 |
if not "(%HAVE_GIF%)" == "()" echo #define HAVE_GIF 1 >>config.tmp |
|---|
| 495 |
if not "(%HAVE_TIFF%)" == "()" echo #define HAVE_TIFF 1 >>config.tmp |
|---|
| 496 |
if not "(%HAVE_XPM%)" == "()" echo #define HAVE_XPM 1 >>config.tmp |
|---|
| 497 |
echo /* End of settings from configure.bat. */ >>config.tmp |
|---|
| 498 |
|
|---|
| 499 |
Rem See if fc.exe returns a meaningful exit status. If it does, we |
|---|
| 500 |
Rem might as well avoid unnecessary overwriting of config.h and epaths.h, |
|---|
| 501 |
Rem since this forces recompilation of every source file. |
|---|
| 502 |
if exist foo.bar del foo.bar |
|---|
| 503 |
fc /b foo.bar foo.bar >nul 2>&1 |
|---|
| 504 |
if not errorlevel 2 goto doCopy |
|---|
| 505 |
fc /b config.tmp ..\src\config.h >nul 2>&1 |
|---|
| 506 |
if errorlevel 1 goto doCopy |
|---|
| 507 |
fc /b paths.h ..\src\epaths.h >nul 2>&1 |
|---|
| 508 |
if errorlevel 0 goto dontCopy |
|---|
| 509 |
:doCopy |
|---|
| 510 |
copy config.tmp ..\src\config.h |
|---|
| 511 |
copy paths.h ..\src\epaths.h |
|---|
| 512 |
|
|---|
| 513 |
:dontCopy |
|---|
| 514 |
if exist config.tmp del config.tmp |
|---|
| 515 |
copy /b config.settings+%MAKECMD%.defs+..\nt\makefile.w32-in ..\nt\makefile |
|---|
| 516 |
copy /b config.settings+%MAKECMD%.defs+..\lib-src\makefile.w32-in ..\lib-src\makefile |
|---|
| 517 |
copy /b config.settings+%MAKECMD%.defs+..\src\makefile.w32-in ..\src\makefile |
|---|
| 518 |
copy /b config.settings+%MAKECMD%.defs+..\man\makefile.w32-in ..\man\makefile |
|---|
| 519 |
copy /b config.settings+%MAKECMD%.defs+..\lispref\makefile.w32-in ..\lispref\makefile |
|---|
| 520 |
copy /b config.settings+%MAKECMD%.defs+..\lispintro\makefile.w32-in ..\lispintro\makefile |
|---|
| 521 |
if exist ..\lisp\makefile rm -f ../lisp/[Mm]akefile |
|---|
| 522 |
copy /b config.settings+%MAKECMD%.defs+..\lisp\makefile.w32-in ..\lisp\makefile |
|---|
| 523 |
rem Use the default (no-op) Makefile.in if the nt version is not present. |
|---|
| 524 |
if exist ..\leim\makefile.w32-in copy /b config.settings+%MAKECMD%.defs+..\leim\makefile.w32-in ..\leim\makefile |
|---|
| 525 |
if not exist ..\leim\makefile.w32-in copy /b config.settings+%MAKECMD%.defs+..\leim\Makefile.in ..\leim\makefile |
|---|
| 526 |
del config.settings |
|---|
| 527 |
|
|---|
| 528 |
Rem Some people use WinZip which doesn't create empty directories! |
|---|
| 529 |
if not exist ..\site-lisp\nul mkdir ..\site-lisp\ |
|---|
| 530 |
Rem Update subdirs.el only if it is different or fc.exe doesn't work. |
|---|
| 531 |
if exist foo.bar del foo.bar |
|---|
| 532 |
fc /b foo.bar foo.bar >nul 2>&1 |
|---|
| 533 |
if not errorlevel 2 goto doUpdateSubdirs |
|---|
| 534 |
fc /b subdirs.el ..\site-lisp\subdirs.el >nul 2>&1 |
|---|
| 535 |
if not errorlevel 1 goto dontUpdateSubdirs |
|---|
| 536 |
:doUpdateSubdirs |
|---|
| 537 |
if exist ..\site-lisp\subdirs.el del ..\site-lisp\subdirs.el |
|---|
| 538 |
copy subdirs.el ..\site-lisp\subdirs.el |
|---|
| 539 |
|
|---|
| 540 |
:dontUpdateSubdirs |
|---|
| 541 |
echo. |
|---|
| 542 |
echo Emacs successfully configured. |
|---|
| 543 |
echo Emacs successfully configured. >>config.log |
|---|
| 544 |
echo Run `%MAKECMD%' to build, then run `%MAKECMD% install' to install. |
|---|
| 545 |
goto end |
|---|
| 546 |
|
|---|
| 547 |
:SmallEnv |
|---|
| 548 |
echo Your environment size is too small. Please enlarge it and rerun configure. |
|---|
| 549 |
echo For example, type "command.com /e:2048" to have 2048 bytes available. |
|---|
| 550 |
set $foo$= |
|---|
| 551 |
:end |
|---|
| 552 |
set prefix= |
|---|
| 553 |
set nodebug= |
|---|
| 554 |
set noopt= |
|---|
| 555 |
set nocygwin= |
|---|
| 556 |
set COMPILER= |
|---|
| 557 |
set MAKECMD= |
|---|
| 558 |
set usercflags= |
|---|
| 559 |
set userldflags= |
|---|
| 560 |
set mingwflag= |
|---|
| 561 |
set mf= |
|---|
| 562 |
|
|---|
| 563 |
goto skipArchTag |
|---|
| 564 |
arch-tag: 300d20a4-1675-4e75-b615-7ce1a8c5376c |
|---|
| 565 |
:skipArchTag |
|---|