Well, Tcl 8.5 has finally landed in Fedora Development again. You can see some results from earlier attempts here: http://www.mail-archive.com/plplot-devel@lists.sourceforge.net/msg00440.html

I've attached my recreated attempt to patch to handle it. Again, we compile, but the examples don't actually run:

  8/ 14 Testing examples_tcl
Test command: /bin/bash -c EXAMPLES_DIR=/builddir/build/BUILD/plplot-5.8.0/fedora/examples\ SRC_EXAMPLES_DIR=/builddir/build/BUILD/plplot-5.8.0/examples\ PLPLOT_LIB=/builddir/build/BUILD/plplot-5.8.0/data/\ ./plplot-test.sh\ --device=psc\ --front-end=tcl
Testing front-end tcl
application-specific initialization failed:
invalid command name "plinit"
invalid command name "plgdev"
invalid command name "plgdev"
invalid command name "plgdev"
invalid command name "plgdev"
application-specific initialization failed:
invalid command name "plinit"
invalid command name "matrix"
application-specific initialization failed:
invalid command name "plinit"
    while executing
"plinit"
    (file "./x01" line 17)
-- Process completed
***Failed

This needs someone knowledgeable with Tcl internals to take a look.

--
Orion Poplawski
Technical Manager                     303-415-9701 x222
NWRA/CoRA Division                    FAX: 303-415-9702
3380 Mitchell Lane                  [EMAIL PROTECTED]
Boulder, CO 80301              http://www.cora.nwra.com
--- plplot-5.8.0/bindings/tk/tkMain.c.tcl	2007-11-18 13:04:01.000000000 -0700
+++ plplot-5.8.0/bindings/tk/tkMain.c	2008-01-07 10:19:48.000000000 -0700
@@ -66,6 +66,7 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <tcl.h>
+#include <tclInt.h>
 #include <tk.h>
 #ifdef HAVE_ITCL
 # ifndef HAVE_ITCLDECLS_H
@@ -83,15 +84,6 @@
 
 EXTERN int		Itk_Init _ANSI_ARGS_((Tcl_Interp * interp));
 
