summaryrefslogtreecommitdiff
path: root/djgpp/config.bat
diff options
context:
space:
mode:
Diffstat (limited to 'djgpp/config.bat')
-rwxr-xr-xdjgpp/config.bat237
1 files changed, 237 insertions, 0 deletions
diff --git a/djgpp/config.bat b/djgpp/config.bat
new file mode 100755
index 0000000..f5dffc4
--- /dev/null
+++ b/djgpp/config.bat
@@ -0,0 +1,237 @@
+@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=