Overview
Comment: | Updated to support Registry and DDE packages on Win32, and to support the
Thread package
Added support for exporting all symbols to the DLL on Win32 |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA1: |
d90313734713f97043aab9718899d243 |
User & Date: | rkeene on 2010-09-30 08:20:13 |
Original Comment: | Updated to support Registry and DDE packages on Win32, and to support the Thread package |
Other Links: | manifest | tags |
Context
2010-09-30
| ||
08:26 | Renamed KitDLL library from libtcl to libtclkit check-in: bec59f252e user: rkeene tags: trunk | |
08:20 |
Updated to support Registry and DDE packages on Win32, and to support the
Thread package
Added support for exporting all symbols to the DLL on Win32 check-in: d903137347 user: rkeene tags: trunk | |
08:16 | Updated to copy all KitDLL related files to build directory check-in: 256ca73ea3 user: rkeene tags: trunk | |
Changes
Modified kitdll/build.sh from [d547391b05] to [1a4467c4d3].
︙ | ︙ | |||
20 21 22 23 24 25 26 27 28 29 30 31 32 33 | rm -rf 'build' 'out' 'inst' mkdir 'out' 'inst' || exit 1 ( cp -r 'buildsrc' 'build' cd "${BUILDDIR}" || exit 1 # Determine how we invoke a Tcl interpreter for testsh in "${TCLSH_NATIVE:-false}" "${TCLKIT:-tclkit}"; do if echo 'exit 0' | "${testsh}" >/dev/null 2>/dev/null; then TCLSH_NATIVE="${testsh}" break | > > > > > > > > > > > > > > > > > > > > > > > | 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | rm -rf 'build' 'out' 'inst' mkdir 'out' 'inst' || exit 1 ( cp -r 'buildsrc' 'build' cd "${BUILDDIR}" || exit 1 # Fix up archives that Tcl gets wrong for archive in ../../../tcl/inst/lib/dde*/tcldde*.a ../../../tcl/inst/lib/reg*/tclreg*.a; do if [ ! -f "${archive}" ]; then continue fi rm -rf __TEMP__ ( mkdir __TEMP__ || exit 1 cd __TEMP__ ## Patch archive name archive="../${archive}" "${AR:-ar}" x "${archive}" || exit 1 rm -f "${archive}" "${AR:-ar}" cr "${archive}" *.o || exit 1 "${RANLIB:-ranlib}" "${archive}" || true ) done # Determine how we invoke a Tcl interpreter for testsh in "${TCLSH_NATIVE:-false}" "${TCLKIT:-tclkit}"; do if echo 'exit 0' | "${testsh}" >/dev/null 2>/dev/null; then TCLSH_NATIVE="${testsh}" break |
︙ | ︙ |
Modified kitdll/buildsrc/kitdll-0.0/Makefile.in from [8e72ba30c3] to [b7e9c6382e].
1 2 3 4 5 6 | CC = @CC@ CFLAGS = @CFLAGS@ @SHOBJFLAGS@ -Wall CPPFLAGS = @CPPFLAGS@ @DEFS@ -DKITDLL_MAKE_LOADABLE=1 LDFLAGS = @LDFLAGS@ SHOBJLDFLAGS = @SHOBJLDFLAGS@ LIBS = @LIBS@ | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 | CC = @CC@ CFLAGS = @CFLAGS@ @SHOBJFLAGS@ -Wall CPPFLAGS = @CPPFLAGS@ @DEFS@ -DKITDLL_MAKE_LOADABLE=1 LDFLAGS = @LDFLAGS@ SHOBJLDFLAGS = @SHOBJLDFLAGS@ LIBS = @LIBS@ STATICLIBS = @ARCHS@ OBJS = vfs_kitdll_data_tcl.o kitInit.o rechan.o pwb.o TCLSH_NATIVE = tclsh # Default target all: libtcl.@SHOBJEXT@ # Build targets |
︙ | ︙ | |||
24 25 26 27 28 29 30 | ## Extensions rechan.o: rechan.c pwb.o: pwb.c ## DLL Build libtcl.@SHOBJEXT@: $(OBJS) | | | | 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 | ## Extensions rechan.o: rechan.c pwb.o: pwb.c ## DLL Build libtcl.@SHOBJEXT@: $(OBJS) $(CC) $(CPPFLAGS) $(CFLAGS) -o libtcl.@SHOBJEXT@ $(OBJS) $(LDFLAGS) $(SHOBJLDFLAGS) -Wl,--whole-archive $(STATICLIBS) -Wl,--no-whole-archive $(LIBS) # Test driver tclsh.o: tclsh.c tclsh: tclsh.o libtcl.@SHOBJEXT@ $(CC) $(CPPFLAGS) $(CFLAGS) -o tclsh tclsh.o -L. -ltcl -Wl,-R,`pwd` # Cleanup routeines clean: rm -f libtcl.@SHOBJEXT@ rm -f $(OBJS) rm -f vfs_kitdll_data_tcl.c rm -f vfs_kitdll.tcl.h rm -f tclsh.o tclsh distclean: clean rm -f config.status config.log rm -f *~ rm -f Makefile mrproper: distclean .PHONY: all clean distclean |
Modified kitdll/buildsrc/kitdll-0.0/aclocal.m4 from [d62a4ca24d] to [e402deb226].
︙ | ︙ | |||
74 75 76 77 78 79 80 | ;; hpux*) SHOBJEXT="sl" ;; mingw*) SHOBJEXT="dll" SHOBJFLAGS="-mno-cygwin -mms-bitfields -DPIC" | | | 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 | ;; hpux*) SHOBJEXT="sl" ;; mingw*) SHOBJEXT="dll" SHOBJFLAGS="-mno-cygwin -mms-bitfields -DPIC" SHOBJLDFLAGS='-shared -Wl,--dll -Wl,--enable-auto-image-base -Wl,--output-def,$[@].def,--out-implib,$[@].a -Wl,--export-all-symbols -Wl,--add-stdcall-alias' ;; esac ]) AC_DEFUN(DC_DO_TCL, [ AC_MSG_CHECKING([path to tcl]) AC_ARG_WITH(tcl, AC_HELP_STRING([--with-tcl], [directory containing tcl configuration (tclConfig.sh)]), [], [ |
︙ | ︙ | |||
215 216 217 218 219 220 221 | ;; esac ]) AC_DEFUN(DC_FIND_TCLKIT_LIBS, [ DC_SETUP_TCL_PLAT_DEFS | | > > > > | 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 | ;; esac ]) AC_DEFUN(DC_FIND_TCLKIT_LIBS, [ DC_SETUP_TCL_PLAT_DEFS for proj in tcl tclvfs; do AC_MSG_CHECKING([for libraries required for ${proj}]) libdir="../../../${proj}/inst" libfiles="`find "${libdir}" -name '*.a' 2>/dev/null | tr "\n" ' '`" libfilesnostub="`find "${libdir}" -name '*.a' 2>/dev/null | grep -v 'stub' | tr "\n" ' '`" if test "$proj" = "tcl"; then libfiles="${libfilesnostub}" fi ARCHS="${ARCHS} ${libfiles}" AC_MSG_RESULT([${libfiles}]) done AC_SUBST(ARCHS) ]) |
Modified kitdll/buildsrc/kitdll-0.0/kitInit.c from [9b8845772e] to [891f640ccd].
︙ | ︙ | |||
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | #endif Tcl_AppInitProc Vfs_Init, Rechan_Init; Tcl_AppInitProc Vfs_kitdll_data_tcl_Init; #ifdef KIT_INCLUDES_PWB Tcl_AppInitProc Pwb_Init; #endif static char *preInitCmd = "proc tclKitInit {} {\n" "rename tclKitInit {}\n" "load {} tclkit::init\n" "load {} rechan\n" "load {} vfs\n" "load {} vfs_kitdll_data_tcl\n" #include "vfs_kitdll.tcl.h" "vfs::kitdll::Mount tcl /.KITDLL_TCL\n" "set f [open \"/.KITDLL_TCL/boot.tcl\"]\n" "set s [read $f]\n" "close $f\n" "::tclkit::init::initInterp\n" "rename ::tclkit::init::initInterp {}\n" "uplevel #0 $s\n" "}\n" "tclKitInit"; static int tclkit_init_initinterp(ClientData cd, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { #ifdef _WIN32 Tcl_SetVar(interp, "tcl_rcFileName", "~/tclkitrc.tcl", TCL_GLOBAL_ONLY); #else | > > > > > > > > > > | 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #endif Tcl_AppInitProc Vfs_Init, Rechan_Init; Tcl_AppInitProc Vfs_kitdll_data_tcl_Init; #ifdef KIT_INCLUDES_PWB Tcl_AppInitProc Pwb_Init; #endif #ifdef TCL_THREADS Tcl_AppInitProc Thread_Init; #endif #ifdef _WIN32 Tcl_AppInitProc Dde_Init, Registry_Init; #endif static char *preInitCmd = "proc tclKitInit {} {\n" "rename tclKitInit {}\n" "load {} tclkit::init\n" "load {} rechan\n" "load {} vfs\n" "load {} vfs_kitdll_data_tcl\n" #include "vfs_kitdll.tcl.h" "vfs::kitdll::Mount tcl /.KITDLL_TCL\n" "set f [open \"/.KITDLL_TCL/boot.tcl\"]\n" "set s [read $f]\n" "close $f\n" "::tclkit::init::initInterp\n" "rename ::tclkit::init::initInterp {}\n" "uplevel #0 $s\n" #ifdef _WIN32 "catch {load {} dde}\n" "catch {load {} registry}\n" #endif /* _WIN32 */ "}\n" "tclKitInit"; static int tclkit_init_initinterp(ClientData cd, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) { #ifdef _WIN32 Tcl_SetVar(interp, "tcl_rcFileName", "~/tclkitrc.tcl", TCL_GLOBAL_ONLY); #else |
︙ | ︙ | |||
66 67 68 69 70 71 72 | void __attribute__((constructor)) _Tclkit_Init(void) { Tcl_StaticPackage(0, "tclkit::init", Tclkit_init_Init, NULL); Tcl_StaticPackage(0, "rechan", Rechan_Init, NULL); Tcl_StaticPackage(0, "vfs", Vfs_Init, NULL); Tcl_StaticPackage(0, "vfs_kitdll_data_tcl", Vfs_kitdll_data_tcl_Init, NULL); #ifdef KIT_INCLUDES_PWB | | | > > > > > > > | 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 | void __attribute__((constructor)) _Tclkit_Init(void) { Tcl_StaticPackage(0, "tclkit::init", Tclkit_init_Init, NULL); Tcl_StaticPackage(0, "rechan", Rechan_Init, NULL); Tcl_StaticPackage(0, "vfs", Vfs_Init, NULL); Tcl_StaticPackage(0, "vfs_kitdll_data_tcl", Vfs_kitdll_data_tcl_Init, NULL); #ifdef KIT_INCLUDES_PWB Tcl_StaticPackage(0, "pwb", Pwb_Init, NULL); #endif #ifdef TCL_THREADS Tcl_StaticPackage(0, "Thread", Thread_Init, NULL); #endif #ifdef _WIN32 Tcl_StaticPackage(0, "dde", Dde_Init, NULL); Tcl_StaticPackage(0, "registry", Registry_Init, NULL); #endif TclSetPreInitScript(preInitCmd); return; } |