From: Nathan Phillip Brink <binki@gentoo.org>
Subject: Make dependence on TCL not be automagic (so that --with-tcl
	errors out if TCL can't be found and not specifying --with-tcl
	does the normal automagic behavior).  Support
	LDFLAGS=-Wl,--as-needed by using LIBS instead of LDFLAGS for
	-ltcl as appropriate.

--- a/configure.in
+++ b/configure.in
@@ -1122,43 +1122,41 @@
 dnl
 dnl Tcl support?
 dnl
-AC_ARG_WITH(tcl,
-[  --with-tcl[=PATH_TO_tclConfig.sh]      Compile with tcl support.],
-[
-	tclconfig=$withval
-],
-	tclconfig="yes"
-)
-
-if test "x$tclconfig" = "xyes" ; then
-	for i in /usr/lib $localdir/lib $localdir/lib/tcl8.4 ; do
-		if test -r $i/tclConfig.sh ; then
-			tclconfig=$i/tclConfig.sh
-			break;
-		fi
-	done
-fi
+AC_ARG_WITH([tcl], [AS_HELP_STRING([--with-tcl[=PATH_TO_tclConfig.sh]], [Compile with tcl support.])],
+	[], [with_tcl=maybe])
 
 AC_MSG_CHECKING(whether to support TCL)
-if test "x$tclconfig" = "xno"; then
+if test "x$with_tcl" = "xno"; then
 	AC_MSG_RESULT(no)
 else
-	if test ! -r $tclconfig ; then
+	with_tcl_errormsg="You specified --with-tcl=$with_tcl but I could not find TCL. Please specify --with-tcl=/path/to/tclConfig.sh or remove --with-tcl from ./configure's commandline."
+	if test "x$with_tcl" = "xmaybe" -o "x$with_tcl" = "xyes"; then
+		for i in /usr/lib /usr/local/lib /usr/local/lib/tcl8.4 ; do
+			if test -r "$i"/tclConfig.sh ; then
+				tclconfig="$i"/tclConfig.sh
+				break;
+			fi
+		done
+	else
+		tclconfig="$with_tcl"
+	fi
+	if test ! -r "$tclconfig" ; then
+		dnl Avoid being automagic unless if the user wants us to be.
+		AS_IF([test "x$with_tcl" != "xmaybe"],
+			[AC_MSG_ERROR([$with_tcl_errormsg])])
 		AC_MSG_RESULT(no)
 	else
 		AC_MSG_RESULT(yes)
-		TCLCFLAGS=`(. $tclconfig && echo $TCL_INCLUDE_SPEC)`
-		TCLLDFLAGS1=`(. $tclconfig && echo $TCL_LIB_SPEC)`
-		TCLLDFLAGS2=`(. $tclconfig && echo $TCL_LIBS)`
-		TCLLDFLAGS=$(eval echo "$TCLLDFLAGS1 $TCLLDFLAGS2")
+		TCLCFLAGS=`(. "$tclconfig" && echo $TCL_INCLUDE_SPEC)`
+		TCLLIBS=`(. "$tclconfig" && echo $TCL_LIB_SPEC $TCL_LIBS)`
 		TCLDOTOH="tcl.o"
 
 		AC_MSG_CHECKING(whether embedded tcl works the way I expect)
 		have_embedded_tcl="no"
 		old_CFLAGS="$CFLAGS"
-		old_LDFLAGS="$LDFLAGS"
+		old_LIBS="$LIBS"
 		CFLAGS="$CFLAGS $TCLCFLAGS"
-		LDFLAGS="$LDFLAGS $TCLLDFLAGS"
+		LIBS="$LIBS $TCLLIBS"
 		AC_TRY_LINK([
 #include <tcl.h>
 	   Tcl_Interp *my_tcl;
@@ -1175,14 +1173,16 @@
 ], have_embedded_tcl="yes")
 
 		CFLAGS="$old_CFLAGS"
-		LDFLAGS="$old_LDFLAGS"
+		LIBS="$old_LIBS"
 		if test $have_embedded_tcl = "yes" ; then
 		    AC_MSG_RESULT(yes)
 		    AC_DEFINE(HAVE_TCL)
 		    AC_DEFINE(TCLCFLAGS)
-		    AC_DEFINE(TCLLDFLAGS)
+		    AC_DEFINE(TCLLIBS)
 		else
-		    AC_MSG_RESULT(no, sorry)
+			AS_IF([test "$with_tcl" != "xmaybe"],
+				[AC_MSG_ERROR([$with_tcl_errormsg])])
+			AC_MSG_RESULT(no, sorry)
 		fi
 	fi
 fi
@@ -1383,7 +1383,7 @@
 AC_SUBST(RUBYLIBS)
 AC_SUBST(TCLDOTOH)
 AC_SUBST(TCLCFLAGS)
-AC_SUBST(TCLLDFLAGS)
+AC_SUBST(TCLLIBS)
 AC_SUBST(PERLDOTOH)
 AC_SUBST(PERLCFLAGS)
 AC_SUBST(PERLLDFLAGS)

--- a/source/Makefile.in
+++ b/source/Makefile.in
@@ -38,7 +38,7 @@
 epic5: $(OBJECTS)
 	sh info.c.sh
 	$(CC) $(CFLAGS) $(INCLUDES) -c info.c
-	$(CC) $(CFLAGS) $(LDFLAGS) -o epic5 $(OBJECTS) info.o @PERLLDFLAGS@ @TCLLDFLAGS@ @RUBYLIBS@ $(LIBS)
+	$(CC) $(CFLAGS) $(LDFLAGS) -o epic5 $(OBJECTS) info.o @PERLLDFLAGS@ @TCLLIBS@ @RUBYLIBS@ $(LIBS)
 	$(RM) info.c info.o
 clean::
 	$(RM) epic5 $(OBJECTS)
