summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--[-rwxr-xr-x]tests/winDialog.test0
-rw-r--r--unix/Makefile.in55
-rw-r--r--unix/tkAppInit.c23
-rw-r--r--win/Makefile.in89
-rw-r--r--win/winMain.c4
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;
}