diff options
-rw-r--r--[-rwxr-xr-x] | tests/winDialog.test | 0 | ||||
-rw-r--r-- | unix/Makefile.in | 55 | ||||
-rw-r--r-- | unix/tkAppInit.c | 23 | ||||
-rw-r--r-- | win/Makefile.in | 89 | ||||
-rw-r--r-- | win/winMain.c | 4 |
5 files changed, 166 insertions, 5 deletions
diff --git a/tests/winDialog.test b/tests/winDialog.test index c53b6d7..c53b6d7 100755..100644 --- a/tests/winDialog.test +++ b/tests/winDialog.test diff --git a/unix/Makefile.in b/unix/Makefile.in index a4bc2d4..88ec7a4 100644 --- a/unix/Makefile.in +++ b/unix/Makefile.in @@ -106,6 +106,8 @@ TCL_GENERIC_DIR = @TCL_SRC_DIR@/generic # appropriate for this version of Tk: TCL_PLATFORM_DIR = @TCL_SRC_DIR@/unix +TCL_SRC_DIR = @TCL_SRC_DIR@ + # The directory containing the Tcl library archive file appropriate # for this version of Tk: TCL_BIN_DIR = @TCL_BIN_DIR@ @@ -210,8 +212,10 @@ BUILD_TCLSH = @BUILD_TCLSH@ EXE_SUFFIX = @EXEEXT@ TCL_EXE = @TCLSH_PROG@ WISH_EXE = wish${EXE_SUFFIX} +TKKIT_EXE = tkkit${EXE_SUFFIX} TKTEST_EXE = tktest${EXE_SUFFIX} + # Tk used to let the configure script choose which program to use # for installing, but there are just too many different versions of # "install" around; better to use the install-sh script that comes @@ -406,6 +410,8 @@ AQUA_OBJS = tkMacOSXBitmap.o tkMacOSXButton.o tkMacOSXClipboard.o \ AQUA_TKTEST_OBJS = tkMacOSXTest.o +KIT_STATIC_OBJS = tkOldTest.o tkSquare.o tkTest.o tkWindow.o ttkStubLib.o tkWinTest.o tkWinWm.o tkConsole.o + OBJS = $(GENERIC_OBJS) $(WIDG_OBJS) $(CANV_OBJS) $(IMAGE_OBJS) $(TEXT_OBJS) \ $(STUB_OBJS) $(TTK_OBJS) \ $(@TK_WINDOWINGSYSTEM@_OBJS) @PLAT_OBJS@ @@ -570,7 +576,7 @@ SHELL_ENV = \ all: binaries libraries doc -binaries: ${LIB_FILE} ${WISH_EXE} +binaries: ${LIB_FILE} ${WISH_EXE} ${TKKIT_EXE} tkvfs.zip libraries: @@ -593,6 +599,9 @@ ${STUB_LIB_FILE}: ${STUB_LIB_OBJS} rm -f $@ @MAKE_STUB_LIB@ +clear-stubs-objs: + rm -f $(KIT_STATIC_OBJS) + # Build Aqua resource files ${TK_RSRC_FILE}: $(AQUA_RESOURCES) rm -f $@ @@ -618,6 +627,33 @@ ${WISH_EXE}: $(TK_STUB_LIB_FILE) $(WISH_OBJS) $(TK_LIB_FILE) @APP_RSRC_FILE@ ${CC} ${CFLAGS} ${LDFLAGS} $(WISH_OBJS) @TK_BUILD_LIB_SPEC@ \ $(WISH_LIBS) $(CC_SEARCH_FLAGS) -o ${WISH_EXE} +null.zip: + touch .empty + zip null.zip .empty + +# Rather than force an install, pack the files we need into a +# file system under our control +tkkit.vfs: ${LIB_FILE} + @echo "Building VFS File system in tclkit.vfs" + @$(TCL_EXE) "$(TCL_SRC_DIR)/tools/mkVfs.tcl" \ + "$(UNIX_DIR)/tkkit.vfs/boot/tcl" "$(TCL_SRC_DIR)" unix + @$(TCL_EXE) "$(TCL_SRC_DIR)/tools/mkVfs.tcl" \ + "$(UNIX_DIR)/tkkit.vfs/boot/tk" "$(TOP_DIR)" unix $(TK_LIB_FILE) ${VERSION}${PATCH_LEVEL} + +tkvfs.zip: ${LIB_FILE} tkkit.vfs + @$(TCL_EXE) "$(TCL_SRC_DIR)/tools/mkzip.tcl" tkvfs.zip \ + -directory tkkit.vfs + +$(TCL_SRC_DIR)/unix/basekit_bare: + make -C $(TCL_SRC_DIR)/unix basekit + +# Builds an executable linked to the Tcl dynamic library +${TKKIT_EXE}: $(TCL_SRC_DIR)/unix/basekit_bare tkkit.vfs + @$(TCL_EXE) "$(TCL_SRC_DIR)/tools/mkzip.tcl" ${TKKIT_EXE} \ + -runtime $(TCL_SRC_DIR)/unix/basekit_bare \ + -directory tkkit.vfs + chmod a+x ${TKKIT_EXE} + # Resetting the LIB_RUNTIME_DIR below is required so that # the generated tktest executable gets the build directory # burned into its ld search path. This keeps tktest from @@ -748,6 +784,10 @@ install-binaries: $(TK_STUB_LIB_FILE) $(TK_LIB_FILE) ${WISH_EXE} fi @echo "Installing ${WISH_EXE} as $(BIN_INSTALL_DIR)/wish$(VERSION)${EXE_SUFFIX}" @$(INSTALL_PROGRAM) ${WISH_EXE} "$(BIN_INSTALL_DIR)/wish$(VERSION)${EXE_SUFFIX}" + @echo "Installing ${TKKIT_EXE} as $(BIN_INSTALL_DIR)/tkkit$(VERSION)${EXE_SUFFIX}" + @$(INSTALL_PROGRAM) ${TKKIT_EXE} "$(BIN_INSTALL_DIR)/tkkit$(VERSION)${EXE_SUFFIX}" + @echo "Installing tkvfs.zip as $(BIN_INSTALL_DIR)/tkvfs.zip" + @$(INSTALL_PROGRAM) tkvfs.zip "$(BIN_INSTALL_DIR)/tkvfs$(VERSION).zip" @echo "Installing tkConfig.sh to $(CONFIG_INSTALL_DIR)/" @$(INSTALL_DATA) tkConfig.sh "$(CONFIG_INSTALL_DIR)/tkConfig.sh" @if test "$(STUB_LIB_FILE)" != "" ; then \ @@ -898,6 +938,7 @@ Makefile: $(UNIX_DIR)/Makefile.in # $(SHELL) config.status clean: + rm -rf tkkit.vfs rm -f *.a *.o libtk* core errs *~ \#* TAGS *.E a.out \ errors ${WISH_EXE} $(TKTEST_EXE) lib.exp Tk *.rsrc @@ -931,6 +972,16 @@ tkTestInit.o: $(UNIX_DIR)/tkAppInit.c ${WISH_EXE} tkAppInit.o: $(UNIX_DIR)/tkAppInit.c $(CC) -c $(APP_CC_SWITCHES) $(UNIX_DIR)/tkAppInit.c +tkKitInit.o: $(UNIX_DIR)/tkAppInit.c + $(CC) -c $(APP_CC_SWITCHES) -DTCL_ZIPVFS $(UNIX_DIR)/tkAppInit.c -o tkKitInit.o + + +tclZipVfs.o: $(TCL_SRC_DIR)/generic/tclZipVfs.c + $(CC) -c $(CC_SWITCHES) $(TCL_SRC_DIR)/generic/tclZipVfs.c + +tclZipVfsBoot.o: $(TCL_SRC_DIR)/generic/tclZipVfsBoot.c + $(CC) -c $(CC_SWITCHES) $(TCL_SRC_DIR)/generic/tclZipVfsBoot.c + tk3d.o: $(GENERIC_DIR)/tk3d.c $(CC) -c $(CC_SWITCHES) $(GENERIC_DIR)/tk3d.c @@ -1695,6 +1746,6 @@ BUILD_HTML = \ .PHONY: clean distclean depend genstubs checkstubs checkexports checkuchar .PHONY: shell gdb valgrind valgrindshell dist alldist rpm .PHONY: tkLibObjs tktest-real test-classic test-ttk testlang -.PHONY: demo install-demos +.PHONY: demo install-demos # DO NOT DELETE THIS LINE -- make depend depends on it. diff --git a/unix/tkAppInit.c b/unix/tkAppInit.c index 13bcdde..5b4575b 100644 --- a/unix/tkAppInit.c +++ b/unix/tkAppInit.c @@ -32,6 +32,14 @@ extern Tcl_PackageInitProc Tktest_Init; #ifndef MODULE_SCOPE # define MODULE_SCOPE extern #endif +#ifdef TCL_ZIPVFS + #include "tkInt.h" + + MODULE_SCOPE int Tcl_Zvfs_Boot(const char *,const char *,const char *); + MODULE_SCOPE int Zvfs_Init(Tcl_Interp *); + MODULE_SCOPE int Zvfs_SafeInit(Tcl_Interp *); + +#endif /* TCL_ZIPVFS */ MODULE_SCOPE int TK_LOCAL_APPINIT(Tcl_Interp *); MODULE_SCOPE int main(int, char **); @@ -74,7 +82,13 @@ main( #ifdef TK_LOCAL_MAIN_HOOK TK_LOCAL_MAIN_HOOK(&argc, &argv); #endif - +#ifdef TCL_ZIPVFS + #define TCLKIT_INIT "main.tcl" + #define TCLKIT_VFSMOUNT "/zvfs" + Tcl_FindExecutable(argv[0]); + CONST char *cp=Tcl_GetNameOfExecutable(); + Tcl_Zvfs_Boot(cp,TCLKIT_VFSMOUNT,TCLKIT_INIT); +#endif Tk_Main(argc, argv, TK_LOCAL_APPINIT); return 0; /* Needed only to prevent compiler warning. */ } @@ -111,6 +125,13 @@ Tcl_AppInit( } Tcl_StaticPackage(interp, "Tk", Tk_Init, Tk_SafeInit); +#ifdef TCL_ZIPVFS + /* Load the ZipVfs package */ + Tcl_StaticPackage(interp, "zvfs", Zvfs_Init, Zvfs_SafeInit); + if(Zvfs_Init(interp) == TCL_ERROR) { + return TCL_ERROR; + } +#endif #ifdef TK_TEST if (Tktest_Init(interp) == TCL_ERROR) { return TCL_ERROR; diff --git a/win/Makefile.in b/win/Makefile.in index 7e48213..82d8545 100644 --- a/win/Makefile.in +++ b/win/Makefile.in @@ -142,6 +142,8 @@ SHARED_LIBRARIES = $(TK_DLL_FILE) $(TK_STUB_LIB_FILE) STATIC_LIBRARIES = $(TK_LIB_FILE) WISH = wish$(VER)${EXESUFFIX} +TCLKIT = tclkit$(VER)s${EXEEXT} +TKKIT = tkkit$(VER)${EXESUFFIX} TKTEST = tktest${EXEEXT} CAT32 = cat32$(EXEEXT) MAN2TCL = man2tcl$(EXEEXT) @@ -238,6 +240,10 @@ INSTALL_DATA = ${INSTALL} WISH_OBJS = \ winMain.$(OBJEXT) +TKKIT_OBJS = \ + tkKitMain.$(OBJEXT) \ + tclZipVfs.$(OBJEXT) + TKTEST_OBJS = \ tkSquare.$(OBJEXT) \ tkTest.$(OBJEXT) \ @@ -398,6 +404,19 @@ STUB_OBJS = \ tkStubLib.$(OBJEXT) \ ttkStubLib.$(OBJEXT) +ZLIB_OBJS = \ + adler32.$(OBJEXT) \ + compress.$(OBJEXT) \ + crc32.$(OBJEXT) \ + deflate.$(OBJEXT) \ + infback.$(OBJEXT) \ + inffast.$(OBJEXT) \ + inflate.$(OBJEXT) \ + inftrees.$(OBJEXT) \ + trees.$(OBJEXT) \ + uncompr.$(OBJEXT) \ + zutil.$(OBJEXT) + TCL_DOCS = "$(TCL_SRC_DIR_NATIVE)/doc/*.[13n]" TK_DOCS = "$(ROOT_DIR_NATIVE)/doc/*.[13n]" CORE_DOCS = $(TCL_DOCS) $(TK_DOCS) @@ -477,7 +496,7 @@ install-binaries: binaries else true; \ fi; \ done; - @for i in $(TK_DLL_FILE) $(WISH); \ + @for i in $(TK_DLL_FILE) $(WISH) $(TKKIT) ; \ do \ if [ -f $$i ]; then \ echo "Installing $$i to $(BIN_INSTALL_DIR)/"; \ @@ -617,6 +636,35 @@ $(WISH): $(WISH_OBJS) @LIBRARIES@ $(TK_STUB_LIB_FILE) wish.$(RES) wish.$(RES) $(CC_EXENAME) $(LDFLAGS_WINDOW) @VC_MANIFEST_EMBED_EXE@ +tkkit: $(TKKIT) + +null.zip: + touch .empty + zip null.zip .empty + +tkkit.vfs: ${TK_DLL_FILE} + @echo "Building VFS File system in tclkit.vfs" + @$(TCL_EXE) "$(TCL_SRC_DIR)/tools/mkVfs.tcl" \ + "$(WIN_DIR)/tkkit.vfs/tk$(VERSION)" "$(TCL_SRC_DIR)" windows + @$(TCL_EXE) "$(TCL_SRC_DIR)/tools/mkVfs.tcl" \ + "$(WIN_DIR)/tkkit.vfs/tk$(VERSION)" "$(ROOT_DIR)" windows + mkdir -p $(WIN_DIR)/tkkit.vfs/tcl$(VERSION) + mkdir -p $(WIN_DIR)/tkkit.vfs/bin + cp $(TCL_SRC_DIR)/win/tclkit.vfs/tcl$(VERSION)/init.tcl $(WIN_DIR)/tkkit.vfs/tcl$(VERSION)/init.tcl + cp $(TK_DLL_FILE) tkkit.vfs/bin/$(TK_DLL_FILE) + chmod a+rw $(WIN_DIR)/tkkit.vfs/tcl$(VERSION)/init.tcl + echo "lappend auto_path /zvfs/tk$(VERSION)" >> $(WIN_DIR)/tkkit.vfs/tcl$(VERSION)/init.tcl + echo "package ifneeded Tk $(VERSION)$(PATCH_LEVEL) [list load "/zvfs/bin/${TK_DLL_FILE}" Tk]" >> $(WIN_DIR)/tkkit.vfs/tcl$(VERSION)/init.tcl + +$(TCLKIT): + make -C $(TCL_SRC_DIR)/win tclkit + cp $(TCL_SRC_DIR)/win/$(TCLKIT) $(TCLKIT) + +$(TKKIT): $(TCLKIT) tkkit.vfs null.zip + PWD=`pwd` + cp $(TCLKIT) $(TKKIT) + cd tkkit.vfs ; zip -rAq $(PWD)/$(TKKIT) . + tktest: $(TKTEST) $(TKTEST): testMain.$(OBJEXT) $(TEST_DLL_FILE) @LIBRARIES@ $(TK_STUB_LIB_FILE) wish.$(RES) @@ -678,6 +726,45 @@ tkSquare.$(OBJEXT): tkSquare.c tkMain2.$(OBJEXT): tkMain.c $(CC) -c $(CC_SWITCHES) -DBUILD_tk -DTK_ASCII_MAIN @DEPARG@ $(CC_OBJNAME) +tkKitMain.$(OBJEXT): winMain.c + $(CC) -c $(CC_SWITCHES) -DTCL_KIT @DEPARG@ $(CC_OBJNAME) + +tclZipVfs.$(OBJEXT): $(TCL_GENERIC_DIR)/tclZipVfs.c + $(CC) -I$(TCL_SRC_DIR)/compat/zlib -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME) + +adler32.$(OBJEXT): $(TCL_SRC_DIR)/compat/zlib/adler32.c + $(CC) -I$(TCL_SRC_DIR)/compat/zlib -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME) + +compress.$(OBJEXT): $(TCL_SRC_DIR)/compat/zlib/compress.c + $(CC) -I$(TCL_SRC_DIR)/compat/zlib -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME) + +crc32.$(OBJEXT): $(TCL_SRC_DIR)/compat/zlib/crc32.c + $(CC) -I$(TCL_SRC_DIR)/compat/zlib -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME) + +deflate.$(OBJEXT): $(TCL_SRC_DIR)/compat/zlib/deflate.c + $(CC) -I$(TCL_SRC_DIR)/compat/zlib -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME) + +infback.$(OBJEXT): $(TCL_SRC_DIR)/compat/zlib/infback.c + $(CC) -I$(TCL_SRC_DIR)/compat/zlib -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME) + +inffast.$(OBJEXT): $(TCL_SRC_DIR)/compat/zlib/inffast.c + $(CC) -I$(TCL_SRC_DIR)/compat/zlib -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME) + +inflate.$(OBJEXT): $(TCL_SRC_DIR)/compat/zlib/inflate.c + $(CC) -I$(TCL_SRC_DIR)/compat/zlib -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME) + +inftrees.$(OBJEXT): $(TCL_SRC_DIR)/compat/zlib/inftrees.c + $(CC) -I$(TCL_SRC_DIR)/compat/zlib -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME) + +trees.$(OBJEXT): $(TCL_SRC_DIR)/compat/zlib/trees.c + $(CC) -I$(TCL_SRC_DIR)/compat/zlib -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME) + +uncompr.$(OBJEXT): $(TCL_SRC_DIR)/compat/zlib/uncompr.c + $(CC) -I$(TCL_SRC_DIR)/compat/zlib -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME) + +zutil.$(OBJEXT): $(TCL_SRC_DIR)/compat/zlib/zutil.c + $(CC) -I$(TCL_SRC_DIR)/compat/zlib -c $(CC_SWITCHES) @DEPARG@ $(CC_OBJNAME) + # Extra dependency info tkConsole.$(OBJEXT): configure Makefile tkMain.$(OBJEXT): configure Makefile diff --git a/win/winMain.c b/win/winMain.c index 62bcbd8..7af871c 100644 --- a/win/winMain.c +++ b/win/winMain.c @@ -146,7 +146,6 @@ _tWinMain( #ifdef TK_LOCAL_MAIN_HOOK TK_LOCAL_MAIN_HOOK(&argc, &argv); #endif - Tk_Main(argc, argv, TK_LOCAL_APPINIT); return 0; /* Needed only to prevent compiler warning. */ } @@ -174,6 +173,9 @@ int Tcl_AppInit( Tcl_Interp *interp) /* Interpreter for application. */ { +#if defined TCL_KIT + Tcl_Zvfs_Boot(interp); +#endif if ((Tcl_Init)(interp) == TCL_ERROR) { return TCL_ERROR; } |