summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhypnotoad <yoda@etoyoc.com>2014-11-15 00:12:00 (GMT)
committerhypnotoad <yoda@etoyoc.com>2014-11-15 00:12:00 (GMT)
commit4ec0703eaed08fe2c28d1fc08fe5ed4121e8b319 (patch)
tree0357ebc205d7e45b382d9ba2743d85d83bcc5601
parent93007a3558a3fd64ee64bcab00efdc568b238656 (diff)
downloadtcl-4ec0703eaed08fe2c28d1fc08fe5ed4121e8b319.zip
tcl-4ec0703eaed08fe2c28d1fc08fe5ed4121e8b319.tar.gz
tcl-4ec0703eaed08fe2c28d1fc08fe5ed4121e8b319.tar.bz2
For the feature branch we now enable Zip file functions for all shells in Unix, and
explicitly name a new executable "basekit", which is a statically linked tclsh with an attached library VFS
-rw-r--r--unix/Makefile.in58
-rw-r--r--unix/tclAppInit.c12
2 files changed, 23 insertions, 47 deletions
diff --git a/unix/Makefile.in b/unix/Makefile.in
index 119bf9a..291f73b 100644
--- a/unix/Makefile.in
+++ b/unix/Makefile.in
@@ -168,12 +168,7 @@ INSTALL_DATA_DIR = ${INSTALL} -d -m 755
# Do not use SHELL_ENV for NATIVE_TCLSH unless it is the tclsh being built.
EXE_SUFFIX = @EXEEXT@
TCL_EXE = tclsh${EXE_SUFFIX}
-ifeq ($(SHARED_BUILD),0)
-TCLZSH_BASE = tclzshs
-else
-TCLZSH_BASE = tclzshd
-endif
-TCLZSH_EXE = ${TCLZSH_BASE}${EXE_SUFFIX}
+BASEKIT_EXE = basekit${EXE_SUFFIX}
TCLTEST_EXE = tcltest${EXE_SUFFIX}
NATIVE_TCLSH = @TCLSH_PROG@
@@ -290,7 +285,7 @@ LIBS = @TCL_LIBS@
DEPEND_SWITCHES = ${CFLAGS} -I${UNIX_DIR} -I${GENERIC_DIR} \
${AC_FLAGS} ${PROTO_FLAGS} ${EXTRA_CFLAGS} @EXTRA_CC_SWITCHES@
-TCLSH_OBJS = tclAppInit.o
+TCLSH_OBJS = tclAppInit.o tclZipVfs.o tclZipVfsBoot.o
TCLTEST_OBJS = tclTestInit.o tclTest.o tclTestObj.o tclTestProcBodyObj.o \
tclThreadTest.o tclUnixTest.o
@@ -367,8 +362,6 @@ ZLIB_OBJS = Zadler32.o Zcompress.o Zcrc32.o Zdeflate.o Zinfback.o \
TCL_OBJS = ${GENERIC_OBJS} ${UNIX_OBJS} ${NOTIFY_OBJS} ${COMPAT_OBJS} \
${OO_OBJS} @DL_OBJS@ @PLAT_OBJS@
-TCLZSH_OBJS = tclZipShInit.o tclZipVfs.o tclZipVfsBoot.o
-
OBJS = ${TCL_OBJS} ${TOMMATH_OBJS} @DTRACE_OBJ@ @ZLIB_OBJS@
TCL_DECLS = \
@@ -624,7 +617,7 @@ SRCS = $(GENERIC_SRCS) $(TOMMATH_SRCS) $(UNIX_SRCS) $(NOTIFY_SRCS) \
all: binaries libraries doc packages
-binaries: ${LIB_FILE} ${TCL_EXE} ${TCLZSH_EXE}
+binaries: ${LIB_FILE} ${TCL_EXE} ${BASEKIT_EXE}
libraries:
@@ -663,35 +656,24 @@ ${NATIVE_TCLSH}:
# Rather than force an install, pack the files we need into a
# file system under our control
-tclzsh.vfs:
- @echo "Building VFS File system in tclzsh.vfs"
+basekit.vfs:
+ @echo "Building VFS File system in basekit.vfs"
@$(TCL_EXE) "$(TOP_DIR)/tools/mkVfs.tcl" \
- "$(UNIX_DIR)/tclzsh.vfs/boot/tcl" "$(TOP_DIR)" unix
+ "$(UNIX_DIR)/basekit.vfs/boot/tcl" "$(TOP_DIR)" unix
-tclzsh: ${TCLZSH_EXE}
+# Builds an executable directly from the Tcl sources
+${BASEKIT_EXE}: ${TCLSH_OBJS} ${OBJS} ${ZLIB_OBJS} basekit.vfs
-${TCLZSH_BASE}_bare: ${TCLZSH_OBJS} ${TCL_LIB_FILE} ${TCL_STUB_LIB_FILE}
${CC} ${CFLAGS} ${LDFLAGS} \
- ${TCLZSH_OBJS} \
- @TCL_BUILD_LIB_SPEC@ \
+ ${TCLSH_OBJS} ${OBJS} ${ZLIB_OBJS} \
${LIBS} @EXTRA_TCLSH_LIBS@ \
- ${CC_SEARCH_FLAGS} -o ${TCLZSH_BASE}_bare
+ ${CC_SEARCH_FLAGS} -o ${BASEKIT_EXE}_bare
+ @echo zipping...
+ @$(TCL_EXE) ../tools/mkzip.tcl ${BASEKIT_EXE} \
+ -runtime ${BASEKIT_EXE}_bare \
+ -directory basekit.vfs
+ chmod a+x ${BASEKIT_EXE}
-# Builds an executable linked to the Tcl dynamic library
-${TCLZSH_EXE}: ${TCLZSH_BASE}_bare tclzsh.vfs
- @$(TCL_EXE) ../tools/mkzip.tcl ${TCLZSH_EXE} \
- -runtime ${TCLZSH_BASE}_bare \
- -directory tclzsh.vfs
- chmod a+x ${TCLZSH_EXE}
-
-# Builds an executable directly from the Tcl sources
-tclzsh-static: ${TCLZSH_OBJS} ${OBJS} ${ZLIB_OBJS} null.zip tclzsh.vfs
- ${CC} ${CFLAGS} ${LDFLAGS} \
- ${TCLZSH_OBJS} ${OBJS} ${ZLIB_OBJS} \
- ${LIBS} @EXTRA_TCLSH_LIBS@ \
- ${CC_SEARCH_FLAGS} -o ${TCLZSH_EXE}
- cat null.zip >> ${TCLZSH_EXE}
- cd tclzsh.vfs ; zip -rAq ${UNIX_DIR}/${TCLZSH_EXE} .
Makefile: $(UNIX_DIR)/Makefile.in $(DLTEST_DIR)/Makefile.in
$(SHELL) config.status
@@ -699,10 +681,10 @@ Makefile: $(UNIX_DIR)/Makefile.in $(DLTEST_DIR)/Makefile.in
# $(SHELL) config.status
clean: clean-packages
- rm -rf tclzsh.vfs null.zip
+ rm -rf basekit.vfs null.zip
rm -f *.a *.o libtcl* core errs *~ \#* TAGS *.E a.out \
errors ${TCL_EXE} ${TCLTEST_EXE} lib.exp Tcl @DTRACE_HDR@ \
- ${TCLZSH_EXE} tclzsh*
+ ${BASEKIT_EXE} basekit*
cd dltest ; $(MAKE) clean
distclean: distclean-packages clean
@@ -846,8 +828,9 @@ install-binaries: binaries
@chmod 555 "$(DLL_INSTALL_DIR)/$(LIB_FILE)"
@echo "Installing ${TCL_EXE} as $(BIN_INSTALL_DIR)/tclsh$(VERSION)${EXE_SUFFIX}"
@$(INSTALL_PROGRAM) ${TCL_EXE} "$(BIN_INSTALL_DIR)/tclsh$(VERSION)${EXE_SUFFIX}"
- @echo "Installing ${TCLZSH_EXE} as $(BIN_INSTALL_DIR)/${TCLZSH_BASE}$(VERSION)${EXE_SUFFIX}"
- @$(INSTALL_PROGRAM) ${TCLZSH_EXE} "$(BIN_INSTALL_DIR)/${TCLZSH_BASE}$(VERSION)${EXE_SUFFIX}"
+ @echo "Installing ${BASEKIT_EXE} as $(BIN_INSTALL_DIR)/${BASEKIT_EXE}$(VERSION)${EXE_SUFFIX}"
+ @$(INSTALL_PROGRAM) ${BASEKIT_EXE} "$(BIN_INSTALL_DIR)/${BASEKIT_EXE}$(VERSION)${EXE_SUFFIX}"
+
@echo "Installing tclConfig.sh to $(CONFIG_INSTALL_DIR)/"
@$(INSTALL_DATA) tclConfig.sh "$(CONFIG_INSTALL_DIR)/tclConfig.sh"
@echo "Installing tclooConfig.sh to $(CONFIG_INSTALL_DIR)/"
@@ -2181,7 +2164,6 @@ BUILD_HTML = \
.PHONY: install-tzdata install-msgs
.PHONY: packages configure-packages test-packages clean-packages
.PHONY: dist-packages distclean-packages install-packages
-.PHONY: tclzsh-static tclzsh
#--------------------------------------------------------------------------
# DO NOT DELETE THIS LINE -- make depend depends on it.
diff --git a/unix/tclAppInit.c b/unix/tclAppInit.c
index 1be1ce3..4b5d1f6 100644
--- a/unix/tclAppInit.c
+++ b/unix/tclAppInit.c
@@ -40,12 +40,10 @@ extern Tcl_PackageInitProc Tclxttest_Init;
#endif
MODULE_SCOPE int TCL_LOCAL_APPINIT(Tcl_Interp *);
MODULE_SCOPE int main(int, char **);
-#ifdef TCL_ZIPVFS
- 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 *);
+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 */
/*
* The following #if block allows you to change how Tcl finds the startup
* script, prime the library or encoding paths, fiddle with the argv, etc.,
@@ -85,13 +83,11 @@ main(
#ifdef TCL_LOCAL_MAIN_HOOK
TCL_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
Tcl_Main(argc, argv, TCL_LOCAL_APPINIT);
return 0; /* Needed only to prevent compiler warning. */
}
@@ -122,13 +118,11 @@ Tcl_AppInit(
if ((Tcl_Init)(interp) == TCL_ERROR) {
return TCL_ERROR;
}
-#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 TCL_XT_TEST
if (Tclxttest_Init(interp) == TCL_ERROR) {
return TCL_ERROR;