-/* From tclIntDecls.h */
-
-EXTERN int		Tcl_Import _ANSI_ARGS_((Tcl_Interp * interp,
-				Tcl_Namespace * nsPtr, char * pattern,
-				int allowOverwrite));
-
-EXTERN Tcl_Namespace *	Tcl_GetGlobalNamespace _ANSI_ARGS_((
-				Tcl_Interp * interp));
-
 /*
  * Declarations for various library procedures and variables (don't want
  * to include tkInt.h or tkConfig.h here, because people might copy this
--- plplot-5.8.0/cmake/modules/tcl-related.cmake.tcl	2007-11-18 13:03:56.000000000 -0700
+++ plplot-5.8.0/cmake/modules/tcl-related.cmake	2008-01-07 10:31:12.000000000 -0700
@@ -57,6 +57,8 @@
 if(ENABLE_tcl)
   message(STATUS "Looking for include paths and libraries for Tcl/Tk")
   find_package(TCL)
+  # Add Tcl private bindings
+  set(TCL_INCLUDE_PATH ${TCL_INCLUDE_PATH} ${TCL_INCLUDE_PATH}/tcl-private/generic ${TCL_INCLUDE_PATH}/tcl-private/unix)
   # Supplement those results with iTcl and iTk include paths and libraries.
   if(TCL_FOUND)
     message(STATUS
--- plplot-5.8.0/bindings/tcl/CMakeLists.txt.tcl	2007-11-18 13:04:00.000000000 -0700
+++ plplot-5.8.0/bindings/tcl/CMakeLists.txt	2008-01-07 10:58:16.000000000 -0700
@@ -34,9 +34,11 @@
 ${CMAKE_BINARY_DIR}/include
 )
 
+# Transform TCL_INCLUDE_PATH (which is a list) to blank-delimited flag form.
+string(REGEX REPLACE ";" " -I" TCLLIB_COMPILE_FLAGS "-I${TCL_INCLUDE_PATH}")
 set(
 libplplottcltk${LIB_TAG}_COMPILE_FLAGS
-"-I${TCL_INCLUDE_PATH}"
+"-I${TCLLIB_COMPILE_FLAGS}"
 )
 
 if(WIN32 AND BUILD_SHARED_LIBS)
--- plplot-5.8.0/cmake/modules/tk.cmake.tcl	2007-11-18 13:03:55.000000000 -0700
+++ plplot-5.8.0/cmake/modules/tk.cmake	2008-01-07 13:14:48.000000000 -0700
@@ -54,12 +54,14 @@
   endif(PLD_tk OR PLD_ntk OR PLD_tkwin)
 endif(NOT ENABLE_tk)
 
+# Transform TCL_INCLUDE_PATH (which is a list) to blank-delimited flag form.
+string(REGEX REPLACE ";" " -I" TCLLIB_COMPILE_FLAGS "-I${TCL_INCLUDE_PATH}")
 # Transform TK_INCLUDE_PATH (which is a list) to blank-delimited flag form.
 string(REGEX REPLACE ";" " -I" TKLIB_COMPILE_FLAGS "-I${TK_INCLUDE_PATH}")
 	
 if(PLD_tk)
   set(tk_COMPILE_FLAGS 
-  "-I${TCL_INCLUDE_PATH} ${TKLIB_COMPILE_FLAGS} -I${CMAKE_SOURCE_DIR}/bindings/tcl -I${CMAKE_BINARY_DIR}/bindings/tcl -I${CMAKE_SOURCE_DIR}/bindings/tk"
+  "${TCLLIB_COMPILE_FLAGS} ${TKLIB_COMPILE_FLAGS} -I${CMAKE_SOURCE_DIR}/bindings/tcl -I${CMAKE_BINARY_DIR}/bindings/tcl -I${CMAKE_SOURCE_DIR}/bindings/tk"
   )
   set(tk_LINK_FLAGS plplottcltk${LIB_TAG} ${TCL_LIBRARY} ${TK_LIBRARY})
   set(DRIVERS_LINK_FLAGS ${DRIVERS_LINK_FLAGS} ${TCL_LIBRARY} ${TK_LIBRARY})
@@ -98,14 +100,14 @@
 endif(PLD_tk)
 
 if(PLD_ntk)
-  set(ntk_COMPILE_FLAGS "-I${TCL_INCLUDE_PATH} ${TKLIB_COMPILE_FLAGS}")
+  set(ntk_COMPILE_FLAGS "${TCLLIB_COMPILE_FLAGS} ${TKLIB_COMPILE_FLAGS}")
   set(ntk_LINK_FLAGS ${TCL_LIBRARY} ${TK_LIBRARY})
   set(DRIVERS_LINK_FLAGS ${DRIVERS_LINK_FLAGS} ${ntk_LINK_FLAGS})
 endif(PLD_ntk)
 
 if(PLD_tkwin)
   set(tkwin_COMPILE_FLAGS 
-  "-I${TCL_INCLUDE_PATH} ${TKLIB_COMPILE_FLAGS} -I${CMAKE_SOURCE_DIR}/bindings/tcl -I${CMAKE_BINARY_DIR}/bindings/tcl -I${CMAKE_SOURCE_DIR}/bindings/tk-x-plat -I${CMAKE_SOURCE_DIR}/bindings/tk"
+  "${TCLLIB_COMPILE_FLAGS} ${TKLIB_COMPILE_FLAGS} -I${CMAKE_SOURCE_DIR}/bindings/tcl -I${CMAKE_BINARY_DIR}/bindings/tcl -I${CMAKE_SOURCE_DIR}/bindings/tk-x-plat -I${CMAKE_SOURCE_DIR}/bindings/tk"
   )
   set(tkwin_LINK_FLAGS plplottcltk${LIB_TAG} ${TCL_LIBRARY} ${TK_LIBRARY})
   set(DRIVERS_LINK_FLAGS ${DRIVERS_LINK_FLAGS} ${TCL_LIBRARY} ${TK_LIBRARY})
--- plplot-5.8.0/bindings/tcl/tclMain.c.tcl	2007-11-18 13:04:00.000000000 -0700
+++ plplot-5.8.0/bindings/tcl/tclMain.c	2008-01-07 13:40:01.000000000 -0700
@@ -49,15 +49,12 @@
  */
 
 #include <tcl.h>
+#define HAVE_UNISTD_H
+#include <tclInt.h>
 #include "plplot.h"
 #define MAKINGPLDLL
 #include "pldll.h"
 
-/* From tclIntDecls.h */
-
-EXTERN int		TclFormatInt _ANSI_ARGS_((char * buffer, long n));
-EXTERN int		TclObjCommandComplete _ANSI_ARGS_((Tcl_Obj * cmdPtr));
-
 # undef TCL_STORAGE_CLASS
 # define TCL_STORAGE_CLASS DLLEXPORT
 
@@ -159,7 +156,7 @@
  *
  *----------------------------------------------------------------------
  */
-void TclSetStartupScriptFileName(char *fileName)
+void TclSetStartupScriptFileName(const char *fileName)
 {
     tclStartupScriptFileName = fileName;
 }
@@ -181,7 +178,7 @@
  *
  *----------------------------------------------------------------------
  */
-char *TclGetStartupScriptFileName(void)
+const char *TclGetStartupScriptFileName(void)
 {
     return tclStartupScriptFileName;
 }
-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
Plplot-devel mailing list
Plplot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/plplot-devel

Reply via email to