* library/vfs.tcl.in: New file encapsulating the package load
authorAndreas Kupries <andreas_kupries@users.sourceforge.net>
Fri, 6 Feb 2009 19:13:27 +0000 (19:13 +0000)
committerAndreas Kupries <andreas_kupries@users.sourceforge.net>
Fri, 6 Feb 2009 19:13:27 +0000 (19:13 +0000)
process. Cleaner than the loadvfs proc, and much more suitable for
conversion to a teabag.

* pkgIndex.tcl.in: Cleaned up the declarations for package 'vfs'.
Removed the 'vfslib' package, it never was such.

* Makefile.in: Added installation of library/vfs.tcl.
* configure.in: Added library/vfs.tcl.in.
* configure: Regenerated.

* win/makefile.vc: Updated the windows build file to configure
vfs.tcl.in, and install vfs.tcl.

ChangeLog
Makefile.in
configure
configure.in
library/vfs.tcl.in [new file with mode: 0644]
pkgIndex.tcl.in
win/makefile.vc

index d3b1b4b17872e029048f5972a6935a90f9265d0e..85b24afeb7e48ad3299304dd42e8ffdc6fc266cc 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,19 @@
+2009-02-06  Andreas Kupries  <andreask@activestate.com>
+
+       * library/vfs.tcl.in: New file encapsulating the package load
+       process. Cleaner than the loadvfs proc, and much more suitable for
+       conversion to a teabag.
+
+       * pkgIndex.tcl.in: Cleaned up the declarations for package 'vfs'.
+       Removed the 'vfslib' package, it never was such.
+       
+       * Makefile.in: Added installation of library/vfs.tcl.
+       * configure.in: Added library/vfs.tcl.in.
+       * configure: Regenerated.
+
+       * win/makefile.vc: Updated the windows build file to configure
+       vfs.tcl.in, and install vfs.tcl.
+
 2009-01-22  Pat Thoyts  <patthoyts@users.sourceforge.net>
 
        * tests/vfslib.test: Make use of the core zlib and refchan features
@@ -21,7 +37,7 @@
 
 2008-12-22  Pat Thoyts  <patthoyts@users.sourceforge.net>
 
-       * library/mk4vfs.tcl: Fix vfs::ztream to support 8.6 core zlib
+       * library/mk4vfs.tcl: Fix vfs::zstream to support 8.6 core zlib
        * library/vfslib.tcl:
 
 2008-12-12  Pat Thoyts  <patthoyts@users.sourceforge.net>
index 4447a4fb8d43e3ed32e7d1ff8cd293849c804529..97eea0ff095a9461c6bd84d493ab129254864bbe 100644 (file)
@@ -36,6 +36,10 @@ PKG_STUB_OBJECTS = @PKG_STUB_OBJECTS@
 # this package that need to be installed, if any.
 #========================================================================
 
+# vfs.tcl is found in the build, as it was generated by configure from
+# library/vfs.tcl.in. This necessitated extensions to the target
+# install-lib-binaries.
+
 PKG_TCL_SOURCES = @PKG_TCL_SOURCES@ \
                  ftpvfs.tcl httpvfs.tcl mk4vfs.tcl starkit.tcl \
                  tarvfs.tcl tclprocvfs.tcl testvfs.tcl \
@@ -45,7 +49,7 @@ PKG_TCL_SOURCES = @PKG_TCL_SOURCES@ \
                  template/fishvfs.tcl template/globfind.tcl \
                  template/quotavfs.tcl template/tdelta.tcl \
                  template/templatevfs.tcl template/versionvfs.tcl \
-                 template/chrootvfs.tcl
+                 template/chrootvfs.tcl vfs.tcl
 
 
 #========================================================================
@@ -334,6 +338,11 @@ install-lib-binaries:
            echo "    $$p"; \
            mkdir -p $(DESTDIR)$(pkglibdir)/$$destd; \
            $(INSTALL_DATA) $(srcdir)/library/$$p $(DESTDIR)$(pkglibdir)/$$p; \
+         elif test -f $(top_builddir)/library/$$p; then \
+           destd=`dirname $$p`; \
+           echo "    $$p (generated)"; \
+           mkdir -p $(DESTDIR)$(pkglibdir)/$$destd; \
+           $(INSTALL_DATA) $(top_builddir)/library/$$p $(DESTDIR)$(pkglibdir)/$$p; \
          fi; \
        done
        @echo "Installing pkgIndex.tcl in $(DESTDIR)$(pkglibdir)";
index 6b1c5cbbdcfe770769c667ffb5b9ea81e462b4e4..48285f3f0139f567c62323448aea51a77337f06f 100755 (executable)
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for vfs 1.4.
+# Generated by GNU Autoconf 2.59 for vfs 1.4.1.
 #
 # Copyright (C) 2003 Free Software Foundation, Inc.
 # This configure script is free software; the Free Software Foundation
