Tcl Source Code

Artifact [65c13a1a5e]
Login

Artifact 65c13a1a5e5b7aeea0364618aea092e56aa59ee5:

Attachment "tcl-crosscompile-win.diff" to ticket [3564799fff] added by flelchuk 2012-09-05 03:14:47.
--- a/win/configure.in	2012-07-25 18:45:06.000000000 +0200
+++ b/win/configure.in	2012-09-04 20:46:25.780498951 +0200
@@ -203,6 +203,22 @@
 eval "TCL_BUILD_STUB_LIB_PATH=\"`pwd`/${TCL_STUB_LIB_FILE}\""
 eval "TCL_STUB_LIB_PATH=\"${libdir}/${TCL_STUB_LIB_FILE}\""
 
+# Support for Cross-compilation
+
+if test "x$cross_compiling" = xyes; then
+    CROSS_ON=''
+    CROSS_OFF='#'
+    
+    AC_PATH_PROG([RUN_TCLSH], [tclsh], [])
+    
+    if test -z "${RUN_TCLSH}"; then
+        eval "RUN_TCLSH=`which tclsh`"
+    fi
+else
+    CROSS_ON='#'
+    CROSS_OFF=''
+fi
+
 # Install time header dir can be set via --includedir
 eval "TCL_INCLUDE_SPEC=\"-I${includedir}\""
 
@@ -266,6 +282,11 @@
 AC_SUBST(TCL_BUILD_STUB_LIB_PATH)
 AC_SUBST(TCL_DLL_FILE)
 
+# Cross-compile support
+AC_SUBST(RUN_TCLSH)
+AC_SUBST(CROSS_ON)
+AC_SUBST(CROSS_OFF)
+
 AC_SUBST(TCL_SRC_DIR)
 AC_SUBST(TCL_BIN_DIR)
 AC_SUBST(TCL_DBGX)

--- a/win/Makefile.in	2012-07-25 18:45:06.000000000 +0200
+++ b/win/Makefile.in	2012-09-04 20:28:43.924484259 +0200
@@ -145,6 +145,11 @@
 TCL_EXE			= tclsh
 
 TCLSH			= tclsh$(VER)${EXESUFFIX}
+
+@CROSS_ON@RUN_TCLSH		= @RUN_TCLSH@
+@CROSS_OFF@RUN_TCLSH		= ./$(TCLSH)
+@CROSS_OFF@TCL_LIB_ENV	= TCL_LIBRARY="${LIBRARY_DIR}"
+
 TCLTEST			= tcltest${EXEEXT}
 CAT32			= cat32$(EXEEXT)
 MAN2TCL			= man2tcl$(EXEEXT)
@@ -659,15 +664,21 @@
 
 install-tzdata:
 	@echo "Installing time zone data"
-	@TCL_LIBRARY="${LIBRARY_DIR}"; export TCL_LIBRARY; \
-	./$(TCLSH) "$(ROOT_DIR)/tools/installData.tcl" \
-	    "$(ROOT_DIR)/library/tzdata" "$(SCRIPT_INSTALL_DIR)/tzdata"
+	@if test -z "$(RUN_TCLSH)" ; then \
+	   echo "Warning: no runnable tclsh found, skipping." ; \
+	 else \
+	   $(TCL_LIB_ENV) $(RUN_TCLSH) "$(ROOT_DIR)/tools/installData.tcl" \
+	     "$(ROOT_DIR)/library/tzdata" "$(SCRIPT_INSTALL_DIR)/tzdata" ; \
+	 fi
 
 install-msgs:
 	@echo "Installing message catalogs"
-	@TCL_LIBRARY="${LIBRARY_DIR}"; export TCL_LIBRARY; \
-	./$(TCLSH) "$(ROOT_DIR)/tools/installData.tcl" \
-	    "$(ROOT_DIR)/library/msgs" "$(SCRIPT_INSTALL_DIR)/msgs"
+	@if test -z "$(RUN_TCLSH)" ; then \
+	   echo "No runnable tclsh found, skipping." ; \
+	 else \
+	   $(TCL_LIB_ENV) $(RUN_TCLSH) "$(ROOT_DIR)/tools/installData.tcl" \
+	     "$(ROOT_DIR)/library/msgs" "$(SCRIPT_INSTALL_DIR)/msgs" ; \
+	 fi
 
 install-doc: doc