summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--generic/tclZipfs.c39
-rw-r--r--library/install.tcl13
-rw-r--r--unix/Makefile.in6
-rwxr-xr-xunix/configure194
-rw-r--r--unix/configure.ac75
-rw-r--r--unix/tcl.m4192
-rw-r--r--win/Makefile.in6
-rwxr-xr-xwin/configure114
-rw-r--r--win/configure.ac77
-rw-r--r--win/tcl.m4112
10 files changed, 408 insertions, 420 deletions
diff --git a/generic/tclZipfs.c b/generic/tclZipfs.c
index 689a648..8c852b2 100644
--- a/generic/tclZipfs.c
+++ b/generic/tclZipfs.c
@@ -3977,25 +3977,32 @@ int TclZipfs_AppHook(int *argc, char ***argv){
}
} else if (*argc>1) {
archive=(*argv)[1];
- fflush(stdout);
- if(!TclZipfs_Mount(NULL, archive, ZIPFS_APP_MOUNT, NULL)) {
- int found;
+ if(strcmp(archive,"install")==0) {
+ /* If the first argument is mkzip, run the mkzip program */
Tcl_Obj *vfsinitscript;
- vfsinitscript=Tcl_NewStringObj(ZIPFS_APP_MOUNT "/main.tcl",-1);
+ vfsinitscript=Tcl_NewStringObj(ZIPFS_ZIP_MOUNT "/tcl_library/install.tcl",-1);
Tcl_IncrRefCount(vfsinitscript);
- if(Tcl_FSAccess(vfsinitscript,F_OK)==0) {
- /* Startup script should be set before calling Tcl_AppInit */
- Tcl_SetStartupScript(vfsinitscript,NULL);
- } else {
+ Tcl_SetStartupScript(vfsinitscript,NULL);
+ } else {
+ if(!TclZipfs_Mount(NULL, archive, ZIPFS_APP_MOUNT, NULL)) {
+ int found;
+ Tcl_Obj *vfsinitscript;
+ vfsinitscript=Tcl_NewStringObj(ZIPFS_APP_MOUNT "/main.tcl",-1);
+ Tcl_IncrRefCount(vfsinitscript);
+ if(Tcl_FSAccess(vfsinitscript,F_OK)==0) {
+ /* Startup script should be set before calling Tcl_AppInit */
+ Tcl_SetStartupScript(vfsinitscript,NULL);
+ } else {
+ Tcl_DecrRefCount(vfsinitscript);
+ }
+ /* Set Tcl Encodings */
+ vfsinitscript=Tcl_NewStringObj(ZIPFS_APP_MOUNT "/tcl_library/init.tcl",-1);
+ Tcl_IncrRefCount(vfsinitscript);
+ found=Tcl_FSAccess(vfsinitscript,F_OK);
Tcl_DecrRefCount(vfsinitscript);
- }
- /* Set Tcl Encodings */
- vfsinitscript=Tcl_NewStringObj(ZIPFS_APP_MOUNT "/tcl_library/init.tcl",-1);
- Tcl_IncrRefCount(vfsinitscript);
- found=Tcl_FSAccess(vfsinitscript,F_OK);
- Tcl_DecrRefCount(vfsinitscript);
- if(found==TCL_OK) {
- return TCL_OK;
+ if(found==TCL_OK) {
+ return TCL_OK;
+ }
}
}
}
diff --git a/library/install.tcl b/library/install.tcl
new file mode 100644
index 0000000..f126b37
--- /dev/null
+++ b/library/install.tcl
@@ -0,0 +1,13 @@
+###
+# Installer actions built into tclsh and invoked
+# if the first command line argument is "install"
+###
+if {[llength $argv] < 2} {
+ exit 0
+}
+switch [lindex $argv 1] {
+ mkzip {
+ zipfs mkzip {*}[lrange $argv 2 end]
+ }
+}
+exit 0
diff --git a/unix/Makefile.in b/unix/Makefile.in
index 4540710..98c5865 100644
--- a/unix/Makefile.in
+++ b/unix/Makefile.in
@@ -632,6 +632,8 @@ HOST_EXEEXT = @EXEEXT_FOR_BUILD@
HOST_OBJEXT = @OBJEXT_FOR_BUILD@
ZIPFS_BUILD = @ZIPFS_BUILD@
NATIVE_ZIP = @ZIP_PROG@
+ZIP_PROG_OPTIONS = @ZIP_PROG_OPTIONS@
+ZIP_PROG_VFSSEARCH = @ZIP_PROG_VFSSEARCH@
SHARED_BUILD = @SHARED_BUILD@
INSTALL_LIBRARIES = @INSTALL_LIBRARIES@
INSTALL_MSGS = @INSTALL_MSGS@
@@ -653,7 +655,7 @@ MINIZIP_OBJS = \
zutil.$(HOST_OBJEXT) \
minizip.$(HOST_OBJEXT)
-ZIP_INSTALL_OBJS = minizip${EXEEXT_FOR_BUILD}
+ZIP_INSTALL_OBJS = @ZIP_INSTALL_OBJS@
#--------------------------------------------------------------------------
# Start of rules
@@ -674,7 +676,7 @@ ${TCL_ZIP_FILE}: ${ZIP_INSTALL_OBJS}
rm -rf ${TCL_VFS_ROOT}
mkdir -p ${TCL_VFS_PATH}
cp -a ../library/* ${TCL_VFS_PATH}
- cd ${TCL_VFS_ROOT} ; ../minizip${EXEEXT_FOR_BUILD} -o ../${TCL_ZIP_FILE} `find . -type f`
+ cd ${TCL_VFS_ROOT} ; ${NATIVE_ZIP} ${ZIP_PROG_OPTIONS} ../${TCL_ZIP_FILE} ${ZIP_PROG_VFSSEARCH}
# The following target is configured by autoconf to generate either a shared
# library or non-shared library for Tcl.
diff --git a/unix/configure b/unix/configure
index dd6bf6b..1c3a206 100755
--- a/unix/configure
+++ b/unix/configure
@@ -658,7 +658,6 @@ TCL_STUB_LIB_FILE
TCL_LIB_SPEC
TCL_LIB_FLAG
TCL_LIB_FILE
-TCL_ZIP_FILE
PKG_CFG_ARGS
TCL_YEAR
TCL_PATCH_LEVEL
@@ -667,10 +666,10 @@ TCL_MAJOR_VERSION
TCL_VERSION
INSTALL_MSGS
INSTALL_LIBRARIES
+TCL_ZIP_FILE
ZIPFS_BUILD
EXEEXT_FOR_BUILD
CC_FOR_BUILD
-ZIP_PROG
DTRACE
LDFLAGS_DEFAULT
CFLAGS_DEFAULT
@@ -2341,7 +2340,6 @@ VERSION=${TCL_VERSION}
EXTRA_INSTALL_BINARIES=${EXTRA_INSTALL_BINARIES:-"@:"}
EXTRA_BUILD_HTML=${EXTRA_BUILD_HTML:-"@:"}
-TCL_ZIP_FILE=libtcl_${TCL_MAJOR_VERSION}_${TCL_MINOR_VERSION}_${TCL_PATCH_LEVEL}.zip
#------------------------------------------------------------------------
# Setup configure arguments for bundled packages
@@ -10155,153 +10153,115 @@ fi
$as_echo "$tcl_ok" >&6; }
#--------------------------------------------------------------------
-# Zipfs support
+# Zipfs support - Tip 430
#--------------------------------------------------------------------
-
-#
-# Find a native zip implementation
-#
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for zip" >&5
-$as_echo_n "checking for zip... " >&6; }
- if ${ac_cv_path_zip+:} false; then :
- $as_echo_n "(cached) " >&6
+# Check whether --enable-zipfs was given.
+if test "${enable_zipfs+set}" = set; then :
+ enableval=$enable_zipfs; tcl_ok=$enableval
else
-
- search_path=`echo ${PATH} | sed -e 's/:/ /g'`
- for dir in $search_path ; do
- for j in `ls -r $dir/zip 2> /dev/null` \
- `ls -r $dir/zip 2> /dev/null` ; do
- if test x"$ac_cv_path_zip" = x ; then
- if test -f "$j" ; then
- ac_cv_path_zip=$j
- break
- fi
- fi
- done
- done
-
+ tcl_ok=yes
fi
-
- if test -f "$ac_cv_path_zip" ; then
- ZIP_PROG="$ac_cv_path_zip"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ZIP_PROG" >&5
-$as_echo "$ZIP_PROG" >&6; }
- else
- # It is not an error if an installed version of Zip can't be located.
- ZIP_PROG=""
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: No zip found on PATH" >&5
-$as_echo "No zip found on PATH" >&6; }
- fi
-
-
-
-#
-# Find a native compiler
-#
-# Put a plausible default for CC_FOR_BUILD in Makefile.
-if test -z "$CC_FOR_BUILD"; then
- if test "x$cross_compiling" = "xno"; then
- CC_FOR_BUILD='$(CC)'
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc" >&5
+if test "$tcl_ok" = "yes" ; then
+ #
+ # Find a native compiler
+ #
+ # Put a plausible default for CC_FOR_BUILD in Makefile.
+ if test -z "$CC_FOR_BUILD"; then
+ if test "x$cross_compiling" = "xno"; then
+ CC_FOR_BUILD='$(CC)'
+ else
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for gcc" >&5
$as_echo_n "checking for gcc... " >&6; }
- if ${ac_cv_path_cc+:} false; then :
+ if ${ac_cv_path_cc+:} false; then :
$as_echo_n "(cached) " >&6
else
- search_path=`echo ${PATH} | sed -e 's/:/ /g'`
- for dir in $search_path ; do
- for j in `ls -r $dir/gcc 2> /dev/null` \
- `ls -r $dir/gcc 2> /dev/null` ; do
- if test x"$ac_cv_path_cc" = x ; then
- if test -f "$j" ; then
- ac_cv_path_cc=$j
- break
- fi
- fi
- done
- done
+ search_path=`echo ${PATH} | sed -e 's/:/ /g'`
+ for dir in $search_path ; do
+ for j in `ls -r $dir/gcc 2> /dev/null` \
+ `ls -r $dir/gcc 2> /dev/null` ; do
+ if test x"$ac_cv_path_cc" = x ; then
+ if test -f "$j" ; then
+ ac_cv_path_cc=$j
+ break
+ fi
+ fi
+ done
+ done
fi
- fi
-fi
+ fi
+ fi
-# Also set EXEEXT_FOR_BUILD.
-if test "x$cross_compiling" = "xno"; then
- EXEEXT_FOR_BUILD='$(EXEEXT)'
- OBJEXT_FOR_BUILD='$(OBJEXT)'
-else
- OBJEXT_FOR_BUILD='.no'
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for build system executable suffix" >&5
+ # Also set EXEEXT_FOR_BUILD.
+ if test "x$cross_compiling" = "xno"; then
+ EXEEXT_FOR_BUILD='$(EXEEXT)'
+ OBJEXT_FOR_BUILD='$(OBJEXT)'
+ else
+ OBJEXT_FOR_BUILD='.no'
+ { $as_echo "$as_me:${as_lineno-$LINENO}: checking for build system executable suffix" >&5
$as_echo_n "checking for build system executable suffix... " >&6; }
if ${bfd_cv_build_exeext+:} false; then :
$as_echo_n "(cached) " >&6
else
rm -f conftest*
- echo 'int main () { return 0; }' > conftest.c
- bfd_cv_build_exeext=
- ${CC_FOR_BUILD} -o conftest conftest.c 1>&5 2>&5
- for file in conftest.*; do
- case $file in
- *.c | *.o | *.obj | *.ilk | *.pdb) ;;
- *) bfd_cv_build_exeext=`echo $file | sed -e s/conftest//` ;;
- esac
- done
- rm -f conftest*
- test x"${bfd_cv_build_exeext}" = x && bfd_cv_build_exeext=no
+ echo 'int main () { return 0; }' > conftest.c
+ bfd_cv_build_exeext=
+ ${CC_FOR_BUILD} -o conftest conftest.c 1>&5 2>&5
+ for file in conftest.*; do
+ case $file in
+ *.c | *.o | *.obj | *.ilk | *.pdb) ;;
+ *) bfd_cv_build_exeext=`echo $file | sed -e s/conftest//` ;;
+ esac
+ done
+ rm -f conftest*
+ test x"${bfd_cv_build_exeext}" = x && bfd_cv_build_exeext=no
fi
{ $as_echo "$as_me:${as_lineno-$LINENO}: result: $bfd_cv_build_exeext" >&5
$as_echo "$bfd_cv_build_exeext" >&6; }
- EXEEXT_FOR_BUILD=""
- test x"${bfd_cv_build_exeext}" != xno && EXEEXT_FOR_BUILD=${bfd_cv_build_exeext}
-fi
-
-
-if test "$ZIP_PROG" = ""; then
- ZIP_PROG='./minizip${EXEEXT_FOR_BUILD}'
-fi
-
-# Check whether --enable-zipfs was given.
-if test "${enable_zipfs+set}" = set; then :
- enableval=$enable_zipfs; tcl_ok=$enableval
-else
- tcl_ok=yes
-fi
+ EXEEXT_FOR_BUILD=""
+ test x"${bfd_cv_build_exeext}" != xno && EXEEXT_FOR_BUILD=${bfd_cv_build_exeext}
+ fi
- if test "$tcl_ok" = "yes" -o "${TCL_THREADS}" = 1; then
+ #
+ # Find a native zip implementation
+ #
+ SC_PROG_ZIP
ZIPFS_BUILD=1
- else
+ TCL_ZIP_FILE=libtcl_${TCL_MAJOR_VERSION}_${TCL_MINOR_VERSION}_${TCL_PATCH_LEVEL}.zip
+else
ZIPFS_BUILD=0
- fi
- # Do checking message here to not mess up interleaved configure output
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for building with zipfs" >&5
+ TCL_ZIP_FILE=
+fi
+# Do checking message here to not mess up interleaved configure output
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for building with zipfs" >&5
$as_echo_n "checking for building with zipfs... " >&6; }
- if test "${ZIPFS_BUILD}" = 1; then
- if test "${SHARED_BUILD}" = 0; then
- ZIPFS_BUILD=2;
+if test "${ZIPFS_BUILD}" = 1; then
+ if test "${SHARED_BUILD}" = 0; then
+ ZIPFS_BUILD=2;
$as_echo "#define ZIPFS_BUILD 2" >>confdefs.h
- INSTALL_LIBRARIES=install-libraries-zipfs-static
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ INSTALL_LIBRARIES=install-libraries-zipfs-static
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
- else
+ else
$as_echo "#define ZIPFS_BUILD 1" >>confdefs.h
\
- INSTALL_LIBRARIES=install-libraries-zipfs-shared
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ INSTALL_LIBRARIES=install-libraries-zipfs-shared
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
- fi
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- INSTALL_LIBRARIES=install-libraries
- INSTALL_MSGS=install-msgs
fi
+else
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+INSTALL_LIBRARIES=install-libraries
+INSTALL_MSGS=install-msgs
+fi
+
diff --git a/unix/configure.ac b/unix/configure.ac
index ed85184..0928fc8 100644
--- a/unix/configure.ac
+++ b/unix/configure.ac
@@ -30,7 +30,6 @@ VERSION=${TCL_VERSION}
EXTRA_INSTALL_BINARIES=${EXTRA_INSTALL_BINARIES:-"@:"}
EXTRA_BUILD_HTML=${EXTRA_BUILD_HTML:-"@:"}
-TCL_ZIP_FILE=libtcl_${TCL_MAJOR_VERSION}_${TCL_MINOR_VERSION}_${TCL_PATCH_LEVEL}.zip
#------------------------------------------------------------------------
# Setup configure arguments for bundled packages
@@ -793,53 +792,49 @@ fi
AC_MSG_RESULT([$tcl_ok])
#--------------------------------------------------------------------
-# Zipfs support
+# Zipfs support - Tip 430
#--------------------------------------------------------------------
-
-#
-# Find a native zip implementation
-#
-SC_PROG_ZIP
-
-#
-# Find a native compiler
-#
-AX_CC_FOR_BUILD
-
-if test "$ZIP_PROG" = ""; then
- ZIP_PROG='./minizip${EXEEXT_FOR_BUILD}'
-fi
-
AC_ARG_ENABLE(zipfs,
AC_HELP_STRING([--enable-zipfs],
[build with Zipfs support (default: on)]),
[tcl_ok=$enableval], [tcl_ok=yes])
- if test "$tcl_ok" = "yes" -o "${TCL_THREADS}" = 1; then
+if test "$tcl_ok" = "yes" ; then
+ #
+ # Find a native compiler
+ #
+ AX_CC_FOR_BUILD
+ #
+ # Find a native zip implementation
+ #
+ SC_PROG_ZIP
ZIPFS_BUILD=1
- else
+ TCL_ZIP_FILE=libtcl_${TCL_MAJOR_VERSION}_${TCL_MINOR_VERSION}_${TCL_PATCH_LEVEL}.zip
+else
ZIPFS_BUILD=0
+ TCL_ZIP_FILE=
+fi
+# Do checking message here to not mess up interleaved configure output
+AC_MSG_CHECKING([for building with zipfs])
+if test "${ZIPFS_BUILD}" = 1; then
+ if test "${SHARED_BUILD}" = 0; then
+ ZIPFS_BUILD=2;
+ AC_DEFINE(ZIPFS_BUILD, 2, [Are we building with zipfs enabled?])
+ INSTALL_LIBRARIES=install-libraries-zipfs-static
+ AC_MSG_RESULT([yes])
+ else
+ AC_DEFINE(ZIPFS_BUILD, 1, [Are we building with zipfs enabled?])\
+ INSTALL_LIBRARIES=install-libraries-zipfs-shared
+ AC_MSG_RESULT([yes])
fi
- # Do checking message here to not mess up interleaved configure output
- AC_MSG_CHECKING([for building with zipfs])
- if test "${ZIPFS_BUILD}" = 1; then
- if test "${SHARED_BUILD}" = 0; then
- ZIPFS_BUILD=2;
- AC_DEFINE(ZIPFS_BUILD, 2, [Are we building with zipfs enabled?])
- INSTALL_LIBRARIES=install-libraries-zipfs-static
- AC_MSG_RESULT([yes])
- else
- AC_DEFINE(ZIPFS_BUILD, 1, [Are we building with zipfs enabled?])\
- INSTALL_LIBRARIES=install-libraries-zipfs-shared
- AC_MSG_RESULT([yes])
- fi
- else
- AC_MSG_RESULT([no])
- INSTALL_LIBRARIES=install-libraries
- INSTALL_MSGS=install-msgs
- fi
- AC_SUBST(ZIPFS_BUILD)
- AC_SUBST(INSTALL_LIBRARIES)
- AC_SUBST(INSTALL_MSGS)
+else
+AC_MSG_RESULT([no])
+INSTALL_LIBRARIES=install-libraries
+INSTALL_MSGS=install-msgs
+fi
+AC_SUBST(ZIPFS_BUILD)
+AC_SUBST(TCL_ZIP_FILE)
+AC_SUBST(INSTALL_LIBRARIES)
+AC_SUBST(INSTALL_MSGS)
#--------------------------------------------------------------------
diff --git a/unix/tcl.m4 b/unix/tcl.m4
index 1806207..9cfb746 100644
--- a/unix/tcl.m4
+++ b/unix/tcl.m4
@@ -276,7 +276,6 @@ AC_DEFUN([SC_PATH_TKCONFIG], [
# TCL_BIN_DIR
# TCL_SRC_DIR
# TCL_LIB_FILE
-# TCL_ZIP_FILE
#------------------------------------------------------------------------
AC_DEFUN([SC_LOAD_TCLCONFIG], [
@@ -290,7 +289,6 @@ AC_DEFUN([SC_LOAD_TCLCONFIG], [
fi
# eval is required to do the TCL_DBGX substitution
- eval "TCL_ZIP_FILE=\"${TCL_ZIP_FILE}\""
eval "TCL_LIB_FILE=\"${TCL_LIB_FILE}\""
eval "TCL_STUB_LIB_FILE=\"${TCL_STUB_LIB_FILE}\""
@@ -338,7 +336,6 @@ AC_DEFUN([SC_LOAD_TCLCONFIG], [
AC_SUBST(TCL_BIN_DIR)
AC_SUBST(TCL_SRC_DIR)
- AC_SUBST(TCL_ZIP_FILE)
AC_SUBST(TCL_LIB_FILE)
AC_SUBST(TCL_LIB_FLAG)
AC_SUBST(TCL_LIB_SPEC)
@@ -3019,107 +3016,138 @@ fi
])
#------------------------------------------------------------------------
-# SC_PROG_ZIP
-# Locate a zip encoder installed on the system path, or none.
+# SC_CC_FOR_BUILD
+# For cross compiles, locate a C compiler that can generate native binaries.
#
# Arguments:
# none
#
# Results:
# Substitutes the following vars:
-# ZIP_PROG
+# CC_FOR_BUILD
+# EXEEXT_FOR_BUILD
#------------------------------------------------------------------------
-AC_DEFUN([SC_PROG_ZIP], [
- AC_MSG_CHECKING([for zip])
- AC_CACHE_VAL(ac_cv_path_zip, [
- search_path=`echo ${PATH} | sed -e 's/:/ /g'`
- for dir in $search_path ; do
- for j in `ls -r $dir/zip 2> /dev/null` \
- `ls -r $dir/zip 2> /dev/null` ; do
- if test x"$ac_cv_path_zip" = x ; then
- if test -f "$j" ; then
- ac_cv_path_zip=$j
- break
- fi
- fi
- done
- done
- ])
-
- if test -f "$ac_cv_path_zip" ; then
- ZIP_PROG="$ac_cv_path_zip"
- AC_MSG_RESULT([$ZIP_PROG])
+dnl Get a default for CC_FOR_BUILD to put into Makefile.
+AC_DEFUN([AX_CC_FOR_BUILD],[# Put a plausible default for CC_FOR_BUILD in Makefile.
+ if test -z "$CC_FOR_BUILD"; then
+ if test "x$cross_compiling" = "xno"; then
+ CC_FOR_BUILD='$(CC)'
+ else
+ AC_MSG_CHECKING([for gcc])
+ AC_CACHE_VAL(ac_cv_path_cc, [
+ search_path=`echo ${PATH} | sed -e 's/:/ /g'`
+ for dir in $search_path ; do
+ for j in `ls -r $dir/gcc 2> /dev/null` \
+ `ls -r $dir/gcc 2> /dev/null` ; do
+ if test x"$ac_cv_path_cc" = x ; then
+ if test -f "$j" ; then
+ ac_cv_path_cc=$j
+ break
+ fi
+ fi
+ done
+ done
+ ])
+ fi
+ fi
+ AC_SUBST(CC_FOR_BUILD)
+ # Also set EXEEXT_FOR_BUILD.
+ if test "x$cross_compiling" = "xno"; then
+ EXEEXT_FOR_BUILD='$(EXEEXT)'
+ OBJEXT_FOR_BUILD='$(OBJEXT)'
else
- # It is not an error if an installed version of Zip can't be located.
- ZIP_PROG=""
- AC_MSG_RESULT([No zip found on PATH])
+ OBJEXT_FOR_BUILD='.no'
+ AC_CACHE_CHECK([for build system executable suffix], bfd_cv_build_exeext,
+ [rm -f conftest*
+ echo 'int main () { return 0; }' > conftest.c
+ bfd_cv_build_exeext=
+ ${CC_FOR_BUILD} -o conftest conftest.c 1>&5 2>&5
+ for file in conftest.*; do
+ case $file in
+ *.c | *.o | *.obj | *.ilk | *.pdb) ;;
+ *) bfd_cv_build_exeext=`echo $file | sed -e s/conftest//` ;;
+ esac
+ done
+ rm -f conftest*
+ test x"${bfd_cv_build_exeext}" = x && bfd_cv_build_exeext=no])
+ EXEEXT_FOR_BUILD=""
+ test x"${bfd_cv_build_exeext}" != xno && EXEEXT_FOR_BUILD=${bfd_cv_build_exeext}
fi
- AC_SUBST(ZIP_PROG)
+ AC_SUBST(EXEEXT_FOR_BUILD)])dnl
+ AC_SUBST(OBJEXT_FOR_BUILD)])dnl
])
+
#------------------------------------------------------------------------
-# SC_CC_FOR_BUILD
-# For cross compiles, locate a C compiler that can generate native binaries.
+# SC_ZIPFS_SUPPORT
+# Locate a zip encoder installed on the system path, or none.
#
# Arguments:
# none
#
# Results:
# Substitutes the following vars:
-# CC_FOR_BUILD
-# EXEEXT_FOR_BUILD
+# ZIP_PROG
+# ZIP_PROG_OPTIONS
+# ZIP_PROG_VFSSEARCH
+# ZIP_INSTALL_OBJS
#------------------------------------------------------------------------
-dnl Get a default for CC_FOR_BUILD to put into Makefile.
-AC_DEFUN([AX_CC_FOR_BUILD],
-[# Put a plausible default for CC_FOR_BUILD in Makefile.
-if test -z "$CC_FOR_BUILD"; then
- if test "x$cross_compiling" = "xno"; then
- CC_FOR_BUILD='$(CC)'
- else
- AC_MSG_CHECKING([for gcc])
- AC_CACHE_VAL(ac_cv_path_cc, [
- search_path=`echo ${PATH} | sed -e 's/:/ /g'`
- for dir in $search_path ; do
- for j in `ls -r $dir/gcc 2> /dev/null` \
- `ls -r $dir/gcc 2> /dev/null` ; do
- if test x"$ac_cv_path_cc" = x ; then
- if test -f "$j" ; then
- ac_cv_path_cc=$j
- break
- fi
- fi
- done
- done
+AC_DEFUN([SC_ZIPFS_SUPPORT], [
+ ZIP_PROG=""
+ ZIP_PROG_OPTIONS=""
+ ZIP_PROG_VFSSEARCH=""
+ ZIP_INSTALL_OBJS=""
+ AC_MSG_CHECKING([for zip])
+ # If our native tclsh processes the "install" command line option
+ # we can use it to mint zip files
+ AS_IF([$TCLSH_PROG install],[
+ ZIP_PROG=${TCLSH_PROG}
+ ZIP_PROG_OPTIONS="install mkzip"
+ ZIP_PROG_VFSSEARCH="."
+ AC_MSG_RESULT([Can use Native Tclsh for Zip encoding])
])
- fi
-fi
-AC_SUBST(CC_FOR_BUILD)
-# Also set EXEEXT_FOR_BUILD.
-if test "x$cross_compiling" = "xno"; then
- EXEEXT_FOR_BUILD='$(EXEEXT)'
- OBJEXT_FOR_BUILD='$(OBJEXT)'
-else
- OBJEXT_FOR_BUILD='.no'
- AC_CACHE_CHECK([for build system executable suffix], bfd_cv_build_exeext,
- [rm -f conftest*
- echo 'int main () { return 0; }' > conftest.c
- bfd_cv_build_exeext=
- ${CC_FOR_BUILD} -o conftest conftest.c 1>&5 2>&5
- for file in conftest.*; do
- case $file in
- *.c | *.o | *.obj | *.ilk | *.pdb) ;;
- *) bfd_cv_build_exeext=`echo $file | sed -e s/conftest//` ;;
- esac
- done
- rm -f conftest*
- test x"${bfd_cv_build_exeext}" = x && bfd_cv_build_exeext=no])
- EXEEXT_FOR_BUILD=""
- test x"${bfd_cv_build_exeext}" != xno && EXEEXT_FOR_BUILD=${bfd_cv_build_exeext}
-fi
-AC_SUBST(EXEEXT_FOR_BUILD)])dnl
-AC_SUBST(OBJEXT_FOR_BUILD)])dnl
+
+ if test "x$ZIP_PROG" = "x" ; then
+ AC_MSG_CHECKING([for zip])
+ AC_CACHE_VAL(ac_cv_path_zip, [
+ search_path=`echo ${PATH} | sed -e 's/:/ /g'`
+ for dir in $search_path ; do
+ for j in `ls -r $dir/zip 2> /dev/null` \
+ `ls -r $dir/zip 2> /dev/null` ; do
+ if test x"$ac_cv_path_zip" = x ; then
+ if test -f "$j" ; then
+ ac_cv_path_zip=$j
+ break
+ fi
+ fi
+ done
+ done
+ ])
+ if test -f "$ac_cv_path_zip" ; then
+ ZIP_PROG="$ac_cv_path_zip "
+ AC_MSG_RESULT([$ZIP_PROG])
+ ZIP_PROG_OPTIONS="-rq"
+ ZIP_PROG_VFSSEARCH="."
+ AC_MSG_RESULT([Found INFO Zip in environment])
+ # Use standard arguments for zip
+ else
+ # It is not an error if an installed version of Zip can't be located.
+ # We can use the locally distributed minizip instead
+ ZIP_PROG="../minizip${EXEEXT_FOR_BUILD}"
+ ZIP_PROG_OPTIONS="\"-o\""
+ ZIP_PROG_VFSSEARCH="\`find . -type f\'"
+ ZIP_INSTALL_OBJS="minizip${EXEEXT_FOR_BUILD}"
+ AC_MSG_RESULT([No zip found on PATH building minizip])
+ fi
+ fi
+ AC_SUBST(ZIP_PROG)
+ AC_SUBST(ZIP_PROG_OPTIONS)
+ AC_SUBST(ZIP_PROG_VFSSEARCH)
+ AC_SUBST(ZIP_INSTALL_OBJS)
+])
+
# Local Variables:
# mode: autoconf
# End:
diff --git a/win/Makefile.in b/win/Makefile.in
index 214cf7b..7f4fc70 100644
--- a/win/Makefile.in
+++ b/win/Makefile.in
@@ -214,6 +214,8 @@ HOST_EXEEXT = @EXEEXT_FOR_BUILD@
HOST_OBJEXT = @OBJEXT_FOR_BUILD@
ZIPFS_BUILD = @ZIPFS_BUILD@
NATIVE_ZIP = @ZIP_PROG@
+ZIP_PROG_OPTIONS = @ZIP_PROG_OPTIONS@
+ZIP_PROG_VFSSEARCH = @ZIP_PROG_VFSSEARCH@
SHARED_BUILD = @SHARED_BUILD@
INSTALL_MSGS = @INSTALL_MSGS@
INSTALL_LIBRARIES = @INSTALL_LIBRARIES@
@@ -236,7 +238,7 @@ MINIZIP_OBJS = \
zutil.$(HOST_OBJEXT) \
minizip.$(HOST_OBJEXT)
-ZIP_INSTALL_OBJS = minizip${EXEEXT_FOR_BUILD}
+ZIP_INSTALL_OBJS = @ZIP_INSTALL_OBJS@
CC_SWITCHES = ${CFLAGS} ${CFLAGS_WARNING} ${TCL_SHLIB_CFLAGS} \
-I"${ZLIB_DIR_NATIVE}" -I"${GENERIC_DIR_NATIVE}" \
@@ -482,7 +484,7 @@ ${TCL_ZIP_FILE}: ${ZIP_INSTALL_OBJS}
rm -rf ${TCL_VFS_ROOT}
mkdir -p ${TCL_VFS_PATH}
cp -a ../library/* ${TCL_VFS_PATH}
- cd ${TCL_VFS_ROOT} ; ../minizip${EXEEXT_FOR_BUILD} -o ../${TCL_ZIP_FILE} `find . -type f`
+ cd ${TCL_VFS_ROOT} ; ${NATIVE_ZIP} ${ZIP_PROG_OPTIONS} ../${TCL_ZIP_FILE} ${ZIP_PROG_VFSSEARCH}
$(TCLSH): $(TCLSH_OBJS) @LIBRARIES@ $(TCL_STUB_LIB_FILE) tclsh.$(RES)
$(CC) $(CFLAGS) $(TCLSH_OBJS) $(TCL_LIB_FILE) $(TCL_STUB_LIB_FILE) $(LIBS) \
diff --git a/win/configure b/win/configure
index f65b78a..c99d499 100755
--- a/win/configure
+++ b/win/configure
@@ -687,7 +687,6 @@ TCL_STATIC_LIB_FLAG
TCL_STATIC_LIB_FILE
TCL_LIB_FLAG
TCL_LIB_FILE
-TCL_ZIP_FILE
TCL_EXE
PKG_CFG_ARGS
TCL_PATCH_LEVEL
@@ -702,10 +701,10 @@ LDFLAGS_DEFAULT
CFLAGS_DEFAULT
INSTALL_MSGS
INSTALL_LIBRARIES
+TCL_ZIP_FILE
ZIPFS_BUILD
EXEEXT_FOR_BUILD
CC_FOR_BUILD
-ZIP_PROG
ZLIB_OBJS
ZLIB_LIBS
ZLIB_DLL_FILE
@@ -2128,8 +2127,6 @@ REGVER=$TCL_REG_MAJOR_VERSION$TCL_REG_MINOR_VERSION
PKG_CFG_ARGS=$@
-TCL_ZIP_FILE=libtcl_${TCL_MAJOR_VERSION}_${TCL_MINOR_VERSION}_${TCL_PATCH_LEVEL}.zip
-
#------------------------------------------------------------------------
# Empty slate for bundled packages, to avoid stale configuration
#------------------------------------------------------------------------
@@ -4844,52 +4841,20 @@ fi
#--------------------------------------------------------------------
-# Zipfs support
+# Zipfs support - Tip 430
#--------------------------------------------------------------------
-
-#
-# Find a native zip implementation
-#
-
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for zip" >&5
-$as_echo_n "checking for zip... " >&6; }
- if ${ac_cv_path_zip+:} false; then :
- $as_echo_n "(cached) " >&6
+# Check whether --enable-zipfs was given.
+if test "${enable_zipfs+set}" = set; then :
+ enableval=$enable_zipfs; tcl_ok=$enableval
else
-
- search_path=`echo ${PATH} | sed -e 's/:/ /g'`
- for dir in $search_path ; do
- for j in `ls -r $dir/zip 2> /dev/null` \
- `ls -r $dir/zip 2> /dev/null` ; do
- if test x"$ac_cv_path_zip" = x ; then
- if test -f "$j" ; then
- ac_cv_path_zip=$j
- break
- fi
- fi
- done
- done
-
+ tcl_ok=yes
fi
-
- if test -f "$ac_cv_path_zip" ; then
- ZIP_PROG="$ac_cv_path_zip"
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: $ZIP_PROG" >&5
-$as_echo "$ZIP_PROG" >&6; }
- else
- # It is not an error if an installed version of Zip can't be located.
- ZIP_PROG=""
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: No zip found on PATH" >&5
-$as_echo "No zip found on PATH" >&6; }
- fi
-
-
-
-#
-# Find a native compiler
-#
-# Put a plausible default for CC_FOR_BUILD in Makefile.
+if test "$tcl_ok" = "yes" ; then
+ #
+ # Find a native compiler
+ #
+ # Put a plausible default for CC_FOR_BUILD in Makefile.
if test -z "$CC_FOR_BUILD"; then
if test "x$cross_compiling" = "xno"; then
CC_FOR_BUILD='$(CC)'
@@ -4948,49 +4913,43 @@ $as_echo "$bfd_cv_build_exeext" >&6; }
test x"${bfd_cv_build_exeext}" != xno && EXEEXT_FOR_BUILD=${bfd_cv_build_exeext}
fi
-
-if test "$ZIP_PROG" = ""; then
- ZIP_PROG='./minizip${EXEEXT_FOR_BUILD}'
-fi
-
-# Check whether --enable-zipfs was given.
-if test "${enable_zipfs+set}" = set; then :
- enableval=$enable_zipfs; tcl_ok=$enableval
-else
- tcl_ok=yes
-fi
-
- if test "$tcl_ok" = "yes" -o "${TCL_THREADS}" = 1; then
+ #
+ # Find a native zip implementation
+ #
+ SC_PROG_ZIP
ZIPFS_BUILD=1
- else
+ TCL_ZIP_FILE=libtcl_${TCL_MAJOR_VERSION}_${TCL_MINOR_VERSION}_${TCL_PATCH_LEVEL}.zip
+else
ZIPFS_BUILD=0
- fi
- # Do checking message here to not mess up interleaved configure output
- { $as_echo "$as_me:${as_lineno-$LINENO}: checking for building with zipfs" >&5
+ TCL_ZIP_FILE=
+fi
+# Do checking message here to not mess up interleaved configure output
+{ $as_echo "$as_me:${as_lineno-$LINENO}: checking for building with zipfs" >&5
$as_echo_n "checking for building with zipfs... " >&6; }
- if test "${ZIPFS_BUILD}" = 1; then
- if test "${SHARED_BUILD}" = 0; then
- ZIPFS_BUILD=2;
+if test "${ZIPFS_BUILD}" = 1; then
+ if test "${SHARED_BUILD}" = 0; then
+ ZIPFS_BUILD=2;
$as_echo "#define ZIPFS_BUILD 2" >>confdefs.h
- INSTALL_LIBRARIES=install-libraries-zipfs-static
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ INSTALL_LIBRARIES=install-libraries-zipfs-static
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
- else
+ else
$as_echo "#define ZIPFS_BUILD 1" >>confdefs.h
\
- INSTALL_LIBRARIES=install-libraries-zipfs-shared
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
+ INSTALL_LIBRARIES=install-libraries-zipfs-shared
+ { $as_echo "$as_me:${as_lineno-$LINENO}: result: yes" >&5
$as_echo "yes" >&6; }
- fi
- else
- { $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
-$as_echo "no" >&6; }
- INSTALL_LIBRARIES=install-libraries
- INSTALL_MSGS=install-msgs
fi
+else
+{ $as_echo "$as_me:${as_lineno-$LINENO}: result: no" >&5
+$as_echo "no" >&6; }
+INSTALL_LIBRARIES=install-libraries
+INSTALL_MSGS=install-msgs
+fi
+
@@ -5388,7 +5347,6 @@ TCL_WIN_VERSION="$TCL_VERSION.$TCL_RELEASE_LEVEL.`echo $TCL_PATCH_LEVEL | tr -d
-
# empty on win
diff --git a/win/configure.ac b/win/configure.ac
index cf66fc2..b1f3a52 100644
--- a/win/configure.ac
+++ b/win/configure.ac
@@ -29,8 +29,6 @@ REGVER=$TCL_REG_MAJOR_VERSION$TCL_REG_MINOR_VERSION
PKG_CFG_ARGS=$@
-TCL_ZIP_FILE=libtcl_${TCL_MAJOR_VERSION}_${TCL_MINOR_VERSION}_${TCL_PATCH_LEVEL}.zip
-
#------------------------------------------------------------------------
# Empty slate for bundled packages, to avoid stale configuration
#------------------------------------------------------------------------
@@ -178,53 +176,49 @@ AC_CHECK_TYPE([uintptr_t], [
#--------------------------------------------------------------------
-# Zipfs support
+# Zipfs support - Tip 430
#--------------------------------------------------------------------
-
-#
-# Find a native zip implementation
-#
-SC_PROG_ZIP
-
-#
-# Find a native compiler
-#
-AX_CC_FOR_BUILD
-
-if test "$ZIP_PROG" = ""; then
- ZIP_PROG='./minizip${EXEEXT_FOR_BUILD}'
-fi
-
AC_ARG_ENABLE(zipfs,
AC_HELP_STRING([--enable-zipfs],
[build with Zipfs support (default: on)]),
[tcl_ok=$enableval], [tcl_ok=yes])
- if test "$tcl_ok" = "yes" -o "${TCL_THREADS}" = 1; then
+if test "$tcl_ok" = "yes" ; then
+ #
+ # Find a native compiler
+ #
+ AX_CC_FOR_BUILD
+ #
+ # Find a native zip implementation
+ #
+ SC_PROG_ZIP
ZIPFS_BUILD=1
- else
+ TCL_ZIP_FILE=libtcl_${TCL_MAJOR_VERSION}_${TCL_MINOR_VERSION}_${TCL_PATCH_LEVEL}.zip
+else
ZIPFS_BUILD=0
+ TCL_ZIP_FILE=
+fi
+# Do checking message here to not mess up interleaved configure output
+AC_MSG_CHECKING([for building with zipfs])
+if test "${ZIPFS_BUILD}" = 1; then
+ if test "${SHARED_BUILD}" = 0; then
+ ZIPFS_BUILD=2;
+ AC_DEFINE(ZIPFS_BUILD, 2, [Are we building with zipfs enabled?])
+ INSTALL_LIBRARIES=install-libraries-zipfs-static
+ AC_MSG_RESULT([yes])
+ else
+ AC_DEFINE(ZIPFS_BUILD, 1, [Are we building with zipfs enabled?])\
+ INSTALL_LIBRARIES=install-libraries-zipfs-shared
+ AC_MSG_RESULT([yes])
fi
- # Do checking message here to not mess up interleaved configure output
- AC_MSG_CHECKING([for building with zipfs])
- if test "${ZIPFS_BUILD}" = 1; then
- if test "${SHARED_BUILD}" = 0; then
- ZIPFS_BUILD=2;
- AC_DEFINE(ZIPFS_BUILD, 2, [Are we building with zipfs enabled?])
- INSTALL_LIBRARIES=install-libraries-zipfs-static
- AC_MSG_RESULT([yes])
- else
- AC_DEFINE(ZIPFS_BUILD, 1, [Are we building with zipfs enabled?])\
- INSTALL_LIBRARIES=install-libraries-zipfs-shared
- AC_MSG_RESULT([yes])
- fi
- else
- AC_MSG_RESULT([no])
- INSTALL_LIBRARIES=install-libraries
- INSTALL_MSGS=install-msgs
- fi
- AC_SUBST(ZIPFS_BUILD)
- AC_SUBST(INSTALL_LIBRARIES)
- AC_SUBST(INSTALL_MSGS)
+else
+AC_MSG_RESULT([no])
+INSTALL_LIBRARIES=install-libraries
+INSTALL_MSGS=install-msgs
+fi
+AC_SUBST(ZIPFS_BUILD)
+AC_SUBST(TCL_ZIP_FILE)
+AC_SUBST(INSTALL_LIBRARIES)
+AC_SUBST(INSTALL_MSGS)
#--------------------------------------------------------------------
@@ -423,7 +417,6 @@ AC_SUBST(TCL_PATCH_LEVEL)
AC_SUBST(PKG_CFG_ARGS)
AC_SUBST(TCL_EXE)
-AC_SUBST(TCL_ZIP_FILE)
AC_SUBST(TCL_LIB_FILE)
AC_SUBST(TCL_LIB_FLAG)
AC_SUBST(TCL_STATIC_LIB_FILE)
diff --git a/win/tcl.m4 b/win/tcl.m4
index 07be5a4..4d34c7d 100644
--- a/win/tcl.m4
+++ b/win/tcl.m4
@@ -1302,47 +1302,6 @@ print("manifest needed")
AC_SUBST(VC_MANIFEST_EMBED_EXE)
])
-
-#------------------------------------------------------------------------
-# SC_PROG_ZIP
-# Locate a zip encoder installed on the system path, or none.
-#
-# Arguments:
-# none
-#
-# Results:
-# Substitutes the following vars:
-# ZIP_PROG
-#------------------------------------------------------------------------
-
-AC_DEFUN([SC_PROG_ZIP], [
- AC_MSG_CHECKING([for zip])
- AC_CACHE_VAL(ac_cv_path_zip, [
- search_path=`echo ${PATH} | sed -e 's/:/ /g'`
- for dir in $search_path ; do
- for j in `ls -r $dir/zip 2> /dev/null` \
- `ls -r $dir/zip 2> /dev/null` ; do
- if test x"$ac_cv_path_zip" = x ; then
- if test -f "$j" ; then
- ac_cv_path_zip=$j
- break
- fi
- fi
- done
- done
- ])
-
- if test -f "$ac_cv_path_zip" ; then
- ZIP_PROG="$ac_cv_path_zip"
- AC_MSG_RESULT([$ZIP_PROG])
- else
- # It is not an error if an installed version of Zip can't be located.
- ZIP_PROG=""
- AC_MSG_RESULT([No zip found on PATH])
- fi
- AC_SUBST(ZIP_PROG)
-])
-
#------------------------------------------------------------------------
# SC_CC_FOR_BUILD
# For cross compiles, locate a C compiler that can generate native binaries.
@@ -1405,3 +1364,74 @@ else
fi
AC_SUBST(EXEEXT_FOR_BUILD)])dnl
AC_SUBST(OBJEXT_FOR_BUILD)])dnl
+
+
+
+#------------------------------------------------------------------------
+# SC_ZIPFS_SUPPORT
+# Locate a zip encoder installed on the system path, or none.
+#
+# Arguments:
+# none
+#
+# Results:
+# Substitutes the following vars:
+# ZIP_PROG
+# ZIP_PROG_OPTIONS
+# ZIP_PROG_VFSSEARCH
+# ZIP_INSTALL_OBJS
+#------------------------------------------------------------------------
+
+AC_DEFUN([SC_ZIPFS_SUPPORT], [
+ ZIP_PROG=""
+ ZIP_PROG_OPTIONS=""
+ ZIP_PROG_VFSSEARCH=""
+ ZIP_INSTALL_OBJS=""
+ AC_MSG_CHECKING([for zip])
+ # If our native tclsh processes the "install" command line option
+ # we can use it to mint zip files
+ AS_IF([$TCLSH_PROG install],[
+ ZIP_PROG=${TCLSH_PROG}
+ ZIP_PROG_OPTIONS="install mkzip"
+ ZIP_PROG_VFSSEARCH="."
+ AC_MSG_RESULT([Can use Native Tclsh for Zip encoding])
+ ])
+
+ if test "x$ZIP_PROG" = "x" ; then
+ AC_MSG_CHECKING([for zip])
+ AC_CACHE_VAL(ac_cv_path_zip, [
+ search_path=`echo ${PATH} | sed -e 's/:/ /g'`
+ for dir in $search_path ; do
+ for j in `ls -r $dir/zip 2> /dev/null` \
+ `ls -r $dir/zip 2> /dev/null` ; do
+ if test x"$ac_cv_path_zip" = x ; then
+ if test -f "$j" ; then
+ ac_cv_path_zip=$j
+ break
+ fi
+ fi
+ done
+ done
+ ])
+ if test -f "$ac_cv_path_zip" ; then
+ ZIP_PROG="$ac_cv_path_zip "
+ AC_MSG_RESULT([$ZIP_PROG])
+ ZIP_PROG_OPTIONS="-rq"
+ ZIP_PROG_VFSSEARCH="."
+ AC_MSG_RESULT([Found INFO Zip in environment])
+ # Use standard arguments for zip
+ else
+ # It is not an error if an installed version of Zip can't be located.
+ # We can use the locally distributed minizip instead
+ ZIP_PROG="../minizip${EXEEXT_FOR_BUILD}"
+ ZIP_PROG_OPTIONS="\"-o\""
+ ZIP_PROG_VFSSEARCH="\`find . -type f\'"
+ ZIP_INSTALL_OBJS="minizip${EXEEXT_FOR_BUILD}"
+ AC_MSG_RESULT([No zip found on PATH building minizip])
+ fi
+ fi
+ AC_SUBST(ZIP_PROG)
+ AC_SUBST(ZIP_PROG_OPTIONS)
+ AC_SUBST(ZIP_PROG_VFSSEARCH)
+ AC_SUBST(ZIP_INSTALL_OBJS)
+])