@@ -267,8 +267,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
 # Identity of this package.
 PACKAGE_NAME='vfs'
 PACKAGE_TARNAME='vfs'
-PACKAGE_VERSION='1.4'
-PACKAGE_STRING='vfs 1.4'
+PACKAGE_VERSION='1.4.1'
+PACKAGE_STRING='vfs 1.4.1'
 PACKAGE_BUGREPORT=''
 
 # Factoring default headers for most tests.
@@ -777,7 +777,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures vfs 1.4 to adapt to many kinds of systems.
+\`configure' configures vfs 1.4.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -834,7 +834,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of vfs 1.4:";;
+     short | recursive ) echo "Configuration of vfs 1.4.1:";;
    esac
   cat <<\_ACEOF
 
@@ -966,7 +966,7 @@ fi
 test -n "$ac_init_help" && exit 0
 if $ac_init_version; then
   cat <<\_ACEOF
-vfs configure 1.4
+vfs configure 1.4.1
 generated by GNU Autoconf 2.59
 
 Copyright (C) 2003 Free Software Foundation, Inc.
@@ -980,7 +980,7 @@ cat >&5 <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by vfs $as_me 1.4, which was
+It was created by vfs $as_me 1.4.1, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   $ $0 $@
@@ -10308,7 +10308,7 @@ echo "${ECHO_T}${TCLSH_PROG}" >&6
 
 
 
-                    ac_config_files="$ac_config_files Makefile pkgIndex.tcl"
+                              ac_config_files="$ac_config_files Makefile pkgIndex.tcl library/vfs.tcl"
 cat >confcache <<\_ACEOF
 # This file is a shell script that caches the results of configure
 # tests run on this system so they can be shared between configure
@@ -10703,7 +10703,7 @@ _ASBOX
 } >&5
 cat >&5 <<_CSEOF
 
-This file was extended by vfs $as_me 1.4, which was
+This file was extended by vfs $as_me 1.4.1, which was
 generated by GNU Autoconf 2.59.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -10758,7 +10758,7 @@ _ACEOF
 
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-vfs config.status 1.4
+vfs config.status 1.4.1
 configured by $0, generated by GNU Autoconf 2.59,
   with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
 
@@ -10863,6 +10863,7 @@ do
   # Handling of arguments.
   "Makefile" ) CONFIG_FILES="$CONFIG_FILES Makefile" ;;
   "pkgIndex.tcl" ) CONFIG_FILES="$CONFIG_FILES pkgIndex.tcl" ;;
+  "library/vfs.tcl" ) CONFIG_FILES="$CONFIG_FILES library/vfs.tcl" ;;
   *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5
 echo "$as_me: error: invalid argument: $ac_config_target" >&2;}
    { (exit 1); exit 1; }; };;
index 23936d75962d862b16900f9d108f6cbdd754a594..e4b8276a5a1bcb1bdae854a2f390dfe6bdf1f54c 100644 (file)
@@ -13,7 +13,7 @@ dnl   to configure the system for the local environment.
 #    http://www.tcl.tk/           Tcl Developer Exchange
 #--------------------------------------------------------------------
 
-AC_INIT([vfs], [1.4])
+AC_INIT([vfs], [1.4.1])
 
 #--------------------------------------------------------------------
 # Call TEA_INIT as the first TEA_ macro to set up initial vars.
@@ -80,4 +80,4 @@ TEA_MAKE_LIB
 
 TEA_PROG_TCLSH
 
-AC_OUTPUT([Makefile pkgIndex.tcl])
+AC_OUTPUT([Makefile pkgIndex.tcl library/vfs.tcl])
diff --git a/library/vfs.tcl.in b/library/vfs.tcl.in
new file mode 100644 (file)
index 0000000..cea8334
--- /dev/null
@@ -0,0 +1,36 @@
+# -*- tcl -*-
+
+# Activate the binary and Tcl parts of the package, in the proper
+# order.
+
+# The location of the Tcl parts can be redirected via the environment
+# variable VFS_LIBRARY. This is for use by testing of tclvfs without
+# having to actually install the package. In that case the location of
+# the binary part is redirected through the environment variable
+# TCLLIBPATH (indirect modification of the auto_path). Not used here
+# however, but by Tcl's package management code itself when searching
+# for the package.
+
+namespace eval ::vfs {
+    variable self    [file dirname [info script]]
+    variable redir   [info exists ::env(VFS_LIBRARY)]
+    variable corezip [package vsatisfies [package provide Tcl] 8.6]
+}
+
+if {[lsearch -exact $::auto_path $::vfs::self] == -1} {
+    lappend ::auto_path $::vfs::self
+}
+
+load [file join $::vfs::self @PKG_LIB_FILE@]
+
+if {$::vfs::redir} {
+    set ::vfs::self $::env(VFS_LIBRARY)
+}
+
+source [file join $::vfs::self vfsUtils.tcl]
+
+if {$::vfs::corezip} {
+    source [file join $::vfs::self vfslib.tcl]
+}
+
+unset ::vfs::self ::vfs::redir ::vfs::corezip
index 88e5a3533748fdae2cf8f6905b52f126c471c089..e5c6a78f3ac1e36251d28c9f49e8bbb37829ab15 100644 (file)
@@ -1,3 +1,4 @@
+# -*- tcl -*-
 # Tcl package index file, version 1.1
 # This file was generated by hand.
 #
@@ -11,30 +12,9 @@ if {[package provide Tcl] < 8.4} {
 }
 package require Tcl 8.4
 
-namespace eval ::vfs {}
-variable ::vfs::dll [file join $dir @PKG_LIB_FILE@]
+package ifneeded vfs @PACKAGE_VERSION@ [list source [file join $dir vfs.tcl]]
 
-proc ::vfs::loadvfs {libdir dll} {
-    if {![file exists $dll]} { return }
-    set dir [file dirname $dll]
-    if {[lsearch -exact $::auto_path $dir] == -1} {
-       lappend ::auto_path $dir
-    }
-    uplevel #0 [list load $dll]
-    uplevel #0 [list source [file join $libdir vfsUtils.tcl]]
-    if {[package vsatisfies [package provide Tcl] 8.6]} {
-        uplevel #0 [list source [file join $libdir vfslib.tcl]]
-    }
-}
-
-# Allow optional redirect of VFS_LIBRARY components.  Only necessary
-# for testing, but could be used elsewhere.
-if {[info exists ::env(VFS_LIBRARY)]} { set dir $::env(VFS_LIBRARY) }
-
-package ifneeded vfs @PACKAGE_VERSION@ [list ::vfs::loadvfs $dir $vfs::dll]
-
-package ifneeded starkit    1.3.3 [list source [file join $dir starkit.tcl]]
-package ifneeded vfslib     1.4   [list source [file join $dir vfslib.tcl]]
+package ifneeded starkit 1.3.3 [list source [file join $dir starkit.tcl]]
 
 # New, for the old, keep version numbers synchronized.
 package ifneeded vfs::mk4     1.10.1 [list source [file join $dir mk4vfs.tcl]]
index 2080b0cce2a5b1c2a60a0540a6bac79721c2b00a..f494cd72124acd3267a0d6ff25d63a2eb3fb054f 100644 (file)
@@ -352,7 +352,7 @@ TESTFLAGS = $(TESTFLAGS) -file $(TESTPAT)
 all:       setup $(PROJECT)
 $(PROJECT): setup $(PRJLIB) pkgIndex
 install:    install-binaries install-libraries install-docs
-pkgIndex:   setup $(OUT_DIR)\pkgIndex.tcl
+pkgIndex:   setup $(OUT_DIR)\pkgIndex.tcl $(OUT_DIR)\vfs.tcl
 
 test: setup $(PROJECT)
        @set TCL_LIBRARY=$(TCL_LIBRARY:\=/)
@@ -451,7 +451,7 @@ $<
 #
 #-------------------------------------------------------------------------
 
-.PHONY: $(OUT_DIR)\pkgIndex.tcl
+.PHONY: $(OUT_DIR)\pkgIndex.tcl $(OUT_DIR)\vfs.tcl
 
 $(OUT_DIR)\pkgIndex.tcl: $(ROOT)\pkgIndex.tcl.in
        nmakehlp -s << $** > $@
@@ -460,6 +460,13 @@ $(OUT_DIR)\pkgIndex.tcl: $(ROOT)\pkgIndex.tcl.in
 @PKG_LIB_FILE@     $(PRJLIBNAME)
 <<
 
+$(OUT_DIR)\vfs.tcl: $(ROOT)\library\vfs.tcl.in
+       nmakehlp -s << $** > $@
+@PACKAGE_NAME@     $(PROJECT)
+@PACKAGE_VERSION@  $(DOTVERSION)
+@PKG_LIB_FILE@     $(PRJLIBNAME)
+<<
+
 #---------------------------------------------------------------------
 # Installation. (EDIT)
 #
@@ -476,6 +483,8 @@ install-binaries:
 install-libraries: pkgIndex
         @echo Installing libraries to '$(SCRIPT_INSTALL_DIR)'
         @if exist $(LIBDIR) $(CPY) $(LIBDIR)\*.tcl "$(SCRIPT_INSTALL_DIR)"
+        @echo Installing package entrypoint in '$(SCRIPT_INSTALL_DIR)'
+       @$(CPY) $(OUT_DIR)\vfs.tcl "$(SCRIPT_INSTALL_DIR)"
         @echo Installing package index in '$(SCRIPT_INSTALL_DIR)'
        @$(CPY) $(OUT_DIR)\pkgIndex.tcl "$(SCRIPT_INSTALL_DIR)"