| @echo off | |
| echo Configuring GNU Texinfo for DJGPP v2.x... | |
| Rem The small_env tests protect against fixed and too small size | |
| Rem of the environment in stock DOS shell. | |
| Rem Find out if NLS is wanted or not, if dependency-tracking is | |
| Rem wanted or not, if cache is wanted or not, and where the sources are. | |
| set ARGS= | |
| set NLS=disabled | |
| if not "%NLS%" == "disabled" goto small_env | |
| set CACHE=enabled | |
| if not "%CACHE%" == "enabled" goto small_env | |
| set DEPTRAK=disabled | |
| if not "%DEPTRAK%" == "disabled" goto small_env | |
| set XSRC=. | |
| if not "%XSRC%" == "." goto small_env | |
| Rem Loop over all arguments. | |
| Rem Special arguments are: NLS, XSRC CACHE and DEPS. | |
| Rem All other arguments are stored into ARGS. | |
| :arg_loop | |
| set SPECARG=0 | |
| if not "%SPECARG%" == "0" goto small_env | |
| if not "%1" == "NLS" if not "%1" == "nls" goto cache_opt | |
| if "%1" == "nls" set NLS=enabled | |
| if "%1" == "NLS" set NLS=enabled | |
| if not "%NLS%" == "enabled" goto small_env | |
| set SPECARG=1 | |
| if not "%SPECARG%" == "1" goto small_env | |
| shift | |
| :cache_opt | |
| set SPECARG=0 | |
| if not "%SPECARG%" == "0" goto small_env | |
| if "%1" == "no-cache" goto cache_off | |
| if "%1" == "no-CACHE" goto cache_off | |
| if not "%1" == "NO-CACHE" goto dependency_opt | |
| :cache_off | |
| if "%1" == "no-cache" set CACHE=disabled | |
| if "%1" == "no-CACHE" set CACHE=disabled | |
| if "%1" == "NO-CACHE" set CACHE=disabled | |
| if not "%CACHE%" == "disabled" goto small_env | |
| set SPECARG=1 | |
| if not "%SPECARG%" == "1" goto small_env | |
| shift | |
| :dependency_opt | |
| set SPECARG=0 | |
| if not "%SPECARG%" == "0" goto small_env | |
| if "%1" == "dep" goto dep_off | |
| if not "%1" == "DEP" goto src_dir_opt | |
| :dep_off | |
| if "%1" == "dep" set DEPTRAK=enabled | |
| if "%1" == "DEP" set DEPTRAK=enabled | |
| if not "%DEPTRAK%" == "enabled" goto small_env | |
| set SPECARG=1 | |
| if not "%SPECARG%" == "1" goto small_env | |
| shift | |
| :src_dir_opt | |
| set SPECARG=0 | |
| if not "%SPECARG%" == "0" goto small_env | |
| echo %1 | grep -q "/" | |
| if errorlevel 1 goto collect_arg | |
| set XSRC=%1 | |
| if not "%XSRC%" == "%1" goto small_env | |
| set SPECARG=1 | |
| if not "%SPECARG%" == "1" goto small_env | |
| :collect_arg | |
| if "%SPECARG%" == "0" set _ARGS=%ARGS% %1 | |
| if "%SPECARG%" == "0" if not "%_ARGS%" == "%ARGS% %1" goto small_env | |
| echo %_ARGS% | grep -q "[^ ]" | |
| if not errorlevel 0 set ARGS=%_ARGS% | |
| set _ARGS= | |
| shift | |
| if not "%1" == "" goto arg_loop | |
| set SPECARG= | |
| Rem Create a response file for the configure script. | |
| echo --srcdir=%XSRC% > args | |
| if "%CACHE%" == "enabled" echo --config-cache >> args | |
| if "%DEPTRAK%" == "enabled" echo --enable-dependency-tracking >> args | |
| if "%DEPTRAK%" == "disabled" echo --disable-dependency-tracking >> args | |
| if not "%ARGS%" == "" echo %ARGS% >> args | |
| set ARGS= | |
| set CACHE= | |
| set DEPTRAK= | |
| if "%XSRC%" == "." goto in_place | |
| :not_in_place | |
| redir -e /dev/null update %XSRC%/configure.org ./configure | |
| test -f ./configure | |
| if errorlevel 1 update %XSRC%/configure ./configure | |
| :in_place | |
| Rem Update configuration files | |
| echo Updating configuration scripts... | |
| test -f ./configure.org | |
| if errorlevel 1 update configure configure.org | |
| sed -f %XSRC%/djgpp/config.sed configure.org > configure | |
| if errorlevel 1 goto sed_error | |
| Rem Make sure they have a config.site file | |
| set CONFIG_SITE=%XSRC%/djgpp/config.site | |
| if not "%CONFIG_SITE%" == "%XSRC%/djgpp/config.site" goto small_env | |
| Rem Make sure crucial file names are not munged by unpacking | |
| test -f %XSRC%/po/Makefile.in.in | |
| if not errorlevel 1 mv -f %XSRC%/po/Makefile.in.in %XSRC%/po/Makefile.in-in | |
| test -f %XSRC%/po/Makefile.am.in | |
| if not errorlevel 1 mv -f %XSRC%/po/Makefile.am.in %XSRC%/po/Makefile.am-in | |
| Rem This is required because DOS/Windows are case-insensitive | |
| Rem to file names, and "make install" will do nothing if Make | |
| Rem finds a file called `install'. | |
| if exist INSTALL ren INSTALL INSTALL.txt | |
| Rem Set HOME to a sane default so configure stops complaining. | |
| if not "%HOME%" == "" goto host_name | |
| set HOME=%XSRC%/djgpp | |
| if not "%HOME%" == "%XSRC%/djgpp" goto small_env | |
| echo No HOME found in the environment, using default value | |
| :host_name | |
| Rem Set HOSTNAME so it shows in config.status | |
| if not "%HOSTNAME%" == "" goto hostdone | |
| if "%windir%" == "" goto msdos | |
| set OS=MS-Windows | |
| if not "%OS%" == "MS-Windows" goto small_env | |
| goto haveos | |
| :msdos | |
| set OS=MS-DOS | |
| if not "%OS%" == "MS-DOS" goto small_env | |
| :haveos | |
| if not "%USERNAME%" == "" goto haveuname | |
| if not "%USER%" == "" goto haveuser | |
| echo No USERNAME and no USER found in the environment, using default values | |
| set HOSTNAME=Unknown PC | |
| if not "%HOSTNAME%" == "Unknown PC" goto small_env | |
| goto userdone | |
| :haveuser | |
| set HOSTNAME=%USER%'s PC | |
| if not "%HOSTNAME%" == "%USER%'s PC" goto small_env | |
| goto userdone | |
| :haveuname | |
| set HOSTNAME=%USERNAME%'s PC | |
| if not "%HOSTNAME%" == "%USERNAME%'s PC" goto small_env | |
| :userdone | |
| set _HOSTNAME=%HOSTNAME%, %OS% | |
| if not "%_HOSTNAME%" == "%HOSTNAME%, %OS%" goto small_env | |
| set HOSTNAME=%_HOSTNAME% | |
| :hostdone | |
| set _HOSTNAME= | |
| set OS= | |
| Rem install-sh is required by the configure script but clashes with the | |
| Rem various Makefile install-foo targets, so we MUST have it before the | |
| Rem script runs and rename it afterwards | |
| test -f %XSRC%/install-sh | |
| if not errorlevel 1 goto no_ren0 | |
| test -f %XSRC%/install-sh.sh | |
| if not errorlevel 1 mv -f %XSRC%/install-sh.sh %XSRC%/install-sh | |
| :no_ren0 | |
| if "%NLS%" == "disabled" goto without_NLS | |
| :with_NLS | |
| Rem Check for the needed libraries and binaries. | |
| test -x /dev/env/DJDIR/bin/msgfmt.exe | |
| if not errorlevel 0 goto missing_NLS_tools | |
| test -x /dev/env/DJDIR/bin/xgettext.exe | |
| if not errorlevel 0 goto missing_NLS_tools | |
| test -f /dev/env/DJDIR/include/libcharset.h | |
| if not errorlevel 0 goto missing_NLS_tools | |
| test -f /dev/env/DJDIR/lib/libcharset.a | |
| if not errorlevel 0 goto missing_NLS_tools | |
| test -f /dev/env/DJDIR/include/iconv.h | |
| if not errorlevel 0 goto missing_NLS_tools | |
| test -f /dev/env/DJDIR/lib/libiconv.a | |
| if not errorlevel 0 goto missing_NLS_tools | |
| test -f /dev/env/DJDIR/include/libintl.h | |
| if not errorlevel 0 goto missing_NLS_tools | |
| test -f /dev/env/DJDIR/lib/libintl.a | |
| if not errorlevel 0 goto missing_NLS_tools | |
| Rem Recreate the files in the %XSRC%/po subdir with our ported tools. | |
| redir -e /dev/null rm %XSRC%/po/*.gmo | |
| redir -e /dev/null rm %XSRC%/po/texinfo*.pot | |
| redir -e /dev/null rm %XSRC%/po/cat-id-tbl.c | |
| redir -e /dev/null rm %XSRC%/po/stamp-cat-id | |
| Rem Update the arguments file for the configure script. | |
| Rem We prefer without-included-gettext because libintl.a from gettext package | |
| Rem is the only one that is guaranteed to have been ported to DJGPP. | |
| echo --enable-nls --without-included-gettext >> args | |
| goto configure_package | |
| :missing_NLS_tools | |
| echo Needed libs/tools for NLS not found. Configuring without NLS. | |
| :without_NLS | |
| Rem Update the arguments file for the configure script. | |
| echo --disable-nls >> args | |
| :configure_package | |
| echo Running the ./configure script... | |
| sh ./configure @args | |
| if errorlevel 1 goto cfg_error | |
| rm args | |
| echo Done. | |
| goto End | |
| :sed_error | |
| echo ./configure script editing failed! | |
| goto End | |
| :cfg_error | |
| echo ./configure script exited abnormally! | |
| goto End | |
| :small_env | |
| echo Your environment size is too small. Enlarge it and run me again. | |
| echo Configuration NOT done! | |
| :End | |
| test -f %XSRC%/install-sh.sh | |
| if not errorlevel 1 goto no_ren1 | |
| test -f %XSRC%/install-sh | |
| if not errorlevel 1 mv -f %XSRC%/install-sh %XSRC%/install-sh.sh | |
| :no_ren1 | |
| if "%HOME%" == "%XSRC%/djgpp" set HOME= | |
| set ARGS= | |
| set CONFIG_SITE= | |
| set HOSTNAME= | |
| set NLS= | |
| set CACHE= | |
| set DEPTRAK= | |
| set XSRC= |