1@echo off 2Rem Configure Bison for DJGPP. 3 4Rem WARNING WARNING WARNING: This file needs to have DOS CRLF end-of-line 5Rem format, or else stock DOS/Windows shells will refuse to run it. 6 7Rem Copyright (C) 2005-2012 Free Software Foundation, Inc. 8 9Rem This program is free software: you can redistribute it and/or modify 10Rem it under the terms of the GNU General Public License as published by 11Rem the Free Software Foundation, either version 3 of the License, or 12Rem (at your option) any later version. 13Rem 14Rem This program is distributed in the hope that it will be useful, 15Rem but WITHOUT ANY WARRANTY; without even the implied warranty of 16Rem MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 17Rem GNU General Public License for more details. 18Rem 19Rem You should have received a copy of the GNU General Public License 20Rem along with this program. If not, see <http://www.gnu.org/licenses/>. 21 22echo Configuring Bison for DJGPP v2.x... 23 24Rem The SmallEnv tests protect against fixed and too small size 25Rem of the environment in stock DOS shell. 26 27Rem Find out if NLS is wanted or not, 28Rem if dependency-tracking is wanted or not, 29Rem if caching is wanted or not 30Rem and where the sources are. 31Rem We always default to NLS support, 32Rem no dependency tracking 33Rem and to in place configuration. 34set ARGS= 35set NLS=enabled 36if not "%NLS%" == "enabled" goto SmallEnv 37set CACHING=enabled 38if not "%CACHING%" == "enabled" goto SmallEnv 39set DEPENDENCY_TRACKING=disabled 40if not "%DEPENDENCY_TRACKING%" == "disabled" goto SmallEnv 41set LIBICONV_PREFIX=disabled 42if not "%LIBICONV_PREFIX%" == "disabled" goto SmallEnv 43set LIBINTL_PREFIX=disabled 44if not "%LIBINTL_PREFIX%" == "disabled" goto SmallEnv 45set HTML=enabled 46if not "%HTML%" == "enabled" goto SmallEnv 47set XSRC=. 48if not "%XSRC%" == "." goto SmallEnv 49 50Rem Loop over all arguments. 51Rem Special arguments are: NLS, XSRC, CACHE, STATIC_LIBS, LIBICONV_PREFIX, LIBINTL_PREFIX and DEPS. 52Rem All other arguments are stored into ARGS. 53:ArgLoop 54if "%1" == "nls" goto NextArgument 55if "%1" == "NLS" goto NextArgument 56if "%1" == "no-nls" goto NoNLS 57if "%1" == "no-NLS" goto NoNLS 58if "%1" == "NO-NLS" goto NoNLS 59goto CachingOption 60:NoNLS 61if "%1" == "no-nls" set NLS=disabled 62if "%1" == "no-NLS" set NLS=disabled 63if "%1" == "NO-NLS" set NLS=disabled 64if not "%NLS%" == "disabled" goto SmallEnv 65goto NextArgument 66:CachingOption 67if "%1" == "cache" goto NextArgument 68if "%1" == "CACHE" goto NextArgument 69if "%1" == "no-cache" goto NoCaching 70if "%1" == "no-CACHE" goto NoCaching 71if "%1" == "NO-CACHE" goto NoCaching 72goto DependencyOption 73:NoCaching 74if "%1" == "no-cache" set CACHING=disabled 75if "%1" == "no-CACHE" set CACHING=disabled 76if "%1" == "NO-CACHE" set CACHING=disabled 77if not "%CACHING%" == "disabled" goto SmallEnv 78goto NextArgument 79:DependencyOption 80if "%1" == "no-dep" goto NextArgument 81if "%1" == "no-DEP" goto NextArgument 82if "%1" == "NO-DEP" goto NextArgument 83if "%1" == "dep" goto DependecyTraking 84if "%1" == "DEP" goto DependecyTraking 85goto LibiconvPrefixOption 86:DependecyTraking 87if "%1" == "dep" set DEPENDENCY_TRACKING=enabled 88if "%1" == "DEP" set DEPENDENCY_TRACKING=enabled 89if not "%DEPENDENCY_TRACKING%" == "enabled" goto SmallEnv 90goto NextArgument 91:LibiconvPrefixOption 92if "%1" == "no-libiconvprefix" goto NextArgument 93if "%1" == "no-LIBICONVPREFIX" goto NextArgument 94if "%1" == "NO-LIBICONVPREFIX" goto NextArgument 95if "%1" == "libiconvprefix" goto WithLibiconvPrefix 96if "%1" == "LIBICONVPREFIX" goto WithLibiconvPrefix 97goto LibintlPrefixOption 98:WithLibiconvPrefix 99if "%1" == "libiconvprefix" set LIBICONV_PREFIX=enabled 100if "%1" == "LIBICONVPREFIX" set LIBICONV_PREFIX=enabled 101if not "%LIBICONV_PREFIX%" == "enabled" goto SmallEnv 102goto NextArgument 103:LibintlPrefixOption 104if "%1" == "no-libiconvprefix" goto NextArgument 105if "%1" == "no-LIBICONVPREFIX" goto NextArgument 106if "%1" == "NO-LIBICONVPREFIX" goto NextArgument 107if "%1" == "libintlprefix" goto _WithLibintlPrefix 108if "%1" == "LIBINTLPREFIX" goto _WithLibintlPrefix 109goto HTMLOption 110:_WithLibintlPrefix 111if "%1" == "libintlprefix" set LIBINTL_PREFIX=enabled 112if "%1" == "LIBINTLPREFIX" set LIBINTL_PREFIX=enabled 113if not "%LIBINTL_PREFIX%" == "enabled" goto SmallEnv 114:HTMLOption 115if "%1" == "withhtml" goto NextArgument 116if "%1" == "withHTML" goto NextArgument 117if "%1" == "WITHHTML" goto NextArgument 118if "%1" == "withouthtml" goto _WithoutHTML 119if "%1" == "withoutHTML" goto _WithoutHTML 120if "%1" == "WITHOUTHTML" goto _WithoutHTML 121goto SrcDirOption 122:_WithoutHTML 123if "%1" == "withouthtml" set HTML=disabled 124if "%1" == "withoutHTML" set HTML=disabled 125if "%1" == "WITHOUTHTML" set HTML=disabled 126if not "%HTML%" == "disabled" goto SmallEnv 127goto NextArgument 128:SrcDirOption 129echo %1 | grep -q "/" 130if errorlevel 1 goto CollectArgument 131set XSRC=%1 132if not "%XSRC%" == "%1" goto SmallEnv 133goto NextArgument 134:CollectArgument 135set _ARGS=%ARGS% %1 136if not "%_ARGS%" == "%ARGS% %1" if not "%_ARGS%" == "%ARGS%%1" goto SmallEnv 137echo %_ARGS% | grep -q "[^ ]" 138if not errorlevel 0 set ARGS=%_ARGS% 139set _ARGS= 140:NextArgument 141shift 142if not "%1" == "" goto ArgLoop 143 144Rem Create an arguments file for the configure script. 145echo --srcdir=%XSRC% > args 146if "%CACHING%" == "enabled" echo --cache-file=%XSRC%/djgpp/config.cache >> args 147if "%DEPENDENCY_TRACKING%" == "enabled" echo --enable-dependency-tracking >> args 148if "%DEPENDENCY_TRACKING%" == "disabled" echo --disable-dependency-tracking >> args 149if "%LIBICONV_PREFIX%" == "enabled" echo --with-libiconv-prefix >> args 150if "%LIBICONV_PREFIX%" == "disabled" echo --without-libiconv-prefix >> args 151if "%LIBINTL_PREFIX%" == "enabled" echo --with-libintl-prefix >> args 152if "%LIBINTL_PREFIX%" == "disabled" echo --without-libintl-prefix >> args 153if "%HTML%" == "enabled" echo --enable-html >> args 154if "%HTML%" == "disabled" echo --disable-html >> args 155if not "%ARGS%" == "" echo %ARGS% >> args 156set ARGS= 157set CACHING= 158set DEPENDENCY_TRACKING= 159set LIBICONV_PREFIX= 160set LIBINTL_PREFIX= 161set HTML= 162 163if "%XSRC%" == "." goto InPlace 164 165:NotInPlace 166redir -e /dev/null update %XSRC%/configure.org ./configure 167test -f ./configure 168if errorlevel 1 update %XSRC%/configure ./configure 169 170:InPlace 171Rem Update configuration files 172echo Updating configuration scripts... 173test -f ./configure.org 174if errorlevel 1 update configure configure.org 175sed -f %XSRC%/djgpp/config.sed configure.org > configure 176if errorlevel 1 goto SedError 177 178Rem Make sure they have a config.site file 179set CONFIG_SITE=%XSRC%/djgpp/config.site 180if not "%CONFIG_SITE%" == "%XSRC%/djgpp/config.site" goto SmallEnv 181 182Rem inttypes_.h and inttypes.h map to the same 8.3 alias. 183test -f %XSRC%/lib/inttypes_.h 184if not errorlevel 1 mv -f %XSRC%/lib/inttypes_.h %XSRC%/lib/_inttypes.h 185 186Rem Make sure crucial file names are not munged by unpacking 187test -f %XSRC%/po/Makefile.in.in 188if not errorlevel 1 mv -f %XSRC%/po/Makefile.in.in %XSRC%/po/Makefile.in-in 189test -f %XSRC%/po/Makefile.in-in 190if errorlevel 1 mv -f %XSRC%/po/Makefile.in %XSRC%/po/Makefile.in-in 191test -f %XSRC%/po/Makefile.in-in 192if errorlevel 1 mv -f %XSRC%/po/Makefile.inin %XSRC%/po/Makefile.in-in 193test -f %XSRC%/po/Makefile.in-in 194if errorlevel 1 mv -f %XSRC%/po/Makefile.in_in %XSRC%/po/Makefile.in-in 195test -f %XSRC%/po/Makefile.in-in 196if errorlevel 1 mv -f %XSRC%/po/Makefile_in.in %XSRC%/po/Makefile.in-in 197test -f %XSRC%/runtime-po/Makefile.in.in 198if not errorlevel 1 mv -f %XSRC%/runtime-po/Makefile.in.in %XSRC%/runtime-po/Makefile.in-in 199test -f %XSRC%/runtime-po/Makefile.in-in 200if errorlevel 1 mv -f %XSRC%/runtime-po/Makefile.in %XSRC%/runtime-po/Makefile.in-in 201test -f %XSRC%/runtime-po/Makefile.in-in 202if errorlevel 1 mv -f %XSRC%/runtime-po/Makefile.inin %XSRC%/runtime-po/Makefile.in-in 203test -f %XSRC%/runtime-po/Makefile.in-in 204if errorlevel 1 mv -f %XSRC%/runtime-po/Makefile.in_in %XSRC%/runtime-po/Makefile.in-in 205test -f %XSRC%/runtime-po/Makefile.in-in 206if errorlevel 1 mv -f %XSRC%/runtime-po/Makefile_in.in %XSRC%/runtime-po/Makefile.in-in 207test -f %XSRC%/data/c++.m4 208if not errorlevel 1 mv -f %XSRC%/data/c++.m4 %XSRC%/data/cxx.m4 209test -f %XSRC%/data/cxx.m4 210if errorlevel 1 mv -f %XSRC%/data/cpp.m4 %XSRC%/data/cxx.m4 211test -f %XSRC%/data/c++-skel.m4 212if not errorlevel 1 mv -f %XSRC%/data/c++-skel.m4 %XSRC%/data/cxx-skel.m4 213test -f %XSRC%/data/cxx-skel.m4 214if errorlevel 1 mv -f %XSRC%/data/cpp-skel.m4 %XSRC%/data/cxx-skel.m4 215test -f %XSRC%/build-aux/javacomp.sh.in 216if not errorlevel 1 mv -f %XSRC%/build-aux/javacomp.sh.in %XSRC%/build-aux/javacomp.sh-in 217test -f %XSRC%/build-aux/javacomp.sh-in 218if errorlevel 1 mv -f %XSRC%/build-aux/javacomp.sh %XSRC%/build-aux/javacomp.sh-in 219test -f %XSRC%/build-aux/javacomp.sh-in 220if errorlevel 1 mv -f %XSRC%/build-aux/javacomp.shin %XSRC%/build-aux/javacomp.sh-in 221test -f %XSRC%/build-aux/javacomp.sh-in 222if errorlevel 1 mv -f %XSRC%/build-aux/javacomp.sh_in %XSRC%/build-aux/javacomp.sh-in 223test -f %XSRC%/build-aux/javacomp.sh-in 224if errorlevel 1 mv -f %XSRC%/build-aux/javacomp.sh.in %XSRC%/build-aux/javacomp.sh-in 225test -f %XSRC%/build-aux/javaexec.sh.in 226if not errorlevel 1 mv -f %XSRC%/build-aux/javaexec.sh.in %XSRC%/build-aux/javaexec.sh-in 227test -f %XSRC%/build-aux/javaexec.sh-in 228if errorlevel 1 mv -f %XSRC%/build-aux/javaexec.sh %XSRC%/build-aux/javaexec.sh-in 229test -f %XSRC%/build-aux/javaexec.sh-in 230if errorlevel 1 mv -f %XSRC%/build-aux/javaexec.shin %XSRC%/build-aux/javaexec.sh-in 231test -f %XSRC%/build-aux/javaexec.sh-in 232if errorlevel 1 mv -f %XSRC%/build-aux/javaexec.sh_in %XSRC%/build-aux/javaexec.sh-in 233test -f %XSRC%/build-aux/javaexec.sh-in 234if errorlevel 1 mv -f %XSRC%/build-aux/javaexec_sh.in %XSRC%/build-aux/javaexec.sh-in 235test -f %XSRC%/doc/yacc.1.in 236if not errorlevel 1 mv -f %XSRC%/doc/yacc.1.in %XSRC%/doc/yacc.1-in 237test -f %XSRC%/doc/yacc.1-in 238if errorlevel 1 mv -f %XSRC%/doc/yacc.1 %XSRC%/doc/yacc.1-in 239test -f %XSRC%/doc/yacc.1-in 240if errorlevel 1 mv -f %XSRC%/doc/yacc.1in %XSRC%/doc/yacc.1-in 241test -f %XSRC%/doc/yacc.1-in 242if errorlevel 1 mv -f %XSRC%/doc/yacc.1_in %XSRC%/doc/yacc.1-in 243test -f %XSRC%/doc/yacc.1-in 244if errorlevel 1 mv -f %XSRC%/doc/yacc_1.in %XSRC%/doc/yacc.1-in 245test -f %XSRC%/etc/bench.pl.in 246if not errorlevel 1 mv -f %XSRC%/etc/bench.pl.in %XSRC%/etc/bench.pl-in 247test -f %XSRC%/etc/bench.pl-in 248if errorlevel 1 mv -f %XSRC%/etc/bench.pl %XSRC%/etc/bench.pl-in 249test -f %XSRC%/etc/bench.pl-in 250if errorlevel 1 mv -f %XSRC%/etc/bench.plin %XSRC%/etc/bench.pl-in 251test -f %XSRC%/etc/bench.pl-in 252if errorlevel 1 mv -f %XSRC%/etc/bench.pl_in %XSRC%/etc/bench.pl-in 253test -f %XSRC%/etc/bench.pl-in 254if errorlevel 1 mv -f %XSRC%/etc/bench_pl.in %XSRC%/etc/bench.pl-in 255 256:scan_gram_c_Test 257test -f %XSRC%/src/c-scan-gram.c 258if not errorlevel 1 goto scan_skel_c_Test 259test -f %XSRC%/src/scan-gram-c.c 260if not errorlevel 1 mv -f %XSRC%/src/scan-gram-c.c %XSRC%/src/c-scan-gram.c 261:scan_skel_c_Test 262test -f %XSRC%/src/c-scan-skel.c 263if not errorlevel 1 goto FixFiles 264test -f %XSRC%/src/scan-skel-c.c 265if not errorlevel 1 mv -f %XSRC%/src/scan-skel-c.c %XSRC%/src/c-scan-skel.c 266 267:FixFiles 268Rem Fix data/lalr1.cc and data/location.cc to reflect the renaming of c++.m4 269sed "s/c++\.m4/cxx.m4/" %XSRC%/data/lalr1.cc > lalr1.cc 270if errorlevel 1 goto lalr1_ccFileError 271mv ./lalr1.cc %XSRC%/data/lalr1.cc 272sed "s/c++\.m4/cxx.m4/" %XSRC%/data/location.cc > location.cc 273if errorlevel 1 goto location_ccFileError 274mv ./location.cc %XSRC%/data/location.cc 275sed "s/c++\.m4/cxx.m4/" %XSRC%/data/glr.cc > glr.cc 276if errorlevel 1 goto glr_ccFileError 277mv ./glr.cc %XSRC%/data/glr.cc 278 279Rem Fix src/getargs.c to reflect the renaming of c++-skel.m4 280sed "s/c++-skel\.m4/cxx-skel.m4/" %XSRC%/src/getargs.c > getargs.c 281if errorlevel 1 goto getargs_cFileError 282mv ./getargs.c %XSRC%/src/getargs.c 283 284Rem Define DJGPP specific defs in config.hin 285echo Editing config.hin... 286test -f %XSRC%/lib/config_h.org 287if errorlevel 1 update %XSRC%/lib/config.hin %XSRC%/lib/config_h.org 288sed -f %XSRC%/djgpp/config_h.sed %XSRC%/lib/config_h.org > config.hin 289if errorlevel 1 goto SedError2 290mv -f config.hin %XSRC%/lib/config.hin 291 292 293Rem Fixing ilicit testsuite file name. 294test -f %XSRC%/tests/c++.at 295if not errorlevel 1 mv -f %XSRC%/tests/c++.at %XSRC%/tests/cxx.at 296 297test -f %XSRC%/tests/testsuite.org 298if errorlevel 1 update %XSRC%/tests/testsuite %XSRC%/tests/testsuite.org 299sed -f %XSRC%/djgpp/testsuite.sed %XSRC%/tests/testsuite.org > testsuite.tmp 300if errorlevel 1 goto SedError3 301mv -f ./testsuite.tmp %XSRC%/tests/testsuite 302 303Rem Fixing ilicit calc++ file names in the calc++ directory. 304test -d %XSRC%/examples/calc++ 305if not errorlevel 1 mv -f %XSRC%/examples/calc++ %XSRC%/examples/calcxx 306test -d %XSRC%/examples/calcxx 307if errorlevel 1 mv -f %XSRC%/examples/calcpp %XSRC%/examples/calcxx 308test -f %XSRC%/examples/calcxx/calc++-scanner.cc 309if not errorlevel 1 mv -f %XSRC%/examples/calcxx/calc++-scanner.cc %XSRC%/examples/calcxx/calcxx-scanner.cc 310test -f %XSRC%/examples/calcxx/calcxx-scanner.cc 311if errorlevel 1 mv -f %XSRC%/examples/calcxx/calcpp-scanner.cc %XSRC%/examples/calcxx/calcxx-scanner.cc 312test -f %XSRC%/examples/calcxx/calc++-scanner.ll 313if not errorlevel 1 mv -f %XSRC%/examples/calcxx/calc++-scanner.ll %XSRC%/examples/calcxx/calcxx-scanner.ll 314test -f %XSRC%/examples/calcxx/calcxx-scanner.ll 315if errorlevel 1 mv -f %XSRC%/examples/calcxx/calcpp-scanner.ll %XSRC%/examples/calcxx/calcxx-scanner.ll 316test -f %XSRC%/examples/calcxx/calc++-driver.cc 317if not errorlevel 1 mv -f %XSRC%/examples/calcxx/calc++-driver.cc %XSRC%/examples/calcxx/calcxx-driver.cc 318test -f %XSRC%/examples/calcxx/calcxx-driver.cc 319if errorlevel 1 mv -f %XSRC%/examples/calcxx/calcpp-driver.cc %XSRC%/examples/calcxx/calcxx-driver.cc 320test -f %XSRC%/examples/calcxx/calc++-driver.hh 321if not errorlevel 1 mv -f %XSRC%/examples/calcxx/calc++-driver.hh %XSRC%/examples/calcxx/calcxx-driver.hh 322test -f %XSRC%/examples/calcxx/calcxx-driver.hh 323if errorlevel 1 mv -f %XSRC%/examples/calcxx/calcpp-driver.hh %XSRC%/examples/calcxx/calcxx-driver.hh 324test -f %XSRC%/examples/calcxx/calc++-parser.cc 325if not errorlevel 1 mv -f %XSRC%/examples/calcxx/calc++-parser.cc %XSRC%/examples/calcxx/calcxx-parser.cc 326test -f %XSRC%/examples/calcxx/calcxx-parser.cc 327if errorlevel 1 mv -f %XSRC%/examples/calcxx/calcpp-parser.cc %XSRC%/examples/calcxx/calcxx-parser.cc 328test -f %XSRC%/examples/calcxx/calc++-parser.hh 329if not errorlevel 1 mv -f %XSRC%/examples/calcxx/calc++-parser.hh %XSRC%/examples/calcxx/calcxx-parser.hh 330test -f %XSRC%/examples/calcxx/calcxx-parser.hh 331if errorlevel 1 mv -f %XSRC%/examples/calcxx/calcpp-parser.hh %XSRC%/examples/calcxx/calcxx-parser.hh 332test -f %XSRC%/examples/calcxx/calc++-parser.stamp 333if not errorlevel 1 mv -f %XSRC%/examples/calcxx/calc++-parser.stamp %XSRC%/examples/calcxx/calcxx-parser.stamp 334test -f %XSRC%/examples/calcxx/calcxx-parser.stamp 335if errorlevel 1 mv -f %XSRC%/examples/calcxx/calcpp-parser.stamp %XSRC%/examples/calcxx/calcxx-parser.stamp 336test -f %XSRC%/examples/calcxx/calc++-parser.yy 337if not errorlevel 1 mv -f %XSRC%/examples/calcxx/calc++-parser.yy %XSRC%/examples/calcxx/calcxx-parser.yy 338test -f %XSRC%/examples/calcxx/calcxx-parser.yy 339if errorlevel 1 mv -f %XSRC%/examples/calcxx/calcpp-parser.yy %XSRC%/examples/calcxx/calcxx-parser.yy 340test -f %XSRC%/examples/calcxx/calc++.cc 341if not errorlevel 1 mv -f %XSRC%/examples/calcxx/calc++.cc %XSRC%/examples/calcxx/calcxx.cc 342test -f %XSRC%/examples/calcxx/calcxx.cc 343if errorlevel 1 mv -f %XSRC%/examples/calcxx/calcpp.cc %XSRC%/examples/calcxx/calcxx.cc 344 345Rem Fixing #include lines in calcxx files. 346sed "/#[ ]*include/s/++/xx/" %XSRC%/examples/calcxx/calcxx.cc > calcxx.cc 347if errorlevel 1 goto calcxxFileError 348mv ./calcxx.cc %XSRC%/examples/calcxx/calcxx.cc 349sed "/#[ ]*include/s/++/xx/" %XSRC%/examples/calcxx/calcxx-driver.cc > calcxx-driver.cc 350if errorlevel 1 goto calcxxFileError 351mv ./calcxx-driver.cc %XSRC%/examples/calcxx/calcxx-driver.cc 352sed "/#[ ]*include/s/++/xx/" %XSRC%/examples/calcxx/calcxx-driver.hh > calcxx-driver.hh 353if errorlevel 1 goto calcxxFileError 354mv ./calcxx-driver.hh %XSRC%/examples/calcxx/calcxx-driver.hh 355sed "/#[ ]*include/s/++/xx/" %XSRC%/examples/calcxx/calcxx-parser.cc > calcxx-parser.cc 356if errorlevel 1 goto calcxxFileError 357mv ./calcxx-parser.cc %XSRC%/examples/calcxx/calcxx-parser.cc 358sed "/#[ ]*include/s/++/xx/" %XSRC%/examples/calcxx/calcxx-parser.hh > calcxx-parser.hh 359if errorlevel 1 goto calcxxFileError 360mv ./calcxx-parser.hh %XSRC%/examples/calcxx/calcxx-parser.hh 361:sed "/#[ ]*include/s/++/xx/" %XSRC%/examples/calcxx/calcxx-parser.yy > calcxx-parser.yy 362:if errorlevel 1 goto calcxxFileError 363:mv ./calcxx-parser.yy %XSRC%/examples/calcxx/calcxx-parser.yy 364sed "/#[ ]*include/s/++/xx/" %XSRC%/examples/calcxx/calcxx-scanner.cc > calcxx-scanner.cc 365if errorlevel 1 goto calcxxFileError 366mv ./calcxx-scanner.cc %XSRC%/examples/calcxx/calcxx-scanner.cc 367:sed "/#[ ]*include/s/++/xx/" %XSRC%/examples/calcxx/calcxx-scanner.ll > calcxx-scanner.ll 368:if errorlevel 1 goto calcxxFileError 369:mv ./calcxx-scanner.ll %XSRC%/examples/calcxx/calcxx-scanner.ll 370sed "s/calc++/calcxx/" %XSRC%/examples/calcxx/test > test 371if errorlevel 1 goto calcxxFileError 372mv ./test %XSRC%/examples/calcxx/test 373 374 375Rem Fixing the scanner files to make file names 8.3 valid. 376Rem Use only if you want to change the scan-gram.l and scan-skel.l files. 377: sed "/outfile=/s/\.yy/yy/" %XSRC%/src/scan-gram.l > scan-gram.l 378: if errorlevel 1 goto ScannerFileError 379: mv ./scan-gram.l %XSRC%/src/scan-gram.l 380: sed "/outfile=/s/\.yy/yy/" %XSRC%/src/scan-skel.l > scan-skel.l 381: if errorlevel 1 goto ScannerFileError 382: mv ./scan-skel.l %XSRC%/src/scan-skel.l 383 384 385Rem This is required because DOS/Windows are case-insensitive 386Rem to file names, and "make install" will do nothing if Make 387Rem finds a file called `install'. 388if exist INSTALL ren INSTALL INSTALL.txt 389 390Rem Set SHELL to a sane default or some configure tests stop working 391Rem if the package is configured across partitions. 392if not "%SHELL%" == "" goto HomeName 393set SHELL=/bin/sh 394if not "%SHELL%" == "/bin/sh" goto SmallEnv 395echo No SHELL found in the environment, using default value 396 397:HomeName 398Rem Set HOME to a sane default so configure stops complaining. 399if not "%HOME%" == "" goto HostName 400set HOME=%XSRC%/djgpp 401if not "%HOME%" == "%XSRC%/djgpp" goto SmallEnv 402echo No HOME found in the environment, using default value 403 404:HostName 405Rem Set HOSTNAME so it shows in config.status 406if not "%HOSTNAME%" == "" goto hostdone 407if "%windir%" == "" goto msdos 408set OS=MS-Windows 409if not "%OS%" == "MS-Windows" goto SmallEnv 410goto haveos 411:msdos 412set OS=MS-DOS 413if not "%OS%" == "MS-DOS" goto SmallEnv 414:haveos 415if not "%USERNAME%" == "" goto haveuname 416if not "%USER%" == "" goto haveuser 417echo No USERNAME and no USER found in the environment, using default values 418set HOSTNAME=Unknown PC 419if not "%HOSTNAME%" == "Unknown PC" goto SmallEnv 420goto userdone 421:haveuser 422set HOSTNAME=%USER%'s PC 423if not "%HOSTNAME%" == "%USER%'s PC" goto SmallEnv 424goto userdone 425:haveuname 426set HOSTNAME=%USERNAME%'s PC 427if not "%HOSTNAME%" == "%USERNAME%'s PC" goto SmallEnv 428:userdone 429set _HOSTNAME=%HOSTNAME%, %OS% 430if not "%_HOSTNAME%" == "%HOSTNAME%, %OS%" goto SmallEnv 431set HOSTNAME=%_HOSTNAME% 432:hostdone 433set _HOSTNAME= 434set OS= 435 436Rem install-sh is required by the configure script but clashes with the 437Rem various Makefile install-foo targets, so we MUST have it before the 438Rem script runs and rename it afterwards 439test -f %XSRC%/install-sh 440if not errorlevel 1 goto NoRen0 441test -f %XSRC%/install-sh.sh 442if not errorlevel 1 mv -f %XSRC%/install-sh.sh %XSRC%/install-sh 443:NoRen0 444 445if "%NLS%" == "disabled" goto WithoutNLS 446 447:WithNLS 448Rem Check for the needed libraries and binaries. 449test -x /dev/env/DJDIR/bin/msgfmt.exe 450if errorlevel 1 goto MissingNLSTools 451test -x /dev/env/DJDIR/bin/xgettext.exe 452if errorlevel 1 goto MissingNLSTools 453test -f /dev/env/DJDIR/include/libcharset.h 454if errorlevel 1 goto MissingNLSTools 455test -f /dev/env/DJDIR/lib/libcharset.a 456if errorlevel 1 goto MissingNLSTools 457test -f /dev/env/DJDIR/include/iconv.h 458if errorlevel 1 goto MissingNLSTools 459test -f /dev/env/DJDIR/lib/libiconv.a 460if errorlevel 1 goto MissingNLSTools 461test -f /dev/env/DJDIR/include/libintl.h 462if errorlevel 1 goto MissingNLSTools 463test -f /dev/env/DJDIR/lib/libintl.a 464if errorlevel 1 goto MissingNLSTools 465 466Rem Recreate the files in the %XSRC%/po subdir with our ported tools. 467redir -e /dev/null rm %XSRC%/po/*.gmo 468redir -e /dev/null rm %XSRC%/po/bison.pot 469redir -e /dev/null rm %XSRC%/po/cat-id-tbl.c 470redir -e /dev/null rm %XSRC%/po/stamp-cat-id 471 472Rem Update the arguments file for the configure script. 473Rem We prefer without-included-gettext because libintl.a from gettext package 474Rem is the only one that is guaranteed to have been ported to DJGPP. 475echo --enable-nls --without-included-gettext >> args 476goto ConfigurePackage 477 478:MissingNLSTools 479echo Needed libs/tools for NLS not found. Configuring without NLS. 480:WithoutNLS 481Rem Update the arguments file for the configure script. 482echo --disable-nls >> args 483 484:ConfigurePackage 485echo Running the ./configure script... 486sh ./configure @args 487if errorlevel 1 goto CfgError 488rm args 489echo Done. 490goto End 491 492:lalr1_ccFileError 493echo ./data/lalr1.cc file editing failed! 494goto End 495 496:glr_ccFileError 497echo ./data/glr.cc file editing failed! 498goto End 499 500:getargs_cFileError 501echo ./src/getargs.c file editing failed! 502goto End 503 504:location_ccFileError 505echo ./data/location.cc file editing failed! 506goto End 507 508:calcxxFileError 509echo ./examples/calcxx file editing failed! 510goto End 511 512:ScannerFileError 513echo ./scanner file editing failed! 514goto End 515 516:SedError 517echo ./configure script editing failed! 518goto End 519 520:SedError2 521echo ./lib/config.hin editing failed! 522goto End 523 524:SedError3 525echo ./tests/testsuite editing failed! 526goto End 527 528:CfgError 529echo ./configure script exited abnormally! 530goto End 531 532:SmallEnv 533echo Your environment size is too small. Enlarge it and run me again. 534echo Configuration NOT done! 535 536:End 537test -f %XSRC%/install-sh.sh 538if not errorlevel 1 goto NoRen1 539test -f %XSRC%/install-sh 540if not errorlevel 1 mv -f %XSRC%/install-sh %XSRC%/install-sh.sh 541:NoRen1 542if "%SHELL%" == "/bin/sh" set SHELL= 543if "%HOME%" == "%XSRC%/djgpp" set HOME= 544set CONFIG_SITE= 545set HOSTNAME= 546set NLS= 547set XSRC= 548