+
+# Find patch:
+gnupatch='patch'
+if (gnupatch -v || gnupatch --version) 2>&1 >/dev/null; then
+ gnupatch=gnupatch
+else
+ if (gpatch -v || gpatch --version) 2>&1 >/dev/null; then
+ gnupatch=gpatch
+ else
+ # They may have a special PATH during configuring
+ if (patch -v || patch --version) 2>&1 >/dev/null; then
+ gnupatch="`./UU/loc patch.exe undef $pth`"
+ fi
+ fi
+fi
+
+for f in less.exe less.sh less.ksh less.cmd more.exe more.sh more.ksh more.cmd ; do
+ if test -z "$pager"; then
+ pager="`./UU/loc $f '' $pth`"
+ fi
+done
+if test -z "$pager"; then
+ pager='cmd /c more'
+fi
+
+# Apply patches if needed
+case "$0$running_c_cmd" in
+ *[/\\]Configure|*[/\\]Configure.|Configure|Configure.) # Skip Configure.cmd
+ if test "Xyes" = "X$configure_cmd_loop"; then
+ cat <<EOC >&2
+!!!
+!!! PANIC: Loop of self-invocations detected, aborting!
+!!!
+EOC
+ exit 20
+ fi
+ configure_cmd_loop=yes
+ export configure_cmd_loop
+
+ configure_needs_patch=''
+ if test -s ./os2/diff.configure; then
+ if ! grep "^#OS2-PATCH-APPLIED" ./Configure > /dev/null; then
+ configure_needs_patch=yes
+ fi
+ fi
+ if test -n "$configure_needs_patch"; then
+ # Not patched!
+ # Restore the initial command line arguments
+ if test -f ./Configure.cmd ; then
+ cat <<EOC >&2
+!!!
+!!! I see that what is running is ./Configure.
+!!! ./Configure is not patched, but ./Configure.cmd exists.
+!!!
+!!! You are supposed to run Configure.cmd, not Configure
+!!! after an automagic patching.
+!!!
+!!! If you insist on running Configure, you may
+!!! patch it manually from ./os2/diff.configure.
+!!!
+!!! However, I went through incredible hoolahoops, and I expect I can
+!!! auto-restart Configure.cmd myself. I will start it with arguments:
+!!!
+!!! Configure.cmd $args_exp
+!!!
+EOC
+ rp='Do you want to auto-restart Configure.cmd?'
+ dflt='y'
+ . UU/myread
+ case "$ans" in
+ [yY]) echo >&4 "Okay, continuing." ;;
+ *) echo >&4 "Okay, bye."
+ exit 2
+ ;;
+ esac
+ eval "set X $args_exp";
+ shift;
+ # Restore the output
+ exec Configure.cmd "$@" 1>&2
+ exit 2
+ fi
+ cat <<EOC >&2
+!!!
+!!! You did not patch ./Configure!
+!!! I can create Configure.cmd and patch it from ./os2/diff.configure with the command
+!!!
+!!! $gnupatch -b -p1 --output=Configure.cmd <./os2/diff.configure 2>&1 | tee 00_auto_patch
+EOC
+ rp='Do you want to auto-patch Configure to Configure.cmd?'
+ dflt='y'
+ . UU/myread
+ case "$ans" in
+ [yY]) echo >&4 "Okay, continuing." ;;
+ *) echo >&4 "Okay, bye."
+ exit 2
+ ;;
+ esac
+ ($gnupatch -b -p1 --output=Configure.cmd <./os2/diff.configure 2>&1 | tee 00_auto_patch) >&2
+ cat <<EOC >&2
+!!!
+!!! The report of patching is copied to 00_auto_patch.
+!!! Now we need to restart Configure.cmd with all the options.
+!!!
+EOC
+ echo "extproc sh" > Configure.ctm
+ ( cat Configure.cmd >> Configure.ctm && mv -f Configure.ctm Configure.cmd ) || (echo "!!! Failure to add extproc-line to Configure.cmd." >&2 ; exit 21)
+ cat <<EOC >&2
+!!! I went through incredible hoolahoops, and I expect I can
+!!! auto-restart Configure.cmd myself. I will start it with arguments:
+!!!
+!!! Configure.cmd $args_exp
+!!!
+EOC
+ rp='Do you want to auto-restart Configure.cmd?'
+ dflt='y'
+ . UU/myread
+ case "$ans" in
+ [yY]) echo >&4 "Okay, continuing." ;;
+ *) echo >&4 "Okay, bye."
+ exit 2
+ ;;
+ esac
+ eval "set X $args_exp";
+ shift;
+ exec Configure.cmd "$@" 1>&2
+ exit 2
+ else
+ if test -s ./os2/diff.configure; then
+ echo "!!! Apparently we are running a patched Configure." >&2
+ else
+ echo "!!! Apparently there is no need to patch Configure." >&2
+ fi
+ fi
+ ;;
+ *) echo "!!! Apparently we are running a renamed Configure: '$0'." >&2
+esac
+
+# This script UU/usethreads.cbu will get 'called-back' by Configure
+# after it has prompted the user for whether to use threads.
+cat > UU/usethreads.cbu <<'EOCBU'
+case "$usethreads" in
+$define|true|[yY]*)
+ ccflags="-Zmt $ccflags"
+ cppflags="-Zmt $cppflags" # Do we really need to set this?
+ aout_ccflags="-DUSE_THREADS $aout_ccflags"
+ aout_cppflags="-DUSE_THREADS $aout_cppflags"
+ aout_lddlflags="-Zmt $aout_lddlflags"
+ aout_ldflags="-Zmt $aout_ldflags"
+ ;;
+esac
+EOCBU
+
+if test -z "$cryptlib"; then
+ cryptlib=`UU/loc crypt$lib_ext "" $libpth`
+ if $test -n "$cryptlib"; then
+ cryptlib=-lcrypt
+ else
+ cryptlib=`UU/loc ufc$lib_ext "" $libpth`
+ if $test -n "$cryptlib"; then
+ cryptlib=-lufc
+ fi
+ fi
+fi
+if test -n "$cryptlib"; then
+ libs="$libs $cryptlib"
+ # d_crypt=define
+fi
+
+# Now install the external modules. We are in the ./hints directory.
+
+cd ./os2/OS2
+
+cp -rfu * ../../ext/
+
+# Install tests:
+
+cp -uf ../*.t ../../t/lib
+for xxx in * ; do
+ if $test -d $xxx/t; then
+ cp -uf $xxx/t/*.t ../../t/lib
+ else
+ if $test -d $xxx; then
+ cd $xxx
+ for yyy in * ; do
+ if $test -d $yyy/t; then
+ cp -uf $yyy/t/*.t ../../t/lib
+ fi
+ done
+ cd ..
+ fi
+ fi
+done
+
+case "$ldlibpthname" in
+'') ldlibpthname=none ;;
+esac
+
+# Now go back
+cd ../..
+cp os2/*.t t/lib