Check-in [ddf9f18c93]
Overview
Comment:Merged trunk changes into branch
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | pluggable
Files: files | file ages | folders
SHA1:ddf9f18c93bf50d72eba13d6efc571c3a2e2a706
User & Date: rkeene on 2011-05-28 23:59:40
Other Links: manifest | tags
Context
2011-05-31
02:03
Updated to be pluggable Closed-Leaf check-in: 349896fca7 user: rkeene tags: pluggable
2011-05-28
23:59
Merged trunk changes into branch check-in: ddf9f18c93 user: rkeene tags: pluggable
23:53
Updated to only mount VFS once

Updated to always load "vfs" check-in: d5ed5900eb user: rkeene tags: trunk

2011-02-08
06:55
Updated to look in all directories at the root directory for projects check-in: e2655f79ba user: rkeene tags: pluggable
Changes

Modified README from [b320dd82ca] to [f55796d36b].

     1         -This will build a Tclkit named "tclkit-<version>".
            1  +This will build a Tclkit named "tclkit-<version>" or a KitDLL named
            2  +"libtclkit<version>.so".
     2      3   
     3      4   ---------------
     4      5   Using This Tool
     5      6   ---------------
     6      7   Usage:
     7      8   	kitcreator [{<version> | cvs_<cvsTag> | clean | distclean}]
     8      9   	           [<configure_options...>]
................................................................................
    56     57   		a. KITCREATOR_PKGS='tk itcl'
    57     58   		b. export KITCREATOR_PKGS
    58     59   		c. ./kitcreator
    59     60   
    60     61   	9. Create a Tclkit with Metakit4 support, but using Zip for storage:
    61     62   		a. $ ./kitcreator --enable-kit-storage=zip
    62     63   
    63         -	10. Create a KitDLL without Metakit support (will not create a Tclkit
           64  +	10. Create a Tclkit with Metakit4 support, but using C-VFS for storage
           65  +		a. $ ./kitcreator --enable-kit-storage=cvfs
           66  +
           67  +	11. Create a KitDLL without Metakit support (will not create a Tclkit
    64     68   	    binary, just the library):
    65     69   		a. $ KITCREATOR_PKGS='tk itcl kitdll'
    66     70   		b. $ export KITCREATOR_PKGS
    67     71   		c. $ ./kitcreator
    68     72   
    69     73   Environment variables:
    70     74   	1. MAKE
................................................................................
   123    127   			ascii.enc cp1252.enc iso8859-1.enc iso8859-15.enc
   124    128   			iso8859-2.enc koi8-r.enc macRoman.enc
   125    129   
   126    130   	9. KITCREATOR_MINBUILD
   127    131   		Set this variable to a non-empty string to exclude unnecessary
   128    132   		packages from Tcl build.  This excludes the following packages:
   129    133   			tcltest
          134  +
          135  +		Additionally, any bundled packages (in the "pkgs" directory)
          136  +		are excluded.  This typically includes (as of Tcl 8.6):
          137  +			itcl thread
   130    138   
   131    139   Kitsh Configure Options:
   132    140   	1. --enable-kit-storage={zip|mk4|auto}
   133    141   		Specify which type of storage to use with the Tclkit.  The
   134    142   		default is to auto-detect.  Auto-detection uses Mk4 if
   135    143   		available and built statically, otherwise it falls back to Zip.
   136    144   

Added build/make-kit-linux-amd64 version [f5a7e70fab].

            1  +#! /bin/sh
            2  +
            3  +PATH="${PATH}:${HOME}/root/cross-compilers/x86_64-unknown-linux-gnu/bin/"
            4  +AR=x86_64-unknown-linux-gnu-ar
            5  +CC=x86_64-unknown-linux-gnu-gcc
            6  +CXX=x86_64-unknown-linux-gnu-g++
            7  +RANLIB=x86_64-unknown-linux-gnu-ranlib
            8  +STRIP=x86_64-unknown-linux-gnu-strip
            9  +export PATH AR CC CXX RANLIB STRIP
           10  +
           11  +./kitcreator "$@" --host=x86_64-unknown-linux-gnu

Modified build/make-kit-mipsel from [78d28dde77] to [814a04e3a0].

     1      1   #! /bin/sh
     2      2   
     3         -PATH="${PATH}:/home/rkeene/root/cross-compilers/mipsel-linux-uclibc/usr/mipsel-linux-uclibc/bin"
     4         -AR=mipsel-linux-uclibc-ar
     5         -CC=mipsel-linux-uclibc-gcc
     6         -CXX=false
     7         -RANLIB=mipsel-linux-uclibc-ranlib
     8         -STRIP=mipsel-linux-uclibc-strip
            3  +PATH="${PATH}:/home/rkeene/root/cross-compilers/mipsel-unknown-linux-uclibc/bin"
            4  +AR=mipsel-unknown-linux-uclibc-ar
            5  +CC=mipsel-unknown-linux-uclibc-gcc
            6  +CXX=mipsel-unknown-linux-uclibc-g++
            7  +RANLIB=mipsel-unknown-linux-uclibc-ranlib
            8  +STRIP=mipsel-unknown-linux-uclibc-strip
     9      9   export PATH AR CC CXX RANLIB STRIP
    10     10   
    11         -./build/make-minkit "$@" --host=mipsel-linux-uclibc
           11  +./build/make-minkit "$@" --host=mipsel-unknown-linux-uclibc

Modified build/makearch.info from [cebbe97a7e] to [2ff27f5bab].

    12     12   # If set to "auto" it will be maintained in a file called .version
    13     13   # in the source directory and the revision will be incremented
    14     14   # each time a "makearch" is done.
    15     15   #
    16     16   # If @@SVNLCR@@ is used anywhere in this version number, it will be
    17     17   # replaced with the highest last-changed-rev from the output of
    18     18   #   svn info -R    (or 0)
    19         -VERS="0.5.3"
           19  +VERS="0.5.4"
    20     20   
    21     21   # Space sperated list of documents, if they exist, they will be
    22     22   # prefixed with the contents of the DOC_HDR file and substitution
    23     23   # will occur:
    24     24   #     @@UTIL@@ becomes the utility name ${UTIL}
    25     25   #     @@VERS@@ becomes the utility version
    26     26   #     @@DATE@@ becomes the current date

Modified build/pre.sh from [6536148eb0] to [2ce5e55131].

    11     11   	rm -rf autom4te.cache
    12     12   	rm -f *~
    13     13   
    14     14   	./configure || exit 1
    15     15   	make boot.tcl.h
    16     16   	make zipvfs.tcl.h
    17     17   
    18         -	make distclean
    19         -) || exit 1
    20         -
    21         -KITDLLROOTDIR="$(ls -1d kitdll/buildsrc/kitdll-*/)"
    22         -export KITDLLROOTDIR
    23         -(
    24         -	cd "${KITDLLROOTDIR}" || exit 1
    25         -
    26         -	autoconf; autoheader
    27         -	rm -rf autom4te.cache
    28         -	rm -f *~
    29         -
    30         -	./configure || exit 1
    31         -	make vfs_kitdll.tcl.h || exit 1
    32         -
    33     18   	make distclean
    34     19   ) || exit 1
    35     20   
    36     21   rm -f tcl/patchscripts/dietlibc.sh
    37     22   
    38     23   find . -name '.*.sw?' -type f | xargs rm -f

Modified build/test/do-nightly-tests-and-publish from [5c58eff196] to [d2dcdb02e1].

     1      1   #! /bin/bash
     2      2   
     3      3   # Update PATH to include path to Tclkit, otherwise cross-compiles will fail
     4      4   PATH="${PATH}:/home/rkeene/bin:/usr/local/bin"
     5      5   export PATH
     6      6   
     7      7   # Define build and web paths
     8         -KITCREATORDIR="/home/rkeene/devel/kitcreator"
            8  +KITCREATORFOSSIL="/web/customers/kitcreator.rkeene.org/repo/kitcreator.repo"
     9      9   WEBROOTDIR="/web/rkeene/devel/kitcreator/kitbuild"
    10         -export KITCREATORDIR WEBROOTDIR
           10  +MARKERFILE="/web/customers/kitcreator.rkeene.org/repo/__AUTO_TESTS_RUNNING__"
           11  +TMPWORKDIR="${TMPDIR:-/var/tmp}/kitcreator-test-$$${RANDOM}${RANDOM}${RANDOM}"
           12  +export KITCREATORFOSSIL WEBROOTDIR MARKERFILE TMPWORKDIR
    11     13   
    12         -cd "${KITCREATORDIR}" || exit 1
    13         -
    14         -FOSSIL_CHANGE="$(fossil timeline -n 1 -t ci | grep '^[0-9:]* \[' | sed 's@^[0-9:]* \[\([0-9a-f]*\)\].*$@\1@')"
           14  +# Determine change of fossil revision on trunk
           15  +FOSSIL_CHANGE="$(fossil timeline --repository "${KITCREATORFOSSIL}" children trunk -n 1 -t ci | grep '^[0-9:]* \[' | sed 's@^[0-9:]* \[\([0-9a-f]*\)\].*$@\1@')"
    15     16   TESTNAME="fossil_${FOSSIL_CHANGE}"
    16     17   export FOSSIL_CHANGE TESTNAME
    17     18   
    18         -# On Wednesday, do a distclean to force redownloading everything (mainly
    19         -# for CVS Head) and force a rebuild to ensure up-to-date build status
    20         -if [ "$(date '+%u')" = "3" ]; then
    21         -	./kitcreator distclean || exit 1
           19  +# Verify sanity
           20  +issane=1
           21  +if [ -z "${FOSSIL_CHANGE}" ]; then
           22  +	echo "Unable to determine name of latest revision, likely missing Kitcreator Fossil Repo: ${KITCREATORFOSSIL}" >&2
    22     23   
    23         -	touch "${KITCREATORDIR}/build/test/force_nightly"
           24  +	issane=0
           25  +fi
           26  +
           27  +if [ ! -d "${WEBROOTDIR}" ]; then
           28  +	echo "Missing Web Root Directory: ${WEBROOTDIR}" >&2
           29  +
           30  +	issane=0
           31  +fi
           32  +
           33  +if [ "${issane}" = '0' ]; then
           34  +	exit 1
    24     35   fi
    25     36   
    26         -if [ -d "${WEBROOTDIR}/${TESTNAME}" ]; then
    27         -	# Don't re-run the tests if nothing has changed
    28         -	if [ -f "${KITCREATORDIR}/build/test/force_nightly" ]; then
    29         -		rm -f "${KITCREATORDIR}/build/test/force_nightly"
    30         -	else
           37  +# On Wednesday, do a distclean to force redownloading everything (mainly
           38  +# for CVS Head) and force a rebuild to ensure up-to-date build status
           39  +if [ "$(date '+%u')" != "3" ]; then
           40  +	if [ -d "${WEBROOTDIR}/${TESTNAME}" ]; then
           41  +		# Don't re-run the tests if nothing has changed
    31     42   		exit 0
    32     43   	fi
    33     44   fi
    34     45   
    35         -cd build/test || exit 1
    36         -
    37         -if [ ! -x test -o ! -x publish-tests ]; then
    38         -	echo 'Missing scripts, aborting.' >&2
    39         -
           46  +# Only run one at a time
           47  +if [ -f "${MARKERFILE}" ]; then
    40     48   	exit 1
    41     49   fi
           50  +touch "${MARKERFILE}"
    42     51   
    43         -# Only run one at a time
    44         -if [ -f '__AUTO_TESTS_RUNNING__' ]; then
           52  +# Change to temporary directory to build
           53  +mkdir -p "${TMPWORKDIR}"
           54  +chmod 700 "${TMPWORKDIR}"
           55  +
           56  +cd "${TMPWORKDIR}" || exit 1
           57  +
           58  +# Define clean-up handler
           59  +function die () {
           60  +	echo "$1" >&2
           61  +
           62  +	cd /
           63  +
           64  +	rm -rf "${TMPWORKDIR}"
           65  +
    45     66   	exit 1
           67  +}
           68  +
           69  +# Download latest tarball
           70  +wget -O 'kitcreator-trunk-tip.tar.gz' -o /dev/null "http://kitcreator.rkeene.org/fossil/tarball/kitcreator-trunk-tip.tar.gz?uuid=${FOSSIL_CHANGE}"
           71  +
           72  +tar -xf kitcreator-trunk-tip.tar.gz || die 'Tarball Extraction Failed'
           73  +
           74  +cd kitcreator-trunk-tip || die 'Tarball Sanity Failed'
           75  +
           76  +# Prepare source
           77  +./build/pre.sh >/dev/null 2>/dev/null
           78  +
           79  +# Start the tests
           80  +cd build/test || die 'Missing test suite'
           81  +
           82  +if [ ! -x test -o ! -x publish-tests ]; then
           83  +	die 'Missing scripts, aborting.'
    46     84   fi
    47         -touch '__AUTO_TESTS_RUNNING__'
    48     85   
    49     86   # Clean builds
    50     87   rm -rf kits
    51     88   
    52     89   # Run tests
    53     90   nice -n 20 ./test >/dev/null 2>/dev/null
    54     91   
    55     92   # Clean old auto-generated published results
    56     93   rm -rf "${WEBROOTDIR}"/svn_r*/ "${WEBROOTDIR}"/fossil_*/
    57     94   
    58     95   # Publish New Results
    59     96   ./publish-tests "${TESTNAME}"
    60     97   
           98  +# Create nightly symlink
           99  +rm -f "${WEBROOTDIR}/nightly"
          100  +ln -s "${TESTNAME}" "${WEBROOTDIR}/nightly"
          101  +
    61    102   # Clean
    62         -rm -f '__AUTO_TESTS_RUNNING__'
          103  +rm -f "${MARKERFILE}"
          104  +cd /
          105  +rm -rf "${TMPWORKDIR}"
    63    106   
    64    107   exit 0

Modified build/test/index.ttml from [32e3b3a01b] to [6b17de7829].

     1      1   <html>
     2      2     <head>
     3      3       <title>KitCreator Build and Test Status</title>
     4      4     </head>
     5      5     <body>
     6         -    <h1>KitCreator Build and Test Status</h1>
            6  +    <h1><a href="http://kitcreator.rkeene.org/">KitCreator</a> Build and Test Status</h1>
     7      7       <p>The follow versions of KitCreator have test suite results:</p>
     8      8       <ul>
     9      9   <?
    10     10   	set haveTests 0
    11     11   	foreach subdir [lsort -dictionary [glob -type d *]] {
    12     12   		file lstat $subdir subdirinfo
    13     13   		if {$subdirinfo(type) == "link"} {
................................................................................
    23     23   		puts "      <li><a href=\"${subdir}/\">$subdir</a></li>"
    24     24   	}
    25     25   ?>
    26     26       </ul>
    27     27   <?
    28     28   	if {$haveTests} {
    29     29   ?>
    30         -    <p>The actual tests can be found in <a href="tests/?listing=long">the "tests" directory</a></p>
           30  +    <p>The actual tests can be found in <a href="http://kitcreator.rkeene.org/fossil/dir?name=build/test/tests&ci=trunk">the "tests" directory</a></p>
    31     31   <?
    32     32   	}
    33     33   ?>
    34     34     </body>
    35     35   </html>

Modified build/test/publish-tests from [703dc23136] to [8f47d1a196].

   201    201   	set kitinfo(cpu) $kitcpu
   202    202   	set kitinfo(built) $kitbuilt
   203    203   
   204    204   	# Store kit information with all kits
   205    205   	set key [list $tclversion $kitos $kitcpu]
   206    206   	lappend allkitinfo($key) [array get kitinfo]
   207    207   }
          208  +
          209  +# Determine human readable name, and URL
          210  +if {[string match "fossil_*" $kitcreator_vers]} {
          211  +	set work [split $kitcreator_vers _]
          212  +
          213  +	set kitcreator_fossil_vers [lindex $work 1]
          214  +
          215  +	set kitcreator_readable_vers "Fossil trunk check-in ${kitcreator_fossil_vers}"
          216  +
          217  +	set url "http://kitcreator.rkeene.org/fossil/tarball/kitcreator-${kitcreator_vers}.tar.gz?uuid=${kitcreator_fossil_vers}"
          218  +} else {
          219  +	set kitcreator_readable_vers $kitcreator_vers
          220  +
          221  +	set url "http://www.rkeene.org/devel/kitcreator-${kitcreator_vers}.tar.gz"
          222  +}
   208    223   
   209    224   puts $fd "<html>"
   210    225   puts $fd "  <head>"
   211    226   puts $fd "    <title>KitCreator Build and Test Status</title>"
   212    227   puts $fd "  </head>"
   213    228   puts $fd "  <body>"
   214         -puts $fd "    <h1><a href=\"http://kitcreator.rkeene.org/\">KitCreator</a> Build and Test Status</h1>"
   215         -puts $fd "    <p>The following table represents the status of the test results from the KitCreator test suite.</p>"
          229  +puts $fd "    <h1><a href=\"http://kitcreator.rkeene.org/\">KitCreator</a> <a href=\"../\">Build and Test Status</a></h1>"
          230  +puts $fd "    <p>The following table represents the status of the test results from the KitCreator test suite for <a href=\"${url}\">KitCreator ${kitcreator_readable_vers}</a>.</p>"
   216    231   puts $fd "    <table cellpadding=\"2\" border=\"1\">"
   217    232   foreach key [lsort -dictionary [array names allkitinfo]] {
   218    233   	puts $fd "      <tr>"
   219    234   	puts $fd "        <th colspan=\"5\"><u>Tclkit for [pretty_print_key $key]</u></th>"
   220    235   	puts $fd "      </tr>"
   221    236   	puts $fd "      <tr>"
   222    237   	puts $fd "        <th>Kit Features</th>"

Modified build/test/test from [58637ff4f9] to [38851b5a2a].

    49     49   	Xvfb :31 -screen 0 800x600x24 -nolisten tcp >/dev/null 2>/dev/null &
    50     50   	echo "$!"
    51     51   )"
    52     52   DISPLAY=:31
    53     53   export DISPLAY
    54     54   
    55     55   failed=""
    56         -for kit in normal normal-zip normal-threaded normal-threaded-zip normal-statictk normal-notk normal-threaded-notk normal-threaded-zip-notk normal-nomk4 min min-static normal-kitdll normal-threaded-kitdll normal-notk-kitdll normal-nomk4-kitdll normal-nomk4-notk-kitdll normal-threaded-nomk4-kitdll normal-threaded-notk-nomk4-kitdll min-kitdll win32-i586 win32-i586-zip win32-i586-threaded win32-i586-threaded-zip win32-i586-notk win32-i586-threaded-notk win32-i586-nomk4 win32-i586-kitdll win32-i586-threaded-kitdll win32-i586-notk-kitdll win32-i586-nomk4-kitdll win32-i586-nomk4-notk-kitdll win32-i586-threaded-nomk4-kitdll win32-i586-threaded-notk-nomk4-kitdll linux-arm-min linux-arm-min-kitdll; do
           56  +for kit in normal normal-zip normal-threaded normal-threaded-zip normal-statictk normal-notk normal-threaded-notk normal-threaded-zip-notk normal-nomk4 min min-static normal-kitdll normal-threaded-kitdll normal-notk-kitdll normal-nomk4-kitdll normal-nomk4-notk-kitdll normal-threaded-nomk4-kitdll normal-threaded-notk-nomk4-kitdll min-kitdll win32-i586 win32-i586-zip win32-i586-threaded win32-i586-threaded-zip win32-i586-notk win32-i586-threaded-notk win32-i586-nomk4 win32-i586-kitdll win32-i586-threaded-kitdll win32-i586-notk-kitdll win32-i586-nomk4-kitdll win32-i586-nomk4-notk-kitdll win32-i586-threaded-nomk4-kitdll win32-i586-threaded-notk-nomk4-kitdll linux-mipsel-min linux-mipsel-min-kitdll linux-amd64-notk linux-amd64-notk-kitdll; do
    57     57   	kitcreator="./kitcreator"
    58     58   	args=""
    59     59   	runnable="1"
    60     60   	iszip="0"
    61     61   	statictk="0"
    62     62   	notk="0"
    63     63   	nomk4="0"
................................................................................
    85     85   			kit="${os}-${cpu}-min-static"
    86     86   			;;
    87     87   		win32|win32-*)
    88     88   			kitcreator="./build/make-kit-win32"
    89     89   			xcompile="1"
    90     90   			kitruncmd="wine"
    91     91   			;;
    92         -		linux-arm-min|linux-arm-min-kitdll)
    93         -			kitcreator="./build/make-kit-arm"
           92  +		linux-mipsel-min|linux-mipsel-min-kitdll)
           93  +			kitcreator="./build/make-kit-mipsel"
    94     94   			runnable="0"
    95     95   			xcompile="1"
    96     96   			notk="1"
    97     97   			iszip="1"
           98  +			;;
           99  +		linux-amd64|linux-amd64-*)
          100  +			kitcreator="./build/make-kit-linux-amd64"
          101  +			runnable="0"
          102  +			xcompile="1"
          103  +			iszip="0"
    98    104   			;;
    99    105   	esac
   100    106   
   101    107   	if [ "${xcompile}" != "0" ]; then
   102    108   		kit="${kit}-xcompile"
   103    109   	fi
   104    110   
................................................................................
   253    259   				(
   254    260   					echo ""
   255    261   					echo ""
   256    262   					echo ""
   257    263   					echo " *** Building KitDLL test driver (tclsh)"
   258    264   					echo ""
   259    265   
   260         -					cd kitdll/build/kitdll-*/ || exit 1
          266  +					cd kitsh/build/kitsh-*/ || exit 1
   261    267   					make tclsh
   262    268   					cp tclsh ../../../
   263    269   				) >> "${buildlog}" 2>&1
   264    270   			fi
   265    271   
   266    272   			# Perform wildcard expansion
   267    273   			createdkit="$(ls -f1 ${createdkit} 2>/dev/null | head -n 1)"

Modified build/test/tests/12-threads.tcl from [df3ccdde39] to [7bfac57b1d].

     1      1   #! /usr/bin/env tclsh
     2      2   
     3         -set buildflags [split [lindex $argv 1] -]
            3  +if {[catch {
            4  +	set buildflags [split [lindex $argv 1] -]
     4      5   
     5         -# Determine if Threads was requested (or in 8.6+, unrequested)
     6         -if {$tcl_version == "8.6"} {
     7         -	if {[lsearch -exact $buildflags "unthreaded"] == -1} {
     8         -		set isthreaded 1
            6  +	# Determine if Threads was requested (or in 8.6+, unrequested)
            7  +	if {$tcl_version == "8.6"} {
            8  +		if {[lsearch -exact $buildflags "unthreaded"] == -1} {
            9  +			set isthreaded 1
           10  +		} else {
           11  +			set isthreaded 0
           12  +		}
     9     13   	} else {
           14  +		if {[lsearch -exact $buildflags "threaded"] == -1} {
           15  +			set isthreaded 0
           16  +		} else {
           17  +			set isthreaded 1
           18  +		}
           19  +	}
           20  +
           21  +	# Minimal builds don't come with threads.
           22  +	if {[lsearch -exact $buildflags "min"] != -1} {
    10     23   		set isthreaded 0
    11     24   	}
    12         -} else {
    13         -	if {[lsearch -exact $buildflags "threaded"] == -1} {
    14         -		set isthreaded 0
    15         -	} else {
    16         -		set isthreaded 1
           25  +
           26  +	if {!$isthreaded} {
           27  +		exit 0
    17     28   	}
    18         -}
           29  +
           30  +	package require Thread
    19     31   
    20         -# Static builds don't come with threads.
    21         -if {[lsearch -exact $buildflags "static"] != -1} {
    22         -	set isthreaded 0
    23         -}
    24         -
    25         -if {!$isthreaded} {
    26     32   	exit 0
           33  +}]} {
           34  +	puts "Error in Thread Test: $errorInfo"
           35  +	exit 1
    27     36   }
    28         -
    29         -package require Thread
    30         -
    31         -exit 0

Added build/test/tests/16-itcl.tcl version [91f3c57960].

            1  +#! /usr/bin/env tclsh
            2  +
            3  +if {[catch {
            4  +	set buildflags [split [lindex $argv 1] -]
            5  +
            6  +	# Determine if Itcl was was requested
            7  +	## Minimal builds don't come with Itcl
            8  +	set hasitcl 1
            9  +	if {[lsearch -exact $buildflags "min"] != -1} {
           10  +		set hasitcl 0
           11  +	}
           12  +
           13  +	if {!$hasitcl} {
           14  +		exit 0
           15  +	}
           16  +
           17  +	package require Itcl
           18  +
           19  +	exit 0
           20  +}]} {
           21  +	puts "Error in Itcl Test: $errorInfo"
           22  +	exit 1
           23  +}

Added build/web/Makefile version [a7224e283a].

            1  +STARKIT2EXE = ../../../starkit2exe/starkit2exe
            2  +RIVET2STARKIT = ../../../rivet/bin/rivet2starkit
            3  +
            4  +kitcreator.cgi: kitcreator.kit
            5  +	$(STARKIT2EXE) kitcreator.kit kitcreator.cgi
            6  +
            7  +kitcreator.kit: kitcreator.vfs kitcreator.vfs/index.rvt
            8  +	$(RIVET2STARKIT) tclkit kitcreator.kit kitcreator.vfs
            9  +
           10  +clean:
           11  +	rm -f kitcreator.kit kitcreator.cgi
           12  +
           13  +distclean: clean
           14  +
           15  +.PHONY: clean distclean

Added build/web/kitcreator.vfs/index.rvt version [aaeb907791].

            1  +<?
            2  +	set sourcedir "/web/rkeene/devel/kitcreator/all"
            3  +	foreach file [glob -tails -nocomplain -directory $sourcedir "kitcreator-*.tar.gz"] {
            4  +		regexp {^kitcreator-(.*).tar.gz$} $file -> vers
            5  +		set kitcreator_versions($vers) $vers
            6  +	}
            7  +	set kitcreator_version_selected [lindex [lsort -dictionary [array names kitcreator_versions]] end]
            8  +
            9  +	set kitcreator_versions(trunk) "Fossil Trunk Tip"
           10  +
           11  +	set tcl_versions(8.4.19) 8.4.19
           12  +	set tcl_versions(8.5.9) 8.5.9
           13  +	set tcl_versions(cvs_HEAD) "Fossil Trunk Tip"
           14  +
           15  +	set platforms(linux-x86) "Linux on x86"
           16  +	set platforms(linux-amd64) "Linux on amd64"
           17  +	set platforms(linux-mipsel) "Linux on MIPSEL"
           18  +	set platforms(windows-x86) "Windows on x86"
           19  +
           20  +	set disable {
           21  +		platform linux-amd64 tk
           22  +		platform linux-mipsel tk
           23  +	}
           24  +
           25  +	set specific {
           26  +		platform windows-x86 file icon {Kit Icon}
           27  +		platform windows-x86 text description {Description}
           28  +	}
           29  +?><html>
           30  +  <head>
           31  +    <title>KitCreator, Web Interface</title>
           32  +    <script>
           33  +<!--
           34  +	function verifyOptions() {
           35  +		var kitcreator_version;
           36  +		var tcl_version;
           37  +		var platform;
           38  +
           39  +		kitcreator_version = document.getElementsByName('kitcreator_version')[0].value;
           40  +		tcl_version = document.getElementsByName('tcl_version')[0].value;
           41  +		platform = document.getElementsByName('platform')[0].value;
           42  +
           43  +	}
           44  +-->
           45  +    </script>
           46  +  </head>
           47  +  <body>
           48  +    <h1>KitCreator Web Interface</h1>
           49  +    <form method="post" enctype="multipart/form-data">
           50  +      <table>
           51  +        <tr>
           52  +          <td>KitCreator Version:</td>
           53  +          <td>
           54  +            <select name="kitcreator_version" onChange="verifyOptions();">
           55  +<?
           56  +	foreach kitcreator_version [lsort -dictionary [array names kitcreator_versions]] {
           57  +		set kitcreator_version_name $kitcreator_versions($kitcreator_version)
           58  +
           59  +		if {$kitcreator_version == $kitcreator_version_selected} {
           60  +			set selected " selected"
           61  +		} else {
           62  +			set selected ""
           63  +		}
           64  +
           65  +		puts "              <option value=\"${kitcreator_version}\"${selected}>${kitcreator_version_name}</option>"
           66  +	}
           67  +?>
           68  +            </select>
           69  +          </td>
           70  +        </tr>
           71  +        <tr>
           72  +          <td>Tcl Version:</td>
           73  +          <td>
           74  +            <select name="tcl_version" onChange="verifyOptions();">
           75  +<?
           76  +	foreach tcl_version [lsort -dictionary [array names tcl_versions]] {
           77  +		set tcl_version_name $tcl_versions($tcl_version)
           78  +		puts "              <option value=\"${tcl_version}\">${tcl_version_name}</option>"
           79  +	}
           80  +?>
           81  +            </select>
           82  +          </td>
           83  +        </tr>
           84  +        <tr>
           85  +          <td>Platform:</td>
           86  +          <td>
           87  +            <select name="platform" onChange="verifyOptions();">
           88  +<?
           89  +	foreach platform [lsort -dictionary [array names platforms]] {
           90  +		set platform_name $platforms($platform)
           91  +		puts "              <option value=\"${platform}\">${platform_name}</option>"
           92  +	}
           93  +?>
           94  +            </select>
           95  +          </td>
           96  +        </tr>
           97  +        <tr>
           98  +          <td>Kit Options:</td>
           99  +          <td>
          100  +            <input type="checkbox" name="option_package_tk">Tk<br>
          101  +            <input type="checkbox" name="option_package_itcl">[incr Tcl]<br>
          102  +            <input type="checkbox" name="option_package_mk4tcl">Metakit<br>
          103  +            <input type="checkbox" name="option_threaded">Threaded<br>
          104  +            <input type="checkbox" name="option_kitdll">Build Library (KitDLL)<br>
          105  +          </td>
          106  +        </tr>
          107  +        <tr>
          108  +          <td>Kit Icon:</td>
          109  +          <td>
          110  +            <input type="file" name="platform-windows-x86-icon">
          111  +          </td>
          112  +        </tr>
          113  +        <tr>
          114  +          <td>Description:</td>
          115  +          <td>
          116  +            <input type="text" name="platform-windows-x86-desc">
          117  +          </td>
          118  +        </tr>
          119  +      </table>
          120  +      <input type="submit" name="submit" value="Create">
          121  +    </form>
          122  +  </body>
          123  +</html>

Modified kitcreator from [15de613872] to [9916a29d8c].

     1      1   #! /bin/bash
     2      2   
     3      3   TCLVERS="8.4.19"
     4         -if echo "$1" | grep '^[0-9][0-9]*\.' >/dev/null || echo "$1" | grep '^cvs_' >/dev/null; then
            4  +if echo "$1" | grep '^[0-9][0-9]*\.' >/dev/null || echo "$1" | egrep '^(cvs|fossil)_' >/dev/null; then
     5      5   	TCLVERS="$1"
     6      6   
     7      7   	shift
     8      8   fi
     9      9   export TCLVERS
    10     10   
    11     11   # Determine appropriate mode
................................................................................
    18     18   if [ "$1" = "distclean" ]; then
    19     19   	shift
    20     20   
    21     21   	mode="distclean"
    22     22   fi
    23     23   
    24     24   # Define the list of all packages, for cleaning purposes
    25         -KITCREATOR_ALLPKGS="kitsh tcl tclvfs zlib tk itcl mk4tcl thread kitdll"
           25  +KITCREATOR_ALLPKGS="kitsh tcl tclvfs zlib tk itcl mk4tcl thread"
    26     26   for pkg in ${KITCREATOR_ALLPKGS}; do
    27     27   	rm -f "${pkg}/build.log"
    28     28   	rm -rf "${pkg}/out" "${pkg}/inst" "${pkg}/build"
           29  +
           30  +	rm -rf "${pkg}/src"/tmp-*
    29     31   
    30     32   	if [ "${mode}" = "distclean" ]; then
    31     33   		rm -rf "${pkg}/src"
    32     34   	fi
    33     35   done
    34     36   
    35     37   # We're all done if we're in clean or distclean mode
................................................................................
    58     60   
    59     61   # Fix up package list
    60     62   ## If building KitDLL, define it as our target
    61     63   if echo " ${KITCREATOR_PKGS} " | grep ' kitdll ' >/dev/null 2>/dev/null; then
    62     64   	KITCREATOR_PKGS="$(echo " ${KITCREATOR_PKGS} " | sed 's@ kitdll @ @g;s@^  *@@;s@  *$@@;s@   *@ @g')"
    63     65   	KITTARGET="kitdll"
    64     66   fi
           67  +
           68  +# If the user manually requested "--enable-kitdll", make it so
           69  +if echo "x $@ " | grep ' [-][-]enable-kitdll ' >/dev/null 2>/dev/null; then
           70  +	KITTARGET="kitdll"
           71  +fi
    65     72   
    66     73   ## If building KitDLL and Tk, must do Tk statically
    67     74   ### (Well, we don't HAVE to, but it would defeat much of the purpose)
    68     75   if [ "${KITTARGET}" = "kitdll" ]; then
    69     76   	if echo " ${KITCREATOR_PKGS} " | grep ' tk ' >/dev/null 2>/dev/null; then
    70     77   		if [ "${STATICTK}" != "1" -a "${STATICTK}" != "-1" ]; then
    71     78   			echo 'Warning: Linking Tk statically because you are building KitDLL' 2>&1
................................................................................
    81     88   
    82     89   			STATICMK4="0"
    83     90   			export STATICMK4
    84     91   		fi
    85     92   	fi
    86     93   fi
    87     94   
           95  +# Find Windows resource-related files
           96  +if [ -f "kit.ico" ]; then
           97  +	KITCREATOR_ICON="$(pwd)/kit.ico"
           98  +else
           99  +	KITCREATOR_ICON="$(echo "$(pwd)/kitsh/buildsrc"/kitsh-*/kit.ico)"
          100  +fi
          101  +if [ -f "kit.rc" ]; then
          102  +	KITCREATOR_RC="$(pwd)/kit.rc"
          103  +else
          104  +	KITCREATOR_RC="$(echo "$(pwd)/kitsh/buildsrc"/kitsh-*/kit.rc)"
          105  +fi
          106  +export KITCREATOR_ICON KITCREATOR_RC
          107  +
          108  +# Determine how we invoke a Tcl interpreter
          109  +if [ -z "${TCLSH_NATIVE}" ]; then
          110  +	TCLSH_NATIVE="false"
          111  +fi
          112  +for testsh in "${TCLSH_NATIVE}" tclsh tclsh8.4 tclsh8.5 tclsh8.6 "${TCLKIT:-tclkit}"; do
          113  +	if echo 'exit 0' | "${testsh}" >/dev/null 2>/dev/null; then
          114  +		TCLSH_NATIVE="${testsh}"
          115  +
          116  +		break
          117  +	fi
          118  +done
          119  +export TCLSH_NATIVE
          120  +
          121  +# Do build
    88    122   failedpkgs=""
    89    123   buildfailed="0"
    90         -for pkg in tcl tclvfs zlib ${KITCREATOR_PKGS} "${KITTARGET}"; do
          124  +for pkg in tcl tclvfs zlib ${KITCREATOR_PKGS} kitsh; do
    91    125   	echo -n "Building ${pkg} ..."
    92    126   
    93    127   	failed="0"
    94    128   	(
    95    129   		cd "${pkg}" >/dev/null 2>/dev/null || exit 1
    96    130   
    97    131   		./build.sh > build.log 2>&1 || exit 1
................................................................................
   120    154   	echo "Failed to build:${failedpkgs}"
   121    155   fi
   122    156   
   123    157   if [ "${buildfailed}" != "0" ]; then
   124    158   	echo 'WARNING: Build is likely incomplete or failed.' >&2
   125    159   fi
   126    160   
   127         -cp 'kitdll/build'/kitdll-*/libtclkit* . >/dev/null 2>/dev/null
          161  +cp 'kitsh/build'/kitsh-*/libtclkit* . >/dev/null 2>/dev/null
   128    162   cp 'kitsh/build'/kitsh-*/kit "tclkit-${TCLVERS}" >/dev/null 2>/dev/null
   129    163   
   130    164   exit "${buildfailed}"

Deleted kitdll/build.sh version [9d057a0710].

     1         -#! /bin/bash
     2         -
     3         -if [ ! -f 'build.sh' ]; then
     4         -	echo 'ERROR: This script must be run from the directory it is in' >&2
     5         -
     6         -	exit 1
     7         -fi
     8         -if [ -z "${TCLVERS}" ]; then
     9         -	echo 'ERROR: The TCLVERS environment variable is not set' >&2
    10         -
    11         -	exit 1
    12         -fi
    13         -
    14         -KITDLLVERS="0.0"
    15         -BUILDDIR="$(pwd)/build/kitdll-${KITDLLVERS}"
    16         -OUTDIR="$(pwd)/out"
    17         -INSTDIR="$(pwd)/inst"
    18         -OTHERPKGSDIR="$(pwd)/../"
    19         -export KITDLLVERS BUILDDIR OUTDIR INSTDIR OTHERPKGSDIR
    20         -
    21         -rm -rf 'build' 'out' 'inst'
    22         -mkdir 'out' 'inst' || exit 1
    23         -
    24         -(
    25         -	cp -r 'buildsrc' 'build'
    26         -	cd "${BUILDDIR}" || exit 1
    27         -
    28         -	# Fix up archives that Tcl gets wrong
    29         -	for archive in ../../../tcl/inst/lib/dde*/tcldde*.a ../../../tcl/inst/lib/reg*/tclreg*.a; do
    30         -		if [ ! -f "${archive}" ]; then
    31         -			continue
    32         -		fi
    33         -
    34         -		rm -rf __TEMP__
    35         -		(
    36         -			mkdir __TEMP__ || exit 1
    37         -			cd __TEMP__
    38         -
    39         -			## Patch archive name
    40         -			archive="../${archive}"
    41         -
    42         -			"${AR:-ar}" x "${archive}" || exit 1
    43         -
    44         -			rm -f "${archive}"
    45         -
    46         -			"${AR:-ar}" cr "${archive}" *.o || exit 1
    47         -			"${RANLIB:-ranlib}" "${archive}" || true
    48         -		)
    49         -	done
    50         -
    51         -	# Determine how we invoke a Tcl interpreter
    52         -	for testsh in "${TCLSH_NATIVE:-false}" "${TCLKIT:-tclkit}"; do
    53         -		if echo 'exit 0' | "${testsh}" >/dev/null 2>/dev/null; then
    54         -			TCLSH_NATIVE="${testsh}"
    55         -
    56         -			break
    57         -		fi
    58         -	done
    59         -
    60         -	# Cleanup, just incase the incoming directory was not pre-cleaned
    61         -	${MAKE:-make} distclean >/dev/null 2>/dev/null
    62         -	rm -rf "starpack.vfs"
    63         -
    64         -	# Create VFS directory
    65         -	mkdir "starpack.vfs"
    66         -	mkdir "starpack.vfs/lib"
    67         -
    68         -	## Copy in required built directories
    69         -	cp -r "${OTHERPKGSDIR}"/*/out/* 'starpack.vfs/'
    70         -
    71         -	## Rename the "vfs" package directory to what "boot.tcl" expects
    72         -	mv 'starpack.vfs/lib'/vfs* 'starpack.vfs/lib/vfs'
    73         -
    74         -	## Install "boot.tcl"
    75         -	cp 'boot.tcl' 'starpack.vfs/'
    76         -
    77         -	# Include extra objects as required
    78         -	## Initialize list of extra objects
    79         -	EXTRA_OBJS=""
    80         -
    81         -	## Figure out if zlib compiled (if not, the system zlib will be used and we
    82         -	## will need to have that present)
    83         -	ZLIBDIR="$(cd "${OTHERPKGSDIR}/zlib/inst" 2>/dev/null && pwd)"
    84         -	export ZLIBDIR
    85         -	if [ -n "${ZLIBDIR}" -a -f "${ZLIBDIR}/lib/libz.a" ]; then
    86         -		EXTRA_OBJS="${EXTRA_OBJS} ${ZLIBDIR}/lib/libz.a"
    87         -
    88         -		### Add lib directory for zlib
    89         -		LDFLAGS="${LDFLAGS} -L${ZLIBDIR}/lib"
    90         -		export LDFLAGS
    91         -
    92         -		### Add include directory for zlib
    93         -		CFLAGS="${CFLAGS} -I${ZLIBDIR}/include"
    94         -		CPPFLAGS="${CPPFLAGS} -I${ZLIBDIR}/include"
    95         -		export CFLAGS CPPFLAGS
    96         -	fi
    97         -
    98         -	## Tk Resources (needed for Win32 support)
    99         -	TKDIR="$(cd "${OTHERPKGSDIR}/tk/inst" && pwd)"
   100         -	TKRSRC="${TKDIR}/lib/tkbase.res.o"
   101         -	if [ -n "${TKDIR}" -a -f "${TKRSRC}" ]; then
   102         -		EXTRA_OBJS="${EXTRA_OBJS} ${TKRSRC}"
   103         -	fi
   104         -
   105         -	## Export to the environment, to be picked up by the "configure" script
   106         -	export EXTRA_OBJS
   107         -
   108         -	# Build KitDLL
   109         -	echo "Running: ./configure --with-tcl=\"${TCLCONFIGDIR}\" ${CONFIGUREEXTRA}"
   110         -	./configure --with-tcl="${TCLCONFIGDIR}" ${CONFIGUREEXTRA}
   111         -
   112         -	echo "Running: ${MAKE:-make}"
   113         -	${MAKE:-make} TCLSH_NATIVE="${TCLSH_NATIVE}" || exit 1
   114         -
   115         -	# Strip the KitDLL of debugging symbols, if possible
   116         -	"${STRIP:-strip}" -g libtclkit* >/dev/null 2>/dev/null
   117         -
   118         -	# Fix up Win32 DLL names
   119         -	## .DLL.A -> .LIB
   120         -	for file in libtclkit*.dll.a; do
   121         -		if [ ! -f "${file}" ]; then
   122         -			continue
   123         -		fi
   124         -
   125         -		newfile="$(basename "${file}" .dll.a).lib"
   126         -		mv "${file}" "${newfile}"
   127         -	done
   128         -
   129         -	## .DLL.DEF -> .DEF
   130         -	for file in libtclkit*.dll.def; do
   131         -		if [ ! -f "${file}" ]; then
   132         -			continue
   133         -		fi
   134         -
   135         -		newfile="$(basename "${file}" .dll.def).def"
   136         -		mv "${file}" "${newfile}"
   137         -	done
   138         -
   139         -	exit 0
   140         -) || exit 1
   141         -
   142         -exit 0

Deleted kitdll/buildsrc/kitdll-0.0/aclocal.m4 version [57e33ec54f].

     1         -dnl Usage:
     2         -dnl    DC_TEST_SHOBJFLAGS(shobjflags, shobjldflags, action-if-not-found)
     3         -dnl
     4         -AC_DEFUN(DC_TEST_SHOBJFLAGS, [
     5         -  AC_SUBST(SHOBJFLAGS)
     6         -  AC_SUBST(SHOBJLDFLAGS)
     7         -
     8         -  OLD_LDFLAGS="$LDFLAGS"
     9         -  SHOBJFLAGS=""
    10         -
    11         -  LDFLAGS="$OLD_LDFLAGS $1 $2"
    12         -
    13         -  AC_TRY_LINK([#include <stdio.h>
    14         -int unrestst(void);], [ printf("okay\n"); unrestst(); return(0); ], [ SHOBJFLAGS="$1"; SHOBJLDFLAGS="$2" ], [
    15         -  LDFLAGS="$OLD_LDFLAGS"
    16         -  $3
    17         -])
    18         -
    19         -  LDFLAGS="$OLD_LDFLAGS"
    20         -])
    21         -
    22         -AC_DEFUN(DC_GET_SHOBJFLAGS, [
    23         -  AC_SUBST(SHOBJFLAGS)
    24         -  AC_SUBST(SHOBJLDFLAGS)
    25         -
    26         -  AC_MSG_CHECKING(how to create shared objects)
    27         -
    28         -  if test -z "$SHOBJFLAGS" -a -z "$SHOBJLDFLAGS"; then
    29         -    DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -rdynamic], [
    30         -      DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared], [
    31         -        DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -rdynamic -mimpure-text], [
    32         -          DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -mimpure-text], [
    33         -            DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -rdynamic -Wl,-G,-z,textoff], [
    34         -              DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -Wl,-G,-z,textoff], [
    35         -                DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -dynamiclib -flat_namespace -undefined suppress -bind_at_load], [
    36         -                  DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-dynamiclib -flat_namespace -undefined suppress -bind_at_load], [
    37         -                    DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-Wl,-dynamiclib -Wl,-flat_namespace -Wl,-undefined,suppress -Wl,-bind_at_load], [
    38         -                      DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-dynamiclib -flat_namespace -undefined suppress], [
    39         -                        DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-dynamiclib], [
    40         -                          AC_MSG_RESULT(cant)
    41         -                          AC_MSG_ERROR([We are unable to make shared objects.])
    42         -                        ])
    43         -                      ])
    44         -                    ])
    45         -                  ])
    46         -                ])
    47         -              ])
    48         -            ])
    49         -          ])
    50         -        ])
    51         -      ])
    52         -    ])
    53         -  fi
    54         -
    55         -  AC_MSG_RESULT($SHOBJLDFLAGS $SHOBJFLAGS)
    56         -])
    57         -
    58         -AC_DEFUN(DC_CHK_OS_INFO, [
    59         -	AC_CANONICAL_HOST
    60         -	AC_SUBST(SHOBJEXT)
    61         -	AC_SUBST(AREXT)
    62         -        AC_SUBST(SHOBJFLAGS)
    63         -        AC_SUBST(SHOBJLDFLAGS)
    64         -
    65         -        AC_MSG_CHECKING(host operating system)
    66         -        AC_MSG_RESULT($host_os)
    67         -
    68         -	SHOBJEXT="so"
    69         -	AREXT="a"
    70         -
    71         -        case $host_os in
    72         -                darwin*)
    73         -			SHOBJEXT="dylib"
    74         -                        ;;
    75         -		hpux*)
    76         -			SHOBJEXT="sl"
    77         -			;;
    78         -		mingw*)
    79         -			SHOBJEXT="dll"
    80         -			SHOBJFLAGS="-mno-cygwin -mms-bitfields -DPIC"
    81         -			SHOBJLDFLAGS='-shared -Wl,--dll -Wl,--enable-auto-image-base -Wl,--output-def,$[@].def,--out-implib,$[@].a -Wl,--export-all-symbols -Wl,--add-stdcall-alias'
    82         -			;;
    83         -	esac
    84         -])
    85         -
    86         -AC_DEFUN(DC_DO_TCL, [
    87         -	AC_MSG_CHECKING([path to tcl])
    88         -	AC_ARG_WITH(tcl, AC_HELP_STRING([--with-tcl], [directory containing tcl configuration (tclConfig.sh)]), [], [
    89         -		with_tcl="auto"
    90         -	])
    91         -
    92         -	if test "${with_tcl}" = "auto"; then
    93         -		for dir in `echo "${PATH}" | sed 's@:@ @g'`; do
    94         -			if test -f "${dir}/tclConfig.sh"; then
    95         -				tclconfigshdir="${dir}"
    96         -				tclconfigsh="${tclconfigshdir}/tclConfig.sh"
    97         -				break
    98         -			fi
    99         -			if test -f "${dir}/../lib/tclConfig.sh"; then
   100         -				tclconfigshdir="${dir}/../lib"
   101         -				tclconfigsh="${tclconfigshdir}/tclConfig.sh"
   102         -				break
   103         -			fi
   104         -			if test -f "${dir}/../lib64/tclConfig.sh"; then
   105         -				tclconfigshdir="${dir}/../lib64"
   106         -				tclconfigsh="${tclconfigshdir}/tclConfig.sh"
   107         -				break
   108         -			fi
   109         -		done
   110         -
   111         -		if test -z "${tclconfigsh}"; then
   112         -			AC_MSG_ERROR([Unable to find tclConfig.sh])
   113         -		fi
   114         -	else
   115         -		tclconfigshdir="${with_tcl}"
   116         -		tclconfigsh="${tclconfigshdir}/tclConfig.sh"
   117         -	fi
   118         -
   119         -	if test -f "${tclconfigsh}"; then
   120         -		. "${tclconfigsh}"
   121         -
   122         -		CFLAGS="${CFLAGS} ${TCL_INCLUDE_SPEC} -I${TCL_SRC_DIR}/generic -I${tclconfigshdir}"
   123         -		CPPFLAGS="${CPPFLAGS} ${TCL_INCLUDE_SPEC} -I${TCL_SRC_DIR}/generic -I${tclconfigshdir}"
   124         -		LIBS="${LIBS} ${TCL_LIBS}"
   125         -
   126         -		KITDLL_LIB_VERSION=`echo "${TCL_VERSION}${TCL_PATCH_LEVEL}" | sed 's@\.@@g'`
   127         -	fi
   128         -
   129         -	AC_SUBST(CFLAGS)
   130         -	AC_SUBST(CPPFLAGS)
   131         -	AC_SUBST(LIBS)
   132         -
   133         -	AC_SUBST(KITDLL_LIB_VERSION)
   134         -
   135         -	AC_MSG_RESULT([$tclconfigsh])
   136         -])
   137         -
   138         -AC_DEFUN(DC_DO_TK, [
   139         -	AC_MSG_CHECKING([path to tk])
   140         -	AC_ARG_WITH(tk, AC_HELP_STRING([--with-tk], [directory containing tk configuration (tkConfig.sh)]), [], [
   141         -		with_tk="auto"
   142         -	])
   143         -
   144         -	if test "${with_tk}" = "auto"; then
   145         -		for dir in ../../../tk/build/tk*/*/ `echo "${PATH}" | sed 's@:@ @g'`; do
   146         -			if test -f "${dir}/tkConfig.sh"; then
   147         -				tkconfigshdir="${dir}"
   148         -				tkconfigsh="${tkconfigshdir}/tkConfig.sh"
   149         -				break
   150         -			fi
   151         -			if test -f "${dir}/../lib/tkConfig.sh"; then
   152         -				tkconfigshdir="${dir}/../lib"
   153         -				tkconfigsh="${tkconfigshdir}/tkConfig.sh"
   154         -				break
   155         -			fi
   156         -			if test -f "${dir}/../lib64/tkConfig.sh"; then
   157         -				tkconfigshdir="${dir}/../lib64"
   158         -				tkconfigsh="${tkconfigshdir}/tkConfig.sh"
   159         -				break
   160         -			fi
   161         -		done
   162         -
   163         -		if test -z "${tkconfigsh}"; then
   164         -			AC_MSG_ERROR([Unable to find tkConfig.sh])
   165         -		fi
   166         -	else
   167         -		tkconfigshdir="${with_tk}"
   168         -		tkconfigsh="${tkconfigshdir}/tkConfig.sh"
   169         -	fi
   170         -
   171         -	if test -f "${tkconfigsh}"; then
   172         -		. "${tkconfigsh}"
   173         -
   174         -		CFLAGS="${CFLAGS} ${TK_INCLUDE_SPEC} -I${tkconfigshdir} -I${TK_SRC_DIR}/generic -I${TK_SRC_DIR}/xlib"
   175         -		CPPFLAGS="${CPPFLAGS} ${TK_INCLUDE_SPEC} -I${tkconfigshdir} -I${TK_SRC_DIR}/generic -I${TK_SRC_DIR}/xlib"
   176         -		LIBS="${LIBS} ${TK_LIBS}"
   177         -
   178         -		NEWLIBS=""
   179         -		for lib in ${LIBS}; do
   180         -			if echo "${lib}" | grep '^-l' >/dev/null; then
   181         -				if echo " ${NEWLIBS} " | grep " ${lib} " >/dev/null; then
   182         -					continue
   183         -				fi
   184         -			fi
   185         -
   186         -			NEWLIBS="${NEWLIBS} ${lib}"
   187         -		done
   188         -		LIBS="${NEWLIBS}"
   189         -		unset NEWLIBS
   190         -	fi
   191         -
   192         -	AC_SUBST(CFLAGS)
   193         -	AC_SUBST(CPPFLAGS)
   194         -	AC_SUBST(LIBS)
   195         -
   196         -	AC_MSG_RESULT([$tkconfigsh])
   197         -])
   198         -
   199         -AC_DEFUN(DC_SETUP_TCL_PLAT_DEFS, [
   200         -	AC_CANONICAL_HOST
   201         -  
   202         -	AC_MSG_CHECKING(host operating system)
   203         -	AC_MSG_RESULT($host_os)
   204         -  
   205         -	case $host_os in
   206         -		mingw32*)
   207         -			CFLAGS="${CFLAGS} -mno-cygwin -mms-bitfields"
   208         -
   209         -			dnl If we are building for Win32, we need to define "BUILD_tcl" so that
   210         -			dnl TCL_STORAGE_CLASS gets defined as DLLEXPORT, to make static linking
   211         -			dnl work
   212         -			AC_DEFINE(BUILD_tcl, [1], [Define if you need to pretend to be building Tcl (Windows)])
   213         -			AC_DEFINE(BUILD_tk, [1], [Define if you need to pretend to be building Tk (Windows)])
   214         -			;;
   215         -		cygwin*)
   216         -			CFLAGS="${CFLAGS} -mms-bitfields"
   217         -			;;
   218         -	esac
   219         -])
   220         -
   221         -AC_DEFUN(DC_TEST_WHOLE_ARCHIVE_SHARED_LIB, [
   222         -
   223         -	SAVE_LIBS="${LIBS}"
   224         -
   225         -	LIBS="${WHOLEARCHIVE} $1 ${NOWHOLEARCHIVE} ${SAVE_LIBS}"
   226         -	AC_LINK_IFELSE(
   227         -		AC_LANG_PROGRAM([[
   228         -			]], [[
   229         -			]]
   230         -		),
   231         -		[
   232         -			LIBS="${SAVE_LIBS}"
   233         -
   234         -			$2
   235         -		], [
   236         -			LIBS="${SAVE_LIBS}"
   237         -
   238         -			$3
   239         -		]
   240         -	)
   241         -])
   242         -
   243         -AC_DEFUN(DC_DO_STATIC_LINK_LIB, [
   244         -	AC_MSG_CHECKING([for how to statically link to $1])
   245         -	 
   246         -	SAVELIBS="${LIBS}"
   247         -	staticlib=""
   248         -	found="0"
   249         -	dnl HP/UX uses -Wl,-a,archive -lstdc++ -Wl,-a,shared_archive
   250         -	dnl Linux and Solaris us -Wl,-Bstatic ... -Wl,-Bdynamic
   251         -	for trylink in "-Wl,-a,archive $2 -Wl,-a,shared_archive" "-Wl,-Bstatic $2 -Wl,-Bdynamic" "$2"; do
   252         -		LIBS="${SAVELIBS} ${trylink}"
   253         -	       
   254         -		AC_LINK_IFELSE(AC_LANG_PROGRAM([], []), [
   255         -			staticlib="${trylink}"
   256         -			found="1"
   257         -	       
   258         -			break
   259         -		])
   260         -	done   
   261         -	 
   262         -	if test "${found}" = "1"; then
   263         -		SAVELIBS=`echo "$SAVELIBS" | sed 's@ $2 @ @'`
   264         -		LIBS="${SAVELIBS} ${staticlib}"
   265         -
   266         -		AC_MSG_RESULT([${staticlib}])
   267         -
   268         -		AC_SUBST(LIBS)
   269         -
   270         -		$3
   271         -	else    
   272         -		LIBS="${SAVELIBS}"
   273         -		
   274         -		AC_MSG_RESULT([cant])
   275         -		
   276         -		$4
   277         -	fi
   278         -])
   279         -
   280         -AC_DEFUN(DC_DO_STATIC_LINK_LIBCXX, [
   281         -	dnl Sun Studio uses -lCstd -lCrun, most platforms use -lstdc++
   282         -	DC_DO_STATIC_LINK_LIB([C++ Library (Sun Studio)], [-lCstd -lCrun],, [
   283         -		DC_DO_STATIC_LINK_LIB([C++ Library (UNIX)], [-lstdc++])
   284         -	])
   285         -])
   286         -
   287         -AC_DEFUN(DC_FIND_TCLKIT_LIBS, [
   288         -	DC_SETUP_TCL_PLAT_DEFS
   289         -
   290         -	WISH_CFLAGS=""
   291         -
   292         -	dnl We will need this for the Tcl project, which we will always have
   293         -	DC_CHECK_FOR_WHOLE_ARCHIVE
   294         -
   295         -	for proj in tcl tclvfs tk mk4tcl; do
   296         -		AC_MSG_CHECKING([for libraries required for ${proj}])
   297         -
   298         -		libdir="../../../${proj}/inst"
   299         -		libfiles="`find "${libdir}" -name '*.a' 2>/dev/null | tr "\n" ' '`"
   300         -		libfilesnostub="`find "${libdir}" -name '*.a' 2>/dev/null | grep -v 'stub' | tr "\n" ' '`"
   301         -
   302         -		for libfile in ${libfiles}; do
   303         -			LDFLAGS="${LDFLAGS} -L`dirname "${libfile}"`"
   304         -		done
   305         -
   306         -		if test "$proj" = "tcl"; then
   307         -			DC_TEST_WHOLE_ARCHIVE_SHARED_LIB([$ARCHS $libfilesnostub], [
   308         -				libfiles="${libfilesnostub}"
   309         -			], [
   310         -				DC_TEST_WHOLE_ARCHIVE_SHARED_LIB([$ARCHS $libfiles], [
   311         -					libfiles="${libfiles}"
   312         -				])
   313         -			])
   314         -		fi
   315         -
   316         -		if test "${proj}" = "mk4tcl"; then
   317         -			if test -n "$libfiles"; then
   318         -				AC_DEFINE(KIT_INCLUDES_MK4TCL, [1], [Specify this if you link against mkt4tcl])
   319         -				DC_DO_STATIC_LINK_LIBCXX
   320         -			fi
   321         -		fi
   322         -
   323         -		if test "$proj" = "tk"; then
   324         -			if test -n "$libfilesnostub"; then
   325         -				DC_DO_TK
   326         -				DC_TEST_WHOLE_ARCHIVE_SHARED_LIB([$ARCHS $libfilesnostub], [
   327         -					libfiles="${libfilesnostub}"
   328         -				], [
   329         -					DC_TEST_WHOLE_ARCHIVE_SHARED_LIB([$ARCHS $libfiles], [
   330         -						libfiles="${libfiles}"
   331         -					])
   332         -				])
   333         -
   334         -				AC_DEFINE(KIT_INCLUDES_TK, [1], [Specify this if we link statically to Tk])
   335         -
   336         -				if test -n "${TK_VERSION}"; then
   337         -					AC_DEFINE_UNQUOTED(KIT_TK_VERSION, "${TK_VERSION}${TK_PATCH_LEVEL}", [Specify the version of Tk])
   338         -				fi
   339         -
   340         -				if test "$host_os" = "mingw32msvc" -o "$host_os" = "mingw32"; then
   341         -					WISH_CFLAGS="-mwindows"
   342         -				fi
   343         -			fi
   344         -		fi
   345         -
   346         -		ARCHS="${ARCHS} ${libfiles}"
   347         -
   348         -		AC_MSG_RESULT([${libfiles}])
   349         -	done
   350         -
   351         -	AC_SUBST(WISH_CFLAGS)
   352         -	AC_SUBST(ARCHS)
   353         -])
   354         -
   355         -AC_DEFUN(DC_CHECK_FOR_ACCEPTABLE_DLADDR, [
   356         -	AC_CHECK_HEADERS(dlfcn.h)
   357         -	AC_CHECK_FUNCS(dladdr)
   358         -
   359         -	AC_MSG_CHECKING([for acceptable dladdr])
   360         -
   361         -	AC_LINK_IFELSE(
   362         -		AC_LANG_PROGRAM([[
   363         -#ifdef HAVE_DLFCN_H
   364         -#include <dlfcn.h>
   365         -#endif
   366         -			]], [[
   367         -char *x;
   368         -Dl_info syminfo;
   369         -dladdr((void *) 0, &syminfo);
   370         -x = syminfo.dli_fname;
   371         -			]]
   372         -		),
   373         -		[
   374         -			AC_MSG_RESULT([found])
   375         -			AC_DEFINE(HAVE_ACCEPTABLE_DLADDR, [1], [Define to 1 if you have an acceptable dladdr implementation with dli_fname])
   376         -		], [
   377         -			AC_MSG_RESULT([not found])
   378         -		]
   379         -	)
   380         -])
   381         -
   382         -AC_DEFUN(DC_CHECK_FOR_WHOLE_ARCHIVE, [
   383         -	AC_MSG_CHECKING([for how to link whole archive])
   384         -
   385         -	SAVE_CFLAGS="${CFLAGS}"
   386         -
   387         -	wholearchive=""
   388         -
   389         -	for check in "-Wl,--whole-archive -Wl,--no-whole-archive" "-Wl,-z,allextract -Wl,-z,defaultextract"; do
   390         -		CFLAGS="${SAVE_CFLAGS} ${check}"
   391         -
   392         -		AC_LINK_IFELSE(AC_LANG_PROGRAM([], []),
   393         -			[
   394         -				wholearchive="${check}"
   395         -
   396         -				break
   397         -			]
   398         -		)
   399         -
   400         -	done
   401         -
   402         -	CFLAGS="${SAVE_CFLAGS}"
   403         -
   404         -	if test -z "${wholearchive}"; then
   405         -		AC_MSG_RESULT([not found])
   406         -	else
   407         -		AC_MSG_RESULT([${wholearchive}])
   408         -
   409         -		WHOLEARCHIVE=`echo "${wholearchive}" | cut -f 1 -d ' '`
   410         -		NOWHOLEARCHIVE=`echo "${wholearchive}" | cut -f 2 -d ' '`
   411         -	fi
   412         -
   413         -	AC_SUBST(WHOLEARCHIVE)
   414         -	AC_SUBST(NOWHOLEARCHIVE)
   415         -])

Deleted kitdll/buildsrc/kitdll-0.0/boot.tcl version [fdb0ceb95b].

     1         -proc tclInit {} {
     2         -	rename tclInit {}
     3         -
     4         -	global auto_path tcl_library tcl_libPath
     5         -	global tcl_version
     6         -  
     7         -	# Set path where to mount VFS
     8         -	set tcl_mountpoint "/.KITDLL_TCL"
     9         -
    10         -	set tcl_library [file join $tcl_mountpoint lib tcl$tcl_version]
    11         -	set tcl_libPath [list $tcl_library [file join $tcl_mountpoint lib]]
    12         -
    13         -	# get rid of a build residue
    14         -	unset -nocomplain ::tclDefaultLibrary
    15         -
    16         -	# the following code only gets executed once on startup
    17         -	if {[info exists ::initVFS]} {
    18         -		set vfsHandler [list ::vfs::kitdll::vfshandler tcl]
    19         -
    20         -		# alter path to find encodings
    21         -		if {[info tclversion] eq "8.4"} {
    22         -			load {} pwb
    23         -			librarypath [info library]
    24         -		} else {
    25         -			encoding dirs [list [file join [info library] encoding]] ;# TIP 258
    26         -		}
    27         -
    28         -		# fix system encoding, if it wasn't properly set up (200207.004 bug)
    29         -		if {[encoding system] eq "identity"} {
    30         -			if {[info exists ::tclkit_system_encoding] && $::tclkit_system_encoding != ""} {
    31         -				catch {
    32         -					encoding system $::tclkit_system_encoding
    33         -				}
    34         -			}
    35         -			unset -nocomplain ::tclkit_system_encoding
    36         -		}
    37         -
    38         -		# If we've still not been able to set the encoding, revert to Tclkit defaults
    39         -		if {[encoding system] eq "identity"} {
    40         -			catch {
    41         -				switch $::tcl_platform(platform) {
    42         -					windows		{ encoding system cp1252 }
    43         -					macintosh	{ encoding system macRoman }
    44         -				        default		{ encoding system iso8859-1 }
    45         -				}
    46         -			}
    47         -		}
    48         -
    49         -		# now remount the executable with the correct encoding
    50         -		vfs::filesystem unmount [lindex [::vfs::filesystem info] 0]
    51         -
    52         -		# Resolve symlinks
    53         -		set tcl_mountpoint [file dirname [file normalize [file join $tcl_mountpoint __dummy__]]]
    54         -
    55         -		set tcl_library [file join $tcl_mountpoint lib tcl$tcl_version]
    56         -		set tcl_libPath [list $tcl_library [file join $tcl_mountpoint lib]]
    57         -
    58         -		vfs::filesystem mount $tcl_mountpoint $vfsHandler
    59         -
    60         -	}
    61         -
    62         -	# load config settings file if present
    63         -	namespace eval ::vfs { variable tclkit_version 1 }
    64         -	catch { uplevel #0 [list source [file join $tcl_mountpoint config.tcl]] }
    65         -
    66         -	uplevel #0 [list source [file join $tcl_library init.tcl]]
    67         -  
    68         -	# reset auto_path, so that init.tcl's search outside of tclkit is cancelled
    69         -	set auto_path $tcl_libPath
    70         -
    71         -	# This loads everything needed for "clock scan" to work
    72         -	# "clock scan" is used within "vfs::zip", which may be
    73         -	# loaded before this is run causing the root VFS to break
    74         -	catch { clock scan }
    75         -
    76         -	# Load these, the original Tclkit does so it should be safe.
    77         -	foreach vfsfile [list vfsUtils vfslib] {
    78         -		uplevel #0 [list source [file join $tcl_mountpoint lib vfs ${vfsfile}.tcl]]
    79         -	}
    80         -
    81         -	# Set a maximum seek to avoid reading the entire DLL looking for a
    82         -	# zip header
    83         -	catch {
    84         -		package require vfs::zip
    85         -		set ::zip::max_header_seek 8192
    86         -	}
    87         -
    88         -	# Now that the initialization is complete, mount the user VFS if needed
    89         -	## Mount the VFS from the Shared Object
    90         -	if {[info exists ::initVFS] && [info exists ::tclKitFilename]} {
    91         -		catch {
    92         -			vfs::zip::Mount $::tclKitFilename "/.KITDLL_USER"
    93         -
    94         -			lappend auto_path [file normalize "/.KITDLL_USER/lib"]
    95         -		}
    96         -	}
    97         -
    98         -	## Mount the VFS from executable
    99         -	if {[info exists ::initVFS]} {
   100         -		catch {
   101         -			vfs::zip::Mount [info nameofexecutable] "/.KITDLL_APP"
   102         -
   103         -			lappend auto_path [file normalize "/.KITDLL_APP/lib"]
   104         -		}
   105         -	}
   106         -
   107         -	# Clean up
   108         -	unset -nocomplain ::zip::max_header_seek
   109         -
   110         -	# Clean up after the kitInit.c:preInitCmd
   111         -	unset -nocomplain ::initVFS ::tclKitFilename
   112         -}

Deleted kitdll/buildsrc/kitdll-0.0/config.guess version [23da712e9c].

     1         -#! /bin/sh
     2         -# Attempt to guess a canonical system name.
     3         -#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
     4         -#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
     5         -
     6         -timestamp='2005-07-08'
     7         -
     8         -# This file is free software; you can redistribute it and/or modify it
     9         -# under the terms of the GNU General Public License as published by
    10         -# the Free Software Foundation; either version 2 of the License, or
    11         -# (at your option) any later version.
    12         -#
    13         -# This program is distributed in the hope that it will be useful, but
    14         -# WITHOUT ANY WARRANTY; without even the implied warranty of
    15         -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
    16         -# General Public License for more details.
    17         -#
    18         -# You should have received a copy of the GNU General Public License
    19         -# along with this program; if not, write to the Free Software
    20         -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
    21         -# 02110-1301, USA.
    22         -#
    23         -# As a special exception to the GNU General Public License, if you
    24         -# distribute this file as part of a program that contains a
    25         -# configuration script generated by Autoconf, you may include it under
    26         -# the same distribution terms that you use for the rest of that program.
    27         -
    28         -
    29         -# Originally written by Per Bothner <per@bothner.com>.
    30         -# Please send patches to <config-patches@gnu.org>.  Submit a context
    31         -# diff and a properly formatted ChangeLog entry.
    32         -#
    33         -# This script attempts to guess a canonical system name similar to
    34         -# config.sub.  If it succeeds, it prints the system name on stdout, and
    35         -# exits with 0.  Otherwise, it exits with 1.
    36         -#
    37         -# The plan is that this can be called by configure scripts if you
    38         -# don't specify an explicit build system type.
    39         -
    40         -me=`echo "$0" | sed -e 's,.*/,,'`
    41         -
    42         -usage="\
    43         -Usage: $0 [OPTION]
    44         -
    45         -Output the configuration name of the system \`$me' is run on.
    46         -
    47         -Operation modes:
    48         -  -h, --help         print this help, then exit
    49         -  -t, --time-stamp   print date of last modification, then exit
    50         -  -v, --version      print version number, then exit
    51         -
    52         -Report bugs and patches to <config-patches@gnu.org>."
    53         -
    54         -version="\
    55         -GNU config.guess ($timestamp)
    56         -
    57         -Originally written by Per Bothner.
    58         -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
    59         -Free Software Foundation, Inc.
    60         -
    61         -This is free software; see the source for copying conditions.  There is NO
    62         -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
    63         -
    64         -help="
    65         -Try \`$me --help' for more information."
    66         -
    67         -# Parse command line
    68         -while test $# -gt 0 ; do
    69         -  case $1 in
    70         -    --time-stamp | --time* | -t )
    71         -       echo "$timestamp" ; exit ;;
    72         -    --version | -v )
    73         -       echo "$version" ; exit ;;
    74         -    --help | --h* | -h )
    75         -       echo "$usage"; exit ;;
    76         -    -- )     # Stop option processing
    77         -       shift; break ;;
    78         -    - )	# Use stdin as input.
    79         -       break ;;
    80         -    -* )
    81         -       echo "$me: invalid option $1$help" >&2
    82         -       exit 1 ;;
    83         -    * )
    84         -       break ;;
    85         -  esac
    86         -done
    87         -
    88         -if test $# != 0; then
    89         -  echo "$me: too many arguments$help" >&2
    90         -  exit 1
    91         -fi
    92         -
    93         -trap 'exit 1' 1 2 15
    94         -
    95         -# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
    96         -# compiler to aid in system detection is discouraged as it requires
    97         -# temporary files to be created and, as you can see below, it is a
    98         -# headache to deal with in a portable fashion.
    99         -
   100         -# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
   101         -# use `HOST_CC' if defined, but it is deprecated.
   102         -
   103         -# Portable tmp directory creation inspired by the Autoconf team.
   104         -
   105         -set_cc_for_build='
   106         -trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
   107         -trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
   108         -: ${TMPDIR=/tmp} ;
   109         - { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
   110         - { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
   111         - { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
   112         - { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
   113         -dummy=$tmp/dummy ;
   114         -tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
   115         -case $CC_FOR_BUILD,$HOST_CC,$CC in
   116         - ,,)    echo "int x;" > $dummy.c ;
   117         -	for c in cc gcc c89 c99 ; do
   118         -	  if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
   119         -	     CC_FOR_BUILD="$c"; break ;
   120         -	  fi ;
   121         -	done ;
   122         -	if test x"$CC_FOR_BUILD" = x ; then
   123         -	  CC_FOR_BUILD=no_compiler_found ;
   124         -	fi
   125         -	;;
   126         - ,,*)   CC_FOR_BUILD=$CC ;;
   127         - ,*,*)  CC_FOR_BUILD=$HOST_CC ;;
   128         -esac ; set_cc_for_build= ;'
   129         -
   130         -# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
   131         -# (ghazi@noc.rutgers.edu 1994-08-24)
   132         -if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
   133         -	PATH=$PATH:/.attbin ; export PATH
   134         -fi
   135         -
   136         -UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
   137         -UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
   138         -UNAME_SYSTEM=`(uname -s) 2>/dev/null`  || UNAME_SYSTEM=unknown
   139         -UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
   140         -
   141         -# Note: order is significant - the case branches are not exclusive.
   142         -
   143         -case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
   144         -    *:NetBSD:*:*)
   145         -	# NetBSD (nbsd) targets should (where applicable) match one or
   146         -	# more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
   147         -	# *-*-netbsdecoff* and *-*-netbsd*.  For targets that recently
   148         -	# switched to ELF, *-*-netbsd* would select the old
   149         -	# object file format.  This provides both forward
   150         -	# compatibility and a consistent mechanism for selecting the
   151         -	# object file format.
   152         -	#
   153         -	# Note: NetBSD doesn't particularly care about the vendor
   154         -	# portion of the name.  We always set it to "unknown".
   155         -	sysctl="sysctl -n hw.machine_arch"
   156         -	UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
   157         -	    /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
   158         -	case "${UNAME_MACHINE_ARCH}" in
   159         -	    armeb) machine=armeb-unknown ;;
   160         -	    arm*) machine=arm-unknown ;;
   161         -	    sh3el) machine=shl-unknown ;;
   162         -	    sh3eb) machine=sh-unknown ;;
   163         -	    *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
   164         -	esac
   165         -	# The Operating System including object format, if it has switched
   166         -	# to ELF recently, or will in the future.
   167         -	case "${UNAME_MACHINE_ARCH}" in
   168         -	    arm*|i386|m68k|ns32k|sh3*|sparc|vax)
   169         -		eval $set_cc_for_build
   170         -		if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
   171         -			| grep __ELF__ >/dev/null
   172         -		then
   173         -		    # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
   174         -		    # Return netbsd for either.  FIX?
   175         -		    os=netbsd
   176         -		else
   177         -		    os=netbsdelf
   178         -		fi
   179         -		;;
   180         -	    *)
   181         -	        os=netbsd
   182         -		;;
   183         -	esac
   184         -	# The OS release
   185         -	# Debian GNU/NetBSD machines have a different userland, and
   186         -	# thus, need a distinct triplet. However, they do not need
   187         -	# kernel version information, so it can be replaced with a
   188         -	# suitable tag, in the style of linux-gnu.
   189         -	case "${UNAME_VERSION}" in
   190         -	    Debian*)
   191         -		release='-gnu'
   192         -		;;
   193         -	    *)
   194         -		release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
   195         -		;;
   196         -	esac
   197         -	# Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
   198         -	# contains redundant information, the shorter form:
   199         -	# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
   200         -	echo "${machine}-${os}${release}"
   201         -	exit ;;
   202         -    *:OpenBSD:*:*)
   203         -	UNAME_MACHINE_ARCH=`arch | sed 's/OpenBSD.//'`
   204         -	echo ${UNAME_MACHINE_ARCH}-unknown-openbsd${UNAME_RELEASE}
   205         -	exit ;;
   206         -    *:ekkoBSD:*:*)
   207         -	echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
   208         -	exit ;;
   209         -    macppc:MirBSD:*:*)
   210         -	echo powerppc-unknown-mirbsd${UNAME_RELEASE}
   211         -	exit ;;
   212         -    *:MirBSD:*:*)
   213         -	echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
   214         -	exit ;;
   215         -    alpha:OSF1:*:*)
   216         -	case $UNAME_RELEASE in
   217         -	*4.0)
   218         -		UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
   219         -		;;
   220         -	*5.*)
   221         -	        UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
   222         -		;;
   223         -	esac
   224         -	# According to Compaq, /usr/sbin/psrinfo has been available on
   225         -	# OSF/1 and Tru64 systems produced since 1995.  I hope that
   226         -	# covers most systems running today.  This code pipes the CPU
   227         -	# types through head -n 1, so we only detect the type of CPU 0.
   228         -	ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^  The alpha \(.*\) processor.*$/\1/p' | head -n 1`
   229         -	case "$ALPHA_CPU_TYPE" in
   230         -	    "EV4 (21064)")
   231         -		UNAME_MACHINE="alpha" ;;
   232         -	    "EV4.5 (21064)")
   233         -		UNAME_MACHINE="alpha" ;;
   234         -	    "LCA4 (21066/21068)")
   235         -		UNAME_MACHINE="alpha" ;;
   236         -	    "EV5 (21164)")
   237         -		UNAME_MACHINE="alphaev5" ;;
   238         -	    "EV5.6 (21164A)")
   239         -		UNAME_MACHINE="alphaev56" ;;
   240         -	    "EV5.6 (21164PC)")
   241         -		UNAME_MACHINE="alphapca56" ;;
   242         -	    "EV5.7 (21164PC)")
   243         -		UNAME_MACHINE="alphapca57" ;;
   244         -	    "EV6 (21264)")
   245         -		UNAME_MACHINE="alphaev6" ;;
   246         -	    "EV6.7 (21264A)")
   247         -		UNAME_MACHINE="alphaev67" ;;
   248         -	    "EV6.8CB (21264C)")
   249         -		UNAME_MACHINE="alphaev68" ;;
   250         -	    "EV6.8AL (21264B)")
   251         -		UNAME_MACHINE="alphaev68" ;;
   252         -	    "EV6.8CX (21264D)")
   253         -		UNAME_MACHINE="alphaev68" ;;
   254         -	    "EV6.9A (21264/EV69A)")
   255         -		UNAME_MACHINE="alphaev69" ;;
   256         -	    "EV7 (21364)")
   257         -		UNAME_MACHINE="alphaev7" ;;
   258         -	    "EV7.9 (21364A)")
   259         -		UNAME_MACHINE="alphaev79" ;;
   260         -	esac
   261         -	# A Pn.n version is a patched version.
   262         -	# A Vn.n version is a released version.
   263         -	# A Tn.n version is a released field test version.
   264         -	# A Xn.n version is an unreleased experimental baselevel.
   265         -	# 1.2 uses "1.2" for uname -r.
   266         -	echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
   267         -	exit ;;
   268         -    Alpha\ *:Windows_NT*:*)
   269         -	# How do we know it's Interix rather than the generic POSIX subsystem?
   270         -	# Should we change UNAME_MACHINE based on the output of uname instead
   271         -	# of the specific Alpha model?
   272         -	echo alpha-pc-interix
   273         -	exit ;;
   274         -    21064:Windows_NT:50:3)
   275         -	echo alpha-dec-winnt3.5
   276         -	exit ;;
   277         -    Amiga*:UNIX_System_V:4.0:*)
   278         -	echo m68k-unknown-sysv4
   279         -	exit ;;
   280         -    *:[Aa]miga[Oo][Ss]:*:*)
   281         -	echo ${UNAME_MACHINE}-unknown-amigaos
   282         -	exit ;;
   283         -    *:[Mm]orph[Oo][Ss]:*:*)
   284         -	echo ${UNAME_MACHINE}-unknown-morphos
   285         -	exit ;;
   286         -    *:OS/390:*:*)
   287         -	echo i370-ibm-openedition
   288         -	exit ;;
   289         -    *:z/VM:*:*)
   290         -	echo s390-ibm-zvmoe
   291         -	exit ;;
   292         -    *:OS400:*:*)
   293         -        echo powerpc-ibm-os400
   294         -	exit ;;
   295         -    arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
   296         -	echo arm-acorn-riscix${UNAME_RELEASE}
   297         -	exit ;;
   298         -    arm:riscos:*:*|arm:RISCOS:*:*)
   299         -	echo arm-unknown-riscos
   300         -	exit ;;
   301         -    SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
   302         -	echo hppa1.1-hitachi-hiuxmpp
   303         -	exit ;;
   304         -    Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
   305         -	# akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
   306         -	if test "`(/bin/universe) 2>/dev/null`" = att ; then
   307         -		echo pyramid-pyramid-sysv3
   308         -	else
   309         -		echo pyramid-pyramid-bsd
   310         -	fi
   311         -	exit ;;
   312         -    NILE*:*:*:dcosx)
   313         -	echo pyramid-pyramid-svr4
   314         -	exit ;;
   315         -    DRS?6000:unix:4.0:6*)
   316         -	echo sparc-icl-nx6
   317         -	exit ;;
   318         -    DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
   319         -	case `/usr/bin/uname -p` in
   320         -	    sparc) echo sparc-icl-nx7; exit ;;
   321         -	esac ;;
   322         -    sun4H:SunOS:5.*:*)
   323         -	echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
   324         -	exit ;;
   325         -    sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
   326         -	echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
   327         -	exit ;;
   328         -    i86pc:SunOS:5.*:*)
   329         -	echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
   330         -	exit ;;
   331         -    sun4*:SunOS:6*:*)
   332         -	# According to config.sub, this is the proper way to canonicalize
   333         -	# SunOS6.  Hard to guess exactly what SunOS6 will be like, but
   334         -	# it's likely to be more like Solaris than SunOS4.
   335         -	echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
   336         -	exit ;;
   337         -    sun4*:SunOS:*:*)
   338         -	case "`/usr/bin/arch -k`" in
   339         -	    Series*|S4*)
   340         -		UNAME_RELEASE=`uname -v`
   341         -		;;
   342         -	esac
   343         -	# Japanese Language versions have a version number like `4.1.3-JL'.
   344         -	echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
   345         -	exit ;;
   346         -    sun3*:SunOS:*:*)
   347         -	echo m68k-sun-sunos${UNAME_RELEASE}
   348         -	exit ;;
   349         -    sun*:*:4.2BSD:*)
   350         -	UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
   351         -	test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
   352         -	case "`/bin/arch`" in
   353         -	    sun3)
   354         -		echo m68k-sun-sunos${UNAME_RELEASE}
   355         -		;;
   356         -	    sun4)
   357         -		echo sparc-sun-sunos${UNAME_RELEASE}
   358         -		;;
   359         -	esac
   360         -	exit ;;
   361         -    aushp:SunOS:*:*)
   362         -	echo sparc-auspex-sunos${UNAME_RELEASE}
   363         -	exit ;;
   364         -    # The situation for MiNT is a little confusing.  The machine name
   365         -    # can be virtually everything (everything which is not
   366         -    # "atarist" or "atariste" at least should have a processor
   367         -    # > m68000).  The system name ranges from "MiNT" over "FreeMiNT"
   368         -    # to the lowercase version "mint" (or "freemint").  Finally
   369         -    # the system name "TOS" denotes a system which is actually not
   370         -    # MiNT.  But MiNT is downward compatible to TOS, so this should
   371         -    # be no problem.
   372         -    atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
   373         -        echo m68k-atari-mint${UNAME_RELEASE}
   374         -	exit ;;
   375         -    atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
   376         -	echo m68k-atari-mint${UNAME_RELEASE}
   377         -        exit ;;
   378         -    *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
   379         -        echo m68k-atari-mint${UNAME_RELEASE}
   380         -	exit ;;
   381         -    milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
   382         -        echo m68k-milan-mint${UNAME_RELEASE}
   383         -        exit ;;
   384         -    hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
   385         -        echo m68k-hades-mint${UNAME_RELEASE}
   386         -        exit ;;
   387         -    *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
   388         -        echo m68k-unknown-mint${UNAME_RELEASE}
   389         -        exit ;;
   390         -    m68k:machten:*:*)
   391         -	echo m68k-apple-machten${UNAME_RELEASE}
   392         -	exit ;;
   393         -    powerpc:machten:*:*)
   394         -	echo powerpc-apple-machten${UNAME_RELEASE}
   395         -	exit ;;
   396         -    RISC*:Mach:*:*)
   397         -	echo mips-dec-mach_bsd4.3
   398         -	exit ;;
   399         -    RISC*:ULTRIX:*:*)
   400         -	echo mips-dec-ultrix${UNAME_RELEASE}
   401         -	exit ;;
   402         -    VAX*:ULTRIX*:*:*)
   403         -	echo vax-dec-ultrix${UNAME_RELEASE}
   404         -	exit ;;
   405         -    2020:CLIX:*:* | 2430:CLIX:*:*)
   406         -	echo clipper-intergraph-clix${UNAME_RELEASE}
   407         -	exit ;;
   408         -    mips:*:*:UMIPS | mips:*:*:RISCos)
   409         -	eval $set_cc_for_build
   410         -	sed 's/^	//' << EOF >$dummy.c
   411         -#ifdef __cplusplus
   412         -#include <stdio.h>  /* for printf() prototype */
   413         -	int main (int argc, char *argv[]) {
   414         -#else
   415         -	int main (argc, argv) int argc; char *argv[]; {
   416         -#endif
   417         -	#if defined (host_mips) && defined (MIPSEB)
   418         -	#if defined (SYSTYPE_SYSV)
   419         -	  printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
   420         -	#endif
   421         -	#if defined (SYSTYPE_SVR4)
   422         -	  printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
   423         -	#endif
   424         -	#if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
   425         -	  printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
   426         -	#endif
   427         -	#endif
   428         -	  exit (-1);
   429         -	}
   430         -EOF
   431         -	$CC_FOR_BUILD -o $dummy $dummy.c &&
   432         -	  dummyarg=`echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` &&
   433         -	  SYSTEM_NAME=`$dummy $dummyarg` &&
   434         -	    { echo "$SYSTEM_NAME"; exit; }
   435         -	echo mips-mips-riscos${UNAME_RELEASE}
   436         -	exit ;;
   437         -    Motorola:PowerMAX_OS:*:*)
   438         -	echo powerpc-motorola-powermax
   439         -	exit ;;
   440         -    Motorola:*:4.3:PL8-*)
   441         -	echo powerpc-harris-powermax
   442         -	exit ;;
   443         -    Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
   444         -	echo powerpc-harris-powermax
   445         -	exit ;;
   446         -    Night_Hawk:Power_UNIX:*:*)
   447         -	echo powerpc-harris-powerunix
   448         -	exit ;;
   449         -    m88k:CX/UX:7*:*)
   450         -	echo m88k-harris-cxux7
   451         -	exit ;;
   452         -    m88k:*:4*:R4*)
   453         -	echo m88k-motorola-sysv4
   454         -	exit ;;
   455         -    m88k:*:3*:R3*)
   456         -	echo m88k-motorola-sysv3
   457         -	exit ;;
   458         -    AViiON:dgux:*:*)
   459         -        # DG/UX returns AViiON for all architectures
   460         -        UNAME_PROCESSOR=`/usr/bin/uname -p`
   461         -	if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
   462         -	then
   463         -	    if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
   464         -	       [ ${TARGET_BINARY_INTERFACE}x = x ]
   465         -	    then
   466         -		echo m88k-dg-dgux${UNAME_RELEASE}
   467         -	    else
   468         -		echo m88k-dg-dguxbcs${UNAME_RELEASE}
   469         -	    fi
   470         -	else
   471         -	    echo i586-dg-dgux${UNAME_RELEASE}
   472         -	fi
   473         - 	exit ;;
   474         -    M88*:DolphinOS:*:*)	# DolphinOS (SVR3)
   475         -	echo m88k-dolphin-sysv3
   476         -	exit ;;
   477         -    M88*:*:R3*:*)
   478         -	# Delta 88k system running SVR3
   479         -	echo m88k-motorola-sysv3
   480         -	exit ;;
   481         -    XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
   482         -	echo m88k-tektronix-sysv3
   483         -	exit ;;
   484         -    Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
   485         -	echo m68k-tektronix-bsd
   486         -	exit ;;
   487         -    *:IRIX*:*:*)
   488         -	echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
   489         -	exit ;;
   490         -    ????????:AIX?:[12].1:2)   # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
   491         -	echo romp-ibm-aix     # uname -m gives an 8 hex-code CPU id
   492         -	exit ;;               # Note that: echo "'`uname -s`'" gives 'AIX '
   493         -    i*86:AIX:*:*)
   494         -	echo i386-ibm-aix
   495         -	exit ;;
   496         -    ia64:AIX:*:*)
   497         -	if [ -x /usr/bin/oslevel ] ; then
   498         -		IBM_REV=`/usr/bin/oslevel`
   499         -	else
   500         -		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
   501         -	fi
   502         -	echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
   503         -	exit ;;
   504         -    *:AIX:2:3)
   505         -	if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
   506         -		eval $set_cc_for_build
   507         -		sed 's/^		//' << EOF >$dummy.c
   508         -		#include <sys/systemcfg.h>
   509         -
   510         -		main()
   511         -			{
   512         -			if (!__power_pc())
   513         -				exit(1);
   514         -			puts("powerpc-ibm-aix3.2.5");
   515         -			exit(0);
   516         -			}
   517         -EOF
   518         -		if $CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy`
   519         -		then
   520         -			echo "$SYSTEM_NAME"
   521         -		else
   522         -			echo rs6000-ibm-aix3.2.5
   523         -		fi
   524         -	elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
   525         -		echo rs6000-ibm-aix3.2.4
   526         -	else
   527         -		echo rs6000-ibm-aix3.2
   528         -	fi
   529         -	exit ;;
   530         -    *:AIX:*:[45])
   531         -	IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
   532         -	if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
   533         -		IBM_ARCH=rs6000
   534         -	else
   535         -		IBM_ARCH=powerpc
   536         -	fi
   537         -	if [ -x /usr/bin/oslevel ] ; then
   538         -		IBM_REV=`/usr/bin/oslevel`
   539         -	else
   540         -		IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
   541         -	fi
   542         -	echo ${IBM_ARCH}-ibm-aix${IBM_REV}
   543         -	exit ;;
   544         -    *:AIX:*:*)
   545         -	echo rs6000-ibm-aix
   546         -	exit ;;
   547         -    ibmrt:4.4BSD:*|romp-ibm:BSD:*)
   548         -	echo romp-ibm-bsd4.4
   549         -	exit ;;
   550         -    ibmrt:*BSD:*|romp-ibm:BSD:*)            # covers RT/PC BSD and
   551         -	echo romp-ibm-bsd${UNAME_RELEASE}   # 4.3 with uname added to
   552         -	exit ;;                             # report: romp-ibm BSD 4.3
   553         -    *:BOSX:*:*)
   554         -	echo rs6000-bull-bosx
   555         -	exit ;;
   556         -    DPX/2?00:B.O.S.:*:*)
   557         -	echo m68k-bull-sysv3
   558         -	exit ;;
   559         -    9000/[34]??:4.3bsd:1.*:*)
   560         -	echo m68k-hp-bsd
   561         -	exit ;;
   562         -    hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
   563         -	echo m68k-hp-bsd4.4
   564         -	exit ;;
   565         -    9000/[34678]??:HP-UX:*:*)
   566         -	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
   567         -	case "${UNAME_MACHINE}" in
   568         -	    9000/31? )            HP_ARCH=m68000 ;;
   569         -	    9000/[34]?? )         HP_ARCH=m68k ;;
   570         -	    9000/[678][0-9][0-9])
   571         -		if [ -x /usr/bin/getconf ]; then
   572         -		    sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
   573         -                    sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
   574         -                    case "${sc_cpu_version}" in
   575         -                      523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
   576         -                      528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
   577         -                      532)                      # CPU_PA_RISC2_0
   578         -                        case "${sc_kernel_bits}" in
   579         -                          32) HP_ARCH="hppa2.0n" ;;
   580         -                          64) HP_ARCH="hppa2.0w" ;;
   581         -			  '') HP_ARCH="hppa2.0" ;;   # HP-UX 10.20
   582         -                        esac ;;
   583         -                    esac
   584         -		fi
   585         -		if [ "${HP_ARCH}" = "" ]; then
   586         -		    eval $set_cc_for_build
   587         -		    sed 's/^              //' << EOF >$dummy.c
   588         -
   589         -              #define _HPUX_SOURCE
   590         -              #include <stdlib.h>
   591         -              #include <unistd.h>
   592         -
   593         -              int main ()
   594         -              {
   595         -              #if defined(_SC_KERNEL_BITS)
   596         -                  long bits = sysconf(_SC_KERNEL_BITS);
   597         -              #endif
   598         -                  long cpu  = sysconf (_SC_CPU_VERSION);
   599         -
   600         -                  switch (cpu)
   601         -              	{
   602         -              	case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
   603         -              	case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
   604         -              	case CPU_PA_RISC2_0:
   605         -              #if defined(_SC_KERNEL_BITS)
   606         -              	    switch (bits)
   607         -              		{
   608         -              		case 64: puts ("hppa2.0w"); break;
   609         -              		case 32: puts ("hppa2.0n"); break;
   610         -              		default: puts ("hppa2.0"); break;
   611         -              		} break;
   612         -              #else  /* !defined(_SC_KERNEL_BITS) */
   613         -              	    puts ("hppa2.0"); break;
   614         -              #endif
   615         -              	default: puts ("hppa1.0"); break;
   616         -              	}
   617         -                  exit (0);
   618         -              }
   619         -EOF
   620         -		    (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
   621         -		    test -z "$HP_ARCH" && HP_ARCH=hppa
   622         -		fi ;;
   623         -	esac
   624         -	if [ ${HP_ARCH} = "hppa2.0w" ]
   625         -	then
   626         -	    eval $set_cc_for_build
   627         -
   628         -	    # hppa2.0w-hp-hpux* has a 64-bit kernel and a compiler generating
   629         -	    # 32-bit code.  hppa64-hp-hpux* has the same kernel and a compiler
   630         -	    # generating 64-bit code.  GNU and HP use different nomenclature:
   631         -	    #
   632         -	    # $ CC_FOR_BUILD=cc ./config.guess
   633         -	    # => hppa2.0w-hp-hpux11.23
   634         -	    # $ CC_FOR_BUILD="cc +DA2.0w" ./config.guess
   635         -	    # => hppa64-hp-hpux11.23
   636         -
   637         -	    if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E - 2>/dev/null) |
   638         -		grep __LP64__ >/dev/null
   639         -	    then
   640         -		HP_ARCH="hppa2.0w"
   641         -	    else
   642         -		HP_ARCH="hppa64"
   643         -	    fi
   644         -	fi
   645         -	echo ${HP_ARCH}-hp-hpux${HPUX_REV}
   646         -	exit ;;
   647         -    ia64:HP-UX:*:*)
   648         -	HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
   649         -	echo ia64-hp-hpux${HPUX_REV}
   650         -	exit ;;
   651         -    3050*:HI-UX:*:*)
   652         -	eval $set_cc_for_build
   653         -	sed 's/^	//' << EOF >$dummy.c
   654         -	#include <unistd.h>
   655         -	int
   656         -	main ()
   657         -	{
   658         -	  long cpu = sysconf (_SC_CPU_VERSION);
   659         -	  /* The order matters, because CPU_IS_HP_MC68K erroneously returns
   660         -	     true for CPU_PA_RISC1_0.  CPU_IS_PA_RISC returns correct
   661         -	     results, however.  */
   662         -	  if (CPU_IS_PA_RISC (cpu))
   663         -	    {
   664         -	      switch (cpu)
   665         -		{
   666         -		  case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
   667         -		  case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
   668         -		  case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
   669         -		  default: puts ("hppa-hitachi-hiuxwe2"); break;
   670         -		}
   671         -	    }
   672         -	  else if (CPU_IS_HP_MC68K (cpu))
   673         -	    puts ("m68k-hitachi-hiuxwe2");
   674         -	  else puts ("unknown-hitachi-hiuxwe2");
   675         -	  exit (0);
   676         -	}
   677         -EOF
   678         -	$CC_FOR_BUILD -o $dummy $dummy.c && SYSTEM_NAME=`$dummy` &&
   679         -		{ echo "$SYSTEM_NAME"; exit; }
   680         -	echo unknown-hitachi-hiuxwe2
   681         -	exit ;;
   682         -    9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
   683         -	echo hppa1.1-hp-bsd
   684         -	exit ;;
   685         -    9000/8??:4.3bsd:*:*)
   686         -	echo hppa1.0-hp-bsd
   687         -	exit ;;
   688         -    *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
   689         -	echo hppa1.0-hp-mpeix
   690         -	exit ;;
   691         -    hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
   692         -	echo hppa1.1-hp-osf
   693         -	exit ;;
   694         -    hp8??:OSF1:*:*)
   695         -	echo hppa1.0-hp-osf
   696         -	exit ;;
   697         -    i*86:OSF1:*:*)
   698         -	if [ -x /usr/sbin/sysversion ] ; then
   699         -	    echo ${UNAME_MACHINE}-unknown-osf1mk
   700         -	else
   701         -	    echo ${UNAME_MACHINE}-unknown-osf1
   702         -	fi
   703         -	exit ;;
   704         -    parisc*:Lites*:*:*)
   705         -	echo hppa1.1-hp-lites
   706         -	exit ;;
   707         -    C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
   708         -	echo c1-convex-bsd
   709         -        exit ;;
   710         -    C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
   711         -	if getsysinfo -f scalar_acc
   712         -	then echo c32-convex-bsd
   713         -	else echo c2-convex-bsd
   714         -	fi
   715         -        exit ;;
   716         -    C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
   717         -	echo c34-convex-bsd
   718         -        exit ;;
   719         -    C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
   720         -	echo c38-convex-bsd
   721         -        exit ;;
   722         -    C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
   723         -	echo c4-convex-bsd
   724         -        exit ;;
   725         -    CRAY*Y-MP:*:*:*)
   726         -	echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
   727         -	exit ;;
   728         -    CRAY*[A-Z]90:*:*:*)
   729         -	echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
   730         -	| sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
   731         -	      -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
   732         -	      -e 's/\.[^.]*$/.X/'
   733         -	exit ;;
   734         -    CRAY*TS:*:*:*)
   735         -	echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
   736         -	exit ;;
   737         -    CRAY*T3E:*:*:*)
   738         -	echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
   739         -	exit ;;
   740         -    CRAY*SV1:*:*:*)
   741         -	echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
   742         -	exit ;;
   743         -    *:UNICOS/mp:*:*)
   744         -	echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
   745         -	exit ;;
   746         -    F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
   747         -	FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
   748         -        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
   749         -        FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
   750         -        echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
   751         -        exit ;;
   752         -    5000:UNIX_System_V:4.*:*)
   753         -        FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
   754         -        FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
   755         -        echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
   756         -	exit ;;
   757         -    i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
   758         -	echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
   759         -	exit ;;
   760         -    sparc*:BSD/OS:*:*)
   761         -	echo sparc-unknown-bsdi${UNAME_RELEASE}
   762         -	exit ;;
   763         -    *:BSD/OS:*:*)
   764         -	echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
   765         -	exit ;;
   766         -    *:FreeBSD:*:*)
   767         -	echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
   768         -	exit ;;
   769         -    i*:CYGWIN*:*)
   770         -	echo ${UNAME_MACHINE}-pc-cygwin
   771         -	exit ;;
   772         -    i*:MINGW*:*)
   773         -	echo ${UNAME_MACHINE}-pc-mingw32
   774         -	exit ;;
   775         -    i*:windows32*:*)
   776         -    	# uname -m includes "-pc" on this system.
   777         -    	echo ${UNAME_MACHINE}-mingw32
   778         -	exit ;;
   779         -    i*:PW*:*)
   780         -	echo ${UNAME_MACHINE}-pc-pw32
   781         -	exit ;;
   782         -    x86:Interix*:[34]*)
   783         -	echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
   784         -	exit ;;
   785         -    [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
   786         -	echo i${UNAME_MACHINE}-pc-mks
   787         -	exit ;;
   788         -    i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
   789         -	# How do we know it's Interix rather than the generic POSIX subsystem?
   790         -	# It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
   791         -	# UNAME_MACHINE based on the output of uname instead of i386?
   792         -	echo i586-pc-interix
   793         -	exit ;;
   794         -    i*:UWIN*:*)
   795         -	echo ${UNAME_MACHINE}-pc-uwin
   796         -	exit ;;
   797         -    amd64:CYGWIN*:*:*)
   798         -	echo x86_64-unknown-cygwin
   799         -	exit ;;
   800         -    p*:CYGWIN*:*)
   801         -	echo powerpcle-unknown-cygwin
   802         -	exit ;;
   803         -    prep*:SunOS:5.*:*)
   804         -	echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
   805         -	exit ;;
   806         -    *:GNU:*:*)
   807         -	# the GNU system
   808         -	echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
   809         -	exit ;;
   810         -    *:GNU/*:*:*)
   811         -	# other systems with GNU libc and userland
   812         -	echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
   813         -	exit ;;
   814         -    i*86:Minix:*:*)
   815         -	echo ${UNAME_MACHINE}-pc-minix
   816         -	exit ;;
   817         -    arm*:Linux:*:*)
   818         -	echo ${UNAME_MACHINE}-unknown-linux-gnu
   819         -	exit ;;
   820         -    cris:Linux:*:*)
   821         -	echo cris-axis-linux-gnu
   822         -	exit ;;
   823         -    crisv32:Linux:*:*)
   824         -	echo crisv32-axis-linux-gnu
   825         -	exit ;;
   826         -    frv:Linux:*:*)
   827         -    	echo frv-unknown-linux-gnu
   828         -	exit ;;
   829         -    ia64:Linux:*:*)
   830         -	echo ${UNAME_MACHINE}-unknown-linux-gnu
   831         -	exit ;;
   832         -    m32r*:Linux:*:*)
   833         -	echo ${UNAME_MACHINE}-unknown-linux-gnu
   834         -	exit ;;
   835         -    m68*:Linux:*:*)
   836         -	echo ${UNAME_MACHINE}-unknown-linux-gnu
   837         -	exit ;;
   838         -    mips:Linux:*:*)
   839         -	eval $set_cc_for_build
   840         -	sed 's/^	//' << EOF >$dummy.c
   841         -	#undef CPU
   842         -	#undef mips
   843         -	#undef mipsel
   844         -	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
   845         -	CPU=mipsel
   846         -	#else
   847         -	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
   848         -	CPU=mips
   849         -	#else
   850         -	CPU=
   851         -	#endif
   852         -	#endif
   853         -EOF
   854         -	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
   855         -	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
   856         -	;;
   857         -    mips64:Linux:*:*)
   858         -	eval $set_cc_for_build
   859         -	sed 's/^	//' << EOF >$dummy.c
   860         -	#undef CPU
   861         -	#undef mips64
   862         -	#undef mips64el
   863         -	#if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
   864         -	CPU=mips64el
   865         -	#else
   866         -	#if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
   867         -	CPU=mips64
   868         -	#else
   869         -	CPU=
   870         -	#endif
   871         -	#endif
   872         -EOF
   873         -	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
   874         -	test x"${CPU}" != x && { echo "${CPU}-unknown-linux-gnu"; exit; }
   875         -	;;
   876         -    ppc:Linux:*:*)
   877         -	echo powerpc-unknown-linux-gnu
   878         -	exit ;;
   879         -    ppc64:Linux:*:*)
   880         -	echo powerpc64-unknown-linux-gnu
   881         -	exit ;;
   882         -    alpha:Linux:*:*)
   883         -	case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
   884         -	  EV5)   UNAME_MACHINE=alphaev5 ;;
   885         -	  EV56)  UNAME_MACHINE=alphaev56 ;;
   886         -	  PCA56) UNAME_MACHINE=alphapca56 ;;
   887         -	  PCA57) UNAME_MACHINE=alphapca56 ;;
   888         -	  EV6)   UNAME_MACHINE=alphaev6 ;;
   889         -	  EV67)  UNAME_MACHINE=alphaev67 ;;
   890         -	  EV68*) UNAME_MACHINE=alphaev68 ;;
   891         -        esac
   892         -	objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
   893         -	if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
   894         -	echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
   895         -	exit ;;
   896         -    parisc:Linux:*:* | hppa:Linux:*:*)
   897         -	# Look for CPU level
   898         -	case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
   899         -	  PA7*) echo hppa1.1-unknown-linux-gnu ;;
   900         -	  PA8*) echo hppa2.0-unknown-linux-gnu ;;
   901         -	  *)    echo hppa-unknown-linux-gnu ;;
   902         -	esac
   903         -	exit ;;
   904         -    parisc64:Linux:*:* | hppa64:Linux:*:*)
   905         -	echo hppa64-unknown-linux-gnu
   906         -	exit ;;
   907         -    s390:Linux:*:* | s390x:Linux:*:*)
   908         -	echo ${UNAME_MACHINE}-ibm-linux
   909         -	exit ;;
   910         -    sh64*:Linux:*:*)
   911         -    	echo ${UNAME_MACHINE}-unknown-linux-gnu
   912         -	exit ;;
   913         -    sh*:Linux:*:*)
   914         -	echo ${UNAME_MACHINE}-unknown-linux-gnu
   915         -	exit ;;
   916         -    sparc:Linux:*:* | sparc64:Linux:*:*)
   917         -	echo ${UNAME_MACHINE}-unknown-linux-gnu
   918         -	exit ;;
   919         -    x86_64:Linux:*:*)
   920         -	echo x86_64-unknown-linux-gnu
   921         -	exit ;;
   922         -    i*86:Linux:*:*)
   923         -	# The BFD linker knows what the default object file format is, so
   924         -	# first see if it will tell us. cd to the root directory to prevent
   925         -	# problems with other programs or directories called `ld' in the path.
   926         -	# Set LC_ALL=C to ensure ld outputs messages in English.
   927         -	ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
   928         -			 | sed -ne '/supported targets:/!d
   929         -				    s/[ 	][ 	]*/ /g
   930         -				    s/.*supported targets: *//
   931         -				    s/ .*//
   932         -				    p'`
   933         -        case "$ld_supported_targets" in
   934         -	  elf32-i386)
   935         -		TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
   936         -		;;
   937         -	  a.out-i386-linux)
   938         -		echo "${UNAME_MACHINE}-pc-linux-gnuaout"
   939         -		exit ;;
   940         -	  coff-i386)
   941         -		echo "${UNAME_MACHINE}-pc-linux-gnucoff"
   942         -		exit ;;
   943         -	  "")
   944         -		# Either a pre-BFD a.out linker (linux-gnuoldld) or
   945         -		# one that does not give us useful --help.
   946         -		echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
   947         -		exit ;;
   948         -	esac
   949         -	# Determine whether the default compiler is a.out or elf
   950         -	eval $set_cc_for_build
   951         -	sed 's/^	//' << EOF >$dummy.c
   952         -	#include <features.h>
   953         -	#ifdef __ELF__
   954         -	# ifdef __GLIBC__
   955         -	#  if __GLIBC__ >= 2
   956         -	LIBC=gnu
   957         -	#  else
   958         -	LIBC=gnulibc1
   959         -	#  endif
   960         -	# else
   961         -	LIBC=gnulibc1
   962         -	# endif
   963         -	#else
   964         -	#ifdef __INTEL_COMPILER
   965         -	LIBC=gnu
   966         -	#else
   967         -	LIBC=gnuaout
   968         -	#endif
   969         -	#endif
   970         -	#ifdef __dietlibc__
   971         -	LIBC=dietlibc
   972         -	#endif
   973         -EOF
   974         -	eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
   975         -	test x"${LIBC}" != x && {
   976         -		echo "${UNAME_MACHINE}-pc-linux-${LIBC}"
   977         -		exit
   978         -	}
   979         -	test x"${TENTATIVE}" != x && { echo "${TENTATIVE}"; exit; }
   980         -	;;
   981         -    i*86:DYNIX/ptx:4*:*)
   982         -	# ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
   983         -	# earlier versions are messed up and put the nodename in both
   984         -	# sysname and nodename.
   985         -	echo i386-sequent-sysv4
   986         -	exit ;;
   987         -    i*86:UNIX_SV:4.2MP:2.*)
   988         -        # Unixware is an offshoot of SVR4, but it has its own version
   989         -        # number series starting with 2...
   990         -        # I am not positive that other SVR4 systems won't match this,
   991         -	# I just have to hope.  -- rms.
   992         -        # Use sysv4.2uw... so that sysv4* matches it.
   993         -	echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
   994         -	exit ;;
   995         -    i*86:OS/2:*:*)
   996         -	# If we were able to find `uname', then EMX Unix compatibility
   997         -	# is probably installed.
   998         -	echo ${UNAME_MACHINE}-pc-os2-emx
   999         -	exit ;;
  1000         -    i*86:XTS-300:*:STOP)
  1001         -	echo ${UNAME_MACHINE}-unknown-stop
  1002         -	exit ;;
  1003         -    i*86:atheos:*:*)
  1004         -	echo ${UNAME_MACHINE}-unknown-atheos
  1005         -	exit ;;
  1006         -    i*86:syllable:*:*)
  1007         -	echo ${UNAME_MACHINE}-pc-syllable
  1008         -	exit ;;
  1009         -    i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
  1010         -	echo i386-unknown-lynxos${UNAME_RELEASE}
  1011         -	exit ;;
  1012         -    i*86:*DOS:*:*)
  1013         -	echo ${UNAME_MACHINE}-pc-msdosdjgpp
  1014         -	exit ;;
  1015         -    i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
  1016         -	UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
  1017         -	if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
  1018         -		echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
  1019         -	else
  1020         -		echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
  1021         -	fi
  1022         -	exit ;;
  1023         -    i*86:*:5:[678]*)
  1024         -    	# UnixWare 7.x, OpenUNIX and OpenServer 6.
  1025         -	case `/bin/uname -X | grep "^Machine"` in
  1026         -	    *486*)	     UNAME_MACHINE=i486 ;;
  1027         -	    *Pentium)	     UNAME_MACHINE=i586 ;;
  1028         -	    *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
  1029         -	esac
  1030         -	echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
  1031         -	exit ;;
  1032         -    i*86:*:3.2:*)
  1033         -	if test -f /usr/options/cb.name; then
  1034         -		UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
  1035         -		echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
  1036         -	elif /bin/uname -X 2>/dev/null >/dev/null ; then
  1037         -		UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
  1038         -		(/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
  1039         -		(/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
  1040         -			&& UNAME_MACHINE=i586
  1041         -		(/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
  1042         -			&& UNAME_MACHINE=i686
  1043         -		(/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
  1044         -			&& UNAME_MACHINE=i686
  1045         -		echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
  1046         -	else
  1047         -		echo ${UNAME_MACHINE}-pc-sysv32
  1048         -	fi
  1049         -	exit ;;
  1050         -    pc:*:*:*)
  1051         -	# Left here for compatibility:
  1052         -        # uname -m prints for DJGPP always 'pc', but it prints nothing about
  1053         -        # the processor, so we play safe by assuming i386.
  1054         -	echo i386-pc-msdosdjgpp
  1055         -        exit ;;
  1056         -    Intel:Mach:3*:*)
  1057         -	echo i386-pc-mach3
  1058         -	exit ;;
  1059         -    paragon:*:*:*)
  1060         -	echo i860-intel-osf1
  1061         -	exit ;;
  1062         -    i860:*:4.*:*) # i860-SVR4
  1063         -	if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
  1064         -	  echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
  1065         -	else # Add other i860-SVR4 vendors below as they are discovered.
  1066         -	  echo i860-unknown-sysv${UNAME_RELEASE}  # Unknown i860-SVR4
  1067         -	fi
  1068         -	exit ;;
  1069         -    mini*:CTIX:SYS*5:*)
  1070         -	# "miniframe"
  1071         -	echo m68010-convergent-sysv
  1072         -	exit ;;
  1073         -    mc68k:UNIX:SYSTEM5:3.51m)
  1074         -	echo m68k-convergent-sysv
  1075         -	exit ;;
  1076         -    M680?0:D-NIX:5.3:*)
  1077         -	echo m68k-diab-dnix
  1078         -	exit ;;
  1079         -    M68*:*:R3V[5678]*:*)
  1080         -	test -r /sysV68 && { echo 'm68k-motorola-sysv'; exit; } ;;
  1081         -    3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
  1082         -	OS_REL=''
  1083         -	test -r /etc/.relid \
  1084         -	&& OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
  1085         -	/bin/uname -p 2>/dev/null | grep 86 >/dev/null \
  1086         -	  && { echo i486-ncr-sysv4.3${OS_REL}; exit; }
  1087         -	/bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
  1088         -	  && { echo i586-ncr-sysv4.3${OS_REL}; exit; } ;;
  1089         -    3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
  1090         -        /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
  1091         -          && { echo i486-ncr-sysv4; exit; } ;;
  1092         -    m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
  1093         -	echo m68k-unknown-lynxos${UNAME_RELEASE}
  1094         -	exit ;;
  1095         -    mc68030:UNIX_System_V:4.*:*)
  1096         -	echo m68k-atari-sysv4
  1097         -	exit ;;
  1098         -    TSUNAMI:LynxOS:2.*:*)
  1099         -	echo sparc-unknown-lynxos${UNAME_RELEASE}
  1100         -	exit ;;
  1101         -    rs6000:LynxOS:2.*:*)
  1102         -	echo rs6000-unknown-lynxos${UNAME_RELEASE}
  1103         -	exit ;;
  1104         -    PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
  1105         -	echo powerpc-unknown-lynxos${UNAME_RELEASE}
  1106         -	exit ;;
  1107         -    SM[BE]S:UNIX_SV:*:*)
  1108         -	echo mips-dde-sysv${UNAME_RELEASE}
  1109         -	exit ;;
  1110         -    RM*:ReliantUNIX-*:*:*)
  1111         -	echo mips-sni-sysv4
  1112         -	exit ;;
  1113         -    RM*:SINIX-*:*:*)
  1114         -	echo mips-sni-sysv4
  1115         -	exit ;;
  1116         -    *:SINIX-*:*:*)
  1117         -	if uname -p 2>/dev/null >/dev/null ; then
  1118         -		UNAME_MACHINE=`(uname -p) 2>/dev/null`
  1119         -		echo ${UNAME_MACHINE}-sni-sysv4
  1120         -	else
  1121         -		echo ns32k-sni-sysv
  1122         -	fi
  1123         -	exit ;;
  1124         -    PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
  1125         -                      # says <Richard.M.Bartel@ccMail.Census.GOV>
  1126         -        echo i586-unisys-sysv4
  1127         -        exit ;;
  1128         -    *:UNIX_System_V:4*:FTX*)
  1129         -	# From Gerald Hewes <hewes@openmarket.com>.
  1130         -	# How about differentiating between stratus architectures? -djm
  1131         -	echo hppa1.1-stratus-sysv4
  1132         -	exit ;;
  1133         -    *:*:*:FTX*)
  1134         -	# From seanf@swdc.stratus.com.
  1135         -	echo i860-stratus-sysv4
  1136         -	exit ;;
  1137         -    i*86:VOS:*:*)
  1138         -	# From Paul.Green@stratus.com.
  1139         -	echo ${UNAME_MACHINE}-stratus-vos
  1140         -	exit ;;
  1141         -    *:VOS:*:*)
  1142         -	# From Paul.Green@stratus.com.
  1143         -	echo hppa1.1-stratus-vos
  1144         -	exit ;;
  1145         -    mc68*:A/UX:*:*)
  1146         -	echo m68k-apple-aux${UNAME_RELEASE}
  1147         -	exit ;;
  1148         -    news*:NEWS-OS:6*:*)
  1149         -	echo mips-sony-newsos6
  1150         -	exit ;;
  1151         -    R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
  1152         -	if [ -d /usr/nec ]; then
  1153         -	        echo mips-nec-sysv${UNAME_RELEASE}
  1154         -	else
  1155         -	        echo mips-unknown-sysv${UNAME_RELEASE}
  1156         -	fi
  1157         -        exit ;;
  1158         -    BeBox:BeOS:*:*)	# BeOS running on hardware made by Be, PPC only.
  1159         -	echo powerpc-be-beos
  1160         -	exit ;;
  1161         -    BeMac:BeOS:*:*)	# BeOS running on Mac or Mac clone, PPC only.
  1162         -	echo powerpc-apple-beos
  1163         -	exit ;;
  1164         -    BePC:BeOS:*:*)	# BeOS running on Intel PC compatible.
  1165         -	echo i586-pc-beos
  1166         -	exit ;;
  1167         -    SX-4:SUPER-UX:*:*)
  1168         -	echo sx4-nec-superux${UNAME_RELEASE}
  1169         -	exit ;;
  1170         -    SX-5:SUPER-UX:*:*)
  1171         -	echo sx5-nec-superux${UNAME_RELEASE}
  1172         -	exit ;;
  1173         -    SX-6:SUPER-UX:*:*)
  1174         -	echo sx6-nec-superux${UNAME_RELEASE}
  1175         -	exit ;;
  1176         -    Power*:Rhapsody:*:*)
  1177         -	echo powerpc-apple-rhapsody${UNAME_RELEASE}
  1178         -	exit ;;
  1179         -    *:Rhapsody:*:*)
  1180         -	echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
  1181         -	exit ;;
  1182         -    *:Darwin:*:*)
  1183         -	UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
  1184         -	case $UNAME_PROCESSOR in
  1185         -	    *86) UNAME_PROCESSOR=i686 ;;
  1186         -	    unknown) UNAME_PROCESSOR=powerpc ;;
  1187         -	esac
  1188         -	echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
  1189         -	exit ;;
  1190         -    *:procnto*:*:* | *:QNX:[0123456789]*:*)
  1191         -	UNAME_PROCESSOR=`uname -p`
  1192         -	if test "$UNAME_PROCESSOR" = "x86"; then
  1193         -		UNAME_PROCESSOR=i386
  1194         -		UNAME_MACHINE=pc
  1195         -	fi
  1196         -	echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
  1197         -	exit ;;
  1198         -    *:QNX:*:4*)
  1199         -	echo i386-pc-qnx
  1200         -	exit ;;
  1201         -    NSE-?:NONSTOP_KERNEL:*:*)
  1202         -	echo nse-tandem-nsk${UNAME_RELEASE}
  1203         -	exit ;;
  1204         -    NSR-?:NONSTOP_KERNEL:*:*)
  1205         -	echo nsr-tandem-nsk${UNAME_RELEASE}
  1206         -	exit ;;
  1207         -    *:NonStop-UX:*:*)
  1208         -	echo mips-compaq-nonstopux
  1209         -	exit ;;
  1210         -    BS2000:POSIX*:*:*)
  1211         -	echo bs2000-siemens-sysv
  1212         -	exit ;;
  1213         -    DS/*:UNIX_System_V:*:*)
  1214         -	echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
  1215         -	exit ;;
  1216         -    *:Plan9:*:*)
  1217         -	# "uname -m" is not consistent, so use $cputype instead. 386
  1218         -	# is converted to i386 for consistency with other x86
  1219         -	# operating systems.
  1220         -	if test "$cputype" = "386"; then
  1221         -	    UNAME_MACHINE=i386
  1222         -	else
  1223         -	    UNAME_MACHINE="$cputype"
  1224         -	fi
  1225         -	echo ${UNAME_MACHINE}-unknown-plan9
  1226         -	exit ;;
  1227         -    *:TOPS-10:*:*)
  1228         -	echo pdp10-unknown-tops10
  1229         -	exit ;;
  1230         -    *:TENEX:*:*)
  1231         -	echo pdp10-unknown-tenex
  1232         -	exit ;;
  1233         -    KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
  1234         -	echo pdp10-dec-tops20
  1235         -	exit ;;
  1236         -    XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
  1237         -	echo pdp10-xkl-tops20
  1238         -	exit ;;
  1239         -    *:TOPS-20:*:*)
  1240         -	echo pdp10-unknown-tops20
  1241         -	exit ;;
  1242         -    *:ITS:*:*)
  1243         -	echo pdp10-unknown-its
  1244         -	exit ;;
  1245         -    SEI:*:*:SEIUX)
  1246         -        echo mips-sei-seiux${UNAME_RELEASE}
  1247         -	exit ;;
  1248         -    *:DragonFly:*:*)
  1249         -	echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
  1250         -	exit ;;
  1251         -    *:*VMS:*:*)
  1252         -    	UNAME_MACHINE=`(uname -p) 2>/dev/null`
  1253         -	case "${UNAME_MACHINE}" in
  1254         -	    A*) echo alpha-dec-vms ; exit ;;
  1255         -	    I*) echo ia64-dec-vms ; exit ;;
  1256         -	    V*) echo vax-dec-vms ; exit ;;
  1257         -	esac ;;
  1258         -    *:XENIX:*:SysV)
  1259         -	echo i386-pc-xenix
  1260         -	exit ;;
  1261         -    i*86:skyos:*:*)
  1262         -	echo ${UNAME_MACHINE}-pc-skyos`echo ${UNAME_RELEASE}` | sed -e 's/ .*$//'
  1263         -	exit ;;
  1264         -esac
  1265         -
  1266         -#echo '(No uname command or uname output not recognized.)' 1>&2
  1267         -#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
  1268         -
  1269         -eval $set_cc_for_build
  1270         -cat >$dummy.c <<EOF
  1271         -#ifdef _SEQUENT_
  1272         -# include <sys/types.h>
  1273         -# include <sys/utsname.h>
  1274         -#endif
  1275         -main ()
  1276         -{
  1277         -#if defined (sony)
  1278         -#if defined (MIPSEB)
  1279         -  /* BFD wants "bsd" instead of "newsos".  Perhaps BFD should be changed,
  1280         -     I don't know....  */
  1281         -  printf ("mips-sony-bsd\n"); exit (0);
  1282         -#else
  1283         -#include <sys/param.h>
  1284         -  printf ("m68k-sony-newsos%s\n",
  1285         -#ifdef NEWSOS4
  1286         -          "4"
  1287         -#else
  1288         -	  ""
  1289         -#endif
  1290         -         ); exit (0);
  1291         -#endif
  1292         -#endif
  1293         -
  1294         -#if defined (__arm) && defined (__acorn) && defined (__unix)
  1295         -  printf ("arm-acorn-riscix\n"); exit (0);
  1296         -#endif
  1297         -
  1298         -#if defined (hp300) && !defined (hpux)
  1299         -  printf ("m68k-hp-bsd\n"); exit (0);
  1300         -#endif
  1301         -
  1302         -#if defined (NeXT)
  1303         -#if !defined (__ARCHITECTURE__)
  1304         -#define __ARCHITECTURE__ "m68k"
  1305         -#endif
  1306         -  int version;
  1307         -  version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
  1308         -  if (version < 4)
  1309         -    printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
  1310         -  else
  1311         -    printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
  1312         -  exit (0);
  1313         -#endif
  1314         -
  1315         -#if defined (MULTIMAX) || defined (n16)
  1316         -#if defined (UMAXV)
  1317         -  printf ("ns32k-encore-sysv\n"); exit (0);
  1318         -#else
  1319         -#if defined (CMU)
  1320         -  printf ("ns32k-encore-mach\n"); exit (0);
  1321         -#else
  1322         -  printf ("ns32k-encore-bsd\n"); exit (0);
  1323         -#endif
  1324         -#endif
  1325         -#endif
  1326         -
  1327         -#if defined (__386BSD__)
  1328         -  printf ("i386-pc-bsd\n"); exit (0);
  1329         -#endif
  1330         -
  1331         -#if defined (sequent)
  1332         -#if defined (i386)
  1333         -  printf ("i386-sequent-dynix\n"); exit (0);
  1334         -#endif
  1335         -#if defined (ns32000)
  1336         -  printf ("ns32k-sequent-dynix\n"); exit (0);
  1337         -#endif
  1338         -#endif
  1339         -
  1340         -#if defined (_SEQUENT_)
  1341         -    struct utsname un;
  1342         -
  1343         -    uname(&un);
  1344         -
  1345         -    if (strncmp(un.version, "V2", 2) == 0) {
  1346         -	printf ("i386-sequent-ptx2\n"); exit (0);
  1347         -    }
  1348         -    if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
  1349         -	printf ("i386-sequent-ptx1\n"); exit (0);
  1350         -    }
  1351         -    printf ("i386-sequent-ptx\n"); exit (0);
  1352         -
  1353         -#endif
  1354         -
  1355         -#if defined (vax)
  1356         -# if !defined (ultrix)
  1357         -#  include <sys/param.h>
  1358         -#  if defined (BSD)
  1359         -#   if BSD == 43
  1360         -      printf ("vax-dec-bsd4.3\n"); exit (0);
  1361         -#   else
  1362         -#    if BSD == 199006
  1363         -      printf ("vax-dec-bsd4.3reno\n"); exit (0);
  1364         -#    else
  1365         -      printf ("vax-dec-bsd\n"); exit (0);
  1366         -#    endif
  1367         -#   endif
  1368         -#  else
  1369         -    printf ("vax-dec-bsd\n"); exit (0);
  1370         -#  endif
  1371         -# else
  1372         -    printf ("vax-dec-ultrix\n"); exit (0);
  1373         -# endif
  1374         -#endif
  1375         -
  1376         -#if defined (alliant) && defined (i860)
  1377         -  printf ("i860-alliant-bsd\n"); exit (0);
  1378         -#endif
  1379         -
  1380         -  exit (1);
  1381         -}
  1382         -EOF
  1383         -
  1384         -$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && SYSTEM_NAME=`$dummy` &&
  1385         -	{ echo "$SYSTEM_NAME"; exit; }
  1386         -
  1387         -# Apollos put the system type in the environment.
  1388         -
  1389         -test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit; }
  1390         -
  1391         -# Convex versions that predate uname can use getsysinfo(1)
  1392         -
  1393         -if [ -x /usr/convex/getsysinfo ]
  1394         -then
  1395         -    case `getsysinfo -f cpu_type` in
  1396         -    c1*)
  1397         -	echo c1-convex-bsd
  1398         -	exit ;;
  1399         -    c2*)
  1400         -	if getsysinfo -f scalar_acc
  1401         -	then echo c32-convex-bsd
  1402         -	else echo c2-convex-bsd
  1403         -	fi
  1404         -	exit ;;
  1405         -    c34*)
  1406         -	echo c34-convex-bsd
  1407         -	exit ;;
  1408         -    c38*)
  1409         -	echo c38-convex-bsd
  1410         -	exit ;;
  1411         -    c4*)
  1412         -	echo c4-convex-bsd
  1413         -	exit ;;
  1414         -    esac
  1415         -fi
  1416         -
  1417         -cat >&2 <<EOF
  1418         -$0: unable to guess system type
  1419         -
  1420         -This script, last modified $timestamp, has failed to recognize
  1421         -the operating system you are using. It is advised that you
  1422         -download the most up to date version of the config scripts from
  1423         -
  1424         -  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
  1425         -and
  1426         -  http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
  1427         -
  1428         -If the version you run ($0) is already up to date, please
  1429         -send the following data and any information you think might be
  1430         -pertinent to <config-patches@gnu.org> in order to provide the needed
  1431         -information to handle your system.
  1432         -
  1433         -config.guess timestamp = $timestamp
  1434         -
  1435         -uname -m = `(uname -m) 2>/dev/null || echo unknown`
  1436         -uname -r = `(uname -r) 2>/dev/null || echo unknown`
  1437         -uname -s = `(uname -s) 2>/dev/null || echo unknown`
  1438         -uname -v = `(uname -v) 2>/dev/null || echo unknown`
  1439         -
  1440         -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null`
  1441         -/bin/uname -X     = `(/bin/uname -X) 2>/dev/null`
  1442         -
  1443         -hostinfo               = `(hostinfo) 2>/dev/null`
  1444         -/bin/universe          = `(/bin/universe) 2>/dev/null`
  1445         -/usr/bin/arch -k       = `(/usr/bin/arch -k) 2>/dev/null`
  1446         -/bin/arch              = `(/bin/arch) 2>/dev/null`
  1447         -/usr/bin/oslevel       = `(/usr/bin/oslevel) 2>/dev/null`
  1448         -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
  1449         -
  1450         -UNAME_MACHINE = ${UNAME_MACHINE}
  1451         -UNAME_RELEASE = ${UNAME_RELEASE}
  1452         -UNAME_SYSTEM  = ${UNAME_SYSTEM}
  1453         -UNAME_VERSION = ${UNAME_VERSION}
  1454         -EOF
  1455         -
  1456         -exit 1
  1457         -
  1458         -# Local variables:
  1459         -# eval: (add-hook 'write-file-hooks 'time-stamp)
  1460         -# time-stamp-start: "timestamp='"
  1461         -# time-stamp-format: "%:y-%02m-%02d"
  1462         -# time-stamp-end: "'"
  1463         -# End:

Deleted kitdll/buildsrc/kitdll-0.0/config.sub version [1f0ad14050].

     1         -#! /bin/sh
     2         -# Configuration validation subroutine script.
     3         -#   Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
     4         -#   2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
     5         -
     6         -timestamp='2005-07-08'
     7         -
     8         -# This file is (in principle) common to ALL GNU software.
     9         -# The presence of a machine in this file suggests that SOME GNU software
    10         -# can handle that machine.  It does not imply ALL GNU software can.
    11         -#
    12         -# This file is free software; you can redistribute it and/or modify
    13         -# it under the terms of the GNU General Public License as published by
    14         -# the Free Software Foundation; either version 2 of the License, or
    15         -# (at your option) any later version.
    16         -#
    17         -# This program is distributed in the hope that it will be useful,
    18         -# but WITHOUT ANY WARRANTY; without even the implied warranty of
    19         -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
    20         -# GNU General Public License for more details.
    21         -#
    22         -# You should have received a copy of the GNU General Public License
    23         -# along with this program; if not, write to the Free Software
    24         -# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston, MA
    25         -# 02110-1301, USA.
    26         -#
    27         -# As a special exception to the GNU General Public License, if you
    28         -# distribute this file as part of a program that contains a
    29         -# configuration script generated by Autoconf, you may include it under
    30         -# the same distribution terms that you use for the rest of that program.
    31         -
    32         -
    33         -# Please send patches to <config-patches@gnu.org>.  Submit a context
    34         -# diff and a properly formatted ChangeLog entry.
    35         -#
    36         -# Configuration subroutine to validate and canonicalize a configuration type.
    37         -# Supply the specified configuration type as an argument.
    38         -# If it is invalid, we print an error message on stderr and exit with code 1.
    39         -# Otherwise, we print the canonical config type on stdout and succeed.
    40         -
    41         -# This file is supposed to be the same for all GNU packages
    42         -# and recognize all the CPU types, system types and aliases
    43         -# that are meaningful with *any* GNU software.
    44         -# Each package is responsible for reporting which valid configurations
    45         -# it does not support.  The user should be able to distinguish
    46         -# a failure to support a valid configuration from a meaningless
    47         -# configuration.
    48         -
    49         -# The goal of this file is to map all the various variations of a given
    50         -# machine specification into a single specification in the form:
    51         -#	CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
    52         -# or in some cases, the newer four-part form:
    53         -#	CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
    54         -# It is wrong to echo any other type of specification.
    55         -
    56         -me=`echo "$0" | sed -e 's,.*/,,'`
    57         -
    58         -usage="\
    59         -Usage: $0 [OPTION] CPU-MFR-OPSYS
    60         -       $0 [OPTION] ALIAS
    61         -
    62         -Canonicalize a configuration name.
    63         -
    64         -Operation modes:
    65         -  -h, --help         print this help, then exit
    66         -  -t, --time-stamp   print date of last modification, then exit
    67         -  -v, --version      print version number, then exit
    68         -
    69         -Report bugs and patches to <config-patches@gnu.org>."
    70         -
    71         -version="\
    72         -GNU config.sub ($timestamp)
    73         -
    74         -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
    75         -Free Software Foundation, Inc.
    76         -
    77         -This is free software; see the source for copying conditions.  There is NO
    78         -warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
    79         -
    80         -help="
    81         -Try \`$me --help' for more information."
    82         -
    83         -# Parse command line
    84         -while test $# -gt 0 ; do
    85         -  case $1 in
    86         -    --time-stamp | --time* | -t )
    87         -       echo "$timestamp" ; exit ;;
    88         -    --version | -v )
    89         -       echo "$version" ; exit ;;
    90         -    --help | --h* | -h )
    91         -       echo "$usage"; exit ;;
    92         -    -- )     # Stop option processing
    93         -       shift; break ;;
    94         -    - )	# Use stdin as input.
    95         -       break ;;
    96         -    -* )
    97         -       echo "$me: invalid option $1$help"
    98         -       exit 1 ;;
    99         -
   100         -    *local*)
   101         -       # First pass through any local machine types.
   102         -       echo $1
   103         -       exit ;;
   104         -
   105         -    * )
   106         -       break ;;
   107         -  esac
   108         -done
   109         -
   110         -case $# in
   111         - 0) echo "$me: missing argument$help" >&2
   112         -    exit 1;;
   113         - 1) ;;
   114         - *) echo "$me: too many arguments$help" >&2
   115         -    exit 1;;
   116         -esac
   117         -
   118         -# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
   119         -# Here we must recognize all the valid KERNEL-OS combinations.
   120         -maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
   121         -case $maybe_os in
   122         -  nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
   123         -  kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
   124         -    os=-$maybe_os
   125         -    basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
   126         -    ;;
   127         -  *)
   128         -    basic_machine=`echo $1 | sed 's/-[^-]*$//'`
   129         -    if [ $basic_machine != $1 ]
   130         -    then os=`echo $1 | sed 's/.*-/-/'`
   131         -    else os=; fi
   132         -    ;;
   133         -esac
   134         -
   135         -### Let's recognize common machines as not being operating systems so
   136         -### that things like config.sub decstation-3100 work.  We also
   137         -### recognize some manufacturers as not being operating systems, so we
   138         -### can provide default operating systems below.
   139         -case $os in
   140         -	-sun*os*)
   141         -		# Prevent following clause from handling this invalid input.
   142         -		;;
   143         -	-dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
   144         -	-att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
   145         -	-unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
   146         -	-convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
   147         -	-c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
   148         -	-harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
   149         -	-apple | -axis | -knuth | -cray)
   150         -		os=
   151         -		basic_machine=$1
   152         -		;;
   153         -	-sim | -cisco | -oki | -wec | -winbond)
   154         -		os=
   155         -		basic_machine=$1
   156         -		;;
   157         -	-scout)
   158         -		;;
   159         -	-wrs)
   160         -		os=-vxworks
   161         -		basic_machine=$1
   162         -		;;
   163         -	-chorusos*)
   164         -		os=-chorusos
   165         -		basic_machine=$1
   166         -		;;
   167         - 	-chorusrdb)
   168         - 		os=-chorusrdb
   169         -		basic_machine=$1
   170         - 		;;
   171         -	-hiux*)
   172         -		os=-hiuxwe2
   173         -		;;
   174         -	-sco5)
   175         -		os=-sco3.2v5
   176         -		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
   177         -		;;
   178         -	-sco4)
   179         -		os=-sco3.2v4
   180         -		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
   181         -		;;
   182         -	-sco3.2.[4-9]*)
   183         -		os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
   184         -		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
   185         -		;;
   186         -	-sco3.2v[4-9]*)
   187         -		# Don't forget version if it is 3.2v4 or newer.
   188         -		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
   189         -		;;
   190         -	-sco*)
   191         -		os=-sco3.2v2
   192         -		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
   193         -		;;
   194         -	-udk*)
   195         -		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
   196         -		;;
   197         -	-isc)
   198         -		os=-isc2.2
   199         -		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
   200         -		;;
   201         -	-clix*)
   202         -		basic_machine=clipper-intergraph
   203         -		;;
   204         -	-isc*)
   205         -		basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
   206         -		;;
   207         -	-lynx*)
   208         -		os=-lynxos
   209         -		;;
   210         -	-ptx*)
   211         -		basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
   212         -		;;
   213         -	-windowsnt*)
   214         -		os=`echo $os | sed -e 's/windowsnt/winnt/'`
   215         -		;;
   216         -	-psos*)
   217         -		os=-psos
   218         -		;;
   219         -	-mint | -mint[0-9]*)
   220         -		basic_machine=m68k-atari
   221         -		os=-mint
   222         -		;;
   223         -esac
   224         -
   225         -# Decode aliases for certain CPU-COMPANY combinations.
   226         -case $basic_machine in
   227         -	# Recognize the basic CPU types without company name.
   228         -	# Some are omitted here because they have special meanings below.
   229         -	1750a | 580 \
   230         -	| a29k \
   231         -	| alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
   232         -	| alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
   233         -	| am33_2.0 \
   234         -	| arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
   235         -	| bfin \
   236         -	| c4x | clipper \
   237         -	| d10v | d30v | dlx | dsp16xx \
   238         -	| fr30 | frv \
   239         -	| h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
   240         -	| i370 | i860 | i960 | ia64 \
   241         -	| ip2k | iq2000 \
   242         -	| m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
   243         -	| mips | mipsbe | mipseb | mipsel | mipsle \
   244         -	| mips16 \
   245         -	| mips64 | mips64el \
   246         -	| mips64vr | mips64vrel \
   247         -	| mips64orion | mips64orionel \
   248         -	| mips64vr4100 | mips64vr4100el \
   249         -	| mips64vr4300 | mips64vr4300el \
   250         -	| mips64vr5000 | mips64vr5000el \
   251         -	| mips64vr5900 | mips64vr5900el \
   252         -	| mipsisa32 | mipsisa32el \
   253         -	| mipsisa32r2 | mipsisa32r2el \
   254         -	| mipsisa64 | mipsisa64el \
   255         -	| mipsisa64r2 | mipsisa64r2el \
   256         -	| mipsisa64sb1 | mipsisa64sb1el \
   257         -	| mipsisa64sr71k | mipsisa64sr71kel \
   258         -	| mipstx39 | mipstx39el \
   259         -	| mn10200 | mn10300 \
   260         -	| ms1 \
   261         -	| msp430 \
   262         -	| ns16k | ns32k \
   263         -	| or32 \
   264         -	| pdp10 | pdp11 | pj | pjl \
   265         -	| powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
   266         -	| pyramid \
   267         -	| sh | sh[1234] | sh[24]a | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
   268         -	| sh64 | sh64le \
   269         -	| sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
   270         -	| sparcv8 | sparcv9 | sparcv9b \
   271         -	| strongarm \
   272         -	| tahoe | thumb | tic4x | tic80 | tron \
   273         -	| v850 | v850e \
   274         -	| we32k \
   275         -	| x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
   276         -	| z8k)
   277         -		basic_machine=$basic_machine-unknown
   278         -		;;
   279         -	m32c)
   280         -		basic_machine=$basic_machine-unknown
   281         -		;;
   282         -	m6811 | m68hc11 | m6812 | m68hc12)
   283         -		# Motorola 68HC11/12.
   284         -		basic_machine=$basic_machine-unknown
   285         -		os=-none
   286         -		;;
   287         -	m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
   288         -		;;
   289         -
   290         -	# We use `pc' rather than `unknown'
   291         -	# because (1) that's what they normally are, and
   292         -	# (2) the word "unknown" tends to confuse beginning users.
   293         -	i*86 | x86_64)
   294         -	  basic_machine=$basic_machine-pc
   295         -	  ;;
   296         -	# Object if more than one company name word.
   297         -	*-*-*)
   298         -		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
   299         -		exit 1
   300         -		;;
   301         -	# Recognize the basic CPU types with company name.
   302         -	580-* \
   303         -	| a29k-* \
   304         -	| alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
   305         -	| alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
   306         -	| alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
   307         -	| arm-*  | armbe-* | armle-* | armeb-* | armv*-* \
   308         -	| avr-* \
   309         -	| bfin-* | bs2000-* \
   310         -	| c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
   311         -	| clipper-* | craynv-* | cydra-* \
   312         -	| d10v-* | d30v-* | dlx-* \
   313         -	| elxsi-* \
   314         -	| f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
   315         -	| h8300-* | h8500-* \
   316         -	| hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
   317         -	| i*86-* | i860-* | i960-* | ia64-* \
   318         -	| ip2k-* | iq2000-* \
   319         -	| m32r-* | m32rle-* \
   320         -	| m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
   321         -	| m88110-* | m88k-* | maxq-* | mcore-* \
   322         -	| mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
   323         -	| mips16-* \
   324         -	| mips64-* | mips64el-* \
   325         -	| mips64vr-* | mips64vrel-* \
   326         -	| mips64orion-* | mips64orionel-* \
   327         -	| mips64vr4100-* | mips64vr4100el-* \
   328         -	| mips64vr4300-* | mips64vr4300el-* \
   329         -	| mips64vr5000-* | mips64vr5000el-* \
   330         -	| mips64vr5900-* | mips64vr5900el-* \
   331         -	| mipsisa32-* | mipsisa32el-* \
   332         -	| mipsisa32r2-* | mipsisa32r2el-* \
   333         -	| mipsisa64-* | mipsisa64el-* \
   334         -	| mipsisa64r2-* | mipsisa64r2el-* \
   335         -	| mipsisa64sb1-* | mipsisa64sb1el-* \
   336         -	| mipsisa64sr71k-* | mipsisa64sr71kel-* \
   337         -	| mipstx39-* | mipstx39el-* \
   338         -	| mmix-* \
   339         -	| ms1-* \
   340         -	| msp430-* \
   341         -	| none-* | np1-* | ns16k-* | ns32k-* \
   342         -	| orion-* \
   343         -	| pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
   344         -	| powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
   345         -	| pyramid-* \
   346         -	| romp-* | rs6000-* \
   347         -	| sh-* | sh[1234]-* | sh[24]a-* | sh[23]e-* | sh[34]eb-* | shbe-* \
   348         -	| shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
   349         -	| sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
   350         -	| sparclite-* \
   351         -	| sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
   352         -	| tahoe-* | thumb-* \
   353         -	| tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
   354         -	| tron-* \
   355         -	| v850-* | v850e-* | vax-* \
   356         -	| we32k-* \
   357         -	| x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
   358         -	| xstormy16-* | xtensa-* \
   359         -	| ymp-* \
   360         -	| z8k-*)
   361         -		;;
   362         -	m32c-*)
   363         -		;;
   364         -	# Recognize the various machine names and aliases which stand
   365         -	# for a CPU type and a company and sometimes even an OS.
   366         -	386bsd)
   367         -		basic_machine=i386-unknown
   368         -		os=-bsd
   369         -		;;
   370         -	3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
   371         -		basic_machine=m68000-att
   372         -		;;
   373         -	3b*)
   374         -		basic_machine=we32k-att
   375         -		;;
   376         -	a29khif)
   377         -		basic_machine=a29k-amd
   378         -		os=-udi
   379         -		;;
   380         -    	abacus)
   381         -		basic_machine=abacus-unknown
   382         -		;;
   383         -	adobe68k)
   384         -		basic_machine=m68010-adobe
   385         -		os=-scout
   386         -		;;
   387         -	alliant | fx80)
   388         -		basic_machine=fx80-alliant
   389         -		;;
   390         -	altos | altos3068)
   391         -		basic_machine=m68k-altos
   392         -		;;
   393         -	am29k)
   394         -		basic_machine=a29k-none
   395         -		os=-bsd
   396         -		;;
   397         -	amd64)
   398         -		basic_machine=x86_64-pc
   399         -		;;
   400         -	amd64-*)
   401         -		basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
   402         -		;;
   403         -	amdahl)
   404         -		basic_machine=580-amdahl
   405         -		os=-sysv
   406         -		;;
   407         -	amiga | amiga-*)
   408         -		basic_machine=m68k-unknown
   409         -		;;
   410         -	amigaos | amigados)
   411         -		basic_machine=m68k-unknown
   412         -		os=-amigaos
   413         -		;;
   414         -	amigaunix | amix)
   415         -		basic_machine=m68k-unknown
   416         -		os=-sysv4
   417         -		;;
   418         -	apollo68)
   419         -		basic_machine=m68k-apollo
   420         -		os=-sysv
   421         -		;;
   422         -	apollo68bsd)
   423         -		basic_machine=m68k-apollo
   424         -		os=-bsd
   425         -		;;
   426         -	aux)
   427         -		basic_machine=m68k-apple
   428         -		os=-aux
   429         -		;;
   430         -	balance)
   431         -		basic_machine=ns32k-sequent
   432         -		os=-dynix
   433         -		;;
   434         -	c90)
   435         -		basic_machine=c90-cray
   436         -		os=-unicos
   437         -		;;
   438         -	convex-c1)
   439         -		basic_machine=c1-convex
   440         -		os=-bsd
   441         -		;;
   442         -	convex-c2)
   443         -		basic_machine=c2-convex
   444         -		os=-bsd
   445         -		;;
   446         -	convex-c32)
   447         -		basic_machine=c32-convex
   448         -		os=-bsd
   449         -		;;
   450         -	convex-c34)
   451         -		basic_machine=c34-convex
   452         -		os=-bsd
   453         -		;;
   454         -	convex-c38)
   455         -		basic_machine=c38-convex
   456         -		os=-bsd
   457         -		;;
   458         -	cray | j90)
   459         -		basic_machine=j90-cray
   460         -		os=-unicos
   461         -		;;
   462         -	craynv)
   463         -		basic_machine=craynv-cray
   464         -		os=-unicosmp
   465         -		;;
   466         -	cr16c)
   467         -		basic_machine=cr16c-unknown
   468         -		os=-elf
   469         -		;;
   470         -	crds | unos)
   471         -		basic_machine=m68k-crds
   472         -		;;
   473         -	crisv32 | crisv32-* | etraxfs*)
   474         -		basic_machine=crisv32-axis
   475         -		;;
   476         -	cris | cris-* | etrax*)
   477         -		basic_machine=cris-axis
   478         -		;;
   479         -	crx)
   480         -		basic_machine=crx-unknown
   481         -		os=-elf
   482         -		;;
   483         -	da30 | da30-*)
   484         -		basic_machine=m68k-da30
   485         -		;;
   486         -	decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
   487         -		basic_machine=mips-dec
   488         -		;;
   489         -	decsystem10* | dec10*)
   490         -		basic_machine=pdp10-dec
   491         -		os=-tops10
   492         -		;;
   493         -	decsystem20* | dec20*)
   494         -		basic_machine=pdp10-dec
   495         -		os=-tops20
   496         -		;;
   497         -	delta | 3300 | motorola-3300 | motorola-delta \
   498         -	      | 3300-motorola | delta-motorola)
   499         -		basic_machine=m68k-motorola
   500         -		;;
   501         -	delta88)
   502         -		basic_machine=m88k-motorola
   503         -		os=-sysv3
   504         -		;;
   505         -	djgpp)
   506         -		basic_machine=i586-pc
   507         -		os=-msdosdjgpp
   508         -		;;
   509         -	dpx20 | dpx20-*)
   510         -		basic_machine=rs6000-bull
   511         -		os=-bosx
   512         -		;;
   513         -	dpx2* | dpx2*-bull)
   514         -		basic_machine=m68k-bull
   515         -		os=-sysv3
   516         -		;;
   517         -	ebmon29k)
   518         -		basic_machine=a29k-amd
   519         -		os=-ebmon
   520         -		;;
   521         -	elxsi)
   522         -		basic_machine=elxsi-elxsi
   523         -		os=-bsd
   524         -		;;
   525         -	encore | umax | mmax)
   526         -		basic_machine=ns32k-encore
   527         -		;;
   528         -	es1800 | OSE68k | ose68k | ose | OSE)
   529         -		basic_machine=m68k-ericsson
   530         -		os=-ose
   531         -		;;
   532         -	fx2800)
   533         -		basic_machine=i860-alliant
   534         -		;;
   535         -	genix)
   536         -		basic_machine=ns32k-ns
   537         -		;;
   538         -	gmicro)
   539         -		basic_machine=tron-gmicro
   540         -		os=-sysv
   541         -		;;
   542         -	go32)
   543         -		basic_machine=i386-pc
   544         -		os=-go32
   545         -		;;
   546         -	h3050r* | hiux*)
   547         -		basic_machine=hppa1.1-hitachi
   548         -		os=-hiuxwe2
   549         -		;;
   550         -	h8300hms)
   551         -		basic_machine=h8300-hitachi
   552         -		os=-hms
   553         -		;;
   554         -	h8300xray)
   555         -		basic_machine=h8300-hitachi
   556         -		os=-xray
   557         -		;;
   558         -	h8500hms)
   559         -		basic_machine=h8500-hitachi
   560         -		os=-hms
   561         -		;;
   562         -	harris)
   563         -		basic_machine=m88k-harris
   564         -		os=-sysv3
   565         -		;;
   566         -	hp300-*)
   567         -		basic_machine=m68k-hp
   568         -		;;
   569         -	hp300bsd)
   570         -		basic_machine=m68k-hp
   571         -		os=-bsd
   572         -		;;
   573         -	hp300hpux)
   574         -		basic_machine=m68k-hp
   575         -		os=-hpux
   576         -		;;
   577         -	hp3k9[0-9][0-9] | hp9[0-9][0-9])
   578         -		basic_machine=hppa1.0-hp
   579         -		;;
   580         -	hp9k2[0-9][0-9] | hp9k31[0-9])
   581         -		basic_machine=m68000-hp
   582         -		;;
   583         -	hp9k3[2-9][0-9])
   584         -		basic_machine=m68k-hp
   585         -		;;
   586         -	hp9k6[0-9][0-9] | hp6[0-9][0-9])
   587         -		basic_machine=hppa1.0-hp
   588         -		;;
   589         -	hp9k7[0-79][0-9] | hp7[0-79][0-9])
   590         -		basic_machine=hppa1.1-hp
   591         -		;;
   592         -	hp9k78[0-9] | hp78[0-9])
   593         -		# FIXME: really hppa2.0-hp
   594         -		basic_machine=hppa1.1-hp
   595         -		;;
   596         -	hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
   597         -		# FIXME: really hppa2.0-hp
   598         -		basic_machine=hppa1.1-hp
   599         -		;;
   600         -	hp9k8[0-9][13679] | hp8[0-9][13679])
   601         -		basic_machine=hppa1.1-hp
   602         -		;;
   603         -	hp9k8[0-9][0-9] | hp8[0-9][0-9])
   604         -		basic_machine=hppa1.0-hp
   605         -		;;
   606         -	hppa-next)
   607         -		os=-nextstep3
   608         -		;;
   609         -	hppaosf)
   610         -		basic_machine=hppa1.1-hp
   611         -		os=-osf
   612         -		;;
   613         -	hppro)
   614         -		basic_machine=hppa1.1-hp
   615         -		os=-proelf
   616         -		;;
   617         -	i370-ibm* | ibm*)
   618         -		basic_machine=i370-ibm
   619         -		;;
   620         -# I'm not sure what "Sysv32" means.  Should this be sysv3.2?
   621         -	i*86v32)
   622         -		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
   623         -		os=-sysv32
   624         -		;;
   625         -	i*86v4*)
   626         -		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
   627         -		os=-sysv4
   628         -		;;
   629         -	i*86v)
   630         -		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
   631         -		os=-sysv
   632         -		;;
   633         -	i*86sol2)
   634         -		basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
   635         -		os=-solaris2
   636         -		;;
   637         -	i386mach)
   638         -		basic_machine=i386-mach
   639         -		os=-mach
   640         -		;;
   641         -	i386-vsta | vsta)
   642         -		basic_machine=i386-unknown
   643         -		os=-vsta
   644         -		;;
   645         -	iris | iris4d)
   646         -		basic_machine=mips-sgi
   647         -		case $os in
   648         -		    -irix*)
   649         -			;;
   650         -		    *)
   651         -			os=-irix4
   652         -			;;
   653         -		esac
   654         -		;;
   655         -	isi68 | isi)
   656         -		basic_machine=m68k-isi
   657         -		os=-sysv
   658         -		;;
   659         -	m88k-omron*)
   660         -		basic_machine=m88k-omron
   661         -		;;
   662         -	magnum | m3230)
   663         -		basic_machine=mips-mips
   664         -		os=-sysv
   665         -		;;
   666         -	merlin)
   667         -		basic_machine=ns32k-utek
   668         -		os=-sysv
   669         -		;;
   670         -	mingw32)
   671         -		basic_machine=i386-pc
   672         -		os=-mingw32
   673         -		;;
   674         -	miniframe)
   675         -		basic_machine=m68000-convergent
   676         -		;;
   677         -	*mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
   678         -		basic_machine=m68k-atari
   679         -		os=-mint
   680         -		;;
   681         -	mips3*-*)
   682         -		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
   683         -		;;
   684         -	mips3*)
   685         -		basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
   686         -		;;
   687         -	monitor)
   688         -		basic_machine=m68k-rom68k
   689         -		os=-coff
   690         -		;;
   691         -	morphos)
   692         -		basic_machine=powerpc-unknown
   693         -		os=-morphos
   694         -		;;
   695         -	msdos)
   696         -		basic_machine=i386-pc
   697         -		os=-msdos
   698         -		;;
   699         -	mvs)
   700         -		basic_machine=i370-ibm
   701         -		os=-mvs
   702         -		;;
   703         -	ncr3000)
   704         -		basic_machine=i486-ncr
   705         -		os=-sysv4
   706         -		;;
   707         -	netbsd386)
   708         -		basic_machine=i386-unknown
   709         -		os=-netbsd
   710         -		;;
   711         -	netwinder)
   712         -		basic_machine=armv4l-rebel
   713         -		os=-linux
   714         -		;;
   715         -	news | news700 | news800 | news900)
   716         -		basic_machine=m68k-sony
   717         -		os=-newsos
   718         -		;;
   719         -	news1000)
   720         -		basic_machine=m68030-sony
   721         -		os=-newsos
   722         -		;;
   723         -	news-3600 | risc-news)
   724         -		basic_machine=mips-sony
   725         -		os=-newsos
   726         -		;;
   727         -	necv70)
   728         -		basic_machine=v70-nec
   729         -		os=-sysv
   730         -		;;
   731         -	next | m*-next )
   732         -		basic_machine=m68k-next
   733         -		case $os in
   734         -		    -nextstep* )
   735         -			;;
   736         -		    -ns2*)
   737         -		      os=-nextstep2
   738         -			;;
   739         -		    *)
   740         -		      os=-nextstep3
   741         -			;;
   742         -		esac
   743         -		;;
   744         -	nh3000)
   745         -		basic_machine=m68k-harris
   746         -		os=-cxux
   747         -		;;
   748         -	nh[45]000)
   749         -		basic_machine=m88k-harris
   750         -		os=-cxux
   751         -		;;
   752         -	nindy960)
   753         -		basic_machine=i960-intel
   754         -		os=-nindy
   755         -		;;
   756         -	mon960)
   757         -		basic_machine=i960-intel
   758         -		os=-mon960
   759         -		;;
   760         -	nonstopux)
   761         -		basic_machine=mips-compaq
   762         -		os=-nonstopux
   763         -		;;
   764         -	np1)
   765         -		basic_machine=np1-gould
   766         -		;;
   767         -	nsr-tandem)
   768         -		basic_machine=nsr-tandem
   769         -		;;
   770         -	op50n-* | op60c-*)
   771         -		basic_machine=hppa1.1-oki
   772         -		os=-proelf
   773         -		;;
   774         -	openrisc | openrisc-*)
   775         -		basic_machine=or32-unknown
   776         -		;;
   777         -	os400)
   778         -		basic_machine=powerpc-ibm
   779         -		os=-os400
   780         -		;;
   781         -	OSE68000 | ose68000)
   782         -		basic_machine=m68000-ericsson
   783         -		os=-ose
   784         -		;;
   785         -	os68k)
   786         -		basic_machine=m68k-none
   787         -		os=-os68k
   788         -		;;
   789         -	pa-hitachi)
   790         -		basic_machine=hppa1.1-hitachi
   791         -		os=-hiuxwe2
   792         -		;;
   793         -	paragon)
   794         -		basic_machine=i860-intel
   795         -		os=-osf
   796         -		;;
   797         -	pbd)
   798         -		basic_machine=sparc-tti
   799         -		;;
   800         -	pbb)
   801         -		basic_machine=m68k-tti
   802         -		;;
   803         -	pc532 | pc532-*)
   804         -		basic_machine=ns32k-pc532
   805         -		;;
   806         -	pentium | p5 | k5 | k6 | nexgen | viac3)
   807         -		basic_machine=i586-pc
   808         -		;;
   809         -	pentiumpro | p6 | 6x86 | athlon | athlon_*)
   810         -		basic_machine=i686-pc
   811         -		;;
   812         -	pentiumii | pentium2 | pentiumiii | pentium3)
   813         -		basic_machine=i686-pc
   814         -		;;
   815         -	pentium4)
   816         -		basic_machine=i786-pc
   817         -		;;
   818         -	pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
   819         -		basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
   820         -		;;
   821         -	pentiumpro-* | p6-* | 6x86-* | athlon-*)
   822         -		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
   823         -		;;
   824         -	pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
   825         -		basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
   826         -		;;
   827         -	pentium4-*)
   828         -		basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
   829         -		;;
   830         -	pn)
   831         -		basic_machine=pn-gould
   832         -		;;
   833         -	power)	basic_machine=power-ibm
   834         -		;;
   835         -	ppc)	basic_machine=powerpc-unknown
   836         -		;;
   837         -	ppc-*)	basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
   838         -		;;
   839         -	ppcle | powerpclittle | ppc-le | powerpc-little)
   840         -		basic_machine=powerpcle-unknown
   841         -		;;
   842         -	ppcle-* | powerpclittle-*)
   843         -		basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
   844         -		;;
   845         -	ppc64)	basic_machine=powerpc64-unknown
   846         -		;;
   847         -	ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
   848         -		;;
   849         -	ppc64le | powerpc64little | ppc64-le | powerpc64-little)
   850         -		basic_machine=powerpc64le-unknown
   851         -		;;
   852         -	ppc64le-* | powerpc64little-*)
   853         -		basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
   854         -		;;
   855         -	ps2)
   856         -		basic_machine=i386-ibm
   857         -		;;
   858         -	pw32)
   859         -		basic_machine=i586-unknown
   860         -		os=-pw32
   861         -		;;
   862         -	rom68k)
   863         -		basic_machine=m68k-rom68k
   864         -		os=-coff
   865         -		;;
   866         -	rm[46]00)
   867         -		basic_machine=mips-siemens
   868         -		;;
   869         -	rtpc | rtpc-*)
   870         -		basic_machine=romp-ibm
   871         -		;;
   872         -	s390 | s390-*)
   873         -		basic_machine=s390-ibm
   874         -		;;
   875         -	s390x | s390x-*)
   876         -		basic_machine=s390x-ibm
   877         -		;;
   878         -	sa29200)
   879         -		basic_machine=a29k-amd
   880         -		os=-udi
   881         -		;;
   882         -	sb1)
   883         -		basic_machine=mipsisa64sb1-unknown
   884         -		;;
   885         -	sb1el)
   886         -		basic_machine=mipsisa64sb1el-unknown
   887         -		;;
   888         -	sei)
   889         -		basic_machine=mips-sei
   890         -		os=-seiux
   891         -		;;
   892         -	sequent)
   893         -		basic_machine=i386-sequent
   894         -		;;
   895         -	sh)
   896         -		basic_machine=sh-hitachi
   897         -		os=-hms
   898         -		;;
   899         -	sh64)
   900         -		basic_machine=sh64-unknown
   901         -		;;
   902         -	sparclite-wrs | simso-wrs)
   903         -		basic_machine=sparclite-wrs
   904         -		os=-vxworks
   905         -		;;
   906         -	sps7)
   907         -		basic_machine=m68k-bull
   908         -		os=-sysv2
   909         -		;;
   910         -	spur)
   911         -		basic_machine=spur-unknown
   912         -		;;
   913         -	st2000)
   914         -		basic_machine=m68k-tandem
   915         -		;;
   916         -	stratus)
   917         -		basic_machine=i860-stratus
   918         -		os=-sysv4
   919         -		;;
   920         -	sun2)
   921         -		basic_machine=m68000-sun
   922         -		;;
   923         -	sun2os3)
   924         -		basic_machine=m68000-sun
   925         -		os=-sunos3
   926         -		;;
   927         -	sun2os4)
   928         -		basic_machine=m68000-sun
   929         -		os=-sunos4
   930         -		;;
   931         -	sun3os3)
   932         -		basic_machine=m68k-sun
   933         -		os=-sunos3
   934         -		;;
   935         -	sun3os4)
   936         -		basic_machine=m68k-sun
   937         -		os=-sunos4
   938         -		;;
   939         -	sun4os3)
   940         -		basic_machine=sparc-sun
   941         -		os=-sunos3
   942         -		;;
   943         -	sun4os4)
   944         -		basic_machine=sparc-sun
   945         -		os=-sunos4
   946         -		;;
   947         -	sun4sol2)
   948         -		basic_machine=sparc-sun
   949         -		os=-solaris2
   950         -		;;
   951         -	sun3 | sun3-*)
   952         -		basic_machine=m68k-sun
   953         -		;;
   954         -	sun4)
   955         -		basic_machine=sparc-sun
   956         -		;;
   957         -	sun386 | sun386i | roadrunner)
   958         -		basic_machine=i386-sun
   959         -		;;
   960         -	sv1)
   961         -		basic_machine=sv1-cray
   962         -		os=-unicos
   963         -		;;
   964         -	symmetry)
   965         -		basic_machine=i386-sequent
   966         -		os=-dynix
   967         -		;;
   968         -	t3e)
   969         -		basic_machine=alphaev5-cray
   970         -		os=-unicos
   971         -		;;
   972         -	t90)
   973         -		basic_machine=t90-cray
   974         -		os=-unicos
   975         -		;;
   976         -	tic54x | c54x*)
   977         -		basic_machine=tic54x-unknown
   978         -		os=-coff
   979         -		;;
   980         -	tic55x | c55x*)
   981         -		basic_machine=tic55x-unknown
   982         -		os=-coff
   983         -		;;
   984         -	tic6x | c6x*)
   985         -		basic_machine=tic6x-unknown
   986         -		os=-coff
   987         -		;;
   988         -	tx39)
   989         -		basic_machine=mipstx39-unknown
   990         -		;;
   991         -	tx39el)
   992         -		basic_machine=mipstx39el-unknown
   993         -		;;
   994         -	toad1)
   995         -		basic_machine=pdp10-xkl
   996         -		os=-tops20
   997         -		;;
   998         -	tower | tower-32)
   999         -		basic_machine=m68k-ncr
  1000         -		;;
  1001         -	tpf)
  1002         -		basic_machine=s390x-ibm
  1003         -		os=-tpf
  1004         -		;;
  1005         -	udi29k)
  1006         -		basic_machine=a29k-amd
  1007         -		os=-udi
  1008         -		;;
  1009         -	ultra3)
  1010         -		basic_machine=a29k-nyu
  1011         -		os=-sym1
  1012         -		;;
  1013         -	v810 | necv810)
  1014         -		basic_machine=v810-nec
  1015         -		os=-none
  1016         -		;;
  1017         -	vaxv)
  1018         -		basic_machine=vax-dec
  1019         -		os=-sysv
  1020         -		;;
  1021         -	vms)
  1022         -		basic_machine=vax-dec
  1023         -		os=-vms
  1024         -		;;
  1025         -	vpp*|vx|vx-*)
  1026         -		basic_machine=f301-fujitsu
  1027         -		;;
  1028         -	vxworks960)
  1029         -		basic_machine=i960-wrs
  1030         -		os=-vxworks
  1031         -		;;
  1032         -	vxworks68)
  1033         -		basic_machine=m68k-wrs
  1034         -		os=-vxworks
  1035         -		;;
  1036         -	vxworks29k)
  1037         -		basic_machine=a29k-wrs
  1038         -		os=-vxworks
  1039         -		;;
  1040         -	w65*)
  1041         -		basic_machine=w65-wdc
  1042         -		os=-none
  1043         -		;;
  1044         -	w89k-*)
  1045         -		basic_machine=hppa1.1-winbond
  1046         -		os=-proelf
  1047         -		;;
  1048         -	xbox)
  1049         -		basic_machine=i686-pc
  1050         -		os=-mingw32
  1051         -		;;
  1052         -	xps | xps100)
  1053         -		basic_machine=xps100-honeywell
  1054         -		;;
  1055         -	ymp)
  1056         -		basic_machine=ymp-cray
  1057         -		os=-unicos
  1058         -		;;
  1059         -	z8k-*-coff)
  1060         -		basic_machine=z8k-unknown
  1061         -		os=-sim
  1062         -		;;
  1063         -	none)
  1064         -		basic_machine=none-none
  1065         -		os=-none
  1066         -		;;
  1067         -
  1068         -# Here we handle the default manufacturer of certain CPU types.  It is in
  1069         -# some cases the only manufacturer, in others, it is the most popular.
  1070         -	w89k)
  1071         -		basic_machine=hppa1.1-winbond
  1072         -		;;
  1073         -	op50n)
  1074         -		basic_machine=hppa1.1-oki
  1075         -		;;
  1076         -	op60c)
  1077         -		basic_machine=hppa1.1-oki
  1078         -		;;
  1079         -	romp)
  1080         -		basic_machine=romp-ibm
  1081         -		;;
  1082         -	mmix)
  1083         -		basic_machine=mmix-knuth
  1084         -		;;
  1085         -	rs6000)
  1086         -		basic_machine=rs6000-ibm
  1087         -		;;
  1088         -	vax)
  1089         -		basic_machine=vax-dec
  1090         -		;;
  1091         -	pdp10)
  1092         -		# there are many clones, so DEC is not a safe bet
  1093         -		basic_machine=pdp10-unknown
  1094         -		;;
  1095         -	pdp11)
  1096         -		basic_machine=pdp11-dec
  1097         -		;;
  1098         -	we32k)
  1099         -		basic_machine=we32k-att
  1100         -		;;
  1101         -	sh[1234] | sh[24]a | sh[34]eb | sh[1234]le | sh[23]ele)
  1102         -		basic_machine=sh-unknown
  1103         -		;;
  1104         -	sparc | sparcv8 | sparcv9 | sparcv9b)
  1105         -		basic_machine=sparc-sun
  1106         -		;;
  1107         -	cydra)
  1108         -		basic_machine=cydra-cydrome
  1109         -		;;
  1110         -	orion)
  1111         -		basic_machine=orion-highlevel
  1112         -		;;
  1113         -	orion105)
  1114         -		basic_machine=clipper-highlevel
  1115         -		;;
  1116         -	mac | mpw | mac-mpw)
  1117         -		basic_machine=m68k-apple
  1118         -		;;
  1119         -	pmac | pmac-mpw)
  1120         -		basic_machine=powerpc-apple
  1121         -		;;
  1122         -	*-unknown)
  1123         -		# Make sure to match an already-canonicalized machine name.
  1124         -		;;
  1125         -	*)
  1126         -		echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
  1127         -		exit 1
  1128         -		;;
  1129         -esac
  1130         -
  1131         -# Here we canonicalize certain aliases for manufacturers.
  1132         -case $basic_machine in
  1133         -	*-digital*)
  1134         -		basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
  1135         -		;;
  1136         -	*-commodore*)
  1137         -		basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
  1138         -		;;
  1139         -	*)
  1140         -		;;
  1141         -esac
  1142         -
  1143         -# Decode manufacturer-specific aliases for certain operating systems.
  1144         -
  1145         -if [ x"$os" != x"" ]
  1146         -then
  1147         -case $os in
  1148         -        # First match some system type aliases
  1149         -        # that might get confused with valid system types.
  1150         -	# -solaris* is a basic system type, with this one exception.
  1151         -	-solaris1 | -solaris1.*)
  1152         -		os=`echo $os | sed -e 's|solaris1|sunos4|'`
  1153         -		;;
  1154         -	-solaris)
  1155         -		os=-solaris2
  1156         -		;;
  1157         -	-svr4*)
  1158         -		os=-sysv4
  1159         -		;;
  1160         -	-unixware*)
  1161         -		os=-sysv4.2uw
  1162         -		;;
  1163         -	-gnu/linux*)
  1164         -		os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
  1165         -		;;
  1166         -	# First accept the basic system types.
  1167         -	# The portable systems comes first.
  1168         -	# Each alternative MUST END IN A *, to match a version number.
  1169         -	# -sysv* is not here because it comes later, after sysvr4.
  1170         -	-gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
  1171         -	      | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
  1172         -	      | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
  1173         -	      | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
  1174         -	      | -aos* \
  1175         -	      | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
  1176         -	      | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
  1177         -	      | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
  1178         -	      | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
  1179         -	      | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
  1180         -	      | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
  1181         -	      | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
  1182         -	      | -chorusos* | -chorusrdb* \
  1183         -	      | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
  1184         -	      | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
  1185         -	      | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
  1186         -	      | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
  1187         -	      | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
  1188         -	      | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
  1189         -	      | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
  1190         -	      | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly* \
  1191         -	      | -skyos* | -haiku*)
  1192         -	# Remember, each alternative MUST END IN *, to match a version number.
  1193         -		;;
  1194         -	-qnx*)
  1195         -		case $basic_machine in
  1196         -		    x86-* | i*86-*)
  1197         -			;;
  1198         -		    *)
  1199         -			os=-nto$os
  1200         -			;;
  1201         -		esac
  1202         -		;;
  1203         -	-nto-qnx*)
  1204         -		;;
  1205         -	-nto*)
  1206         -		os=`echo $os | sed -e 's|nto|nto-qnx|'`
  1207         -		;;
  1208         -	-sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
  1209         -	      | -windows* | -osx | -abug | -netware* | -os9* | -beos* | -haiku* \
  1210         -	      | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
  1211         -		;;
  1212         -	-mac*)
  1213         -		os=`echo $os | sed -e 's|mac|macos|'`
  1214         -		;;
  1215         -	-linux-dietlibc)
  1216         -		os=-linux-dietlibc
  1217         -		;;
  1218         -	-linux*)
  1219         -		os=`echo $os | sed -e 's|linux|linux-gnu|'`
  1220         -		;;
  1221         -	-sunos5*)
  1222         -		os=`echo $os | sed -e 's|sunos5|solaris2|'`
  1223         -		;;
  1224         -	-sunos6*)
  1225         -		os=`echo $os | sed -e 's|sunos6|solaris3|'`
  1226         -		;;
  1227         -	-opened*)
  1228         -		os=-openedition
  1229         -		;;
  1230         -        -os400*)
  1231         -		os=-os400
  1232         -		;;
  1233         -	-wince*)
  1234         -		os=-wince
  1235         -		;;
  1236         -	-osfrose*)
  1237         -		os=-osfrose
  1238         -		;;
  1239         -	-osf*)
  1240         -		os=-osf
  1241         -		;;
  1242         -	-utek*)
  1243         -		os=-bsd
  1244         -		;;
  1245         -	-dynix*)
  1246         -		os=-bsd
  1247         -		;;
  1248         -	-acis*)
  1249         -		os=-aos
  1250         -		;;
  1251         -	-atheos*)
  1252         -		os=-atheos
  1253         -		;;
  1254         -	-syllable*)
  1255         -		os=-syllable
  1256         -		;;
  1257         -	-386bsd)
  1258         -		os=-bsd
  1259         -		;;
  1260         -	-ctix* | -uts*)
  1261         -		os=-sysv
  1262         -		;;
  1263         -	-nova*)
  1264         -		os=-rtmk-nova
  1265         -		;;
  1266         -	-ns2 )
  1267         -		os=-nextstep2
  1268         -		;;
  1269         -	-nsk*)
  1270         -		os=-nsk
  1271         -		;;
  1272         -	# Preserve the version number of sinix5.
  1273         -	-sinix5.*)
  1274         -		os=`echo $os | sed -e 's|sinix|sysv|'`
  1275         -		;;
  1276         -	-sinix*)
  1277         -		os=-sysv4
  1278         -		;;
  1279         -        -tpf*)
  1280         -		os=-tpf
  1281         -		;;
  1282         -	-triton*)
  1283         -		os=-sysv3
  1284         -		;;
  1285         -	-oss*)
  1286         -		os=-sysv3
  1287         -		;;
  1288         -	-svr4)
  1289         -		os=-sysv4
  1290         -		;;
  1291         -	-svr3)
  1292         -		os=-sysv3
  1293         -		;;
  1294         -	-sysvr4)
  1295         -		os=-sysv4
  1296         -		;;
  1297         -	# This must come after -sysvr4.
  1298         -	-sysv*)
  1299         -		;;
  1300         -	-ose*)
  1301         -		os=-ose
  1302         -		;;
  1303         -	-es1800*)
  1304         -		os=-ose
  1305         -		;;
  1306         -	-xenix)
  1307         -		os=-xenix
  1308         -		;;
  1309         -	-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
  1310         -		os=-mint
  1311         -		;;
  1312         -	-aros*)
  1313         -		os=-aros
  1314         -		;;
  1315         -	-kaos*)
  1316         -		os=-kaos
  1317         -		;;
  1318         -	-zvmoe)
  1319         -		os=-zvmoe
  1320         -		;;
  1321         -	-none)
  1322         -		;;
  1323         -	*)
  1324         -		# Get rid of the `-' at the beginning of $os.
  1325         -		os=`echo $os | sed 's/[^-]*-//'`
  1326         -		echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
  1327         -		exit 1
  1328         -		;;
  1329         -esac
  1330         -else
  1331         -
  1332         -# Here we handle the default operating systems that come with various machines.
  1333         -# The value should be what the vendor currently ships out the door with their
  1334         -# machine or put another way, the most popular os provided with the machine.
  1335         -
  1336         -# Note that if you're going to try to match "-MANUFACTURER" here (say,
  1337         -# "-sun"), then you have to tell the case statement up towards the top
  1338         -# that MANUFACTURER isn't an operating system.  Otherwise, code above
  1339         -# will signal an error saying that MANUFACTURER isn't an operating
  1340         -# system, and we'll never get to this point.
  1341         -
  1342         -case $basic_machine in
  1343         -	*-acorn)
  1344         -		os=-riscix1.2
  1345         -		;;
  1346         -	arm*-rebel)
  1347         -		os=-linux
  1348         -		;;
  1349         -	arm*-semi)
  1350         -		os=-aout
  1351         -		;;
  1352         -    c4x-* | tic4x-*)
  1353         -        os=-coff
  1354         -        ;;
  1355         -	# This must come before the *-dec entry.
  1356         -	pdp10-*)
  1357         -		os=-tops20
  1358         -		;;
  1359         -	pdp11-*)
  1360         -		os=-none
  1361         -		;;
  1362         -	*-dec | vax-*)
  1363         -		os=-ultrix4.2
  1364         -		;;
  1365         -	m68*-apollo)
  1366         -		os=-domain
  1367         -		;;
  1368         -	i386-sun)
  1369         -		os=-sunos4.0.2
  1370         -		;;
  1371         -	m68000-sun)
  1372         -		os=-sunos3
  1373         -		# This also exists in the configure program, but was not the
  1374         -		# default.
  1375         -		# os=-sunos4
  1376         -		;;
  1377         -	m68*-cisco)
  1378         -		os=-aout
  1379         -		;;
  1380         -	mips*-cisco)
  1381         -		os=-elf
  1382         -		;;
  1383         -	mips*-*)
  1384         -		os=-elf
  1385         -		;;
  1386         -	or32-*)
  1387         -		os=-coff
  1388         -		;;
  1389         -	*-tti)	# must be before sparc entry or we get the wrong os.
  1390         -		os=-sysv3
  1391         -		;;
  1392         -	sparc-* | *-sun)
  1393         -		os=-sunos4.1.1
  1394         -		;;
  1395         -	*-be)
  1396         -		os=-beos
  1397         -		;;
  1398         -	*-haiku)
  1399         -		os=-haiku
  1400         -		;;
  1401         -	*-ibm)
  1402         -		os=-aix
  1403         -		;;
  1404         -    	*-knuth)
  1405         -		os=-mmixware
  1406         -		;;
  1407         -	*-wec)
  1408         -		os=-proelf
  1409         -		;;
  1410         -	*-winbond)
  1411         -		os=-proelf
  1412         -		;;
  1413         -	*-oki)
  1414         -		os=-proelf
  1415         -		;;
  1416         -	*-hp)
  1417         -		os=-hpux
  1418         -		;;
  1419         -	*-hitachi)
  1420         -		os=-hiux
  1421         -		;;
  1422         -	i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
  1423         -		os=-sysv
  1424         -		;;
  1425         -	*-cbm)
  1426         -		os=-amigaos
  1427         -		;;
  1428         -	*-dg)
  1429         -		os=-dgux
  1430         -		;;
  1431         -	*-dolphin)
  1432         -		os=-sysv3
  1433         -		;;
  1434         -	m68k-ccur)
  1435         -		os=-rtu
  1436         -		;;
  1437         -	m88k-omron*)
  1438         -		os=-luna
  1439         -		;;
  1440         -	*-next )
  1441         -		os=-nextstep
  1442         -		;;
  1443         -	*-sequent)
  1444         -		os=-ptx
  1445         -		;;
  1446         -	*-crds)
  1447         -		os=-unos
  1448         -		;;
  1449         -	*-ns)
  1450         -		os=-genix
  1451         -		;;
  1452         -	i370-*)
  1453         -		os=-mvs
  1454         -		;;
  1455         -	*-next)
  1456         -		os=-nextstep3
  1457         -		;;
  1458         -	*-gould)
  1459         -		os=-sysv
  1460         -		;;
  1461         -	*-highlevel)
  1462         -		os=-bsd
  1463         -		;;
  1464         -	*-encore)
  1465         -		os=-bsd
  1466         -		;;
  1467         -	*-sgi)
  1468         -		os=-irix
  1469         -		;;
  1470         -	*-siemens)
  1471         -		os=-sysv4
  1472         -		;;
  1473         -	*-masscomp)
  1474         -		os=-rtu
  1475         -		;;
  1476         -	f30[01]-fujitsu | f700-fujitsu)
  1477         -		os=-uxpv
  1478         -		;;
  1479         -	*-rom68k)
  1480         -		os=-coff
  1481         -		;;
  1482         -	*-*bug)
  1483         -		os=-coff
  1484         -		;;
  1485         -	*-apple)
  1486         -		os=-macos
  1487         -		;;
  1488         -	*-atari*)
  1489         -		os=-mint
  1490         -		;;
  1491         -	*)
  1492         -		os=-none
  1493         -		;;
  1494         -esac
  1495         -fi
  1496         -
  1497         -# Here we handle the case where we know the os, and the CPU type, but not the
  1498         -# manufacturer.  We pick the logical manufacturer.
  1499         -vendor=unknown
  1500         -case $basic_machine in
  1501         -	*-unknown)
  1502         -		case $os in
  1503         -			-riscix*)
  1504         -				vendor=acorn
  1505         -				;;
  1506         -			-sunos*)
  1507         -				vendor=sun
  1508         -				;;
  1509         -			-aix*)
  1510         -				vendor=ibm
  1511         -				;;
  1512         -			-beos*)
  1513         -				vendor=be
  1514         -				;;
  1515         -			-hpux*)
  1516         -				vendor=hp
  1517         -				;;
  1518         -			-mpeix*)
  1519         -				vendor=hp
  1520         -				;;
  1521         -			-hiux*)
  1522         -				vendor=hitachi
  1523         -				;;
  1524         -			-unos*)
  1525         -				vendor=crds
  1526         -				;;
  1527         -			-dgux*)
  1528         -				vendor=dg
  1529         -				;;
  1530         -			-luna*)
  1531         -				vendor=omron
  1532         -				;;
  1533         -			-genix*)
  1534         -				vendor=ns
  1535         -				;;
  1536         -			-mvs* | -opened*)
  1537         -				vendor=ibm
  1538         -				;;
  1539         -			-os400*)
  1540         -				vendor=ibm
  1541         -				;;
  1542         -			-ptx*)
  1543         -				vendor=sequent
  1544         -				;;
  1545         -			-tpf*)
  1546         -				vendor=ibm
  1547         -				;;
  1548         -			-vxsim* | -vxworks* | -windiss*)
  1549         -				vendor=wrs
  1550         -				;;
  1551         -			-aux*)
  1552         -				vendor=apple
  1553         -				;;
  1554         -			-hms*)
  1555         -				vendor=hitachi
  1556         -				;;
  1557         -			-mpw* | -macos*)
  1558         -				vendor=apple
  1559         -				;;
  1560         -			-*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
  1561         -				vendor=atari
  1562         -				;;
  1563         -			-vos*)
  1564         -				vendor=stratus
  1565         -				;;
  1566         -		esac
  1567         -		basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
  1568         -		;;
  1569         -esac
  1570         -
  1571         -echo $basic_machine$os
  1572         -exit
  1573         -
  1574         -# Local variables:
  1575         -# eval: (add-hook 'write-file-hooks 'time-stamp)
  1576         -# time-stamp-start: "timestamp='"
  1577         -# time-stamp-format: "%:y-%02m-%02d"
  1578         -# time-stamp-end: "'"
  1579         -# End:

Deleted kitdll/buildsrc/kitdll-0.0/configure.ac version [ae66df7b9e].

     1         -dnl What are we running
     2         -AC_INIT(kitdll, 0.0)
     3         -
     4         -dnl Checks for programs.
     5         -AC_PROG_CC
     6         -AC_PROG_MAKE_SET
     7         -AC_PROG_INSTALL
     8         -AC_AIX
     9         -AC_GNU_SOURCE
    10         -
    11         -dnl Determine system information
    12         -DC_CHK_OS_INFO
    13         -
    14         -dnl Find the appropriate libraries to link to
    15         -AC_SEARCH_LIBS(acos, m,, [ AC_MSG_WARN([Couldn't find acos (normally in libm)!]) ])
    16         -AC_SEARCH_LIBS(dlsym, dl,, [ AC_MSG_WARN([Couldn't find dlsym (normally in libdl)!]) ])
    17         -
    18         -dnl Determine how to create a shared object
    19         -DC_GET_SHOBJFLAGS
    20         -
    21         -dnl Find the appropriate Tcl headers and libraries
    22         -DC_DO_TCL
    23         -
    24         -dnl Find required libs
    25         -DC_FIND_TCLKIT_LIBS
    26         -
    27         -dnl Check for Tcl features
    28         -SAVE_LIBS="${LIBS}"
    29         -LIBS="${ARCHS} ${LIBS}"
    30         -dnl Check for the ability to get the current system encoding
    31         -AC_CHECK_FUNCS(Tcl_GetEncodingNameFromEnvironment Tcl_SetSystemEncoding)
    32         -LIBS="${SAVE_LIBS}"
    33         -
    34         -dnl Find extra objects we need to link as a part of "libtclkit"
    35         -AC_SUBST(EXTRA_OBJS)
    36         -
    37         -dnl Check for optional headers
    38         -AC_HEADER_STDC
    39         -AC_CHECK_HEADERS(unistd.h string.h strings.h)
    40         -
    41         -dnl Check for optional system calls
    42         -AC_CHECK_FUNCS(readlink)
    43         -
    44         -dnl Check for acceptable dladdr so we can find ourselves on UNIX
    45         -DC_CHECK_FOR_ACCEPTABLE_DLADDR
    46         -
    47         -dnl Produce output
    48         -AC_OUTPUT(Makefile)

Deleted kitdll/buildsrc/kitdll-0.0/install-sh version [82b003ed45].

     1         -#!/bin/sh
     2         -# install - install a program, script, or datafile
     3         -
     4         -scriptversion=2005-05-14.22
     5         -
     6         -# This originates from X11R5 (mit/util/scripts/install.sh), which was
     7         -# later released in X11R6 (xc/config/util/install.sh) with the
     8         -# following copyright and license.
     9         -#
    10         -# Copyright (C) 1994 X Consortium
    11         -#
    12         -# Permission is hereby granted, free of charge, to any person obtaining a copy
    13         -# of this software and associated documentation files (the "Software"), to
    14         -# deal in the Software without restriction, including without limitation the
    15         -# rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
    16         -# sell copies of the Software, and to permit persons to whom the Software is
    17         -# furnished to do so, subject to the following conditions:
    18         -#
    19         -# The above copyright notice and this permission notice shall be included in
    20         -# all copies or substantial portions of the Software.
    21         -#
    22         -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
    23         -# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
    24         -# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE
    25         -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN
    26         -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC-
    27         -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
    28         -#
    29         -# Except as contained in this notice, the name of the X Consortium shall not
    30         -# be used in advertising or otherwise to promote the sale, use or other deal-
    31         -# ings in this Software without prior written authorization from the X Consor-
    32         -# tium.
    33         -#
    34         -#
    35         -# FSF changes to this file are in the public domain.
    36         -#
    37         -# Calling this script install-sh is preferred over install.sh, to prevent
    38         -# `make' implicit rules from creating a file called install from it
    39         -# when there is no Makefile.
    40         -#
    41         -# This script is compatible with the BSD install script, but was written
    42         -# from scratch.  It can only install one file at a time, a restriction
    43         -# shared with many OS's install programs.
    44         -
    45         -# set DOITPROG to echo to test this script
    46         -
    47         -# Don't use :- since 4.3BSD and earlier shells don't like it.
    48         -doit="${DOITPROG-}"
    49         -
    50         -# put in absolute paths if you don't have them in your path; or use env. vars.
    51         -
    52         -mvprog="${MVPROG-mv}"
    53         -cpprog="${CPPROG-cp}"
    54         -chmodprog="${CHMODPROG-chmod}"
    55         -chownprog="${CHOWNPROG-chown}"
    56         -chgrpprog="${CHGRPPROG-chgrp}"
    57         -stripprog="${STRIPPROG-strip}"
    58         -rmprog="${RMPROG-rm}"
    59         -mkdirprog="${MKDIRPROG-mkdir}"
    60         -
    61         -chmodcmd="$chmodprog 0755"
    62         -chowncmd=
    63         -chgrpcmd=
    64         -stripcmd=
    65         -rmcmd="$rmprog -f"
    66         -mvcmd="$mvprog"
    67         -src=
    68         -dst=
    69         -dir_arg=
    70         -dstarg=
    71         -no_target_directory=
    72         -
    73         -usage="Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE
    74         -   or: $0 [OPTION]... SRCFILES... DIRECTORY
    75         -   or: $0 [OPTION]... -t DIRECTORY SRCFILES...
    76         -   or: $0 [OPTION]... -d DIRECTORIES...
    77         -
    78         -In the 1st form, copy SRCFILE to DSTFILE.
    79         -In the 2nd and 3rd, copy all SRCFILES to DIRECTORY.
    80         -In the 4th, create DIRECTORIES.
    81         -
    82         -Options:
    83         --c         (ignored)
    84         --d         create directories instead of installing files.
    85         --g GROUP   $chgrpprog installed files to GROUP.
    86         --m MODE    $chmodprog installed files to MODE.
    87         --o USER    $chownprog installed files to USER.
    88         --s         $stripprog installed files.
    89         --t DIRECTORY  install into DIRECTORY.
    90         --T         report an error if DSTFILE is a directory.
    91         ---help     display this help and exit.
    92         ---version  display version info and exit.
    93         -
    94         -Environment variables override the default commands:
    95         -  CHGRPPROG CHMODPROG CHOWNPROG CPPROG MKDIRPROG MVPROG RMPROG STRIPPROG
    96         -"
    97         -
    98         -while test -n "$1"; do
    99         -  case $1 in
   100         -    -c) shift
   101         -        continue;;
   102         -
   103         -    -d) dir_arg=true
   104         -        shift
   105         -        continue;;
   106         -
   107         -    -g) chgrpcmd="$chgrpprog $2"
   108         -        shift
   109         -        shift
   110         -        continue;;
   111         -
   112         -    --help) echo "$usage"; exit $?;;
   113         -
   114         -    -m) chmodcmd="$chmodprog $2"
   115         -        shift
   116         -        shift
   117         -        continue;;
   118         -
   119         -    -o) chowncmd="$chownprog $2"
   120         -        shift
   121         -        shift
   122         -        continue;;
   123         -
   124         -    -s) stripcmd=$stripprog
   125         -        shift
   126         -        continue;;
   127         -
   128         -    -t) dstarg=$2
   129         -	shift
   130         -	shift
   131         -	continue;;
   132         -
   133         -    -T) no_target_directory=true
   134         -	shift
   135         -	continue;;
   136         -
   137         -    --version) echo "$0 $scriptversion"; exit $?;;
   138         -
   139         -    *)  # When -d is used, all remaining arguments are directories to create.
   140         -	# When -t is used, the destination is already specified.
   141         -	test -n "$dir_arg$dstarg" && break
   142         -        # Otherwise, the last argument is the destination.  Remove it from $@.
   143         -	for arg
   144         -	do
   145         -          if test -n "$dstarg"; then
   146         -	    # $@ is not empty: it contains at least $arg.
   147         -	    set fnord "$@" "$dstarg"
   148         -	    shift # fnord
   149         -	  fi
   150         -	  shift # arg
   151         -	  dstarg=$arg
   152         -	done
   153         -	break;;
   154         -  esac
   155         -done
   156         -
   157         -if test -z "$1"; then
   158         -  if test -z "$dir_arg"; then
   159         -    echo "$0: no input file specified." >&2
   160         -    exit 1
   161         -  fi
   162         -  # It's OK to call `install-sh -d' without argument.
   163         -  # This can happen when creating conditional directories.
   164         -  exit 0
   165         -fi
   166         -
   167         -for src
   168         -do
   169         -  # Protect names starting with `-'.
   170         -  case $src in
   171         -    -*) src=./$src ;;
   172         -  esac
   173         -
   174         -  if test -n "$dir_arg"; then
   175         -    dst=$src
   176         -    src=
   177         -
   178         -    if test -d "$dst"; then
   179         -      mkdircmd=:
   180         -      chmodcmd=
   181         -    else
   182         -      mkdircmd=$mkdirprog
   183         -    fi
   184         -  else
   185         -    # Waiting for this to be detected by the "$cpprog $src $dsttmp" command
   186         -    # might cause directories to be created, which would be especially bad
   187         -    # if $src (and thus $dsttmp) contains '*'.
   188         -    if test ! -f "$src" && test ! -d "$src"; then
   189         -      echo "$0: $src does not exist." >&2
   190         -      exit 1
   191         -    fi
   192         -
   193         -    if test -z "$dstarg"; then
   194         -      echo "$0: no destination specified." >&2
   195         -      exit 1
   196         -    fi
   197         -
   198         -    dst=$dstarg
   199         -    # Protect names starting with `-'.
   200         -    case $dst in
   201         -      -*) dst=./$dst ;;
   202         -    esac
   203         -
   204         -    # If destination is a directory, append the input filename; won't work
   205         -    # if double slashes aren't ignored.
   206         -    if test -d "$dst"; then
   207         -      if test -n "$no_target_directory"; then
   208         -	echo "$0: $dstarg: Is a directory" >&2
   209         -	exit 1
   210         -      fi
   211         -      dst=$dst/`basename "$src"`
   212         -    fi
   213         -  fi
   214         -
   215         -  # This sed command emulates the dirname command.
   216         -  dstdir=`echo "$dst" | sed -e 's,/*$,,;s,[^/]*$,,;s,/*$,,;s,^$,.,'`
   217         -
   218         -  # Make sure that the destination directory exists.
   219         -
   220         -  # Skip lots of stat calls in the usual case.
   221         -  if test ! -d "$dstdir"; then
   222         -    defaultIFS='
   223         -	 '
   224         -    IFS="${IFS-$defaultIFS}"
   225         -
   226         -    oIFS=$IFS
   227         -    # Some sh's can't handle IFS=/ for some reason.
   228         -    IFS='%'
   229         -    set x `echo "$dstdir" | sed -e 's@/@%@g' -e 's@^%@/@'`
   230         -    shift
   231         -    IFS=$oIFS
   232         -
   233         -    pathcomp=
   234         -
   235         -    while test $# -ne 0 ; do
   236         -      pathcomp=$pathcomp$1
   237         -      shift
   238         -      if test ! -d "$pathcomp"; then
   239         -        $mkdirprog "$pathcomp"
   240         -	# mkdir can fail with a `File exist' error in case several
   241         -	# install-sh are creating the directory concurrently.  This
   242         -	# is OK.
   243         -	test -d "$pathcomp" || exit
   244         -      fi
   245         -      pathcomp=$pathcomp/
   246         -    done
   247         -  fi
   248         -
   249         -  if test -n "$dir_arg"; then
   250         -    $doit $mkdircmd "$dst" \
   251         -      && { test -z "$chowncmd" || $doit $chowncmd "$dst"; } \
   252         -      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } \
   253         -      && { test -z "$stripcmd" || $doit $stripcmd "$dst"; } \
   254         -      && { test -z "$chmodcmd" || $doit $chmodcmd "$dst"; }
   255         -
   256         -  else
   257         -    dstfile=`basename "$dst"`
   258         -
   259         -    # Make a couple of temp file names in the proper directory.
   260         -    dsttmp=$dstdir/_inst.$$_
   261         -    rmtmp=$dstdir/_rm.$$_
   262         -
   263         -    # Trap to clean up those temp files at exit.
   264         -    trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0
   265         -    trap '(exit $?); exit' 1 2 13 15
   266         -
   267         -    # Copy the file name to the temp name.
   268         -    $doit $cpprog "$src" "$dsttmp" &&
   269         -
   270         -    # and set any options; do chmod last to preserve setuid bits.
   271         -    #
   272         -    # If any of these fail, we abort the whole thing.  If we want to
   273         -    # ignore errors from any of these, just make sure not to ignore
   274         -    # errors from the above "$doit $cpprog $src $dsttmp" command.
   275         -    #
   276         -    { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } \
   277         -      && { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } \
   278         -      && { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } \
   279         -      && { test -z "$chmodcmd" || $doit $chmodcmd "$dsttmp"; } &&
   280         -
   281         -    # Now rename the file to the real destination.
   282         -    { $doit $mvcmd -f "$dsttmp" "$dstdir/$dstfile" 2>/dev/null \
   283         -      || {
   284         -	   # The rename failed, perhaps because mv can't rename something else
   285         -	   # to itself, or perhaps because mv is so ancient that it does not
   286         -	   # support -f.
   287         -
   288         -	   # Now remove or move aside any old file at destination location.
   289         -	   # We try this two ways since rm can't unlink itself on some
   290         -	   # systems and the destination file might be busy for other
   291         -	   # reasons.  In this case, the final cleanup might fail but the new
   292         -	   # file should still install successfully.
   293         -	   {
   294         -	     if test -f "$dstdir/$dstfile"; then
   295         -	       $doit $rmcmd -f "$dstdir/$dstfile" 2>/dev/null \
   296         -	       || $doit $mvcmd -f "$dstdir/$dstfile" "$rmtmp" 2>/dev/null \
   297         -	       || {
   298         -		 echo "$0: cannot unlink or rename $dstdir/$dstfile" >&2
   299         -		 (exit 1); exit 1
   300         -	       }
   301         -	     else
   302         -	       :
   303         -	     fi
   304         -	   } &&
   305         -
   306         -	   # Now rename the file to the real destination.
   307         -	   $doit $mvcmd "$dsttmp" "$dstdir/$dstfile"
   308         -	 }
   309         -    }
   310         -  fi || { (exit 1); exit 1; }
   311         -done
   312         -
   313         -# The final little trick to "correctly" pass the exit status to the exit trap.
   314         -{
   315         -  (exit 0); exit 0
   316         -}
   317         -
   318         -# Local variables:
   319         -# eval: (add-hook 'write-file-hooks 'time-stamp)
   320         -# time-stamp-start: "scriptversion="
   321         -# time-stamp-format: "%:y-%02m-%02d.%02H"
   322         -# time-stamp-end: "$"
   323         -# End:

Deleted kitdll/buildsrc/kitdll-0.0/kitInit.c version [d13061de12].

     1         -#ifdef KIT_INCLUDES_TK
     2         -#  include <tk.h>
     3         -#else
     4         -#  include <tcl.h>
     5         -#endif /* KIT_INCLUDES_TK */
     6         -
     7         -#ifdef _WIN32
     8         -#  define WIN32_LEAN_AND_MEAN
     9         -#  include <windows.h>
    10         -#  undef WIN32_LEAN_AND_MEAN
    11         -#endif /* _WIN32 */
    12         -
    13         -#ifdef HAVE_STRING_H
    14         -#  include <string.h>
    15         -#endif
    16         -#ifdef HAVE_STRINGS_H
    17         -#  include <strings.h>
    18         -#endif
    19         -#ifdef HAVE_DLFCN_H
    20         -#  include <dlfcn.h>
    21         -#endif
    22         -
    23         -#include "tclInt.h"
    24         -
    25         -#if defined(HAVE_TCL_GETENCODINGNAMEFROMENVIRONMENT) && defined(HAVE_TCL_SETSYSTEMENCODING)
    26         -#  define TCLKIT_CAN_SET_ENCODING 1
    27         -#endif
    28         -#if 10 * TCL_MAJOR_VERSION + TCL_MINOR_VERSION < 85
    29         -#  define TCLKIT_REQUIRE_TCLEXECUTABLENAME 1
    30         -#endif
    31         -#if 10 * TCL_MAJOR_VERSION + TCL_MINOR_VERSION < 85
    32         -#  define KIT_INCLUDES_PWB 1
    33         -#endif
    34         -#if 10 * TCL_MAJOR_VERSION + TCL_MINOR_VERSION < 86
    35         -#  define KIT_INCLUDES_ZLIB 1
    36         -#endif
    37         -
    38         -Tcl_AppInitProc Vfs_Init, Rechan_Init;
    39         -Tcl_AppInitProc Vfs_kitdll_data_tcl_Init;
    40         -#ifdef KIT_INCLUDES_MK4TCL
    41         -Tcl_AppInitProc Mk4tcl_Init;
    42         -#endif
    43         -#ifdef KIT_INCLUDES_PWB
    44         -Tcl_AppInitProc Pwb_Init;
    45         -#endif
    46         -#ifdef KIT_INCLUDES_ZLIB
    47         -Tcl_AppInitProc Zlib_Init;
    48         -#endif
    49         -#ifdef TCL_THREADS
    50         -Tcl_AppInitProc Thread_Init;
    51         -#endif
    52         -#ifdef _WIN32
    53         -Tcl_AppInitProc Dde_Init, Registry_Init;
    54         -#endif
    55         -
    56         -/*
    57         - * This Tcl code is invoked whenever Tcl_Init() is called on an
    58         - * interpreter.  It should mount up the VFS and make everything ready for
    59         - * that interpreter to do its job.
    60         - */
    61         -static char *preInitCmd =
    62         -"proc tclKitInit {} {\n"
    63         -	"rename tclKitInit {}\n"
    64         -#ifdef KIT_INCLUDES_ZLIB
    65         -	"catch { load {} zlib }\n"
    66         -#endif
    67         -	"load {} tclkit::init\n"
    68         -	"load {} rechan\n"
    69         -	"load {} vfs\n"
    70         -	"load {} vfs_kitdll_data_tcl\n"
    71         -#ifdef KIT_INCLUDES_MK4TCL
    72         -	"catch { load {} Mk4tcl }\n"
    73         -#endif
    74         -#include "vfs_kitdll.tcl.h"
    75         -	"if {![file exists \"/.KITDLL_TCL/boot.tcl\"]} {\n"
    76         -		"vfs::kitdll::Mount tcl /.KITDLL_TCL\n"
    77         -		"set ::initVFS 1\n"
    78         -	"}\n"
    79         -	"set f [open \"/.KITDLL_TCL/boot.tcl\"]\n"
    80         -	"set s [read $f]\n"
    81         -	"close $f\n"
    82         -	"::tclkit::init::initInterp\n"
    83         -	"rename ::tclkit::init::initInterp {}\n"
    84         -	"uplevel #0 $s\n"
    85         -#if defined(KIT_INCLUDES_TK) && defined(KIT_TK_VERSION)
    86         -	"package ifneeded Tk " KIT_TK_VERSION " {\n"
    87         -		"load {} Tk\n"
    88         -	"}\n"
    89         -#endif
    90         -#ifdef _WIN32
    91         -	"catch {load {} dde}\n"
    92         -	"catch {load {} registry}\n"
    93         -#endif /* _WIN32 */
    94         -"}\n"
    95         -"tclKitInit";
    96         -
    97         -#ifdef HAVE_ACCEPTABLE_DLADDR
    98         -/* Symbol to resolve against dladdr() */
    99         -static void _tclkit_dummy_func(void) {
   100         -	return;
   101         -}
   102         -
   103         -int main(int argc, char **argv);
   104         -#endif /* HAVE_ACCEPTABLE_DLADDR */
   105         -
   106         -/*
   107         - * This function will return a pathname we can open() to treat as a VFS,
   108         - * hopefully
   109         - */
   110         -static char *find_tclkit_dll_path(void) {
   111         -#ifdef HAVE_ACCEPTABLE_DLADDR
   112         -	Dl_info syminfo;
   113         -	int dladdr_ret;
   114         -#endif /* HAVE_ACCEPTABLE_DLADDR */
   115         -#ifdef _WIN32
   116         -	TCHAR modulename[8192];
   117         -	DWORD gmfn_ret;
   118         -#endif /* _WIN32 */
   119         -
   120         -#ifdef HAVE_ACCEPTABLE_DLADDR
   121         -	dladdr_ret = dladdr(&_tclkit_dummy_func, &syminfo);
   122         -	if (dladdr_ret != 0) {
   123         -		if (syminfo.dli_fname && syminfo.dli_fname[0] != '\0') {
   124         -			return(strdup(syminfo.dli_fname));
   125         -		}
   126         -	}
   127         -#endif /* HAVE_ACCEPTABLE_DLADDR */
   128         -
   129         -#ifdef _WIN32
   130         -	gmfn_ret = GetModuleFileName(TclWinGetTclInstance(), modulename, sizeof(modulename) / sizeof(modulename[0]) - 1);
   131         -
   132         -	if (gmfn_ret != 0) {
   133         -		return(strdup(modulename));
   134         -	}
   135         -#endif /* _WIN32 */
   136         -
   137         -	return(NULL);
   138         -}
   139         -
   140         -/* SetExecName --
   141         -	
   142         -   Hack to get around Tcl bug 1224888.
   143         -*/
   144         -static void SetExecName(Tcl_Interp *interp, const char *path) {
   145         -#ifdef TCLKIT_REQUIRE_TCLEXECUTABLENAME
   146         -	tclExecutableName = strdup(path);
   147         -#endif  
   148         -	Tcl_FindExecutable(path);
   149         -
   150         -	return;
   151         -}
   152         -	
   153         -static void FindAndSetExecName(Tcl_Interp *interp) {
   154         -	int len = 0;
   155         -	Tcl_Obj *execNameObj;
   156         -	Tcl_Obj *lobjv[1];
   157         -#ifdef HAVE_READLINK
   158         -	ssize_t readlink_ret;
   159         -	char exe_buf[4096];
   160         -#endif /* HAVE_READLINK */
   161         -#ifdef HAVE_ACCEPTABLE_DLADDR
   162         -	Dl_info syminfo;
   163         -	int dladdr_ret;
   164         -#endif /* HAVE_ACCEPTABLE_DLADDR */
   165         -
   166         -#ifdef HAVE_READLINK
   167         -	if (Tcl_GetNameOfExecutable() == NULL) {
   168         -		readlink_ret = readlink("/proc/self/exe", exe_buf, sizeof(exe_buf) - 1);
   169         -		
   170         -		if (readlink_ret > 0 && readlink_ret < (sizeof(exe_buf) - 1)) {
   171         -			exe_buf[readlink_ret] = '\0';
   172         -			
   173         -			SetExecName(interp, exe_buf);
   174         -			
   175         -			return;
   176         -		}
   177         -	}
   178         -	
   179         -	if (Tcl_GetNameOfExecutable() == NULL) {
   180         -		readlink_ret = readlink("/proc/curproc/file", exe_buf, sizeof(exe_buf) - 1);												 
   181         -
   182         -		if (readlink_ret > 0 && readlink_ret < (sizeof(exe_buf) - 1)) {
   183         -			exe_buf[readlink_ret] = '\0';
   184         -
   185         -			if (strcmp(exe_buf, "unknown") != 0) {
   186         -				SetExecName(interp, exe_buf);
   187         -
   188         -				return;
   189         -			}
   190         -		}
   191         -	}
   192         -#endif /* HAVE_READLINK */
   193         -
   194         -#ifdef HAVE_ACCEPTABLE_DLADDR
   195         -	if (Tcl_GetNameOfExecutable() == NULL) {
   196         -		dladdr_ret = dladdr(&main, &syminfo);
   197         -		if (dladdr_ret != 0) {
   198         -			SetExecName(interp, syminfo.dli_fname);
   199         -		}
   200         -	}
   201         -#endif /* HAVE_ACCEPTABLE_DLADDR */
   202         -
   203         -	if (Tcl_GetNameOfExecutable() == NULL) {
   204         -		lobjv[0] = Tcl_GetVar2Ex(interp, "argv0", NULL, TCL_GLOBAL_ONLY);
   205         -		execNameObj = Tcl_FSJoinToPath(Tcl_FSGetCwd(interp), 1, lobjv);
   206         -
   207         -		SetExecName(interp, Tcl_GetStringFromObj(execNameObj, &len));
   208         -
   209         -		return;
   210         -	}
   211         -
   212         -	return;
   213         -}
   214         -
   215         -
   216         -/*
   217         - * This function exists to allow C code to initialize a particular
   218         - * interpreter.
   219         - */
   220         -static int tclkit_init_initinterp(ClientData cd, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
   221         -	char *kitdll_path;
   222         -#ifdef TCLKIT_CAN_SET_ENCODING
   223         -	Tcl_DString encodingName;
   224         -#endif /* TCLKIT_CAN_SET_ENCODING */
   225         -
   226         -
   227         -#ifdef _WIN32
   228         -	Tcl_SetVar(interp, "tcl_rcFileName", "~/tclkitrc.tcl", TCL_GLOBAL_ONLY);
   229         -#else   
   230         -	Tcl_SetVar(interp, "tcl_rcFileName", "~/.tclkitrc", TCL_GLOBAL_ONLY);
   231         -#endif
   232         -
   233         -	kitdll_path = find_tclkit_dll_path();
   234         -	if (kitdll_path != NULL) {
   235         -		Tcl_SetVar(interp, "tclKitFilename", kitdll_path, TCL_GLOBAL_ONLY);
   236         -
   237         -		free(kitdll_path);
   238         -	}
   239         -
   240         -	FindAndSetExecName(interp);
   241         -
   242         -#ifdef TCLKIT_CAN_SET_ENCODING
   243         -	/* Set the encoding from the Environment */
   244         -	Tcl_GetEncodingNameFromEnvironment(&encodingName);
   245         -	Tcl_SetSystemEncoding(NULL, Tcl_DStringValue(&encodingName));
   246         -	Tcl_SetVar(interp, "tclkit_system_encoding", Tcl_DStringValue(&encodingName), TCL_GLOBAL_ONLY);
   247         -	Tcl_DStringFree(&encodingName);
   248         -#endif  
   249         -
   250         -	return(TCL_OK);
   251         -}
   252         -
   253         -/*
   254         - * Create a package for initializing a particular interpreter.  This is
   255         - * our hook to have Tcl invoke C commands when creating an interpreter.
   256         - * The preInitCmd will load the package in the new interpreter and invoke
   257         - * this function.
   258         - */
   259         -int Tclkit_init_Init(Tcl_Interp *interp) {
   260         -	Tcl_Command tclCreatComm_ret;
   261         -	int tclPkgProv_ret;
   262         -
   263         -	tclCreatComm_ret = Tcl_CreateObjCommand(interp, "::tclkit::init::initInterp", tclkit_init_initinterp, NULL, NULL);
   264         -	if (!tclCreatComm_ret) {
   265         -		return(TCL_ERROR);
   266         -	}
   267         -
   268         -	tclPkgProv_ret = Tcl_PkgProvide(interp, "tclkit::init", "1.0");
   269         -
   270         -	return(tclPkgProv_ret);
   271         -}
   272         -
   273         -/*
   274         - * Initialize the Tcl system when we are loaded, that way Tcl functions
   275         - * are ready to be used when invoked.
   276         - */
   277         -void __attribute__((constructor)) _Tclkit_Init(void) {
   278         -	Tcl_StaticPackage(0, "tclkit::init", Tclkit_init_Init, NULL);
   279         -	Tcl_StaticPackage(0, "rechan", Rechan_Init, NULL);
   280         -	Tcl_StaticPackage(0, "vfs", Vfs_Init, NULL);
   281         -	Tcl_StaticPackage(0, "vfs_kitdll_data_tcl", Vfs_kitdll_data_tcl_Init, NULL);
   282         -#ifdef KIT_INCLUDES_ZLIB
   283         -        Tcl_StaticPackage(0, "zlib", Zlib_Init, NULL);
   284         -#endif
   285         -#ifdef KIT_INCLUDES_MK4TCL
   286         -	Tcl_StaticPackage(0, "Mk4tcl", Mk4tcl_Init, NULL);
   287         -#endif
   288         -#ifdef KIT_INCLUDES_PWB
   289         -	Tcl_StaticPackage(0, "pwb", Pwb_Init, NULL);
   290         -#endif
   291         -#ifdef TCL_THREADS
   292         -	Tcl_StaticPackage(0, "Thread", Thread_Init, NULL);
   293         -#endif
   294         -#ifdef _WIN32
   295         -	Tcl_StaticPackage(0, "dde", Dde_Init, NULL);
   296         -	Tcl_StaticPackage(0, "registry", Registry_Init, NULL);
   297         -#endif
   298         -#ifdef KIT_INCLUDES_TK
   299         -	Tcl_StaticPackage(0, "Tk", Tk_Init, Tk_SafeInit);
   300         -#endif  
   301         -
   302         -	TclSetPreInitScript(preInitCmd);
   303         -
   304         -	return;
   305         -}

Deleted kitdll/buildsrc/kitdll-0.0/pwb.c version [d3bbfc6849].

     1         -/* Written by Matt Newman and Jean-Claude Wippler, as part of Tclkit.
     2         - * March 2003 - placed in the public domain by the authors.
     3         - *
     4         - * Expose TclSetLibraryPath to scripts (in 8.4 only, 8.5 has "encoding dirs").
     5         - */
     6         -
     7         -#if 10 * TCL_MAJOR_VERSION + TCL_MINOR_VERSION < 85
     8         -
     9         -#include <tcl.h>
    10         -#include <tclInt.h> /* TclGetLibraryPath */
    11         -
    12         -void SetExecName(Tcl_Interp *);
    13         -
    14         -/* Support for encodings, from Vince Darley <vince.darley@eurobios.com> */
    15         -static int
    16         -LibraryPathObjCmd(dummy, interp, objc, objv)
    17         -     ClientData dummy;
    18         -     Tcl_Interp *interp;
    19         -     int objc;
    20         -     Tcl_Obj *CONST objv[];
    21         -{
    22         -     if (objc == 1) {
    23         -	Tcl_SetObjResult(interp, TclGetLibraryPath());
    24         -     } else {
    25         -	Tcl_Obj *path=Tcl_DuplicateObj(objv[1]);
    26         -	TclSetLibraryPath(Tcl_NewListObj(1,&path));
    27         -	TclpSetInitialEncodings();
    28         -     }
    29         -     return TCL_OK;
    30         -}
    31         -
    32         -/*
    33         - * Public Entrypoint
    34         - */
    35         -
    36         -DLLEXPORT int Pwb_Init(Tcl_Interp *interp)
    37         -{
    38         -    Tcl_CreateObjCommand(interp, "librarypath", LibraryPathObjCmd, 0, 0);
    39         -    return Tcl_PkgProvide( interp, "pwb", "1.1");
    40         -}
    41         -
    42         -#endif

Deleted kitdll/buildsrc/kitdll-0.0/rechan.c version [95be374a42].

     1         -/* Written by Matt Newman and Jean-Claude Wippler, as part of Tclkit.
     2         - * March 2003 - placed in the public domain by the authors.
     3         - *
     4         - * Reflecting channel interface
     5         - */
     6         -
     7         -#include <tcl.h>
     8         -
     9         -#ifndef TCL_DECLARE_MUTEX
    10         -#define TCL_DECLARE_MUTEX(v)
    11         -#define Tcl_MutexLock(v)
    12         -#define Tcl_MutexUnlock(v)
    13         -#endif
    14         -
    15         -  static int mkChanSeq = 0;
    16         -  TCL_DECLARE_MUTEX(rechanMutex)
    17         -
    18         -/* Uncomment for Linux or other non-Solaris OS's for memcpy declaration */
    19         -#include <memory.h>
    20         -
    21         -/* Uncomment for Solaris (and comment above) for memcpy declaration */
    22         -/* #include <string.h> */
    23         -
    24         -#ifndef EINVAL
    25         -#define EINVAL 9
    26         -#endif
    27         -
    28         -typedef struct
    29         -{
    30         -  Tcl_Channel _chan;
    31         -  int _validMask;
    32         -  int _watchMask;
    33         -  Tcl_Interp* _interp;
    34         -  Tcl_Obj* _context;
    35         -  Tcl_Obj* _seek;
    36         -  Tcl_Obj* _read;
    37         -  Tcl_Obj* _write;
    38         -  Tcl_Obj* _name;
    39         -  Tcl_TimerToken _timer;
    40         -} ReflectingChannel;
    41         -
    42         -static ReflectingChannel*
    43         -rcCreate (Tcl_Interp* ip_, Tcl_Obj* context_, int mode_, const char* name_)
    44         -{
    45         -  ReflectingChannel* cp = (ReflectingChannel*) Tcl_Alloc (sizeof *cp);
    46         -
    47         -  cp->_validMask = mode_;
    48         -  cp->_watchMask = 0;
    49         -  cp->_chan = 0;
    50         -  cp->_context = context_;
    51         -  cp->_interp = ip_;
    52         -  cp->_name = Tcl_NewStringObj(name_, -1);
    53         -  cp->_timer = NULL;
    54         -
    55         -    /* support Tcl_GetIndexFromObj by keeping these objectified */
    56         -  cp->_seek = Tcl_NewStringObj("seek", -1);
    57         -  cp->_read = Tcl_NewStringObj("read", -1);
    58         -  cp->_write = Tcl_NewStringObj("write", -1);
    59         -
    60         -  Tcl_IncrRefCount(cp->_context);
    61         -  Tcl_IncrRefCount(cp->_seek);
    62         -  Tcl_IncrRefCount(cp->_read);
    63         -  Tcl_IncrRefCount(cp->_write);
    64         -  Tcl_IncrRefCount(cp->_name);
    65         -
    66         -  return cp;
    67         -}
    68         -
    69         -static Tcl_Obj*
    70         -rcBuildCmdList(ReflectingChannel* chan_, Tcl_Obj* cmd_)
    71         -{
    72         -  Tcl_Obj* vec = Tcl_DuplicateObj(chan_->_context);
    73         -  Tcl_IncrRefCount(vec);
    74         -
    75         -  Tcl_ListObjAppendElement(chan_->_interp, vec, cmd_);
    76         -  Tcl_ListObjAppendElement(chan_->_interp, vec, chan_->_name);
    77         -
    78         -  return vec; /* with refcount 1 */
    79         -}
    80         -
    81         -static int
    82         -rcClose (ClientData cd_, Tcl_Interp* interp)
    83         -{
    84         -  ReflectingChannel* chan = (ReflectingChannel*) cd_;
    85         -  int n = -1;
    86         -
    87         -  Tcl_SavedResult sr;
    88         -  Tcl_Obj* cmd = rcBuildCmdList(chan, Tcl_NewStringObj("close", -1));
    89         -  Tcl_Interp* ip = chan->_interp;
    90         -
    91         -  Tcl_SaveResult(ip, &sr);
    92         -
    93         -  if (Tcl_EvalObjEx(ip, cmd, TCL_EVAL_GLOBAL | TCL_EVAL_DIRECT) == TCL_OK)
    94         -    Tcl_GetIntFromObj(NULL, Tcl_GetObjResult(ip), &n);
    95         -
    96         -  Tcl_RestoreResult(ip, &sr);
    97         -  Tcl_DecrRefCount(cmd);
    98         -
    99         -  if (chan->_timer != NULL) {
   100         -    Tcl_DeleteTimerHandler(chan->_timer);
   101         -    chan->_timer = NULL;
   102         -  }
   103         -
   104         -  Tcl_DecrRefCount(chan->_context);
   105         -  Tcl_DecrRefCount(chan->_seek);
   106         -  Tcl_DecrRefCount(chan->_read);
   107         -  Tcl_DecrRefCount(chan->_write);
   108         -  Tcl_DecrRefCount(chan->_name);
   109         -  Tcl_Free((char*) chan);
   110         -
   111         -  return TCL_OK;
   112         -}
   113         -
   114         -static int
   115         -rcInput (ClientData cd_, char* buf, int toRead, int* errorCodePtr)
   116         -{
   117         -  ReflectingChannel* chan = (ReflectingChannel*) cd_;
   118         -  int n = -1;
   119         -
   120         -  if (chan->_validMask & TCL_READABLE) {
   121         -    Tcl_SavedResult sr;
   122         -    Tcl_Obj* cmd = rcBuildCmdList(chan, chan->_read);
   123         -    Tcl_Interp* ip = chan->_interp;
   124         -
   125         -    Tcl_ListObjAppendElement(NULL, cmd, Tcl_NewIntObj(toRead));
   126         -    Tcl_SaveResult(ip, &sr);
   127         -
   128         -    if (Tcl_EvalObjEx(ip, cmd, TCL_EVAL_GLOBAL | TCL_EVAL_DIRECT) == TCL_OK) {
   129         -      void* s = Tcl_GetByteArrayFromObj(Tcl_GetObjResult(ip), &n);
   130         -      if (0 <= n && n <= toRead)
   131         -	if (n > 0)
   132         -	  memcpy(buf, s, n);
   133         -	else
   134         -	  chan->_watchMask &= ~TCL_READABLE;
   135         -      else
   136         -	n = -1;
   137         -    }
   138         -
   139         -    Tcl_RestoreResult(ip, &sr);
   140         -    Tcl_DecrRefCount(cmd);
   141         -  }
   142         -
   143         -  if (n < 0)
   144         -    *errorCodePtr = EINVAL;
   145         -  return n;
   146         -}
   147         -
   148         -static int
   149         -rcOutput (ClientData cd_, const char* buf, int toWrite, int* errorCodePtr)
   150         -{
   151         -  ReflectingChannel* chan = (ReflectingChannel*) cd_;
   152         -  int n = -1;
   153         -
   154         -  if (chan->_validMask & TCL_WRITABLE) {
   155         -    Tcl_SavedResult sr;
   156         -    Tcl_Obj* cmd = rcBuildCmdList(chan, chan->_write);
   157         -    Tcl_Interp* ip = chan->_interp;
   158         -
   159         -    Tcl_ListObjAppendElement(NULL, cmd,
   160         -	      		Tcl_NewByteArrayObj((unsigned char*) buf, toWrite));
   161         -    Tcl_SaveResult(ip, &sr);
   162         -
   163         -    if (Tcl_EvalObjEx(ip, cmd, TCL_EVAL_GLOBAL | TCL_EVAL_DIRECT) == TCL_OK &&
   164         -	Tcl_GetIntFromObj(NULL, Tcl_GetObjResult(ip), &n) == TCL_OK)
   165         -      if (0 <= n && n <= toWrite)
   166         -	chan->_watchMask = chan->_validMask;
   167         -      else
   168         -	n = -1;
   169         -
   170         -    Tcl_RestoreResult(ip, &sr);
   171         -    Tcl_DecrRefCount(cmd);
   172         -  }
   173         -
   174         -  if (n < 0)
   175         -    *errorCodePtr = EINVAL;
   176         -  return n;
   177         -}
   178         -
   179         -static int
   180         -rcSeek (ClientData cd_, long offset, int seekMode, int* errorCodePtr)
   181         -{
   182         -  ReflectingChannel* chan = (ReflectingChannel*) cd_;
   183         -  int n = -1;
   184         -
   185         -  Tcl_SavedResult sr;
   186         -  Tcl_Obj* cmd = rcBuildCmdList(chan, chan->_seek);
   187         -  Tcl_Interp* ip = chan->_interp;
   188         -
   189         -  Tcl_ListObjAppendElement(NULL, cmd, Tcl_NewLongObj(offset));
   190         -  Tcl_ListObjAppendElement(NULL, cmd, Tcl_NewIntObj(seekMode));
   191         -  Tcl_SaveResult(ip, &sr);
   192         -
   193         -  if (Tcl_EvalObjEx(ip, cmd, TCL_EVAL_GLOBAL | TCL_EVAL_DIRECT) == TCL_OK &&
   194         -      Tcl_GetIntFromObj(NULL, Tcl_GetObjResult(ip), &n) == TCL_OK)
   195         -    chan->_watchMask = chan->_validMask;
   196         -
   197         -  Tcl_RestoreResult(ip, &sr);
   198         -  Tcl_DecrRefCount(cmd);
   199         -
   200         -  if (n < 0)
   201         -    *errorCodePtr = EINVAL;
   202         -  return n;
   203         -}
   204         -
   205         -static void
   206         -rcTimerProc (ClientData cd_)
   207         -{
   208         -  ReflectingChannel* chan = (ReflectingChannel*) cd_;
   209         -
   210         -  if (chan->_timer != NULL)
   211         -    Tcl_DeleteTimerHandler(chan->_timer);
   212         -  chan->_timer = NULL;
   213         -  Tcl_NotifyChannel(chan->_chan, chan->_watchMask);
   214         -}
   215         -
   216         -static void
   217         -rcWatchChannel (ClientData cd_, int mask)
   218         -{
   219         -  ReflectingChannel* chan = (ReflectingChannel*) cd_;
   220         -
   221         -  /* Dec 2001: adopting logic used in Andreas Kupries' memchan, i.e. timers */
   222         -
   223         -  if (mask) {
   224         -    chan->_watchMask = mask & chan->_validMask;
   225         -    if (chan->_watchMask && chan->_timer == NULL)
   226         -      chan->_timer = Tcl_CreateTimerHandler(5, rcTimerProc, cd_);
   227         -  } else if (chan->_timer != NULL) {
   228         -    Tcl_DeleteTimerHandler(chan->_timer);
   229         -    chan->_timer = NULL;
   230         -  }
   231         -}
   232         -
   233         -static int
   234         -rcGetFile (ClientData cd_, int direction, ClientData* handlePtr)
   235         -{
   236         -  return TCL_ERROR;
   237         -}
   238         -
   239         -static int
   240         -rcBlock (ClientData cd_, int mode)
   241         -{
   242         -  return 0;
   243         -}
   244         -
   245         -static Tcl_ChannelType reChannelType = {
   246         -  "rechan",       /* Type name.                                    */
   247         -  (Tcl_ChannelTypeVersion) rcBlock, /* Set blocking/nonblocking behaviour */
   248         -  rcClose,        /* Close channel, clean instance data            */
   249         -  rcInput,        /* Handle read request                           */
   250         -  rcOutput,       /* Handle write request                          */
   251         -  rcSeek,         /* Move location of access point.    NULL'able   */
   252         -  0,              /* Set options.                      NULL'able   */
   253         -  0,              /* Get options.                      NULL'able   */
   254         -  rcWatchChannel, /* Initialize notifier                           */
   255         -  rcGetFile       /* Get OS handle from the channel.               */
   256         -};
   257         -
   258         -static int
   259         -cmd_rechan(ClientData cd_, Tcl_Interp* ip_, int objc_, Tcl_Obj*const* objv_)
   260         -{
   261         -  ReflectingChannel *rc;
   262         -  int mode;
   263         -  char buffer [20];
   264         -
   265         -  if (objc_ != 3) {
   266         -    Tcl_WrongNumArgs(ip_, 1, objv_, "command mode");
   267         -    return TCL_ERROR;
   268         -  }
   269         -
   270         -  if (Tcl_ListObjLength(ip_, objv_[1], &mode) == TCL_ERROR ||
   271         -      Tcl_GetIntFromObj(ip_, objv_[2], &mode) == TCL_ERROR)
   272         -    return TCL_ERROR;
   273         -
   274         -  Tcl_MutexLock(&rechanMutex);
   275         -  sprintf(buffer, "rechan%d", ++mkChanSeq);
   276         -  Tcl_MutexUnlock(&rechanMutex);
   277         -
   278         -  rc = rcCreate (ip_, objv_[1], mode, buffer);
   279         -  rc->_chan = Tcl_CreateChannel(&reChannelType, buffer, (ClientData) rc, mode);
   280         -
   281         -  Tcl_RegisterChannel(ip_, rc->_chan);
   282         -  Tcl_SetChannelOption(ip_, rc->_chan, "-buffering", "none");
   283         -  Tcl_SetChannelOption(ip_, rc->_chan, "-blocking", "0");
   284         -
   285         -  Tcl_SetResult(ip_, buffer, TCL_VOLATILE);
   286         -  return TCL_OK;
   287         -}
   288         -
   289         -DLLEXPORT int Rechan_Init(Tcl_Interp* interp)
   290         -{
   291         -    if (!Tcl_InitStubs(interp, "8.4", 0))
   292         -        return TCL_ERROR;
   293         -    Tcl_CreateObjCommand(interp, "rechan", cmd_rechan, 0, 0);
   294         -    return Tcl_PkgProvide(interp, "rechan", "1.0");
   295         -}

Deleted kitdll/buildsrc/kitdll-0.0/stringify.tcl version [07e25e6903].

     1         -#! /usr/bin/env tclsh
     2         -
     3         -proc stringifyfile {filename {key 0}} {
     4         -	catch {
     5         -		set fd [open $filename r]
     6         -	}
     7         -
     8         -	if {![info exists fd]} {
     9         -		return ""
    10         -	}
    11         -
    12         -	set data [read -nonewline $fd]
    13         -	close $fd
    14         -
    15         -	foreach line [split $data \n] {
    16         -		set line [string map [list "\\" "\\\\" "\"" "\\\""] $line]
    17         -		append ret "	\"$line\\n\"\n"
    18         -	}
    19         -
    20         -	return $ret
    21         -}
    22         -
    23         -foreach file $argv {
    24         -	puts -nonewline [stringifyfile $file]
    25         -}
    26         -
    27         -exit 0

Deleted kitdll/buildsrc/kitdll-0.0/zlib.c version [d3ecfd237b].

     1         -/* Written by Jean-Claude Wippler, as part of Tclkit.
     2         - * March 2003 - placed in the public domain by the author.
     3         - *
     4         - * Interface to the "zlib" compression library
     5         - */
     6         -
     7         -#include <tcl.h>
     8         -#if 10 * TCL_MAJOR_VERSION + TCL_MINOR_VERSION < 86
     9         -#include "zlib.h"
    10         -
    11         -typedef struct {
    12         -  z_stream stream;
    13         -  Tcl_Obj *indata;
    14         -} zlibstream;
    15         -
    16         -static int
    17         -zstreamincmd(ClientData cd, Tcl_Interp *ip, int objc, Tcl_Obj *CONST objv[])
    18         -{
    19         -  zlibstream *zp = (zlibstream*) cd;
    20         -  int count = 0;
    21         -  int e, index;
    22         -  Tcl_Obj *obj;
    23         -
    24         -  static CONST84 char* cmds[] = { "fill", "drain", NULL, };
    25         -
    26         -  if (Tcl_GetIndexFromObj(ip, objv[1], cmds, "option", 0, &index) != TCL_OK)
    27         -    return TCL_ERROR;
    28         -
    29         -  switch (index) {
    30         -
    31         -    case 0: /* fill ?data? */
    32         -      if (objc >= 3) {
    33         -	Tcl_IncrRefCount(objv[2]);
    34         -	Tcl_DecrRefCount(zp->indata);
    35         -	zp->indata = objv[2];
    36         -	zp->stream.next_in = Tcl_GetByteArrayFromObj(zp->indata,
    37         -						  (int*) &zp->stream.avail_in);
    38         -      }
    39         -      Tcl_SetObjResult(ip, Tcl_NewIntObj(zp->stream.avail_in));
    40         -      break;
    41         -
    42         -    case 1: /* drain count */
    43         -      if (objc != 3) {
    44         -	Tcl_WrongNumArgs(ip, 2, objv, "count");
    45         -	return TCL_ERROR;
    46         -      }
    47         -      if (Tcl_GetIntFromObj(ip, objv[2], &count) != TCL_OK)
    48         -	return TCL_ERROR;
    49         -      obj = Tcl_GetObjResult(ip);
    50         -      Tcl_SetByteArrayLength(obj, count);
    51         -      zp->stream.next_out = Tcl_GetByteArrayFromObj(obj,
    52         -						  (int*) &zp->stream.avail_out);
    53         -      e = inflate(&zp->stream, Z_NO_FLUSH);
    54         -      if (e != 0 && e != Z_STREAM_END) {
    55         -	Tcl_SetResult(ip, (char*) zError(e), TCL_STATIC);
    56         -	return TCL_ERROR;
    57         -      }
    58         -      Tcl_SetByteArrayLength(obj, count - zp->stream.avail_out);
    59         -      break;
    60         -  }
    61         -  return TCL_OK;
    62         -}
    63         -
    64         -void zstreamdelproc(ClientData cd)
    65         -{
    66         -  zlibstream *zp = (zlibstream*) cd;
    67         -  inflateEnd(&zp->stream);
    68         -  Tcl_DecrRefCount(zp->indata);
    69         -  Tcl_Free((void*) zp);
    70         -}
    71         -
    72         -static int
    73         -ZlibCmd(ClientData dummy, Tcl_Interp *ip, int objc, Tcl_Obj *CONST objv[])
    74         -{
    75         -  int e = TCL_OK, index, dlen, wbits = -MAX_WBITS;
    76         -  long flag;
    77         -  Byte *data;
    78         -  z_stream stream;
    79         -  Tcl_Obj *obj = Tcl_GetObjResult(ip);
    80         -
    81         -  static CONST84 char* cmds[] = {
    82         -    "adler32", "crc32", "compress", "deflate", "decompress", "inflate", 
    83         -    "sdecompress", "sinflate", NULL,
    84         -  };
    85         -
    86         -  if (objc < 3 || objc > 4) {
    87         -    Tcl_WrongNumArgs(ip, 1, objv, "option data ?...?");
    88         -    return TCL_ERROR;
    89         -  }
    90         -
    91         -  if (Tcl_GetIndexFromObj(ip, objv[1], cmds, "option", 0, &index) != TCL_OK ||
    92         -      objc > 3 && Tcl_GetLongFromObj(ip, objv[3], &flag) != TCL_OK)
    93         -    return TCL_ERROR;
    94         -
    95         -  data = Tcl_GetByteArrayFromObj(objv[2], &dlen);
    96         -
    97         -  switch (index) {
    98         -
    99         -    case 0: /* adler32 str ?start? -> checksum */
   100         -      if (objc < 4)
   101         -	flag = (long) adler32(0, 0, 0);
   102         -      Tcl_SetLongObj(obj, (long) adler32((uLong) flag, data, dlen));
   103         -      return TCL_OK;
   104         -
   105         -    case 1: /* crc32 str ?start? -> checksum */
   106         -      if (objc < 4)
   107         -	flag = (long) crc32(0, 0, 0);
   108         -      Tcl_SetLongObj(obj, (long) crc32((uLong) flag, data, dlen));
   109         -      return TCL_OK;
   110         -      
   111         -    case 2: /* compress data ?level? -> data */
   112         -      wbits = MAX_WBITS;
   113         -    case 3: /* deflate data ?level? -> data */
   114         -      if (objc < 4)
   115         -	flag = Z_DEFAULT_COMPRESSION;
   116         -
   117         -      stream.avail_in = (uInt) dlen;
   118         -      stream.next_in = data;
   119         -
   120         -      stream.avail_out = (uInt) dlen + dlen / 1000 + 12;
   121         -      Tcl_SetByteArrayLength(obj, stream.avail_out);
   122         -      stream.next_out = Tcl_GetByteArrayFromObj(obj, NULL);
   123         -
   124         -      stream.zalloc = 0;
   125         -      stream.zfree = 0;
   126         -      stream.opaque = 0;
   127         -
   128         -      e = deflateInit2(&stream, (int) flag, Z_DEFLATED, wbits,
   129         -			      MAX_MEM_LEVEL, Z_DEFAULT_STRATEGY);
   130         -      if (e != Z_OK)
   131         -	break;
   132         -
   133         -      e = deflate(&stream, Z_FINISH);
   134         -      if (e != Z_STREAM_END) {
   135         -	deflateEnd(&stream);
   136         -	if (e == Z_OK) e = Z_BUF_ERROR;
   137         -      } else
   138         -	e = deflateEnd(&stream);
   139         -      break;
   140         -      
   141         -    case 4: /* decompress data ?bufsize? -> data */
   142         -      wbits = MAX_WBITS;
   143         -    case 5: /* inflate data ?bufsize? -> data */
   144         -    {
   145         -      if (objc < 4)
   146         -	flag = 16 * 1024;
   147         -
   148         -      for (;;) {
   149         -	stream.zalloc = 0;
   150         -	stream.zfree = 0;
   151         -
   152         -	/* +1 because ZLIB can "over-request" input (but ignore it) */
   153         -	stream.avail_in = (uInt) dlen +  1;
   154         -	stream.next_in = data;
   155         -
   156         -	stream.avail_out = (uInt) flag;
   157         -	Tcl_SetByteArrayLength(obj, stream.avail_out);
   158         -	stream.next_out = Tcl_GetByteArrayFromObj(obj, NULL);
   159         -
   160         -	/* Negative value suppresses ZLIB header */
   161         -	e = inflateInit2(&stream, wbits);
   162         -	if (e == Z_OK) {
   163         -	  e = inflate(&stream, Z_FINISH);
   164         -	  if (e != Z_STREAM_END) {
   165         -	    inflateEnd(&stream);
   166         -	    if (e == Z_OK) e = Z_BUF_ERROR;
   167         -	  } else
   168         -	    e = inflateEnd(&stream);
   169         -	}
   170         -
   171         -	if (e == Z_OK || e != Z_BUF_ERROR) break;
   172         -
   173         -	Tcl_SetByteArrayLength(obj, 0);
   174         -	flag *= 2;
   175         -      }
   176         -
   177         -      break;
   178         -    }
   179         -      
   180         -    case 6: /* sdecompress cmdname -> */
   181         -      wbits = MAX_WBITS;
   182         -    case 7: /* sinflate cmdname -> */
   183         -    {
   184         -      zlibstream *zp = (zlibstream*) Tcl_Alloc(sizeof (zlibstream));
   185         -      zp->indata = Tcl_NewObj();
   186         -      Tcl_IncrRefCount(zp->indata);
   187         -      zp->stream.zalloc = 0;
   188         -      zp->stream.zfree = 0;
   189         -      zp->stream.opaque = 0;
   190         -      zp->stream.next_in = 0;
   191         -      zp->stream.avail_in = 0;
   192         -      inflateInit2(&zp->stream, wbits);
   193         -      Tcl_CreateObjCommand(ip, Tcl_GetStringFromObj(objv[2], 0), zstreamincmd,
   194         -      				(ClientData) zp, zstreamdelproc);
   195         -      return TCL_OK;
   196         -    }
   197         -  }
   198         -
   199         -  if (e != Z_OK) {
   200         -    Tcl_SetResult(ip, (char*) zError(e), TCL_STATIC);
   201         -    return TCL_ERROR;
   202         -  }
   203         -
   204         -  Tcl_SetByteArrayLength(obj, stream.total_out);
   205         -  return TCL_OK;
   206         -}
   207         -
   208         -int Zlib_Init(Tcl_Interp *interp)
   209         -{
   210         -    Tcl_CreateObjCommand(interp, "zlib", ZlibCmd, 0, 0);
   211         -    return Tcl_PkgProvide( interp, "zlib", "1.1");
   212         -}
   213         -#endif /* Tcl version less than 8.6 */

Modified kitsh/build.sh from [b70457f0fd] to [030405272d].

    26     26   rm -rf 'build' 'out' 'inst'
    27     27   mkdir 'out' 'inst' || exit 1
    28     28   
    29     29   
    30     30   (
    31     31   	cp -r 'buildsrc' 'build'
    32     32   	cd "${BUILDDIR}" || exit 1
           33  +
           34  +	# Fix up archives that Tcl gets wrong
           35  +	for archive in ../../../tcl/inst/lib/dde*/tcldde*.a ../../../tcl/inst/lib/reg*/tclreg*.a; do
           36  +		if [ ! -f "${archive}" ]; then
           37  +			continue
           38  +		fi
           39  +
           40  +		rm -rf __TEMP__
           41  +		(
           42  +			mkdir __TEMP__ || exit 1
           43  +			cd __TEMP__
           44  +
           45  +			## Patch archive name
           46  +			archive="../${archive}"
           47  +
           48  +			"${AR:-ar}" x "${archive}" || exit 1
           49  +
           50  +			rm -f "${archive}"
           51  +
           52  +			"${AR:-ar}" cr "${archive}" *.o || exit 1
           53  +			"${RANLIB:-ranlib}" "${archive}" || true
           54  +		)
           55  +	done
    33     56   
    34     57   	# Cleanup, just incase the incoming directory was not pre-cleaned
    35     58   	${MAKE:-make} distclean >/dev/null 2>/dev/null
    36         -
    37         -	# Figure out if zlib compiled (if not, the system zlib will be used and we
    38         -	# will need to have that present)
    39         -	ZLIBDIR="$(cd "${OTHERPKGSDIR}/zlib/inst" 2>/dev/null && pwd)"
    40         -	export ZLIBDIR
    41         -	if [ -z "${ZLIBDIR}" -o ! -f "${ZLIBDIR}/lib/libz.a" ]; then
    42         -		unset ZLIBDIR
    43         -	fi
    44         -
    45         -	# Copy user specified kit.rc and kit.ico in to build directory, if found
    46         -	if [ -f "${OTHERPKGSDIR}/kit.rc" ]; then
    47         -		cp "${OTHERPKGSDIR}/kit.rc" "${BUILDDIR}"
    48         -	fi
    49         -	if [ -f "${OTHERPKGSDIR}/kit.ico" ]; then
    50         -		cp "${OTHERPKGSDIR}/kit.ico" "${BUILDDIR}"
    51         -	fi
    52         -
    53         -	# Include extra objects as required
    54         -	## Initialize list of extra objects
    55         -	EXTRA_OBJS=""
    56         -
    57         -	## Tk Resources (needed for Win32 support)
    58         -	TKDIR="$(cd "${OTHERPKGSDIR}/tk/inst" && pwd)"
    59         -	TKRSRC="${TKDIR}/lib/tkbase.res.o"
    60         -	if [ -n "${TKDIR}" -a -f "${TKRSRC}" ]; then
    61         -		EXTRA_OBJS="${EXTRA_OBJS} ${TKRSRC}"
    62         -	fi
    63         -
    64         -	## Export to the environment, to be picked up by the "configure" script
    65         -	export EXTRA_OBJS
    66         -
    67         -	# Compile Kitsh
    68         -	if [ -z "${ZLIBDIR}" ]; then
    69         -		echo "Running: ./configure --with-tcl=\"${TCLCONFIGDIR}\" ${CONFIGUREEXTRA}"
    70         -
    71         -		./configure --with-tcl="${TCLCONFIGDIR}" ${CONFIGUREEXTRA}
    72         -	else
    73         -		echo "Running: ./configure --with-tcl=\"${TCLCONFIGDIR}\" --with-zlib=\"${ZLIBDIR}\" ${CONFIGUREEXTRA}"
    74         -
    75         -		./configure --with-tcl="${TCLCONFIGDIR}" --with-zlib="${ZLIBDIR}" ${CONFIGUREEXTRA}
    76         -	fi
    77         -
    78         -	echo "Running: ${MAKE:-make}"
    79         -	${MAKE:-make} || exit 1
    80         -
    81         -	# Strip the kit of all symbols, if possible
    82         -	"${STRIP:-strip}" kit >/dev/null 2>/dev/null
           59  +	rm -rf 'starpack.vfs'
    83     60   
    84     61   	# Create VFS directory
    85     62   	mkdir "starpack.vfs"
    86     63   	mkdir "starpack.vfs/lib"
    87     64   
    88     65   	## Copy in all built directories
    89     66   	cp -r "${OTHERPKGSDIR}"/*/out/* 'starpack.vfs/'
    90     67   
    91     68   	## Rename the "vfs" package directory to what "boot.tcl" expects
    92     69   	mv 'starpack.vfs/lib'/vfs* 'starpack.vfs/lib/vfs'
    93     70   
    94     71   	## Install "boot.tcl"
    95     72   	cp 'boot.tcl' 'starpack.vfs/'
           73  +
           74  +	# Figure out if zlib compiled (if not, the system zlib will be used and we
           75  +	# will need to have that present)
           76  +	ZLIBDIR="$(cd "${OTHERPKGSDIR}/zlib/inst" 2>/dev/null && pwd)"
           77  +	export ZLIBDIR
           78  +	if [ -z "${ZLIBDIR}" -o ! -f "${ZLIBDIR}/lib/libz.a" ]; then
           79  +		unset ZLIBDIR
           80  +	fi
           81  +
           82  +	# Copy user specified kit.rc and kit.ico in to build directory, if found
           83  +	cp "${KITCREATOR_ICON}" "${BUILDDIR}/kit.ico"
           84  +	cp "${KITCREATOR_RC}" "${BUILDDIR}/kit.rc"
           85  +
           86  +	# Include extra objects as required
           87  +	## Initialize list of extra objects
           88  +	EXTRA_OBJS=""
           89  +	export EXTRA_OBJS
           90  +
           91  +	## Tk Resources (needed for Win32 support) -- remove kit-found resources to prevent the symbols from being in conflict
           92  +	TKDIR="$(cd "${OTHERPKGSDIR}/tk/inst" && pwd)"
           93  +	TKRSRC="${TKDIR}/lib/tkbase.res.o"
           94  +	if [ -n "${TKDIR}" -a -f "${TKRSRC}" ]; then
           95  +		EXTRA_OBJS="${EXTRA_OBJS} ${TKRSRC}"
           96  +
           97  +		echo ' *** Removing "kit.rc" since we have Tk with its own resource file'
           98  +
           99  +		rm -f "${BUILDDIR}/kit.rc"
          100  +	fi
          101  +
          102  +	# Determine if target is KitDLL or KitSH
          103  +	if [ "${KITTARGET}" = "kitdll" ]; then
          104  +		CONFIGUREEXTRA="${CONFIGUREEXTRA} --enable-kitdll"
          105  +	fi
          106  +
          107  +	# Compile Kit
          108  +	if [ -z "${ZLIBDIR}" ]; then
          109  +		echo "Running: ./configure --with-tcl=\"${TCLCONFIGDIR}\" ${CONFIGUREEXTRA}"
          110  +
          111  +		./configure --with-tcl="${TCLCONFIGDIR}" ${CONFIGUREEXTRA}
          112  +	else
          113  +		echo "Running: ./configure --with-tcl=\"${TCLCONFIGDIR}\" --with-zlib=\"${ZLIBDIR}\" ${CONFIGUREEXTRA}"
          114  +
          115  +		./configure --with-tcl="${TCLCONFIGDIR}" --with-zlib="${ZLIBDIR}" ${CONFIGUREEXTRA}
          116  +	fi
          117  +
          118  +	echo "Running: ${MAKE:-make} TCLSH_NATIVE=\"${TCLSH_NATIVE}\""
          119  +	${MAKE:-make} TCLSH_NATIVE="${TCLSH_NATIVE}" || exit 1
          120  +
          121  +	# Strip the kit of all symbols, if possible
          122  +	"${STRIP:-strip}" kit >/dev/null 2>/dev/null
          123  +	"${STRIP:-strip}" -g libtclkit* >/dev/null 2>/dev/null
          124  +
          125  +	# Fix up Win32 DLL names
          126  +	## .DLL.A -> .LIB
          127  +	for file in libtclkit*.dll.a; do
          128  +		if [ ! -f "${file}" ]; then
          129  +			continue
          130  +		fi
          131  +
          132  +		newfile="$(basename "${file}" .dll.a).lib"
          133  +		mv "${file}" "${newfile}"
          134  +	done
          135  +
          136  +	## .DLL.DEF -> .DEF
          137  +	for file in libtclkit*.dll.def; do
          138  +		if [ ! -f "${file}" ]; then
          139  +			continue
          140  +		fi
          141  +
          142  +		newfile="$(basename "${file}" .dll.def).def"
          143  +		mv "${file}" "${newfile}"
          144  +	done
          145  +
          146  +	# Determine name of created kit
          147  +	KITTARGET_NAME='__error__'
          148  +	if [ "${KITTARGET}" = "kitdll" ]; then
          149  +		## Find the library created
          150  +		for chkkittarget in libtclkit*.*; do
          151  +			if [ ! -f "${chkkittarget}" ]; then
          152  +				continue
          153  +			fi
          154  +
          155  +			if echo "${chkkittarget}" | egrep '\.(lib|def|a)$'; then
          156  +				continue
          157  +			fi
          158  +
          159  +			KITTARGET_NAME="${chkkittarget}"
          160  +
          161  +			break
          162  +		done
          163  +
          164  +		## Also create an executable named "kit" so that we can run it later
          165  +		${MAKE:-make} tclsh
          166  +		mv tclsh kit
          167  +	else
          168  +		## The executable is always named "kit"
          169  +		KITTARGET_NAME='kit'
          170  +	fi
          171  +	export KITTARGET_NAME
          172  +
          173  +	if [ "x${KITTARGET_NAME}" = 'x__error__' ]; then
          174  +		echo "Failed to locate kit target!" >&2
          175  +
          176  +		exit 1
          177  +	fi
    96    178   
    97    179   	# Intall VFS onto kit
    98    180   	## Determine if we have a Tclkit to do this work
    99    181   	TCLKIT="${TCLKIT:-tclkit}"
   100    182   	if echo 'exit 0' | "${TCLKIT}" >/dev/null 2>/dev/null; then
   101    183   		## Install using existing Tclkit
   102    184   		### Call installer
   103         -		"${TCLKIT}" installvfs.tcl kit starpack.vfs "${ENABLECOMPRESSION}"
          185  +		echo "Running: \"${TCLKIT}\" installvfs.tcl \"${KITTARGET_NAME}\" starpack.vfs \"${ENABLECOMPRESSION}\""
          186  +		"${TCLKIT}" installvfs.tcl "${KITTARGET_NAME}" starpack.vfs "${ENABLECOMPRESSION}" || exit 1
   104    187   	else
   105    188   		## Bootstrap (cannot cross-compile)
   106    189   		### Call installer
   107    190   		cp kit runkit
   108         -		echo "set argv [list kit starpack.vfs {${ENABLECOMPRESSION}}]" > setup.tcl
          191  +		echo "set argv [list {${KITTARGET_NAME}} starpack.vfs {${ENABLECOMPRESSION}}]" > setup.tcl
   109    192   		echo 'if {[catch { clock seconds }]} { proc clock args { return 0 } }' >> setup.tcl
   110    193   		echo 'source installvfs.tcl' >> setup.tcl
   111         -		echo | ./runkit
          194  +
          195  +		echo 'Running: echo | ./runkit'
          196  +		echo | ./runkit setup.tcl || exit 1
          197  +	fi
          198  +
          199  +	# Cleanup
          200  +	if [ "${KITTARGET}" = "kitdll" ]; then
          201  +		## Remove built interpreters if we are building KitDLL --
          202  +		## they're just tiny stubs anyway
          203  +		rm -f kit runkit
   112    204   	fi
   113    205   
   114    206   	exit 0
   115    207   ) || exit 1
   116    208   
   117    209   exit 0

Added kitsh/buildsrc/kitsh-0.0/Makefile.common.in version [537f4f602e].

            1  +CC = @CC@
            2  +RC = @RC@
            3  +OBJCOPY = @OBJCOPY@
            4  +CFLAGS = @CFLAGS@ @SHOBJFLAGS@
            5  +CPPFLAGS = @CPPFLAGS@ @DEFS@
            6  +WISH_CFLAGS = @WISH_CFLAGS@
            7  +LDFLAGS = @LDFLAGS@
            8  +SHOBJLDFLAGS = @SHOBJLDFLAGS@
            9  +LIBS = @LIBS@
           10  +ARCHS = @ARCHS@
           11  +STRIPLIBS = @STRIPLIBS@ @EXTRA_OBJS@
           12  +EXTRA_OBJS = @EXTRA_OBJS@
           13  +LDRUNPATH = @LDRUNPATH@
           14  +EXTRA_KIT_DEPS = @EXTRA_KIT_DEPS@
           15  +EXTRA_VFS_OBJS = @EXTRA_VFS_OBJS@
           16  +TCLSH_NATIVE = tclsh
           17  +
           18  +# Build targets
           19  +## VFS Build
           20  +cvfs_data_tcl.o: cvfs_data_tcl.c
           21  +cvfs_data_tcl.c: dir2c.tcl starpack.vfs cvfs_data.c
           22  +	"$(TCLSH_NATIVE)" dir2c.tcl tcl starpack.vfs > cvfs_data_tcl.c
           23  +
           24  +## Tcl scripts that need to be converted to C headers
           25  +cvfs.tcl.h: cvfs.tcl
           26  +	"$(TCLSH_NATIVE)" ./stringify.tcl cvfs.tcl > cvfs.tcl.h
           27  +
           28  +boot.tcl.h: boot.tcl
           29  +	"$(TCLSH_NATIVE)" ./stringify.tcl boot.tcl > boot.tcl.h
           30  +
           31  +zipvfs.tcl.h: zipvfs.tcl
           32  +	"$(TCLSH_NATIVE)" ./stringify.tcl zipvfs.tcl > zipvfs.tcl.h
           33  +
           34  +## Objects
           35  +kitInit.o: kitInit.c boot.tcl.h $(EXTRA_KIT_DEPS)
           36  +rechan.o: rechan.c
           37  +pwb.o: pwb.c
           38  +zlib.o: zlib.c
           39  +
           40  +### Windows resources
           41  +kit.res.o: kit.rc kit.ico
           42  +	$(RC) -o kit.res.o $(CPPFLAGS) kit.rc
           43  +
           44  +# Cleanup routines
           45  +clean:
           46  +	rm -f kit kit.res.o
           47  +	rm -f libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@
           48  +	rm -f $(OBJS) $(EXTRA_OBJS) $(EXTRA_VFS_OBJS)
           49  +	rm -f cvfs_data_tcl.c cvfs_data_tcl.o
           50  +	rm -f cvfs.tcl.h
           51  +	rm -f tclsh.o tclsh tclsh.exe
           52  +	rm -f wish.o wish wish.exe
           53  +
           54  +distclean: clean
           55  +	rm -f Makefile Makefile.in Makefile.common
           56  +	rm -f config.status config.log
           57  +	rm -f *~
           58  +	rm -rf starpack.vfs
           59  +	rm -rf autom4te.cache
           60  +
           61  +mrproper: distclean
           62  +	rm -f configure config.h boot.tcl.h zipvfs.tcl.h
           63  +
           64  +.PHONY: all clean distclean mrproper

Modified kitsh/buildsrc/kitsh-0.0/Makefile.kitdll.in from [024981b5ad] to [903bfeecb6].

     1         -CC = @CC@
     2         -CFLAGS = @CFLAGS@ @SHOBJFLAGS@ -Wall
     3         -CPPFLAGS = @CPPFLAGS@ @DEFS@ -DKITDLL_MAKE_LOADABLE=1
     4         -WISH_CFLAGS = @WISH_CFLAGS@
     5         -LDFLAGS = @LDFLAGS@
     6         -SHOBJLDFLAGS = @SHOBJLDFLAGS@
     7         -LIBS = @LIBS@
     8         -STATICLIBS = @ARCHS@
     9         -OBJS = vfs_kitdll_data_tcl.o kitInit.o rechan.o pwb.o zlib.o
    10         -EXTRA_OBJS = @EXTRA_OBJS@
    11         -TCLSH_NATIVE = tclsh
            1  +OBJS = kitInit.o rechan.o pwb.o zlib.o
    12      2   
    13      3   # Default target
    14      4   all: libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@
    15      5   
    16         -# Build targets
    17         -## VFS Build
    18         -vfs_kitdll_data_tcl.o: vfs_kitdll_data_tcl.c
    19         -vfs_kitdll_data_tcl.c: dir2c.tcl starpack.vfs vfs_kitdll_data.c
    20         -	"$(TCLSH_NATIVE)" dir2c.tcl tcl starpack.vfs > vfs_kitdll_data_tcl.c
    21         -
    22         -## Tclkit Build
    23         -kitInit.o: kitInit.c vfs_kitdll.tcl.h
    24         -vfs_kitdll.tcl.h: vfs_kitdll.tcl
    25         -	"$(TCLSH_NATIVE)" ./stringify.tcl vfs_kitdll.tcl > vfs_kitdll.tcl.h
    26         -
    27         -## Extensions
    28         -rechan.o: rechan.c
    29         -pwb.o: pwb.c
    30         -zlib.o: zlib.c
            6  +-include Makefile.common
    31      7   
    32      8   ## DLL Build
    33         -libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@: $(OBJS) $(EXTRA_OBJS)
    34         -	$(CC) $(CPPFLAGS) $(CFLAGS) -o libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@ $(OBJS) $(EXTRA_OBJS) $(LDFLAGS) $(SHOBJLDFLAGS) @WHOLEARCHIVE@ $(STATICLIBS) @NOWHOLEARCHIVE@ $(LIBS)
            9  +libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@: $(OBJS) $(EXTRA_KIT_DEPS) $(EXTRA_OBJS) $(EXTRA_VFS_OBJS)
           10  +	$(CC) $(CPPFLAGS) $(CFLAGS) -o libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@ $(OBJS) $(EXTRA_OBJS) $(EXTRA_VFS_OBJS) $(LDFLAGS) $(SHOBJLDFLAGS) @WHOLEARCHIVE@ $(ARCHS) @NOWHOLEARCHIVE@ $(LIBS)
           11  +	-for striplib in $(STRIPLIBS); do $(OBJCOPY) --weaken "$${striplib}"; done
           12  +	-mv libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@ libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@.safe; \
           13  +		$(CC) $(CPPFLAGS) $(CFLAGS) -o libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@ $(OBJS) $(EXTRA_OBJS) $(EXTRA_VFS_OBJS) $(LDFLAGS) $(SHOBJLDFLAGS) @WHOLEARCHIVE@ $(ARCHS) @NOWHOLEARCHIVE@ $(LIBS) || \
           14  +			mv libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@.safe libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@
           15  +	-rm -f libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@.safe
    35     16   
    36     17   # Test driver
    37     18   tclsh.o: tclsh.c
    38     19   tclsh: tclsh.o $(EXTRA_OBJS) libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@
    39         -	$(CC) $(CPPFLAGS) $(CFLAGS) -o tclsh tclsh.o $(EXTRA_OBJS) -L. -ltclkit@KITDLL_LIB_VERSION@ -Wl,-rpath,.
           20  +	$(CC) $(CPPFLAGS) $(CFLAGS) -o tclsh tclsh.o $(EXTRA_OBJS) -L. -ltclkit@KITDLL_LIB_VERSION@ $(LDRUNPATH)
    40     21   
    41     22   wish.o: wish.c
    42     23   wish: wish.o $(EXTRA_OBJS) libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@
    43         -	$(CC) $(CPPFLAGS) $(CFLAGS) $(WISH_CFLAGS) -o wish wish.o $(EXTRA_OBJS) -L. -ltclkit@KITDLL_LIB_VERSION@ -Wl,-rpath,.
    44         -
    45         -# Cleanup routeines
    46         -clean:
    47         -	rm -f libtclkit@KITDLL_LIB_VERSION@.@SHOBJEXT@
    48         -	rm -f $(OBJS)
    49         -	rm -f vfs_kitdll_data_tcl.c
    50         -	rm -f vfs_kitdll.tcl.h
    51         -	rm -f tclsh.o tclsh tclsh.exe
    52         -	rm -f wish.o wish wish.exe
    53         -
    54         -distclean: clean
    55         -	rm -f config.status config.log
    56         -	rm -f *~
    57         -	rm -f Makefile
    58         -	rm -rf starpack.vfs
    59         -
    60         -mrproper: distclean
    61         -
    62         -.PHONY: all clean distclean
           24  +	$(CC) $(CPPFLAGS) $(CFLAGS) $(WISH_CFLAGS) -o wish wish.o $(EXTRA_OBJS) -L. -ltclkit@KITDLL_LIB_VERSION@ $(LDRUNPATH)

Modified kitsh/buildsrc/kitsh-0.0/Makefile.tclkit.in from [6f33927faa] to [9a850eafbd].

     1         -CC = @CC@
     2         -RC = @RC@
     3         -CFLAGS = @CFLAGS@ @DEFS@ -DTK_LOCAL_APPINIT=TclKit_AppInit
     4         -CPPFLAGS = @CPPFLAGS@ @DEFS@ -DTK_LOCAL_APPINIT=TclKit_AppInit
     5         -LDFLAGS = @LDFLAGS@
     6         -LIBS = @LIBS@
     7         -ARCHS = @ARCHS@
     8      1   OBJS = kitInit.o main.o pwb.o rechan.o zlib.o winMain.o
     9         -EXTRA_OBJS = @EXTRA_OBJS@
    10      2   
    11      3   all: kit
    12      4   
    13         -kit.res.o: kit.rc kit.ico
    14         -	$(RC) -o kit.res.o $(CPPFLAGS) kit.rc
            5  +-include Makefile.common
    15      6   
    16         -kit: $(OBJS) $(EXTRA_OBJS) $(ARCHS)
    17         -	$(CC) $(CPPFLAGS) $(CFLAGS) -o kit $(OBJS) $(EXTRA_OBJS) $(ARCHS) $(LDFLAGS) $(LIBS)
    18         -
    19         -boot.tcl.h: boot.tcl
    20         -	./stringify.tcl boot.tcl > boot.tcl.h
    21         -
    22         -zipvfs.tcl.h: zipvfs.tcl
    23         -	./stringify.tcl zipvfs.tcl > zipvfs.tcl.h
    24         -
    25         -clean:
    26         -	rm -f kit $(OBJS) kit.res.o
    27         -
    28         -distclean: clean
    29         -	rm -f config.h Makefile config.log config.status
    30         -	rm -rf autom4te.cache
    31         -
    32         -mrproper: distclean
    33         -	rm -f configure config.h boot.tcl.h zipvfs.tcl.h
    34         -
    35         -.PHONY: all clean distclean
            7  +kit: $(OBJS) $(EXTRA_OBJS) $(EXTRA_KIT_DEPS) $(EXTRA_VFS_OBJS) $(ARCHS)
            8  +	$(CC) $(CPPFLAGS) $(CFLAGS) -o kit $(OBJS) $(EXTRA_OBJS) $(EXTRA_VFS_OBJS) $(ARCHS) $(LDFLAGS) $(LIBS)

Modified kitsh/buildsrc/kitsh-0.0/aclocal.m4 from [13694584fc] to [370c9cd778].

    33     33   
    34     34   	if test -f "${tclconfigsh}"; then
    35     35   		. "${tclconfigsh}"
    36     36   
    37     37   		CFLAGS="${CFLAGS} ${TCL_INCLUDE_SPEC} -I${TCL_SRC_DIR}/generic -I${tclconfigshdir}"
    38     38   		CPPFLAGS="${CPPFLAGS} ${TCL_INCLUDE_SPEC} -I${TCL_SRC_DIR}/generic -I${tclconfigshdir}"
    39     39   		LIBS="${LIBS} ${TCL_LIBS}"
           40  +
           41  +		KITDLL_LIB_VERSION=`echo "${TCL_VERSION}${TCL_PATCH_LEVEL}" | sed 's@\.@@g'`
    40     42   	fi
    41     43   
    42     44   	AC_SUBST(CFLAGS)
    43     45   	AC_SUBST(CPPFLAGS)
    44     46   	AC_SUBST(LIBS)
           47  +	AC_SUBST(KITDLL_LIB_VERSION)
    45     48   
    46     49   	AC_MSG_RESULT([$tclconfigsh])
    47     50   ])
    48     51   
    49     52   AC_DEFUN(DC_DO_TK, [
    50     53   	AC_MSG_CHECKING([path to tk])
    51     54   	AC_ARG_WITH(tk, AC_HELP_STRING([--with-tk], [directory containing tk configuration (tkConfig.sh)]), [], [
................................................................................
   149    152   	DC_DO_STATIC_LINK_LIB([C++ Library (Sun Studio)], [-lCstd -lCrun],, [
   150    153   		DC_DO_STATIC_LINK_LIB([C++ Library (UNIX)], [-lstdc++])
   151    154   	])
   152    155   ])
   153    156   
   154    157   AC_DEFUN(DC_FIND_TCLKIT_LIBS, [
   155    158   	DC_SETUP_TCL_PLAT_DEFS
          159  +
          160  +	dnl We will need this for the Tcl project, which we will always have
          161  +	DC_CHECK_FOR_WHOLE_ARCHIVE
   156    162   
   157    163   	for projdir in ../../../*/; do
   158    164   		proj="`basename "${projdir}"`"
   159    165   
   160    166   		if test "${proj}" = "zlib"; then
   161    167   			continue
   162    168   		fi
   163    169   
   164         -		libdir="../../../${proj}/inst"
          170  +		projlibdir="../../../${proj}/inst"
   165    171   
   166         -		if test -d "${libdir}"; then
          172  +		if test -d "${projlibdir}"; then
   167    173   			true
   168    174   		else
   169    175   			continue
   170    176   		fi
   171    177   
   172    178   		AC_MSG_CHECKING([for libraries required for ${proj}])
   173    179   
   174         -		libfiles="`find "${libdir}" -name '*.a' 2>/dev/null | tr "\n" ' '`"
   175         -		libfilesnostub="`find "${libdir}" -name '*.a' 2>/dev/null | grep -v 'stub' | tr "\n" ' '`"
          180  +		projlibfiles="`find "${projlibdir}" -name '*.a' 2>/dev/null | tr "\n" ' '`"
          181  +		projlibfilesnostub="`find "${projlibdir}" -name '*.a' 2>/dev/null | grep -v 'stub' | tr "\n" ' '`"
   176    182   
   177         -		ARCHS="${ARCHS} ${libfiles}"
          183  +		AC_MSG_RESULT([${projlibfilesnostub}])
   178    184   
   179         -		AC_MSG_RESULT([${libfiles}])
          185  +		hide_symbols="1"
   180    186   
   181         -		if test "${libfilesnostub}" != ""; then
   182         -			if test "${proj}" = "mk4tcl"; then
          187  +		if test "${proj}" = "tcl"; then
          188  +			DC_TEST_WHOLE_ARCHIVE_SHARED_LIB([$ARCHS $projlibfilesnostub], [
          189  +				projlibfiles="${projlibfilesnostub}"
          190  +			], [
          191  +				DC_TEST_WHOLE_ARCHIVE_SHARED_LIB([$ARCHS $projlibfiles], [
          192  +					projlibfiles="${projlibfiles}"
          193  +				])
          194  +			])
          195  +
          196  +			hide_symbols="0"
          197  +		fi
          198  +
          199  +		if test "${proj}" = "mk4tcl"; then
          200  +			if test -n "${projlibfiles}"; then
   183    201   				AC_DEFINE(KIT_INCLUDES_MK4TCL, [1], [Specify this if you link against mkt4tcl])
          202  +
          203  +				kc_cv_feature_kit_includes_mk4tcl='1'
          204  +
   184    205   				DC_DO_STATIC_LINK_LIBCXX
   185    206   			fi
   186         -			if test "${proj}" = "tk"; then
          207  +		fi
          208  +
          209  +		if test "${proj}" = "tk"; then
          210  +			if test "${projlibfilesnostub}" != ""; then
   187    211   				DC_DO_TK
   188    212   				AC_DEFINE(KIT_INCLUDES_TK, [1], [Specify this if we link statically to Tk])
   189    213   				if test -n "${TK_VERSION}"; then
   190    214   					AC_DEFINE_UNQUOTED(KIT_TK_VERSION, "${TK_VERSION}${TK_PATCH_LEVEL}", [Specify the version of Tk])
   191    215   				fi
   192    216   
   193    217   				if test "$host_os" = "mingw32msvc" -o "$host_os" = "mingw32"; then
   194    218   					AC_DEFINE(KITSH_NEED_WINMAIN, [1], [Define if you need WinMain (Windows)])
   195    219   					CFLAGS="${CFLAGS} -mwindows"
   196    220   				fi
          221  +
          222  +				DC_TEST_WHOLE_ARCHIVE_SHARED_LIB([$ARCHS $projlibfilesnostub], [
          223  +					projlibfiles="${projlibfilesnostub}"
          224  +				], [
          225  +					DC_TEST_WHOLE_ARCHIVE_SHARED_LIB([$ARCHS $projlibfiles], [
          226  +						projlibfiles="${projlibfiles}"
          227  +					])
          228  +				])
          229  +
          230  +				hide_symbols="0"
   197    231   			fi
   198    232   		fi
          233  +
          234  +		if test "${hide_symbols}" = "1"; then
          235  +			STRIPLIBS="${STRIPLIBS} ${projlibfiles}"
          236  +		fi
          237  +
          238  +		dnl Do not explicitly link to Zlib, that will happen elsewhere
          239  +		if test "${proj}" = "zlib"; then
          240  +			continue
          241  +		fi
          242  +
          243  +		ARCHS="${ARCHS} ${projlibfiles}"
   199    244   	done
   200    245   
   201    246   	AC_SUBST(ARCHS)
          247  +	AC_SUBST(STRIPLIBS)
   202    248   ])
   203    249   
   204    250   AC_DEFUN(DC_SETUP_TCL_PLAT_DEFS, [
          251  +	AC_CANONICAL_BUILD
   205    252   	AC_CANONICAL_HOST
   206    253     
   207    254   	AC_MSG_CHECKING(host operating system)
   208    255   	AC_MSG_RESULT($host_os)
   209    256     
   210    257   	case $host_os in
   211    258   		mingw32*)
   212    259   			CFLAGS="${CFLAGS} -mno-cygwin -mms-bitfields"
          260  +			WISH_CFLAGS="-mwindows"
   213    261   
   214    262   			dnl If we are building for Win32, we need to define "BUILD_tcl" so that
   215    263   			dnl TCL_STORAGE_CLASS gets defined as DLLEXPORT, to make static linking
   216    264   			dnl work
   217    265   			AC_DEFINE(BUILD_tcl, [1], [Define if you need to pretend to be building Tcl (Windows)])
   218    266   			AC_DEFINE(BUILD_tk, [1], [Define if you need to pretend to be building Tk (Windows)])
   219    267   			;;
   220    268   		cygwin*)
   221    269   			CFLAGS="${CFLAGS} -mms-bitfields"
          270  +			WISH_CFLAGS="-mwindows"
   222    271   			;;
   223    272   	esac
          273  +
          274  +	AC_SUBST(WISH_CFLAGS)
   224    275   ])
   225    276   
   226    277   AC_DEFUN(DC_STATIC_LIBGCC, [
   227    278   	AC_MSG_CHECKING([how to link statically against libgcc])
   228    279   
   229    280   	SAVELDFLAGS="${LDFLAGS}"
   230    281   	staticlibgcc=""
................................................................................
   269    320   			AC_MSG_RESULT([found])
   270    321   			AC_DEFINE(HAVE_ACCEPTABLE_DLADDR, [1], [Define to 1 if you have an acceptable dladdr implementation with dli_fname])
   271    322   		], [
   272    323   			AC_MSG_RESULT([not found])
   273    324   		]
   274    325   	)
   275    326   ])
          327  +
          328  +dnl Usage:
          329  +dnl    DC_TEST_SHOBJFLAGS(shobjflags, shobjldflags, action-if-not-found)
          330  +dnl
          331  +AC_DEFUN(DC_TEST_SHOBJFLAGS, [
          332  +  AC_SUBST(SHOBJFLAGS)
          333  +  AC_SUBST(SHOBJLDFLAGS)
          334  +
          335  +  OLD_LDFLAGS="$LDFLAGS"
          336  +  SHOBJFLAGS=""
          337  +
          338  +  LDFLAGS="$OLD_LDFLAGS $1 $2"
          339  +
          340  +  AC_TRY_LINK([#include <stdio.h>
          341  +int unrestst(void);], [ printf("okay\n"); unrestst(); return(0); ], [ SHOBJFLAGS="$1"; SHOBJLDFLAGS="$2" ], [
          342  +  LDFLAGS="$OLD_LDFLAGS"
          343  +  $3
          344  +])
          345  +
          346  +  LDFLAGS="$OLD_LDFLAGS"
          347  +])
          348  +
          349  +AC_DEFUN(DC_GET_SHOBJFLAGS, [
          350  +  AC_SUBST(SHOBJFLAGS)
          351  +  AC_SUBST(SHOBJLDFLAGS)
          352  +
          353  +  AC_MSG_CHECKING(how to create shared objects)
          354  +
          355  +  if test -z "$SHOBJFLAGS" -a -z "$SHOBJLDFLAGS"; then
          356  +    DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -rdynamic], [
          357  +      DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared], [
          358  +        DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -rdynamic -mimpure-text], [
          359  +          DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -mimpure-text], [
          360  +            DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -rdynamic -Wl,-G,-z,textoff], [
          361  +              DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -Wl,-G,-z,textoff], [
          362  +                DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-shared -dynamiclib -flat_namespace -undefined suppress -bind_at_load], [
          363  +                  DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-dynamiclib -flat_namespace -undefined suppress -bind_at_load], [
          364  +                    DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-Wl,-dynamiclib -Wl,-flat_namespace -Wl,-undefined,suppress -Wl,-bind_at_load], [
          365  +                      DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-dynamiclib -flat_namespace -undefined suppress], [
          366  +                        DC_TEST_SHOBJFLAGS([-fPIC -DPIC], [-dynamiclib], [
          367  +                          AC_MSG_RESULT(cant)
          368  +                          AC_MSG_ERROR([We are unable to make shared objects.])
          369  +                        ])
          370  +                      ])
          371  +                    ])
          372  +                  ])
          373  +                ])
          374  +              ])
          375  +            ])
          376  +          ])
          377  +        ])
          378  +      ])
          379  +    ])
          380  +  fi
          381  +
          382  +  AC_MSG_RESULT($SHOBJLDFLAGS $SHOBJFLAGS)
          383  +])
          384  +
          385  +AC_DEFUN(DC_CHK_OS_INFO, [
          386  +	AC_CANONICAL_BUILD
          387  +	AC_CANONICAL_HOST
          388  +
          389  +	AC_SUBST(SHOBJEXT)
          390  +	AC_SUBST(AREXT)
          391  +        AC_SUBST(SHOBJFLAGS)
          392  +        AC_SUBST(SHOBJLDFLAGS)
          393  +
          394  +        AC_MSG_CHECKING(host operating system)
          395  +        AC_MSG_RESULT($host_os)
          396  +
          397  +	SHOBJEXT="so"
          398  +	AREXT="a"
          399  +
          400  +        case $host_os in
          401  +                darwin*)
          402  +			SHOBJEXT="dylib"
          403  +                        ;;
          404  +		hpux*)
          405  +			SHOBJEXT="sl"
          406  +			;;
          407  +		mingw*)
          408  +			SHOBJEXT="dll"
          409  +			SHOBJFLAGS="-mno-cygwin -mms-bitfields -DPIC"
          410  +			SHOBJLDFLAGS='-shared -Wl,--dll -Wl,--enable-auto-image-base -Wl,--output-def,$[@].def,--out-implib,$[@].a -Wl,--export-all-symbols -Wl,--add-stdcall-alias'
          411  +			;;
          412  +	esac
          413  +])
          414  +
          415  +AC_DEFUN(DC_TEST_WHOLE_ARCHIVE_SHARED_LIB, [
          416  +
          417  +	SAVE_LIBS="${LIBS}"
          418  +
          419  +	LIBS="${WHOLEARCHIVE} $1 ${NOWHOLEARCHIVE} ${SAVE_LIBS}"
          420  +	AC_LINK_IFELSE(
          421  +		AC_LANG_PROGRAM([[
          422  +			]], [[
          423  +			]]
          424  +		),
          425  +		[
          426  +			LIBS="${SAVE_LIBS}"
          427  +
          428  +			$2
          429  +		], [
          430  +			LIBS="${SAVE_LIBS}"
          431  +
          432  +			$3
          433  +		]
          434  +	)
          435  +])
          436  +
          437  +AC_DEFUN(DC_CHECK_FOR_WHOLE_ARCHIVE, [
          438  +	AC_MSG_CHECKING([for how to link whole archive])
          439  +
          440  +	SAVE_CFLAGS="${CFLAGS}"
          441  +
          442  +	wholearchive=""
          443  +
          444  +	for check in "-Wl,--whole-archive -Wl,--no-whole-archive" "-Wl,-z,allextract -Wl,-z,defaultextract"; do
          445  +		CFLAGS="${SAVE_CFLAGS} ${check}"
          446  +
          447  +		AC_LINK_IFELSE(AC_LANG_PROGRAM([], []),
          448  +			[
          449  +				wholearchive="${check}"
          450  +
          451  +				break
          452  +			]
          453  +		)
          454  +
          455  +	done
          456  +
          457  +	CFLAGS="${SAVE_CFLAGS}"
          458  +
          459  +	if test -z "${wholearchive}"; then
          460  +		AC_MSG_RESULT([not found])
          461  +	else
          462  +		AC_MSG_RESULT([${wholearchive}])
          463  +
          464  +		WHOLEARCHIVE=`echo "${wholearchive}" | cut -f 1 -d ' '`
          465  +		NOWHOLEARCHIVE=`echo "${wholearchive}" | cut -f 2 -d ' '`
          466  +	fi
          467  +
          468  +	AC_SUBST(WHOLEARCHIVE)
          469  +	AC_SUBST(NOWHOLEARCHIVE)
          470  +])
          471  +
          472  +AC_DEFUN(DC_SETLDRUNPATH, [
          473  +	OLD_LDFLAGS="${LDFLAGS}"
          474  +
          475  +	for testldflags in "-Wl,-rpath -Wl,$1" "-Wl,-R -Wl,$1"; do
          476  +		LDFLAGS="${OLD_LDFLAGS} ${testldflags}"
          477  +		AC_TRY_LINK([#include <stdio.h>], [ return(0); ], [
          478  +			LDRUNPATH="$LDRUNPATH $testldflags"
          479  +
          480  +			break
          481  +		])
          482  +	done
          483  +
          484  +	LDFLAGS="${OLD_LDFLAGS}"
          485  +
          486  +	AC_SUBST(LDRUNPATH)
          487  +])

Modified kitsh/buildsrc/kitsh-0.0/boot.tcl from [6dee5fa1e9] to [fcd5a93523].

     1      1   proc tclInit {} {
     2      2   	rename tclInit {}
     3      3   
     4      4   	global auto_path tcl_library tcl_libPath
     5      5   	global tcl_version tcl_rcFileName
     6      6     
     7         -	set noe [info nameofexecutable]
            7  +	set mountpoint [subst "$::TCLKIT_MOUNTPOINT_VAR"]
     8      8   
     9      9   	# Resolve symlinks
    10         -	set noe [file dirname [file normalize [file join $noe __dummy__]]]
           10  +	set mountpoint [file dirname [file normalize [file join $mountpoint __dummy__]]]
    11     11   
    12         -	set tcl_library [file join $noe lib tcl$tcl_version]
    13         -	set tcl_libPath [list $tcl_library [file join $noe lib]]
    14         -
    15         -	# get rid of a build residue
    16         -	unset -nocomplain ::tclDefaultLibrary
           12  +	set tcl_library [file join $mountpoint lib tcl$tcl_version]
           13  +	set tcl_libPath [list $tcl_library [file join $mountpoint lib]]
    17     14   
    18     15   	# the following code only gets executed once on startup
    19         -	if {[info exists tcl_rcFileName]} {
           16  +	if {[info exists ::TCLKIT_INITVFS]} {
    20     17   		# lookup and emulate "source" of lib/vfs/{vfs*.tcl,mk4vfs.tcl}
    21     18   		switch -- $::tclKitStorage {
    22     19   			"mk4" {
    23         -				load {} vfs
    24         -
    25     20   				# must use raw MetaKit calls because VFS is not yet in place
    26     21   				set d [mk::select exe.dirs parent 0 name lib]
    27     22   				set d [mk::select exe.dirs parent $d name vfs]
    28     23       
    29     24   				foreach x {vfsUtils vfslib mk4vfs} {
    30     25   					set n [mk::select exe.dirs!$d.files name $x.tcl]
    31     26   					set s [mk::get exe.dirs!$d.files!$n contents]
................................................................................
    70     65   					}
    71     66   				}
    72     67   
    73     68   				seek $::tclKitStorage_fd 0
    74     69   				set vfsHandler [list ::vfs::zip::handler $::tclKitStorage_fd]
    75     70   				unset ::tclKitStorage_fd
    76     71   			}
           72  +			"cvfs" {
           73  +				set vfsHandler [list ::vfs::cvfs::vfshandler tcl]
           74  +
           75  +				# Load these, the original Tclkit does so it should be safe.
           76  +				foreach vfsfile [list vfsUtils vfslib] {
           77  +					unset -nocomplain s
           78  +
           79  +					catch {
           80  +						set s [::vfs::cvfs::data::getData tcl "lib/vfs/${vfsfile}.tcl"]
           81  +					}
           82  +
           83  +					if {![info exists s]} {
           84  +						continue
           85  +					}
           86  +
           87  +					uplevel #0 $s
           88  +				}
           89  +			}
    77     90   		}
    78     91   
    79     92   		# mount the executable, i.e. make all runtime files available
    80         -		vfs::filesystem mount $noe $vfsHandler
           93  +		vfs::filesystem mount $mountpoint $vfsHandler
    81     94   
    82     95   		# alter path to find encodings
    83     96   		if {[info tclversion] eq "8.4"} {
    84     97   			load {} pwb
    85     98   			librarypath [info library]
    86     99   		} else {
    87    100   			encoding dirs [list [file join [info library] encoding]] ;# TIP 258
................................................................................
    90    103   		# fix system encoding, if it wasn't properly set up (200207.004 bug)
    91    104   		if {[encoding system] eq "identity"} {
    92    105   			if {[info exists ::tclkit_system_encoding] && $::tclkit_system_encoding != ""} {
    93    106   				catch {
    94    107   					encoding system $::tclkit_system_encoding
    95    108   				}
    96    109   			}
    97         -			unset -nocomplain ::tclkit_system_encoding
    98    110   		}
    99    111   
   100    112   		# If we've still not been able to set the encoding, revert to Tclkit defaults
   101    113   		if {[encoding system] eq "identity"} {
   102    114   			catch {
   103    115   				switch $::tcl_platform(platform) {
   104    116   					windows		{ encoding system cp1252 }
   105    117   					macintosh	{ encoding system macRoman }
   106    118   				        default		{ encoding system iso8859-1 }
   107    119   				}
   108    120   			}
   109    121   		}
          122  +
          123  +		# Re-evaluate mountpoint with correct encoding set
          124  +		set mountpoint [subst "$::TCLKIT_MOUNTPOINT_VAR"]
   110    125   
   111    126   		# now remount the executable with the correct encoding
   112    127   		vfs::filesystem unmount [lindex [::vfs::filesystem info] 0]
   113    128   
   114         -		set noe [info nameofexecutable]
   115         -
   116    129   		# Resolve symlinks
   117         -		set noe [file dirname [file normalize [file join $noe __dummy__]]]
          130  +		set mountpoint [file dirname [file normalize [file join $mountpoint __dummy__]]]
          131  +
          132  +		set tcl_library [file join $mountpoint lib tcl$tcl_version]
          133  +		set tcl_libPath [list $tcl_library [file join $mountpoint lib]]
          134  +
          135  +		vfs::filesystem mount $mountpoint $vfsHandler
   118    136   
   119         -		set tcl_library [file join $noe lib tcl$tcl_version]
   120         -		set tcl_libPath [list $tcl_library [file join $noe lib]]
   121         -
   122         -		vfs::filesystem mount $noe $vfsHandler
          137  +		# This loads everything needed for "clock scan" to work
          138  +		# "clock scan" is used within "vfs::zip", which may be
          139  +		# loaded before this is run causing the root VFS to break
          140  +		catch { clock scan }
   123    141   	}
   124    142     
   125    143   	# load config settings file if present
   126    144   	namespace eval ::vfs { variable tclkit_version 1 }
   127         -	catch { uplevel #0 [list source [file join $noe config.tcl]] }
          145  +	catch { uplevel #0 [list source [file join $mountpoint config.tcl]] }
   128    146   
          147  +	# Perform expected initialization
   129    148   	uplevel #0 [list source [file join $tcl_library init.tcl]]
   130    149     
   131    150   	# reset auto_path, so that init.tcl's search outside of tclkit is cancelled
   132    151   	set auto_path $tcl_libPath
   133    152   
   134         -	# This loads everything needed for "clock scan" to work
   135         -	# "clock scan" is used within "vfs::zip", which may be
   136         -	# loaded before this is run causing the root VFS to break
   137         -	catch { clock scan }
          153  +	if {$::TCLKIT_TYPE == "kitdll"} {
          154  +		# Set a maximum seek to avoid reading the entire file looking for a
          155  +		# zip header
          156  +		catch { 
          157  +			package require vfs::zip
          158  +			set ::zip::max_header_seek 8192
          159  +		}
          160  +
          161  +		# Now that the initialization is complete, mount the user VFS if needed
          162  +		## Mount the VFS from the Shared Object
          163  +		if {[info exists ::TCLKIT_INITVFS] && [info exists ::tclKitFilename]} {
          164  +			catch {
          165  +				vfs::zip::Mount $::tclKitFilename "/.KITDLL_USER"
          166  +
          167  +				lappend auto_path "/.KITDLL_USER/lib"
          168  +			}
          169  +		}
          170  +
          171  +		## Mount the VFS from executable
          172  +		if {[info exists ::TCLKIT_INITVFS]} {
          173  +			catch {
          174  +				vfs::zip::Mount [info nameofexecutable] "/.KITDLL_APP"
          175  +
          176  +				lappend auto_path "/.KITDLL_APP/lib"
          177  +			}
          178  +		}
          179  +	}
   138    180   
   139         -	# Cleanup
   140         -	unset ::tclKitStorage
   141         -	unset -nocomplain ::tclKitStorage_fd
          181  +	# Clean up
          182  +	unset -nocomplain ::zip::max_header_seek
          183  +	unset -nocomplain ::TCLKIT_TYPE ::TCLKIT_INITVFS
          184  +	unset -nocomplain ::TCLKIT_MOUNTPOINT ::TCLKIT_VFSSOURCE ::TCLKIT_MOUNTPOINT_VAR ::TCLKIT_VFSSOURCE_VAR
          185  +	unset -nocomplain ::tclKitStorage ::tclKitStorage_fd ::tclKitFilename
          186  +	unset -nocomplain ::tclkit_system_encoding
   142    187   }

Modified kitsh/buildsrc/kitsh-0.0/configure.ac from [d545ae6633] to [20795b4d45].

     3      3   
     4      4   dnl Checks for programs.
     5      5   AC_PROG_CC
     6      6   AC_PROG_MAKE_SET
     7      7   AC_PROG_INSTALL
     8      8   AC_AIX
     9      9   AC_GNU_SOURCE
           10  +
           11  +dnl Find out if we should build a DLL or an Executable
           12  +TARGET="tclkit"
           13  +EXTRA_KIT_DEPS=""
           14  +AC_MSG_CHECKING([what target to build])
           15  +AC_ARG_ENABLE(kitdll, AC_HELP_STRING([--enable-kitdll], [Enable building KitDLL instead of Tclkit (default: no)]), [
           16  +	AS_CASE([$enableval],
           17  +		[yes|kitdll], [
           18  +			TARGET="kitdll"
           19  +		],
           20  +		no, [
           21  +			true
           22  +		], [
           23  +			AC_MSG_RESULT([unknown])
           24  +
           25  +			AC_MSG_ERROR([Invalid option: $enableval])
           26  +		]
           27  +	)
           28  +])
           29  +AC_MSG_RESULT([$TARGET])
    10     30   
    11     31   dnl Find the appropriate libraries to link to
    12     32   AC_SEARCH_LIBS(acos, m,, [ AC_MSG_WARN([Couldn't find acos (normally in libm)!]) ])
    13     33   AC_SEARCH_LIBS(dlsym, dl,, [ AC_MSG_WARN([Couldn't find dlsym (normally in libdl)!]) ])
    14     34   
    15         -dnl Figure out how to statically link to libgcc, if needed
    16         -DC_STATIC_LIBGCC
           35  +AS_IF([test "$TARGET" = "tclkit"], [
           36  +	dnl We have Tclkit
           37  +
           38  +	dnl Figure out how to statically link to libgcc, if needed
           39  +	DC_STATIC_LIBGCC
           40  +
           41  +	dnl Specify local Appinit function
           42  +	AC_DEFINE(TK_LOCAL_APPINIT, [TclKit_AppInit], [Tclkit appinit function])
           43  +], [
           44  +	dnl We have KitDLL
           45  +
           46  +	dnl Determine system information
           47  +	DC_CHK_OS_INFO
           48  +
           49  +	dnl Determine how to create a shared object
           50  +	DC_GET_SHOBJFLAGS
           51  +
           52  +	dnl Determine if we have "objcopy" available to weaken non-Tcl/Tk symbols
           53  +	AC_CHECK_TOOL(OBJCOPY, objcopy, [:])
           54  +
           55  +	dnl Define KitDLL usage
           56  +	AC_DEFINE([TCLKIT_DLL], [1], [Define if you are using a KitDLL rather than a Tclkit])
           57  +])
           58  +
           59  +dnl Set linker rpath for tclsh/wish
           60  +DC_SETLDRUNPATH([.])
    17     61   
    18     62   dnl Find the appropriate Tcl headers and libraries
    19     63   DC_DO_TCL
    20     64   
    21     65   dnl Find archives we need to link to
    22     66   DC_FIND_TCLKIT_LIBS
    23     67   
    24     68   dnl Find extra objects we need to link as a part of "kit"
    25     69   AC_SUBST(EXTRA_OBJS)
           70  +AC_SUBST(EXTRA_VFS_OBJS)
    26     71   
    27     72   dnl Check for Windows Resource Compiler
    28     73   AC_CHECK_TOOL([RC], [windres], [false])
    29     74   
    30     75   dnl If we found the resource compiler, add "kit.res.o" to our list of objects to build
    31         -if ! test "$RC" = "false"; then
    32         -	EXTRA_OBJS="$EXTRA_OBJS kit.res.o"
    33         -fi
           76  +dnl (as long as the source for such an object exists)
           77  +AS_IF([test "$RC" != "false"], [
           78  +	AS_IF([test -f kit.rc], [
           79  +		EXTRA_OBJS="$EXTRA_OBJS kit.res.o"
           80  +	])
           81  +])
    34     82   
    35     83   dnl Check for Tcl features
    36     84   SAVE_LIBS="${LIBS}"
    37     85   LIBS="${ARCHS} ${LIBS}"
           86  +
    38     87   dnl Determine if we have "Tcl_SetStartupScript" (8.6.x) or "TclSetStartupScriptPath" (8.4.x)
    39     88   AC_CHECK_FUNCS(Tcl_SetStartupScript TclSetStartupScriptPath)
           89  +
    40     90   dnl Check for the ability to get the current system encoding
    41     91   AC_CHECK_FUNCS(Tcl_GetEncodingNameFromEnvironment Tcl_SetSystemEncoding)
    42     92   LIBS="${SAVE_LIBS}"
    43     93   
    44     94   dnl Check for optional headers
    45     95   AC_HEADER_STDC
    46     96   AC_CHECK_HEADERS(unistd.h string.h strings.h)
................................................................................
    53    103   
    54    104   dnl Find zlib
    55    105   AC_ARG_WITH(zlib, AC_HELP_STRING([--with-zlib], [directory containing zlib]), [
    56    106   	CPPFLAGS="${CPPFLAGS} -I${with_zlib}/include -I${with_zlib}"
    57    107   	CFLAGS="${CFLAGS} -I${with_zlib}/include -I${with_zlib}"
    58    108   	LDFLAGS="${LDFLAGS} -L${with_zlib}/lib -L${with_zlib}"
    59    109   ])
          110  +
          111  +dnl Only needed for Tclkit
    60    112   DC_DO_STATIC_LINK_LIB(zlib, -lz,, [
    61    113   	DC_DO_STATIC_LINK_LIB(zlib, -lzlib,, [
    62    114   		AC_SEARCH_LIBS(inflate, z zlib,, [
    63    115   			AC_MSG_WARN([Couldn't find inflate (normally in zlib)!])
    64    116   		])
    65    117   	])
    66    118   ])
    67    119   
    68    120   dnl Determine which storage mechanism to use
    69    121   AC_MSG_CHECKING([which Tclkit Storage mechanism to use])
    70         -AC_ARG_ENABLE(kit-storage, AC_HELP_STRING([--enable-kit-storage={zip|mk4}], [Use mk4 for storage (default: auto)]), [
    71         -	case "$enableval" in
    72         -		mk4)
    73         -			AC_MSG_RESULT([mk4])
    74         -			AC_DEFINE([KIT_STORAGE_MK4], [1], [Define if you are going to use Metakit4 for kit storage])
    75         -			;;
    76         -		zip)
    77         -			AC_MSG_RESULT([zip])
    78         -			AC_DEFINE([KIT_STORAGE_ZIP], [1], [Define if you are going to use ZIP for kit storage])
    79         -			;;
    80         -		yes)
          122  +
          123  +storage_mech="auto"
          124  +AC_ARG_ENABLE(kit-storage, AC_HELP_STRING([--enable-kit-storage={zip|mk4|cvfs}], [Specify storage mechanism to use for built-in VFS (default: auto)]), [
          125  +	AS_CASE(["$enableval"],
          126  +		mk4, [
          127  +			storage_mech="mk4"
          128  +		],
          129  +		zip, [
          130  +			storage_mech="zip"
          131  +		],
          132  +		cvfs, [
          133  +			storage_mech="cvfs"
          134  +		],
          135  +		yes, [
    81    136   			# If they just want to enable kit storage, but nothing specifically, do nothing
    82         -			AC_MSG_RESULT([auto])
    83         -			;;
    84         -		auto)
          137  +			storage_mech="auto"
          138  +		],
          139  +		auto, [
    85    140   			# Auto is how it works by default
    86         -			AC_MSG_RESULT([auto])
    87         -			;;
    88         -		no)
          141  +			storage_mech="auto"
          142  +		],
          143  +		no, [
    89    144   			# You can't disable kit storage
    90    145   			AC_MSG_RESULT([fail])
    91    146   			AC_MSG_ERROR([Kit Storage cannot be disabled])
    92         -			;;
    93         -		*)
          147  +		],
          148  +		[
    94    149   			AC_MSG_RESULT([fail])
    95    150   			AC_MSG_ERROR([Unknown kit storage type: $enableval])
    96         -			;;
    97         -	esac
    98         -], [
    99         -	AC_MSG_RESULT([auto])
          151  +		]
          152  +	)
          153  +])
          154  +
          155  +dnl Explicitly define the storage mechanism
          156  +AS_IF([test "$storage_mech" = "auto"], [
          157  +	AS_IF([test "$TARGET" = 'tclkit'], [
          158  +		AS_IF([test "x$kc_cv_feature_kit_includes_mk4tcl" = 'x1'], [
          159  +			storage_mech="mk4"
          160  +		], [
          161  +			storage_mech="zip"
          162  +		])
          163  +	], [
          164  +		storage_mech="cvfs"
          165  +	])
   100    166   ])
   101    167   
          168  +dnl Note result
          169  +AC_MSG_RESULT([$storage_mech])
          170  +
          171  +dnl Define appropriate macros for the storage mechanism
          172  +AS_CASE([$storage_mech],
          173  +	mk4, [
          174  +		AC_DEFINE([KIT_STORAGE_MK4], [1], [Define if you are going to use Metakit4 for kit storage])
          175  +	],
          176  +	zip, [
          177  +		AC_DEFINE([KIT_STORAGE_ZIP], [1], [Define if you are going to use ZIP for kit storage])
          178  +
          179  +		dnl Add appropriate dependencies
          180  +		EXTRA_KIT_DEPS="zipvfs.tcl.h"
          181  +	],
          182  +	cvfs, [
          183  +		AC_DEFINE([KIT_STORAGE_CVFS], [1], [Define if you are going to use C-VFS for kit storage])
          184  +
          185  +		dnl Define that C-VFS should be make [load]-able
          186  +		AC_DEFINE([CVFS_MAKE_LOADABLE], [1], [Specify that the C-VFS should be able to be loaded])
          187  +
          188  +		dnl Add appropriate dependencies
          189  +		EXTRA_KIT_DEPS="cvfs.tcl.h"
          190  +		EXTRA_VFS_OBJS="${EXTRA_VFS_OBJS} cvfs_data_tcl.o"
          191  +	]
          192  +)
          193  +
          194  +AC_SUBST(EXTRA_KIT_DEPS)
          195  +
          196  +dnl Put correct Makefile template in place
          197  +rm -f Makefile.in
          198  +cp Makefile.${TARGET}.in Makefile.in
          199  +
   102    200   dnl Produce output
   103         -AC_OUTPUT(Makefile)
          201  +AC_OUTPUT(Makefile Makefile.common)

Modified kitsh/buildsrc/kitsh-0.0/cvfs.tcl from [662da588b0] to [20e6e11465].

     1      1   #! /usr/bin/env tcl
     2      2   
     3      3   package require vfs
     4      4   
     5         -namespace eval ::vfs::kitdll {}
            5  +namespace eval ::vfs::cvfs {}
     6      6   
     7      7   # Convience functions
     8         -proc ::vfs::kitdll::Mount {hashkey local} {
     9         -	vfs::filesystem mount $local [list ::vfs::kitdll::vfshandler $hashkey]
            8  +proc ::vfs::cvfs::Mount {hashkey local} {
            9  +	vfs::filesystem mount $local [list ::vfs::cvfs::vfshandler $hashkey]
    10     10   	catch {
    11         -		vfs::RegisterMount $local [list ::vfs::kitdll::Unmount]
           11  +		vfs::RegisterMount $local [list ::vfs::cvfs::Unmount]
    12     12   	}
    13     13   }
    14     14   
    15         -proc ::vfs::kitdll::Unmount {local} {
           15  +proc ::vfs::cvfs::Unmount {local} {
    16     16   	vfs::filesystem unmount $local
    17     17   }
    18     18   
    19     19   # Implementation
    20     20   ## I/O Handlers (pass to appropriate hashkey)
    21         -namespace eval ::vfs::kitdll::data {}
    22         -proc ::vfs::kitdll::data::getChildren args {
           21  +namespace eval ::vfs::cvfs::data {}
           22  +proc ::vfs::cvfs::data::getChildren args {
    23     23   	set hashkey [lindex $args 0]
    24     24   
    25         -	set cmd "::vfs::kitdll::data::${hashkey}::getChildren"
           25  +	set cmd "::vfs::cvfs::data::${hashkey}::getChildren"
    26     26   	set cmd [linsert $args 0 $cmd]
    27     27   
    28     28   	eval $cmd
    29     29   }
    30     30   
    31         -proc ::vfs::kitdll::data::getMetadata args {
           31  +proc ::vfs::cvfs::data::getMetadata args {
    32     32   	set hashkey [lindex $args 0]
    33     33   
    34         -	set cmd "::vfs::kitdll::data::${hashkey}::getMetadata"
           34  +	set cmd "::vfs::cvfs::data::${hashkey}::getMetadata"
    35     35   	set cmd [linsert $args 0 $cmd]
    36     36   
    37     37   	eval $cmd
    38     38   }
    39     39   
    40         -proc ::vfs::kitdll::data::getData args {
           40  +proc ::vfs::cvfs::data::getData args {
    41     41   	set hashkey [lindex $args 0]
    42     42   
    43         -	set cmd "::vfs::kitdll::data::${hashkey}::getData"
           43  +	set cmd "::vfs::cvfs::data::${hashkey}::getData"
    44     44   	set cmd [linsert $args 0 $cmd]
    45     45   
    46     46   	eval $cmd
    47     47   }
    48     48   
    49     49   ## VFS and Chan I/O
    50     50   ### Dispatchers
    51         -proc ::vfs::kitdll::vfshandler {hashkey subcmd args} {
           51  +proc ::vfs::cvfs::vfshandler {hashkey subcmd args} {
    52     52   	set cmd $args
    53         -	set cmd [linsert $cmd 0 "::vfs::kitdll::vfsop_${subcmd}" $hashkey]
           53  +	set cmd [linsert $cmd 0 "::vfs::cvfs::vfsop_${subcmd}" $hashkey]
    54     54   
    55     55   	return [eval $cmd]
    56     56   }
    57     57   
    58         -proc ::vfs::kitdll::chanhandler {hashkey subcmd args} {
           58  +proc ::vfs::cvfs::chanhandler {hashkey subcmd args} {
    59     59   	set cmd $args
    60         -	set cmd [linsert $cmd 0 "::vfs::kitdll::chanop_${subcmd}" $hashkey]
           60  +	set cmd [linsert $cmd 0 "::vfs::cvfs::chanop_${subcmd}" $hashkey]
    61     61   
    62     62   	return [eval $cmd]
    63     63   }
    64     64   
    65     65   ### Actual handlers
    66     66   #### Channel operation handlers
    67         -proc ::vfs::kitdll::chanop_initialize {hashkey chanId mode} {
           67  +proc ::vfs::cvfs::chanop_initialize {hashkey chanId mode} {
    68     68   	return [list initialize finalize watch read seek]
    69     69   }
    70     70   
    71         -proc ::vfs::kitdll::chanop_finalize {hashkey chanId} {
    72         -	unset -nocomplain ::vfs::kitdll::chandata([list $hashkey $chanId])
           71  +proc ::vfs::cvfs::chanop_finalize {hashkey chanId} {
           72  +	unset -nocomplain ::vfs::cvfs::chandata([list $hashkey $chanId])
    73     73   
    74     74   	return
    75     75   }
    76     76   
    77         -proc ::vfs::kitdll::chanop_watch {hashkey chanId eventSpec} {
    78         -	array set chaninfo $::vfs::kitdll::chandata([list $hashkey $chanId])
           77  +proc ::vfs::cvfs::chanop_watch {hashkey chanId eventSpec} {
           78  +	array set chaninfo $::vfs::cvfs::chandata([list $hashkey $chanId])
    79     79   
    80     80   	set chaninfo(watching) $eventSpec
    81     81   
    82         -	set ::vfs::kitdll::chandata([list $hashkey $chanId]) [array get chaninfo]
           82  +	set ::vfs::cvfs::chandata([list $hashkey $chanId]) [array get chaninfo]
    83     83   
    84     84   	if {[lsearch -exact $chaninfo(watching) "read"] != -1} {
    85     85   		after 0 [list catch "chan postevent $chanId [list {read}]"]
    86     86   	}
    87     87   
    88     88   	return
    89     89   }
    90     90   
    91         -proc ::vfs::kitdll::chanop_read {hashkey chanId bytes} {
    92         -	array set chaninfo $::vfs::kitdll::chandata([list $hashkey $chanId])
           91  +proc ::vfs::cvfs::chanop_read {hashkey chanId bytes} {
           92  +	array set chaninfo $::vfs::cvfs::chandata([list $hashkey $chanId])
    93     93   
    94     94   	set pos $chaninfo(pos)
    95     95   	set len $chaninfo(len)
    96     96   
    97     97   	if {[lsearch -exact $chaninfo(watching) "read"] != -1} {
    98     98   		after 0 [list catch "chan postevent $chanId [list {read}]"]
    99     99   	}
................................................................................
   103    103   	}
   104    104   
   105    105   	set end [expr {$pos + $bytes}]
   106    106   	if {$end > $len} {
   107    107   		set end $len
   108    108   	}
   109    109   
   110         -	set data [::vfs::kitdll::data::getData $hashkey $chaninfo(file) $pos $end]
          110  +	set data [::vfs::cvfs::data::getData $hashkey $chaninfo(file) $pos $end]
   111    111   
   112    112   	set dataLen [string length $data]
   113    113   	incr pos $dataLen
   114    114   
   115    115   	set chaninfo(pos) $pos
   116    116   
   117         -	set ::vfs::kitdll::chandata([list $hashkey $chanId]) [array get chaninfo]
          117  +	set ::vfs::cvfs::chandata([list $hashkey $chanId]) [array get chaninfo]
   118    118   
   119    119   	return $data
   120    120   }
   121    121   
   122         -proc ::vfs::kitdll::chanop_seek {hashkey chanId offset origin} {
   123         -	array set chaninfo $::vfs::kitdll::chandata([list $hashkey $chanId])
          122  +proc ::vfs::cvfs::chanop_seek {hashkey chanId offset origin} {
          123  +	array set chaninfo $::vfs::cvfs::chandata([list $hashkey $chanId])
   124    124   
   125    125   	set pos $chaninfo(pos)
   126    126   	set len $chaninfo(len)
   127    127   
   128    128   	switch -- $origin {
   129    129   		"start" - "0" {
   130    130   			set pos $offset
................................................................................
   142    142   	}
   143    143   
   144    144   	if {$pos > $len} {
   145    145   		set pos $len
   146    146   	}
   147    147   
   148    148   	set chaninfo(pos) $pos
   149         -	set ::vfs::kitdll::chandata([list $hashkey $chanId]) [array get chaninfo]
          149  +	set ::vfs::cvfs::chandata([list $hashkey $chanId]) [array get chaninfo]
   150    150   
   151    151   	return $pos
   152    152   }
   153    153   
   154    154   #### VFS operation handlers
   155         -proc ::vfs::kitdll::vfsop_stat {hashkey root relative actualpath} {
          155  +proc ::vfs::cvfs::vfsop_stat {hashkey root relative actualpath} {
   156    156   	catch {
   157         -		set ret [::vfs::kitdll::data::getMetadata $hashkey $relative]
          157  +		set ret [::vfs::cvfs::data::getMetadata $hashkey $relative]
   158    158   	}
   159    159   
   160    160   	if {![info exists ret]} {
   161    161   		vfs::filesystem posixerror $::vfs::posix(ENOENT)
   162    162   	}
   163    163   
   164    164   	return $ret
   165    165   }
   166    166   
   167         -proc ::vfs::kitdll::vfsop_access {hashkey root relative actualpath mode} {
   168         -	set ret [::vfs::kitdll::data::getMetadata $hashkey $relative]
          167  +proc ::vfs::cvfs::vfsop_access {hashkey root relative actualpath mode} {
          168  +	set ret [::vfs::cvfs::data::getMetadata $hashkey $relative]
   169    169   
   170    170   	if {$mode & 0x2} {
   171    171   		vfs::filesystem posixerror $::vfs::posix(EROFS)
   172    172   	}
   173    173   
   174    174   	return 1
   175    175   }
   176    176   
   177         -proc ::vfs::kitdll::vfsop_matchindirectory {hashkey root relative actualpath pattern types} {
          177  +proc ::vfs::cvfs::vfsop_matchindirectory {hashkey root relative actualpath pattern types} {
   178    178   	set ret [list]
   179    179   
   180    180   	catch {
   181         -		array set metadata [::vfs::kitdll::data::getMetadata $hashkey $relative]
          181  +		array set metadata [::vfs::cvfs::data::getMetadata $hashkey $relative]
   182    182   	}
   183    183   
   184    184   	if {![info exists metadata]} {
   185    185   		return [list]
   186    186   	}
   187    187   
   188    188   	if {$pattern == ""} {
   189    189   		set children [list $relative]
   190    190   	} else {
   191         -		set children [::vfs::kitdll::data::getChildren $hashkey $relative]
          191  +		set children [::vfs::cvfs::data::getChildren $hashkey $relative]
   192    192   	}
   193    193   
   194    194   	foreach child $children {
   195    195   		if {$pattern != ""} {
   196    196   			if {![string match $pattern $child]} {
   197    197   				continue
   198    198   			}
   199    199   		}
   200    200   
   201    201   		unset -nocomplain metadata
   202    202   		catch {
   203         -			array set metadata [::vfs::kitdll::data::getMetadata $hashkey $child]
          203  +			array set metadata [::vfs::cvfs::data::getMetadata $hashkey $child]
   204    204   		}
   205    205   
   206    206   		if {[string index $root end] == "/"} {
   207    207   			set child "${root}${child}"
   208    208   		} else {
   209    209   			set child "${root}/${child}"
   210    210   		}
................................................................................
   238    238   
   239    239   		lappend ret $child
   240    240   	}
   241    241   
   242    242   	return $ret
   243    243   }
   244    244   
   245         -proc ::vfs::kitdll::vfsop_fileattributes {hashkey root relative actualpath {index -1} {value ""}} {
          245  +proc ::vfs::cvfs::vfsop_fileattributes {hashkey root relative actualpath {index -1} {value ""}} {
   246    246   	set attrs [list -owner -group -permissions]
   247    247   
   248    248   	if {$value != ""} {
   249    249   		vfs::filesystem posixerror $::vfs::posix(EROFS)
   250    250   	}
   251    251   
   252    252   	if {$index == -1} {
   253    253   		return $attrs
   254    254   	}
   255    255   
   256         -	array set metadata [::vfs::kitdll::data::getMetadata $hashkey $relative]
          256  +	array set metadata [::vfs::cvfs::data::getMetadata $hashkey $relative]
   257    257   
   258    258   	set attr [lindex $attrs $index]
   259    259   
   260    260   	switch -- $attr {
   261    261   		"-owner" {
   262    262   			return $metadata(uid)
   263    263   		}
................................................................................
   272    272   			return [format {0%o} $metadata(mode)]
   273    273   		}
   274    274   	}
   275    275   
   276    276   	return -code error "Invalid index"
   277    277   }
   278    278   
   279         -proc ::vfs::kitdll::vfsop_open {hashkey root relative actualpath mode permissions} {
          279  +proc ::vfs::cvfs::vfsop_open {hashkey root relative actualpath mode permissions} {
   280    280   	if {$mode != "" && $mode != "r"} {
   281    281   		vfs::filesystem posixerror $::vfs::posix(EROFS)
   282    282   	}
   283    283   
   284    284   	catch {
   285         -		array set metadata [::vfs::kitdll::data::getMetadata $hashkey $relative]
          285  +		array set metadata [::vfs::cvfs::data::getMetadata $hashkey $relative]
   286    286   	}
   287    287   
   288    288   	if {![info exists metadata]} {
   289    289   		vfs::filesystem posixerror $::vfs::posix(ENOENT)
   290    290   	}
   291    291   
   292    292   	if {$metadata(type) == "directory"} {
   293    293   		vfs::filesystem posixerror $::vfs::posix(EISDIR)
   294    294   	}
   295    295   
   296    296   	if {[info command chan] != ""} {
   297         -		set chan [chan create [list "read"] [list ::vfs::kitdll::chanhandler $hashkey]]
          297  +		set chan [chan create [list "read"] [list ::vfs::cvfs::chanhandler $hashkey]]
   298    298   
   299         -		set ::vfs::kitdll::chandata([list $hashkey $chan]) [list file $relative pos 0 len $metadata(size) watching ""]
          299  +		set ::vfs::cvfs::chandata([list $hashkey $chan]) [list file $relative pos 0 len $metadata(size) watching ""]
   300    300   
   301    301   		return [list $chan]
   302    302   	}
   303    303   
   304    304   	if {[info command rechan] == ""} {
   305    305   		catch {
   306    306   			package require rechan
   307    307   		}
   308    308   	}
   309    309   
   310    310   	if {[info command rechan] != ""} {
   311         -		set chan [rechan [list ::vfs::kitdll::chanhandler $hashkey] 2]
          311  +		set chan [rechan [list ::vfs::cvfs::chanhandler $hashkey] 2]
   312    312   
   313         -		set ::vfs::kitdll::chandata([list $hashkey $chan]) [list file $relative pos 0 len $metadata(size) watching ""]
          313  +		set ::vfs::cvfs::chandata([list $hashkey $chan]) [list file $relative pos 0 len $metadata(size) watching ""]
   314    314   
   315    315   		return [list $chan]
   316    316   	}
   317    317   
   318    318   	return -code error "No way to generate a channel, need either Tcl 8.5+, \"rechan\""
   319    319   }
   320    320   
   321    321   ##### No-Ops since we are a readonly filesystem
   322         -proc ::vfs::kitdll::vfsop_createdirectory {args} {
          322  +proc ::vfs::cvfs::vfsop_createdirectory {args} {
          323  +	vfs::filesystem posixerror $::vfs::posix(EROFS)
          324  +}
          325  +proc ::vfs::cvfs::vfsop_deletefile {args} {
   323    326   	vfs::filesystem posixerror $::vfs::posix(EROFS)
   324    327   }
   325         -proc ::vfs::kitdll::vfsop_deletefile {args} {
          328  +proc ::vfs::cvfs::vfsop_removedirectory {args} {
   326    329   	vfs::filesystem posixerror $::vfs::posix(EROFS)
   327    330   }
   328         -proc ::vfs::kitdll::vfsop_removedirectory {args} {
   329         -	vfs::filesystem posixerror $::vfs::posix(EROFS)
   330         -}
   331         -proc ::vfs::kitdll::vfsop_utime {} {
          331  +proc ::vfs::cvfs::vfsop_utime {} {
   332    332   	vfs::filesystem posixerror $::vfs::posix(EROFS)
   333    333   }
   334    334   
   335         -package provide vfs::kitdll 1.0
          335  +package provide vfs::cvfs 1.0

Modified kitsh/buildsrc/kitsh-0.0/cvfs_data.c from [e51d57abbf] to [dcf0f1a5fd].

     1      1   #include <tcl.h>
     2      2   
     3      3   #ifdef HAVE_STDLIB_H
     4      4   #  include <stdlib.h>
     5      5   #endif
     6      6   
     7         -typedef struct kitdll_data *(cmd_getData_t)(const char *, unsigned long);
            7  +typedef struct cvfs_data *(cmd_getData_t)(const char *, unsigned long);
     8      8   typedef unsigned long (cmd_getChildren_t)(const char *, unsigned long *, unsigned long);
     9      9   
    10     10   /* Your implementation must provide these */
    11     11   static cmd_getData_t *getCmdData(const char *hashkey);
    12     12   static cmd_getChildren_t *getCmdChildren(const char *hashkey);
    13     13   
    14     14   /* Tcl Commands */
    15     15   static int getMetadata(ClientData cd, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
    16     16   	cmd_getData_t *cmd_getData;
    17     17   	cmd_getChildren_t *cmd_getChildren;
    18         -	struct kitdll_data *finfo = NULL;
           18  +	struct cvfs_data *finfo = NULL;
    19     19   	Tcl_Obj *ret_list, *ret_list_items[20];
    20     20   	unsigned long num_children;
    21     21   	const char *hashkey;
    22     22   	const char *file;
    23     23   
    24     24   	if (objc != 3) {
    25     25   		Tcl_SetResult(interp, "wrong # args: should be \"getMetadata hashKey fileName\"", TCL_STATIC);
................................................................................
    48     48   	}
    49     49   
    50     50   	/* Values that can be derived from "finfo" */
    51     51   	ret_list_items[0] = Tcl_NewStringObj("type", 4);
    52     52   	ret_list_items[2] = Tcl_NewStringObj("mode", 4);
    53     53   	ret_list_items[4] = Tcl_NewStringObj("nlink", 5);
    54     54   
    55         -	if (finfo->type == KITDLL_FILETYPE_DIR) {
           55  +	if (finfo->type == CVFS_FILETYPE_DIR) {
    56     56   		num_children = cmd_getChildren(file, NULL, 0);
    57     57   
    58     58   		ret_list_items[1] = Tcl_NewStringObj("directory", 9);
    59     59   		ret_list_items[3] = Tcl_NewLongObj(040555);
    60     60   		ret_list_items[5] = Tcl_NewLongObj(num_children);
    61     61   	} else {
    62     62   		ret_list_items[1] = Tcl_NewStringObj("file", 4);
................................................................................
    90     90   
    91     91   	Tcl_SetObjResult(interp, ret_list);
    92     92   
    93     93   	return(TCL_OK);
    94     94   }
    95     95   
    96     96   static int getData(ClientData cd, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
    97         -	struct kitdll_data *finfo = NULL;
           97  +	struct cvfs_data *finfo = NULL;
    98     98   	cmd_getData_t *cmd_getData;
    99     99   	const char *hashkey;
   100    100   	const char *file;
   101    101   	const char *end_str;
   102    102   	Tcl_Obj *ret_str;
   103    103   	long start = 0;
   104    104   	long end = -1;
................................................................................
   146    146   
   147    147   	if (finfo == NULL) {
   148    148   		Tcl_SetResult(interp, "No such file or directory", TCL_STATIC);
   149    149   
   150    150   		return(TCL_ERROR);
   151    151   	}
   152    152   
   153         -	if (finfo->type != KITDLL_FILETYPE_FILE) {
          153  +	if (finfo->type != CVFS_FILETYPE_FILE) {
   154    154   		Tcl_SetResult(interp, "Not a file", TCL_STATIC);
   155    155   
   156    156   		return(TCL_ERROR);
   157    157   	}
   158    158   
   159    159   	if (end == -1) {
   160    160   		end = finfo->size;
................................................................................
   182    182   
   183    183   	Tcl_SetObjResult(interp, ret_str);
   184    184   
   185    185   	return(TCL_OK);
   186    186   }
   187    187   
   188    188   static int getChildren(ClientData cd, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
   189         -	struct kitdll_data *finfo = NULL;
          189  +	struct cvfs_data *finfo = NULL;
   190    190   	cmd_getChildren_t *cmd_getChildren;
   191    191   	cmd_getData_t *cmd_getData;
   192    192   	unsigned long num_children, idx;
   193    193   	unsigned long *children;
   194    194   	const char *hashkey;
   195    195   	const char *file;
   196    196   	const char *child;
................................................................................
   218    218   
   219    219   	if (finfo == NULL) {
   220    220   		Tcl_SetResult(interp, "No such file or directory", TCL_STATIC);
   221    221   
   222    222   		return(TCL_ERROR);
   223    223   	}
   224    224   
   225         -	if (finfo->type != KITDLL_FILETYPE_DIR) {
          225  +	if (finfo->type != CVFS_FILETYPE_DIR) {
   226    226   		Tcl_SetResult(interp, "Not a directory", TCL_STATIC);
   227    227   
   228    228   		return(TCL_ERROR);
   229    229   	}
   230    230   
   231    231   	num_children = cmd_getChildren(file, NULL, 0);
   232    232   

Modified kitsh/buildsrc/kitsh-0.0/dir2c.tcl from [28f9b94a91] to [903b20a63c].

     1      1   #! /usr/bin/env tclsh
     2      2   
     3      3   if {[llength $argv] != 2} {
     4         -	puts stderr "Usage: kitdll <hashkey> <startdir>"
            4  +	puts stderr "Usage: dir2c.tcl <hashkey> <startdir>"
     5      5   
     6      6   	exit 1
     7      7   }
     8      8   
     9      9   set hashkey [lindex $argv 0]
    10     10   set startdir [lindex $argv 1]
    11     11   
................................................................................
    72     72   
    73     73   	set ret "\"$ret\""
    74     74   
    75     75   	return $ret
    76     76   }
    77     77   
    78     78   # This function must be kept in-sync with the generated C function below
    79         -proc kitdll_hash {path} {
           79  +proc cvfs_hash {path} {
    80     80   	set h 0
    81     81   	set g 0
    82     82   
    83     83   	for {set idx 0} {$idx < [string length $path]} {incr idx} {
    84     84   		binary scan [string index $path $idx] H* char
    85     85   		set char "0x$char"
    86     86   
................................................................................
    99     99   # Generate list of files to include in output
   100    100   set files [recursive_glob $startdir]
   101    101   
   102    102   # Insert dummy entry cooresponding to C dummy entry
   103    103   set files [linsert $files 0 "__DUMMY__"]
   104    104   
   105    105   # Produce C89 compatible header
   106         -set cpp_tag "KITDLL_[string toupper $hashkey]"
   107         -set code_tag "kitdll_[string tolower $hashkey]"
          106  +set cpp_tag "CVFS_[string toupper $hashkey]"
          107  +set code_tag "cvfs_[string tolower $hashkey]"
   108    108   set hashkey [string tolower $hashkey]
   109    109   
   110    110   puts "#ifndef $cpp_tag"
   111    111   puts "#  define $cpp_tag 1"
   112    112   puts {
   113    113   #  ifdef HAVE_STDC
   114    114   #    ifndef HAVE_UNISTD_H
................................................................................
   121    121   #  ifdef HAVE_UNISTD_H
   122    122   #    include <unistd.h>
   123    123   #  endif
   124    124   #  ifdef HAVE_STRING_H
   125    125   #    include <string.h>
   126    126   #  endif
   127    127   
   128         -#  ifndef LOADED_KITDLL_COMMON
   129         -#    define LOADED_KITDLL_COMMON 1
          128  +#  ifndef LOADED_CVFS_COMMON
          129  +#    define LOADED_CVFS_COMMON 1
   130    130   
   131    131   typedef enum {
   132         -	KITDLL_FILETYPE_FILE,
   133         -	KITDLL_FILETYPE_DIR
   134         -} kitdll_filetype_t;
          132  +	CVFS_FILETYPE_FILE,
          133  +	CVFS_FILETYPE_DIR
          134  +} cvfs_filetype_t;
   135    135   
   136         -struct kitdll_data {
          136  +struct cvfs_data {
   137    137   	const char *             name;
   138    138   	unsigned long            index;
   139    139   	unsigned long            size;
   140         -	kitdll_filetype_t        type;
          140  +	cvfs_filetype_t          type;
   141    141   	const unsigned char *    data;
   142    142   };
   143    143   
   144         -static unsigned long kitdll_hash(const unsigned char *path) {
          144  +static unsigned long cvfs_hash(const unsigned char *path) {
   145    145   	unsigned long i, h = 0, g = 0;
   146    146   
   147    147   	for (i = 0; path[i]; i++) {
   148    148   		h = (h << 4) + path[i];
   149    149   		g = h & 0xf0000000;
   150    150   		if (g) {
   151    151   			h ^= (g >> 24);
................................................................................
   152    152   		}
   153    153   		h &= ((~g) & 0xffffffffLU);
   154    154   	}
   155    155           
   156    156           return(h);
   157    157   }
   158    158   
   159         -#  endif /* !LOADED_KITDLL_COMMON */}
          159  +#  endif /* !LOADED_CVFS_COMMON */}
   160    160   puts ""
   161    161   
   162         -puts "static struct kitdll_data ${code_tag}_data\[\] = {"
          162  +puts "static struct cvfs_data ${code_tag}_data\[\] = {"
   163    163   puts "\t{"
   164    164   puts "\t\t.name  = NULL,"
   165    165   puts "\t\t.index = 0,"
   166    166   puts "\t\t.type  = 0,"
   167    167   puts "\t\t.size  = 0,"
   168    168   puts "\t\t.data  = NULL,"
   169    169   puts "\t},"
................................................................................
   172    172   	set shortfile [shorten_file $startdir $file]
   173    173   
   174    174   	unset -nocomplain finfo type
   175    175   	file stat $file finfo
   176    176   
   177    177   	switch -- $finfo(type) {
   178    178   		"file" {
   179         -			set type "KITDLL_FILETYPE_FILE"
          179  +			set type "CVFS_FILETYPE_FILE"
   180    180   			set size $finfo(size)
   181    181   
   182    182   			set fd [open $file]
   183    183   			fconfigure $fd -translation binary
   184    184   			set data [read $fd]
   185    185   			close $fd
   186    186   
   187    187   			set data "(unsigned char *) [stringify $data]"
   188    188   		}
   189    189   		"directory" {
   190         -			set type "KITDLL_FILETYPE_DIR"
          190  +			set type "CVFS_FILETYPE_DIR"
   191    191   			set data "NULL"
   192    192   			set size 0
   193    193   		}
   194    194   	}
   195    195   
   196    196   	puts "\t{"
   197    197   	puts "\t\t.name  = \"$shortfile\","
................................................................................
   201    201   	puts "\t\t.data  = $data,"
   202    202   	puts "\t},"
   203    203   }
   204    204   puts "};"
   205    205   puts ""
   206    206   
   207    207   puts "static unsigned long ${code_tag}_lookup_index(const char *path) {"
   208         -puts "\tswitch (kitdll_hash((unsigned char *) path)) {"
          208  +puts "\tswitch (cvfs_hash((unsigned char *) path)) {"
   209    209   
   210    210   for {set idx 1} {$idx < [llength $files]} {incr idx} {
   211    211   	set file [lindex $files $idx]
   212    212   	set shortfile [shorten_file $startdir $file]
   213         -	set hash [kitdll_hash $shortfile]
          213  +	set hash [cvfs_hash $shortfile]
   214    214   
   215    215   	lappend indexes_per_hash($hash) [list $shortfile $idx]
   216    216   }
   217    217   
   218    218   foreach {hash idx_list} [array get indexes_per_hash] {
   219    219   	puts "\t\tcase $hash:"
   220    220   
................................................................................
   234    234   }
   235    235   
   236    236   puts "\t}"
   237    237   puts "\treturn(0);"
   238    238   puts "}"
   239    239   puts ""
   240    240   
   241         -puts "static struct kitdll_data *${code_tag}_getData(const char *path, unsigned long index) {"
          241  +puts "static struct cvfs_data *${code_tag}_getData(const char *path, unsigned long index) {"
   242    242   puts "\tif (path != NULL) {"
   243    243   puts "\t\tindex = ${code_tag}_lookup_index(path);"
   244    244   puts "\t}"
   245    245   puts ""
   246    246   puts "\tif (index == 0) {"
   247    247   puts "\t\treturn(NULL);"
   248    248   puts "\t}"
................................................................................
   262    262   puts "\tunsigned long num_children = 0;"
   263    263   puts ""
   264    264   puts "\tindex = ${code_tag}_lookup_index(path);"
   265    265   puts "\tif (index == 0) {"
   266    266   puts "\t\treturn(0);"
   267    267   puts "\t}"
   268    268   puts ""
   269         -puts "\tif (${code_tag}_data\[index\].type != KITDLL_FILETYPE_DIR) {"
          269  +puts "\tif (${code_tag}_data\[index\].type != CVFS_FILETYPE_DIR) {"
   270    270   puts "\t\treturn(0);"
   271    271   puts "\t}"
   272    272   puts ""
   273    273   puts "\tif (strcmp(path, ${code_tag}_data\[index\].name) != 0) {"
   274    274   puts "\t\treturn(0);"
   275    275   puts "\t}"
   276    276   puts ""
................................................................................
   347    347   
   348    348   puts "\t}"
   349    349   puts ""
   350    350   puts "\treturn(num_children);"
   351    351   puts "}"
   352    352   puts ""
   353    353   
   354         -puts "#  ifdef KITDLL_MAKE_LOADABLE"
          354  +puts "#  ifdef CVFS_MAKE_LOADABLE"
   355    355   
   356         -set fd [open "vfs_kitdll_data.c"]
          356  +set fd [open "cvfs_data.c"]
   357    357   puts [read $fd]
   358    358   close $fd
   359    359   
   360    360   
   361    361   puts "static cmd_getData_t *getCmdData(const char *hashkey) {"
   362    362   puts "\treturn(${code_tag}_getData);"
   363    363   puts "}"
   364    364   puts ""
   365    365   puts "static cmd_getChildren_t *getCmdChildren(const char *hashkey) {"
   366    366   puts "\treturn(${code_tag}_getChildren);"
   367    367   puts "}"
   368    368   puts ""
   369    369   
   370         -puts "int Vfs_kitdll_data_${hashkey}_Init(Tcl_Interp *interp) {"
          370  +puts "int Cvfs_data_${hashkey}_Init(Tcl_Interp *interp) {"
   371    371   puts "\tTcl_Command tclCreatComm_ret;"
   372    372   puts "\tint tclPkgProv_ret;"
   373    373   puts ""
   374         -puts "\ttclCreatComm_ret = Tcl_CreateObjCommand(interp, \"::vfs::kitdll::data::${hashkey}::getMetadata\", getMetadata, NULL, NULL);"
          374  +puts "\ttclCreatComm_ret = Tcl_CreateObjCommand(interp, \"::vfs::cvfs::data::${hashkey}::getMetadata\", getMetadata, NULL, NULL);"
          375  +puts "\tif (!tclCreatComm_ret) {"
          376  +puts "\t\treturn(TCL_ERROR);"
          377  +puts "\t}"
          378  +puts ""
          379  +puts "\ttclCreatComm_ret = Tcl_CreateObjCommand(interp, \"::vfs::cvfs::data::${hashkey}::getData\", getData, NULL, NULL);"
   375    380   puts "\tif (!tclCreatComm_ret) {"
   376    381   puts "\t\treturn(TCL_ERROR);"
   377    382   puts "\t}"
   378    383   puts ""
   379         -puts "\ttclCreatComm_ret = Tcl_CreateObjCommand(interp, \"::vfs::kitdll::data::${hashkey}::getData\", getData, NULL, NULL);"
          384  +puts "\ttclCreatComm_ret = Tcl_CreateObjCommand(interp, \"::vfs::cvfs::data::${hashkey}::getChildren\", getChildren, NULL, NULL);"
   380    385   puts "\tif (!tclCreatComm_ret) {"
   381    386   puts "\t\treturn(TCL_ERROR);"
   382    387   puts "\t}"
   383    388   puts ""
   384         -puts "\ttclCreatComm_ret = Tcl_CreateObjCommand(interp, \"::vfs::kitdll::data::${hashkey}::getChildren\", getChildren, NULL, NULL);"
   385         -puts "\tif (!tclCreatComm_ret) {"
   386         -puts "\t\treturn(TCL_ERROR);"
   387         -puts "\t}"
   388         -puts ""
   389         -puts "\ttclPkgProv_ret = Tcl_PkgProvide(interp, \"vfs::kitdll::data::${hashkey}\", \"1.0\");"
          389  +puts "\ttclPkgProv_ret = Tcl_PkgProvide(interp, \"vfs::cvfs::data::${hashkey}\", \"1.0\");"
   390    390   puts ""
   391    391   puts "\treturn(tclPkgProv_ret);"
   392    392   puts "\t}"
   393         -puts "#  endif /* KITDLL_MAKE_LOADABLE */"
          393  +puts "#  endif /* CVFS_MAKE_LOADABLE */"
   394    394   
   395    395   puts "#endif /* !$cpp_tag */"

Modified kitsh/buildsrc/kitsh-0.0/installvfs.tcl from [01a4e2e7f2] to [b17724e7c3].

    11     11   set kitfile [lindex $argv 0]
    12     12   set vfsdir [lindex $argv 1]
    13     13   if {[lindex $argv 2] != ""} {
    14     14   	set opt_compression [lindex $argv 2]
    15     15   }
    16     16   
    17     17   # Determine what storage mechanism is being used
    18         -## This logic must be duplicated from "kitInit.c"
    19         -set fd [open Makefile r]
           18  +set fd [open Makefile.common r]
    20     19   set data [read $fd]
    21     20   close $fd
    22     21   
    23     22   if {[string match "*KIT_STORAGE_ZIP*" $data]} {
    24     23   	set tclKitStorage zip
    25     24   }
    26     25   if {[string match "*KIT_STORAGE_MK4*" $data]} {
    27     26   	set tclKitStorage mk4
    28     27   }
    29         -
    30         -if {![info exists tclKitStorage]} {
    31         -	if {[string match "*KIT_INCLUDES_MK4TCL*" $data]} {
    32         -		set tclKitStorage mk4
    33         -	} else {
    34         -		set tclKitStorage zip
    35         -	}
           28  +if {[string match "*KIT_STORAGE_CVFS*" $data]} {
           29  +	set tclKitStorage cvfs
    36     30   }
    37     31   
    38     32   # Define procedures
    39     33   proc copy_file {srcfile destfile} {
    40     34   	switch -glob -- $srcfile {
    41     35   		"*.tcl" - "*.txt" {
    42     36   			set ifd [open $srcfile r]
................................................................................
   113    107   		if {[catch {
   114    108   			close $zipfd
   115    109   		} err]} {
   116    110   			puts stderr "Error while updating executable: $err"
   117    111   
   118    112   			exit 1
   119    113   		}
          114  +	}
          115  +	"cvfs" {
          116  +		# No-op
   120    117   	}
   121    118   }

Modified kitsh/buildsrc/kitsh-0.0/kitInit.c from [2ea4599da9] to [50169ff8c3].

    13     13    * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
    14     14    *
    15     15    * RCS: @(#) $Id$
    16     16    */
    17     17   
    18     18   #ifdef KIT_INCLUDES_TK
    19     19   #  include <tk.h>
    20         -#else
    21         -#  include <tcl.h>
    22     20   #endif /* KIT_INCLUDES_TK */
           21  +#include <tcl.h>
    23     22   
    24     23   #ifdef _WIN32
    25     24   #  define WIN32_LEAN_AND_MEAN
    26     25   #  include <windows.h>
    27     26   #  undef WIN32_LEAN_AND_MEAN
    28     27   #endif /* _WIN32 */
    29     28   
................................................................................
    71     70   Tcl_AppInitProc Vfs_Init, Rechan_Init;
    72     71   #ifdef KIT_INCLUDES_PWB
    73     72   Tcl_AppInitProc	Pwb_Init;
    74     73   #endif
    75     74   #ifdef KIT_INCLUDES_ZLIB
    76     75   Tcl_AppInitProc Zlib_Init;
    77     76   #endif
           77  +#ifdef KIT_STORAGE_CVFS
           78  +Tcl_AppInitProc Cvfs_data_tcl_Init;
           79  +#endif
    78     80   #ifdef TCL_THREADS
    79     81   Tcl_AppInitProc	Thread_Init;
    80     82   #endif
    81     83   #ifdef _WIN32
    82     84   Tcl_AppInitProc	Dde_Init, Registry_Init;
    83     85   #endif
    84     86   
    85         -/* Determine which type of storage to use -- MK4 or ZIP */
    86         -#if defined(KIT_STORAGE_MK4) && defined(KIT_STORAGE_ZIP)
    87         -#  undef KIT_STORAGE_ZIP
    88         -#endif
    89         -#if !defined(KIT_STORAGE_MK4) && !defined(KIT_STORAGE_ZIP)
    90         -#  ifdef KIT_INCLUDES_MK4TCL
    91         -#    define KIT_STORAGE_MK4 1
    92         -#  else
    93         -#    define KIT_STORAGE_ZIP 1
    94         -#  endif
    95         -#endif
           87  +#ifdef TCLKIT_DLL
           88  +#  define TCLKIT_MOUNTPOINT "/.KITDLL_TCL"
           89  +#  define TCLKIT_VFSSOURCE "$::tclKitFilename"
           90  +#else
           91  +#  define TCLKIT_MOUNTPOINT "[info nameofexecutable]"
           92  +#  define TCLKIT_VFSSOURCE "[info nameofexecutable]"
           93  +#endif /* TCLKIT_DLL */
           94  +
           95  +#ifdef HAVE_ACCEPTABLE_DLADDR
           96  +#  ifdef KITSH_NEED_WINMAIN
           97  +#    ifdef _WIN32_WCE
           98  +int wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow);
           99  +#    else
          100  +int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdLine, int nCmdShow);
          101  +#    endif /* _WIN32_WCE */
          102  +#  endif /* KITSH_NEED_WINMAIN */
          103  +int main(int argc, char **argv);
          104  +#endif /* HAVE_ACCEPTABLE_DLADDR */
    96    105   
    97    106   #ifdef TCLKIT_REQUIRE_TCLEXECUTABLENAME
    98    107   char *tclExecutableName;
    99    108   #endif
   100    109   
   101         -    /*
   102         -     *  Attempt to load a "boot.tcl" entry from the embedded MetaKit file.
   103         -     *  If there isn't one, try to open a regular "setup.tcl" file instead.
   104         -     *  If that fails, this code will throw an error, using a message box.
   105         -     */
   106         -
          110  +/*
          111  + *  Attempt to load a "boot.tcl" entry from the embedded MetaKit file.
          112  + *  If there isn't one, try to open a regular "setup.tcl" file instead.
          113  + *  If that fails, this code will throw an error, using a message box.
          114  + */
          115  +/*
          116  + * This Tcl code is invoked whenever Tcl_Init() is called on an
          117  + * interpreter.  It should mount up the VFS and make everything ready for
          118  + * that interpreter to do its job.
          119  + */
   107    120   static char *preInitCmd = 
   108         -#ifdef _WIN32_WCE
          121  +#if defined(_WIN32_WCE) && !defined(TCLKIT_DLL)
   109    122   /* silly hack to get wince port to launch, some sort of std{in,out,err} problem */
   110    123   "open /kitout.txt a; open /kitout.txt a; open /kitout.txt a\n"
   111    124   /* this too seems to be needed on wince - it appears to be related to the above */
   112    125   "catch {rename source ::tcl::source}\n"
   113    126   "proc source file {\n"
   114    127   	"set old [info script]\n"
   115    128   	"info script $file\n"
................................................................................
   117    130   	"set data [read $fid]\n"
   118    131   	"close $fid\n"
   119    132   	"set code [catch {uplevel 1 $data} res]\n"
   120    133   	"info script $old\n"
   121    134   	"if {$code == 2} { set code 0 }\n"
   122    135   	"return -code $code $res\n"
   123    136   "}\n"
   124         -#endif /* _WIN32_WCE */
          137  +#endif /* _WIN32_WCE && !TCLKIT_DLL */
   125    138   "proc tclKitInit {} {\n"
   126    139   	"rename tclKitInit {}\n"
          140  +	"catch { load {} vfs }\n"
          141  +#ifdef KIT_INCLUDES_ZLIB
          142  +	"catch { load {} zlib }\n"
          143  +#endif
   127    144   #ifdef KIT_INCLUDES_MK4TCL
   128    145   	"catch { load {} Mk4tcl }\n"
   129    146   #endif
          147  +#ifdef TCLKIT_DLL
          148  +	"load {} tclkit::init\n"
          149  +	"::tclkit::init::initInterp\n"
          150  +	"rename ::tclkit::init::initInterp {}\n"
          151  +#endif /* TCLKIT_DLL */
          152  +	"set bootfile [file join " TCLKIT_MOUNTPOINT " boot.tcl]\n"
          153  +	"if {[file exists $bootfile]} {\n"
          154  +		"catch {\n"
          155  +			"set f [open $bootfile]\n"
          156  +			"set s [read $f]\n"
          157  +			"close $f\n"
          158  +		"}\n"
          159  +	"} else {\n"
          160  +		"set ::TCLKIT_INITVFS 1\n"
          161  +	"}\n"
   130    162   #ifdef KIT_STORAGE_MK4
   131    163   	"set ::tclKitStorage \"mk4\"\n"
   132         -	"mk::file open exe [info nameofexecutable] -readonly\n"
   133         -	"set n [mk::select exe.dirs!0.files name boot.tcl]\n"
   134         -	"if {$n != \"\"} {\n"
   135         -		"set s [mk::get exe.dirs!0.files!$n contents]\n"
   136         -		"if {![string length $s]} { error \"empty boot.tcl\" }\n"
   137         -		"catch {load {} zlib}\n"
   138         -		"if {[mk::get exe.dirs!0.files!$n size] != [string length $s]} {\n"
   139         -			"set s [zlib decompress $s]\n"
          164  +	"if {![info exists s]} {\n"
          165  +		"mk::file open exe " TCLKIT_VFSSOURCE " -readonly\n"
          166  +		"set n [mk::select exe.dirs!0.files name boot.tcl]\n"
          167  +		"if {$n != \"\"} {\n"
          168  +			"set s [mk::get exe.dirs!0.files!$n contents]\n"
          169  +			"if {![string length $s]} { error \"empty boot.tcl\" }\n"
          170  +			"catch {load {} zlib}\n"
          171  +			"if {[mk::get exe.dirs!0.files!$n size] != [string length $s]} {\n"
          172  +				"set s [zlib decompress $s]\n"
          173  +			"}\n"
   140    174   		"}\n"
   141    175   	"}\n"
   142    176   #endif /* KIT_STORAGE_MK4 */
   143    177   #ifdef KIT_STORAGE_ZIP
   144    178   	"set ::tclKitStorage \"zip\"\n"
   145         -	"catch { load {} vfs }\n"
   146         -	"if {![info exists s]} {\n"
   147         -		"catch {\n"
   148         -			"set bootfile [file join [info nameofexecutable] boot.tcl]\n"
   149         -			"if {[file exists $bootfile]} {\n"
   150         -				"set f [open $bootfile]\n"
   151         -				"set s [read $f]\n"
   152         -				"close $f\n"
   153         -			"}\n"
   154         -		"}\n"
   155         -	"}\n"
   156    179   	"if {![info exists s]} {\n"
   157    180   #  include "zipvfs.tcl.h"
   158    181   		"catch {\n"
   159         -			"set ::tclKitStorage_fd [::zip::open [info nameofexecutable]]\n"
          182  +			"set ::tclKitStorage_fd [::zip::open " TCLKIT_VFSSOURCE "]\n"
   160    183   			"::zip::stat $::tclKitStorage_fd boot.tcl sb\n"
   161    184   			"seek $::tclKitStorage_fd $sb(ino)\n"
   162         -			"zip::Data $::tclKitStorage_fd sb s\n"
          185  +			"::zip::Data $::tclKitStorage_fd sb s\n"
   163    186   		"}\n"
   164    187   	"}\n"
   165    188   #endif /* KIT_STORAGE_ZIP */
          189  +#ifdef KIT_STORAGE_CVFS
          190  +	"set ::tclKitStorage \"cvfs\"\n"
          191  +	"load {} rechan\n"
          192  +	"load {} cvfs_data_tcl\n"
          193  +#include "cvfs.tcl.h"
          194  +	"if {![info exists s]} {\n"
          195  +		"catch {\n"
          196  +			"set s [::vfs::cvfs::data::getData tcl boot.tcl]\n"
          197  +		"}\n"
          198  +	"}\n"
          199  +#endif /* KIT_STORAGE_CVFS */
          200  +#ifndef TCLKIT_DLL
   166    201   	"if {![info exists s]} {\n"
   167    202   		"set f [open setup.tcl]\n"
   168    203   		"set s [read $f]\n"
   169    204   		"close $f\n"
   170    205   	"}\n"
          206  +#endif /* !TCLKIT_DLL */
          207  +#ifdef TCLKIT_DLL
          208  +	"set ::TCLKIT_TYPE \"kitdll\"\n"
          209  +#else
          210  +	"set ::TCLKIT_TYPE \"tclkit\"\n"
          211  +#endif /* TCLKIT_DLL */
          212  +	"set ::TCLKIT_MOUNTPOINT " TCLKIT_MOUNTPOINT "\n"
          213  +	"set ::TCLKIT_VFSSOURCE " TCLKIT_VFSSOURCE "\n"
          214  +	"set ::TCLKIT_MOUNTPOINT_VAR {" TCLKIT_MOUNTPOINT "}\n"
          215  +	"set ::TCLKIT_VFSSOURCE_VAR {" TCLKIT_VFSSOURCE "}\n"
   171    216   	"uplevel #0 $s\n"
   172    217   #if defined(KIT_INCLUDES_TK) && defined(KIT_TK_VERSION)
   173    218   	"package ifneeded Tk " KIT_TK_VERSION " {\n"
   174    219   		"load {} Tk\n"
   175    220   	"}\n"
   176    221   #endif
   177    222   #ifdef _WIN32
................................................................................
   242    287   				return;
   243    288   			}
   244    289   		}
   245    290   	}
   246    291   #endif /* HAVE_READLINK */
   247    292   
   248    293   #ifdef HAVE_ACCEPTABLE_DLADDR
          294  +#  ifndef TCLKIT_DLL
   249    295   	if (Tcl_GetNameOfExecutable() == NULL) {
   250    296   		dladdr_ret = dladdr(&SetExecName, &syminfo);
   251    297   		if (dladdr_ret != 0) {
   252    298   			SetExecName(interp, syminfo.dli_fname);
          299  +
          300  +			return;
          301  +		}
          302  +	}
          303  +#  endif /* !TCLKIT_DLL */
          304  +
          305  +#  ifdef KITSH_NEED_WINMAIN
          306  +	if (Tcl_GetNameOfExecutable() == NULL) {
          307  +#    ifdef _WIN32_WCE
          308  +		dladdr_ret = dladdr(&WinMain, &syminfo);
          309  +#    else
          310  +		dladdr_ret = dladdr(&wWinMain, &syminfo);
          311  +#    endif /* _WIN32_WCE */
          312  +
          313  +		if (dladdr_ret != 0) {
          314  +			SetExecName(interp, syminfo.dli_fname);
          315  +
          316  +			return;
          317  +		}
          318  +	}
          319  +#  endif /* KITSH_NEED_WINMAIN */
          320  +
          321  +	if (Tcl_GetNameOfExecutable() == NULL) {
          322  +		dladdr_ret = dladdr(&main, &syminfo);
          323  +		if (dladdr_ret != 0) {
          324  +			SetExecName(interp, syminfo.dli_fname);
          325  +
          326  +			return;
   253    327   		}
   254    328   	}
   255    329   #endif /* HAVE_ACCEPTABLE_DLADDR */
   256    330   
   257    331   	if (Tcl_GetNameOfExecutable() == NULL) {
   258    332   		lobjv[0] = Tcl_GetVar2Ex(interp, "argv0", NULL, TCL_GLOBAL_ONLY);
   259    333   		execNameObj = Tcl_FSJoinToPath(Tcl_FSGetCwd(interp), 1, lobjv);
................................................................................
   262    336   
   263    337   		return;
   264    338   	}
   265    339   
   266    340   	return;
   267    341   }
   268    342   
   269         -int TclKit_AppInit(Tcl_Interp *interp) {
   270         -#ifdef KIT_INCLUDES_TK
   271         -#  ifdef _WIN32
   272         -#    ifndef _WIN32_WCE
   273         -	char msgBuf[2049];
   274         -#    endif /* !_WIN32_WCE */
   275         -#  endif /* _WIN32 */
   276         -#endif /* KIT_INCLUDES_TK */
   277         -#ifdef TCLKIT_CAN_SET_ENCODING
   278         -	Tcl_DString encodingName;
   279         -#endif /* TCLKIT_CAN_SET_ENCODING */
   280         -
          343  +static void _Tclkit_Generic_Init(void) {
   281    344   #ifdef KIT_INCLUDES_ITCL
   282    345   	Tcl_StaticPackage(0, "Itcl", Itcl_Init, NULL);
   283    346   #endif 
   284    347   #ifdef KIT_INCLUDES_MK4TCL
   285    348   	Tcl_StaticPackage(0, "Mk4tcl", Mk4tcl_Init, NULL);
   286    349   #endif
   287    350   #ifdef KIT_INCLUDES_PWB
................................................................................
   288    351   	Tcl_StaticPackage(0, "pwb", Pwb_Init, NULL);
   289    352   #endif 
   290    353   	Tcl_StaticPackage(0, "rechan", Rechan_Init, NULL);
   291    354   	Tcl_StaticPackage(0, "vfs", Vfs_Init, NULL);
   292    355   #ifdef KIT_INCLUDES_ZLIB
   293    356   	Tcl_StaticPackage(0, "zlib", Zlib_Init, NULL);
   294    357   #endif
          358  +#ifdef KIT_STORAGE_CVFS
          359  +	Tcl_StaticPackage(0, "cvfs_data_tcl", Cvfs_data_tcl_Init, NULL);
          360  +#endif
   295    361   #ifdef TCL_THREADS
   296    362   	Tcl_StaticPackage(0, "Thread", Thread_Init, NULL);
   297    363   #endif
   298    364   #ifdef _WIN32
   299    365   	Tcl_StaticPackage(0, "dde", Dde_Init, NULL);
   300    366   	Tcl_StaticPackage(0, "registry", Registry_Init, NULL);
   301    367   #endif
   302    368   #ifdef KIT_INCLUDES_TK
   303    369   	Tcl_StaticPackage(0, "Tk", Tk_Init, Tk_SafeInit);
   304    370   #endif
   305    371   
          372  +	TclSetPreInitScript(preInitCmd);
          373  +
          374  +	return;
          375  +}
          376  +
          377  +static void _Tclkit_Interp_Init(Tcl_Interp *interp) {
          378  +#ifdef TCLKIT_CAN_SET_ENCODING
          379  +	Tcl_DString encodingName;
          380  +#endif /* TCLKIT_CAN_SET_ENCODING */
          381  +
          382  +#ifndef TCLKIT_DLL
   306    383   	/* the tcl_rcFileName variable only exists in the initial interpreter */
   307         -#ifdef _WIN32
          384  +#  ifdef _WIN32
   308    385   	Tcl_SetVar(interp, "tcl_rcFileName", "~/tclkitrc.tcl", TCL_GLOBAL_ONLY);
   309         -#else
          386  +#  else
   310    387   	Tcl_SetVar(interp, "tcl_rcFileName", "~/.tclkitrc", TCL_GLOBAL_ONLY);
   311         -#endif
          388  +#  endif /* _WIN32 */
          389  +#endif /* !TCLKIT_DLL */
   312    390   
   313    391   #ifdef TCLKIT_CAN_SET_ENCODING
   314    392   	/* Set the encoding from the Environment */
   315    393   	Tcl_GetEncodingNameFromEnvironment(&encodingName);
   316    394   	Tcl_SetSystemEncoding(NULL, Tcl_DStringValue(&encodingName));
   317    395   	Tcl_SetVar(interp, "tclkit_system_encoding", Tcl_DStringValue(&encodingName), 0);
   318    396   	Tcl_DStringFree(&encodingName);
   319         -#endif
          397  +#endif /* TCLKIT_CAN_SET_ENCODING */
   320    398   
   321    399   	/* Hack to get around Tcl bug 1224888.  This must be run here and
   322    400   	 * in LibraryPathObjCmd because this information is needed both
   323    401   	 * before and after that command is run. */
   324    402   	FindAndSetExecName(interp);
   325    403   
   326         -	TclSetPreInitScript(preInitCmd);
          404  +	return;
          405  +}
          406  +
          407  +#ifndef TCLKIT_DLL
          408  +int TclKit_AppInit(Tcl_Interp *interp) {
          409  +#ifdef KIT_INCLUDES_TK
          410  +#  ifdef _WIN32
          411  +#    ifndef _WIN32_WCE
          412  +	char msgBuf[2049];
          413  +#    endif /* !_WIN32_WCE */
          414  +#  endif /* _WIN32 */
          415  +#endif /* KIT_INCLUDES_TK */
          416  +
          417  +	/* Perform common initialization */
          418  +	_Tclkit_Generic_Init();
          419  +
          420  +	_Tclkit_Interp_Init(interp);
          421  +
   327    422   	if (Tcl_Init(interp) == TCL_ERROR) {
   328    423   		goto error;
   329    424   	}
   330    425   
   331    426   #ifdef KIT_INCLUDES_TK
   332    427   #  ifdef _WIN32
   333    428   	if (Tk_Init(interp) == TCL_ERROR) {
................................................................................
   376    471   #    endif /* !_WIN32_WCE */
   377    472       /* we won't reach this, but we need the return */
   378    473   #  endif /* _WIN32 */
   379    474   #endif /* KIT_INCLUDES_TK */
   380    475   
   381    476   	return TCL_ERROR;
   382    477   }
          478  +#endif /* !TCLKIT_DLL */
          479  +
          480  +
          481  +#ifdef TCLKIT_DLL
          482  +#  ifdef HAVE_ACCEPTABLE_DLADDR
          483  +/* Symbol to resolve against dladdr() */
          484  +static void _tclkit_dummy_func(void) {
          485  +	return;
          486  +}
          487  +#  endif /* HAVE_ACCEPTABLE_DLADDR */
          488  +
          489  +/*
          490  + * This function will return a pathname we can open() to treat as a VFS,
          491  + * hopefully
          492  + */
          493  +static char *find_tclkit_dll_path(void) {
          494  +#ifdef HAVE_ACCEPTABLE_DLADDR
          495  +	Dl_info syminfo;
          496  +	int dladdr_ret;
          497  +#endif /* HAVE_ACCEPTABLE_DLADDR */
          498  +#ifdef _WIN32
          499  +	TCHAR modulename[8192];
          500  +	DWORD gmfn_ret;
          501  +#endif /* _WIN32 */
          502  +
          503  +#ifdef HAVE_ACCEPTABLE_DLADDR
          504  +	dladdr_ret = dladdr(&_tclkit_dummy_func, &syminfo);
          505  +	if (dladdr_ret != 0) {
          506  +		if (syminfo.dli_fname && syminfo.dli_fname[0] != '\0') {
          507  +			return(strdup(syminfo.dli_fname));
          508  +		}
          509  +	}
          510  +#endif /* HAVE_ACCEPTABLE_DLADDR */
          511  +
          512  +#ifdef _WIN32
          513  +	gmfn_ret = GetModuleFileName(TclWinGetTclInstance(), modulename, sizeof(modulename) / sizeof(modulename[0]) - 1);
          514  +
          515  +	if (gmfn_ret != 0) {
          516  +		return(strdup(modulename));
          517  +	}
          518  +#endif /* _WIN32 */
          519  +
          520  +	return(NULL);
          521  +}
          522  +
          523  +/*
          524  + * This function exists to allow C code to initialize a particular
          525  + * interpreter.
          526  + */
          527  +static int tclkit_init_initinterp(ClientData cd, Tcl_Interp *interp, int objc, Tcl_Obj *CONST objv[]) {
          528  +	char *kitdll_path;
          529  +
          530  +	kitdll_path = find_tclkit_dll_path();
          531  +	if (kitdll_path != NULL) {
          532  +		Tcl_SetVar(interp, "tclKitFilename", kitdll_path, TCL_GLOBAL_ONLY);
          533  +
          534  +		free(kitdll_path);
          535  +	}
          536  +
          537  +	_Tclkit_Interp_Init(interp);
          538  +
          539  +	return(TCL_OK);
          540  +}
          541  +
          542  +/*
          543  + * Create a package for initializing a particular interpreter.  This is
          544  + * our hook to have Tcl invoke C commands when creating an interpreter.
          545  + * The preInitCmd will load the package in the new interpreter and invoke
          546  + * this function.
          547  + */
          548  +int Tclkit_init_Init(Tcl_Interp *interp) {
          549  +	Tcl_Command tclCreatComm_ret;
          550  +	int tclPkgProv_ret;
          551  +
          552  +	tclCreatComm_ret = Tcl_CreateObjCommand(interp, "::tclkit::init::initInterp", tclkit_init_initinterp, NULL, NULL);
          553  +	if (!tclCreatComm_ret) {
          554  +		return(TCL_ERROR);
          555  +	}
          556  +
          557  +	tclPkgProv_ret = Tcl_PkgProvide(interp, "tclkit::init", "1.0");
          558  +
          559  +	return(tclPkgProv_ret);
          560  +}
          561  +
          562  +/*
          563  + * Initialize the Tcl system when we are loaded, that way Tcl functions
          564  + * are ready to be used when invoked.
          565  + */
          566  +void __attribute__((constructor)) _Tclkit_Init(void) {
          567  +	Tcl_StaticPackage(0, "tclkit::init", Tclkit_init_Init, NULL);
          568  +
          569  +	_Tclkit_Generic_Init();
          570  +
          571  +	return;
          572  +}
          573  +#endif

Name change from kitdll/buildsrc/kitdll-0.0/tclsh.c to kitsh/buildsrc/kitsh-0.0/tclsh.c.


Name change from kitdll/buildsrc/kitdll-0.0/wish.c to kitsh/buildsrc/kitsh-0.0/wish.c.


Modified mk4tcl/build.sh from [9c93a36278] to [1ccf77c409].

    84     84   		tryopts="--enable-shared --disable-shared"
    85     85   	elif [ "${STATICMK4}" = "-1" ]; then
    86     86   		tryopts="--enable-shared"
    87     87   	else
    88     88   		tryopts="--disable-shared"
    89     89   	fi
    90     90   
           91  +	SAVE_CXXFLAGS="${CXXFLAGS}"
    91     92   	for tryopt in $tryopts __fail__; do
    92     93   		# Clean up, if needed
    93     94   		make distclean >/dev/null 2>/dev/null
    94     95   		rm -rf "${INSTDIR}"
    95     96   		mkdir "${INSTDIR}"
    96     97   
    97     98   		if [ "${tryopt}" = "__fail__" ]; then
................................................................................
    99    100   		fi
   100    101   
   101    102   		if [ "${tryopt}" == "--enable-shared" ]; then
   102    103   			isshared="1"
   103    104   		else
   104    105   			isshared="0"
   105    106   		fi
          107  +
          108  +		# If build a static Mk4tcl for KitDLL, ensure that we use PIC
          109  +		# so that it can be linked into the shared object
          110  +		if [ "${isshared}" = "0" -a "${KITTARGET}" = "kitdll" ]; then
          111  +			CXXFLAGS="${SAVE_CXXFLAGS} -fPIC"
          112  +			export CXXFLAGS
          113  +		fi
   106    114   
   107    115   		(
   108    116   			echo "Running: ./configure $tryopt --prefix=\"${INSTDIR}\" --exec-prefix=\"${INSTDIR}\" --with-tcl=\"${TCLCONFIGDIR}/../generic\" ${CONFIGUREEXTRA}"
   109    117   			./configure $tryopt --prefix="${INSTDIR}" --exec-prefix="${INSTDIR}" --with-tcl="${TCLCONFIGDIR}/../generic" ${CONFIGUREEXTRA}
   110    118   
   111    119   			echo "Running: ${MAKE:-make} tcllibdir=\"${INSTDIR}/lib\" AR=\"${AR:-ar}\" RANLIB=\"${RANLIB:-ranlib}\""
   112    120   			${MAKE:-make} tcllibdir="${INSTDIR}/lib" AR="${AR:-ar}" RANLIB="${RANLIB:-ranlib}" || exit 1

Added mk4tcl/patches/all/metakit-2.4.9.7-fixsharedobjlinker.diff version [6280191256].

            1  +Binary files metakit-2.4.9.7.orig/unix/.Makefile.in.swp and metakit-2.4.9.7-1rsk/unix/.Makefile.in.swp differ
            2  +Binary files metakit-2.4.9.7.orig/unix/.configure.in.swp and metakit-2.4.9.7-1rsk/unix/.configure.in.swp differ
            3  +diff -uNr metakit-2.4.9.7.orig/unix/configure metakit-2.4.9.7-1rsk/unix/configure
            4  +--- metakit-2.4.9.7.orig/unix/configure	2007-06-15 18:26:40.000000000 -0500
            5  ++++ metakit-2.4.9.7-1rsk/unix/configure	2011-03-09 07:39:59.000000000 -0600
            6  +@@ -1482,7 +1482,7 @@
            7  + if test $SHARED_BUILD = 1; then
            8  +   SHLIB_FLAGS="-shared"
            9  +   SHLIB_CFLAGS="-fPIC -DUSE_TCL_STUBS"
           10  +-  SHLIB_LD="g++ -shared"
           11  ++  SHLIB_LD="${CXX} -shared"
           12  + else
           13  +   SHLIB_FLAGS=""
           14  +   SHLIB_CFLAGS=""
           15  +diff -uNr metakit-2.4.9.7.orig/unix/configure.in metakit-2.4.9.7-1rsk/unix/configure.in
           16  +--- metakit-2.4.9.7.orig/unix/configure.in	2007-06-15 18:26:40.000000000 -0500
           17  ++++ metakit-2.4.9.7-1rsk/unix/configure.in	2011-03-09 07:39:29.000000000 -0600
           18  +@@ -117,7 +117,7 @@
           19  + if test $SHARED_BUILD = 1; then
           20  +   SHLIB_FLAGS="-shared"
           21  +   SHLIB_CFLAGS="-fPIC -DUSE_TCL_STUBS"
           22  +-  SHLIB_LD="g++ -shared"
           23  ++  SHLIB_LD="${CXX} -shared"
           24  + else
           25  +   SHLIB_FLAGS=""
           26  +   SHLIB_CFLAGS=""

Modified tcl/build.sh from [805b596118] to [f8ef582bfc].

    22     22   
    23     23   rm -rf 'build' 'out' 'inst'
    24     24   mkdir 'build' 'out' 'inst' || exit 1
    25     25   
    26     26   if [ ! -f "${SRC}" ]; then
    27     27   	mkdir 'src' >/dev/null 2>/dev/null
    28     28   
           29  +	use_fossil='0'
    29     30   	if echo "${TCLVERS}" | grep '^cvs_' >/dev/null; then
    30         -		CVSTAG=$(echo "${TCLVERS}" | sed 's/^cvs_//g')
    31         -		export CVSTAG
           31  +		use_fossil='1'
    32     32   
           33  +		FOSSILTAG=$(echo "${TCLVERS}" | sed 's/^cvs_//g')
           34  +		if [ "${FOSSILTAG}" = "HEAD" ]; then
           35  +			FOSSILTAG="trunk"
           36  +		fi
           37  +	elif echo "${TCLVERS}" | grep '^fossil_' >/dev/null; then
           38  +		use_fossil='1'
           39  +
           40  +		FOSSILTAG=$(echo "${TCLVERS}" | sed 's/^fossil_//g')
           41  +	fi
           42  +	export FOSSILTAG
           43  +
           44  +	if [ "${use_fossil}" = "1" ]; then
    33     45   		(
    34     46   			cd src || exit 1
    35     47   
    36         -			cvs -z3 -d:pserver:anonymous@tcl.cvs.sourceforge.net:/cvsroot/tcl co -r "${CVSTAG}" -P tcl
           48  +			workdir="tmp-$$${RANDOM}${RANDOM}${RANDOM}"
           49  +			rm -rf "${workdir}"
    37     50   
    38         -			mv tcl "tcl${TCLVERS}"
           51  +			mkdir "${workdir}" || exit 1
           52  +			cd "${workdir}" || exit 1
    39     53   
    40         -			tar -cf - "tcl${TCLVERS}" | gzip -c > "../${SRC}"
    41         -		)
           54  +			# Handle Tcl first, since it will be used to base other packages on
           55  +			wget -O "tmp-tcl.tar.gz" "http://core.tcl.tk/tcl/tarball/tcl-fossil.tar.gz?uuid=${FOSSILTAG}" || rm -f 'tmp-tcl.tar.gz'
           56  +			gzip -dc 'tmp-tcl.tar.gz' | tar -xf -
           57  +			mv "tcl-fossil" "tcl${TCLVERS}"
           58  +
           59  +			# Determine date of this Tcl release and use that date for all other dependent packages
           60  +			## Unless the release we are talking about is "trunk", in which case we use that everywhere
           61  +			if [ "${FOSSILTAG}" = "trunk" ]; then
           62  +				FOSSILDATE="${FOSSILTAG}"
           63  +			else
           64  +				FOSSILDATE="$(echo 'cd "tcl'"${TCLVERS}"'"; set file [lindex [glob *] 0]; file stat $file finfo; set date $finfo(mtime); set date [expr {$date + 1}]; puts [clock format $date -format {%Y-%m-%dT%H:%M:%S}]' | TZ='UTC' "${TCLSH_NATIVE}")"
           65  +			fi
           66  +
           67  +			## If we are unable to determine the modification date, fall-back to the tag and hope for the best
           68  +			if [ -z "${FOSSILDATE}" ]; then
           69  +				FOSSILDATE="${FOSSILTAG}"
           70  +			fi
           71  +
           72  +			# Handle other packages
           73  +			wget -O "tmp-itcl.tar.gz" "http://core.tcl.tk/itcl/tarball/itcl-fossil.tar.gz?uuid=${FOSSILDATE}" || rm -f 'tmp-itcl.tar.gz'
           74  +			wget -O "tmp-thread.tar.gz" "http://core.tcl.tk/thread/tarball/thread-fossil.tar.gz?uuid=${FOSSILDATE}" || rm -f "tmp-thread.tar.gz"
           75  +			wget -O "tmp-tclconfig.tar.gz" "http://core.tcl.tk/tclconfig/tarball/tclconfig-fossil.tar.gz?uuid=${FOSSILDATE}" || rm -f "tmp-tclconfig.tar.gz"
           76  +
           77  +			gzip -dc "tmp-itcl.tar.gz" | tar -xf -
           78  +			gzip -dc "tmp-thread.tar.gz" | tar -xf -
           79  +			gzip -dc "tmp-tclconfig.tar.gz" | tar -xf -
           80  +
           81  +			mkdir -p "tcl${TCLVERS}/pkgs/" >/dev/null 2>/dev/null
           82  +			mv "itcl-fossil" "tcl${TCLVERS}/pkgs/itcl"
           83  +			mv "thread-fossil" "tcl${TCLVERS}/pkgs/thread"
           84  +			cp -r "tclconfig-fossil" "tcl${TCLVERS}/pkgs/itcl/tclconfig"
           85  +			cp -r "tclconfig-fossil" "tcl${TCLVERS}/pkgs/thread/tclconfig"
           86  +			mv "tclconfig-fossil" "tcl${TCLVERS}/tclconfig"
           87  +
           88  +			tar -cf - "tcl${TCLVERS}" | gzip -c > "../../${SRC}"
           89  +			echo "${FOSSILDATE}" > "../../${SRC}.date"
           90  +
           91  +			cd ..
           92  +
           93  +			rm -rf "${workdir}"
           94  +		) || exit 1
    42     95   	else
    43     96   		rm -f "${SRC}.tmp"
    44     97   		wget -O "${SRC}.tmp" "${SRCURL}" || exit 1
    45     98   		mv "${SRC}.tmp" "${SRC}"
    46     99   	fi
    47    100   fi
    48    101   
................................................................................
    75    128   
    76    129   			(
    77    130   				. "${patchscript}"
    78    131   			)
    79    132   		fi
    80    133   	done
    81    134   
    82         -	# Patch Win32 builds to always provide DllMain if we are building KitDLL
    83         -	if [ "${KITTARGET}" = "kitdll" ]; then
    84         -		## DllMain is needed when building KitDLL
    85         -		for filetopatch in win/tclWin32Dll.c win/tclWinInit.c; do
    86         -			echo "Undefining STATIC_BUILD in \"${filetopatch}\""
    87         -
    88         -			sed 's@STATIC_BUILD@NEVER_STATIC_BUILD@g' "${filetopatch}" > "${filetopatch}.new" && cat "${filetopatch}.new" > "${filetopatch}"
    89         -			rm -f "${filetopatch}.new"
    90         -		done
    91         -	fi
    92         -
    93    135   	for dir in unix win macosx __fail__; do
    94    136   		if [ "${dir}" = "__fail__" ]; then
    95    137   			# If we haven't figured out how to build it, reject.
    96    138   
    97    139   			exit 1
    98    140   		fi
    99    141   
................................................................................
   109    151   		${MAKE:-make} || continue
   110    152   
   111    153   		echo "Running: ${MAKE:-make} install"
   112    154   		${MAKE:-make} install || (
   113    155   			# Work with Tcl 8.6.x's TCLSH_NATIVE solution for
   114    156   			# cross-compile installs
   115    157   
   116         -			echo "Running: ${MAKE:-make} install TCLSH_NATIVE=\"${TCLKIT:-tclkit}\""
   117         -			${MAKE:-make} install TCLSH_NATIVE="${TCLKIT:-tclkit}"
          158  +			echo "Running: ${MAKE:-make} install TCLSH_NATIVE=\"${TCLSH_NATIVE}\""
          159  +			${MAKE:-make} install TCLSH_NATIVE="${TCLSH_NATIVE}"
   118    160   		) || (
   119    161   			# Make install can fail if cross-compiling using Tcl 8.5.x
   120    162   			# because the Makefile calls "$(TCLSH)".  We can't simply
   121    163   			# redefine TCLSH because it also uses TCLSH as a build target
   122    164   			sed 's@^$(TCLSH)@blah@' Makefile > Makefile.new
   123    165   			cat Makefile.new > Makefile
   124    166   			rm -f Makefile.new
   125    167   
   126         -			echo "Running: ${MAKE:-make} install TCLSH=\"../../../../../../../../../../../../../../../../../$(which "${TCLKIT:-tclkit}")\""
   127         -			${MAKE:-make} install TCLSH="../../../../../../../../../../../../../../../../../$(which "${TCLKIT:-tclkit}")"
          168  +			echo "Running: ${MAKE:-make} install TCLSH=\"../../../../../../../../../../../../../../../../../$(which "${TCLSH_NATIVE}")\""
          169  +			${MAKE:-make} install TCLSH="../../../../../../../../../../../../../../../../../$(which "${TCLSH_NATIVE}")"
   128    170   		) || (
   129    171   			# Make install can fail if cross-compiling using Tcl 8.5.9
   130    172   			# because the Makefile calls "${TCL_EXE}".  We can't simply
   131    173   			# redefine TCL_EXE because it also uses TCL_EXE as a build target
   132    174   			sed 's@^${TCL_EXE}@blah@' Makefile > Makefile.new
   133    175   			cat Makefile.new > Makefile
   134    176   			rm -f Makefile.new
   135    177   
   136         -			echo "Running: ${MAKE:-make} install TCL_EXE=\"../../../../../../../../../../../../../../../../../$(which "${TCLKIT:-tclkit}")\""
   137         -			${MAKE:-make} install TCL_EXE="../../../../../../../../../../../../../../../../../$(which "${TCLKIT:-tclkit}")"
          178  +			echo "Running: ${MAKE:-make} install TCL_EXE=\"../../../../../../../../../../../../../../../../../$(which "${TCLSH_NATIVE}")\""
          179  +			${MAKE:-make} install TCL_EXE="../../../../../../../../../../../../../../../../../$(which "${TCLSH_NATIVE}")"
   138    180   		) || exit 1
   139    181   
   140    182   		mkdir "${OUTDIR}/lib" || exit 1
   141    183   		cp -r "${INSTDIR}/lib"/* "${OUTDIR}/lib/"
   142    184   		rm -rf "${OUTDIR}/lib/pkgconfig"
   143    185   		rm -f "${OUTDIR}"/lib/* >/dev/null 2>/dev/null
   144    186   		find "${OUTDIR}" -name '*.a' | xargs rm -f >/dev/null 2>/dev/null

Added tcl/patchscripts/minbuild-nopkgs.sh version [d1143d6e77].

            1  +#! /bin/bash
            2  +
            3  +if [ -n "${KITCREATOR_MINBUILD}" ]; then
            4  +	rm -rf 'pkgs'
            5  +fi

Added tcl/patchscripts/visibility-unhidden.sh version [05e06e331d].

            1  +#! /bin/bash
            2  +
            3  +if [ "${KITTARGET}" != "kitdll" ]; then
            4  +	exit 0
            5  +fi
            6  +
            7  +for file in unix/configure; do
            8  +	sed 's@-fvisibility@-__disabled__fvisibility@' "${file}" > "${file}.new"
            9  +	cat "${file}.new" > "${file}"
           10  +	rm -f "${file}.new"
           11  +done

Added tcl/patchscripts/win32-dllmain.sh version [610ea73aa0].

            1  +#! /bin/bash
            2  +
            3  +if [ "${KITTARGET}" != "kitdll" ]; then
            4  +	exit 0
            5  +fi
            6  +
            7  +## DllMain is needed when building KitDLL
            8  +for filetopatch in win/tclWin32Dll.c win/tclWinInit.c; do
            9  +	echo "Undefining STATIC_BUILD in \"${filetopatch}\""
           10  +
           11  +	sed 's@STATIC_BUILD@NEVER_STATIC_BUILD@g' "${filetopatch}" > "${filetopatch}.new" && cat "${filetopatch}.new" > "${filetopatch}"
           12  +	rm -f "${filetopatch}.new"
           13  +done

Modified tclvfs/build.sh from [d1e2c23178] to [c20cbb9749].

    81     81   	echo "Running: ./configure --disable-shared --prefix=\"${INSTDIR}\" --exec-prefix=\"${INSTDIR}\" --with-tcl=\"${TCLCONFIGDIR}\" ${CONFIGUREEXTRA}"
    82     82   	./configure --disable-shared --prefix="${INSTDIR}" --exec-prefix="${INSTDIR}" --with-tcl="${TCLCONFIGDIR}" ${CONFIGUREEXTRA}
    83     83   
    84     84   	echo "Running: ${MAKE:-make}"
    85     85   	${MAKE:-make} || exit 1
    86     86   
    87     87   	echo "Running: ${MAKE:-make} install"
    88         -	${MAKE:-make} install
           88  +	${MAKE:-make} install || exit 1
    89     89   
    90     90   	mkdir "${OUTDIR}/lib" || exit 1
    91     91   	cp -r "${INSTDIR}/lib"/vfs* "${OUTDIR}/lib/"
    92     92   	rm -f "${OUTDIR}/lib"/vfs*/*.a "${OUTDIR}/lib"/vfs*/*.so
    93     93   
    94     94   	exit 0
    95     95   ) || exit 1
    96     96   
    97     97   exit 0

Modified tk/build.sh from [394ddd8947] to [12528bdfc5].

    13     13   
    14     14   SRC="src/tk${TCLVERS}.tar.gz"
    15     15   SRCURL="http://prdownloads.sourceforge.net/tcl/tk${TCLVERS}-src.tar.gz"
    16     16   BUILDDIR="$(pwd)/build/tk${TCLVERS}"
    17     17   PATCHDIR="$(pwd)/patches"
    18     18   OUTDIR="$(pwd)/out"
    19     19   INSTDIR="$(pwd)/inst"
    20         -export SRC SRCURL BUILDDIR PATCHDIR OUTDIR INSTDIR
           20  +PATCHSCRIPTDIR="$(pwd)/patchscripts"
           21  +export SRC SRCURL BUILDDIR PATCHDIR OUTDIR INSTDIR PATCHSCRIPTDIR
           22  +
           23  +# Must be kept in-sync with "../tcl/build.sh"
           24  +TCLFOSSILDATE="../tcl/src/tcl${TCLVERS}.tar.gz.date"
           25  +export TCLFOSSILDATE
    21     26   
    22     27   rm -rf 'build' 'out' 'inst'
    23     28   mkdir 'build' 'out' 'inst' || exit 1
    24     29   
    25     30   # Determine Tcl version
    26     31   TCL_VERSION="unknown"
    27     32   if [ -f "${TCLCONFIGDIR}/tclConfig.sh" ]; then
................................................................................
    29     34   fi
    30     35   export TCL_VERSION
    31     36   
    32     37   
    33     38   if [ ! -f "${SRC}" ]; then
    34     39   	mkdir 'src' >/dev/null 2>/dev/null
    35     40   
           41  +	use_fossil='0'
    36     42   	if echo "${TCLVERS}" | grep '^cvs_' >/dev/null; then
    37         -		CVSTAG=$(echo "${TCLVERS}" | sed 's/^cvs_//g')
    38         -		export CVSTAG
           43  +		use_fossil='1'
           44  +	elif echo "${TCLVERS}" | grep '^fossil_' >/dev/null; then
           45  +		use_fossil='1'
           46  +	fi
    39     47   
           48  +	if [ "${use_fossil}" = "1" ]; then
    40     49   		(       
           50  +			FOSSILDATE="$(cat "${TCLFOSSILDATE}" 2>/dev/null)"
           51  +
    41     52   			cd src || exit 1
    42     53   
    43         -			cvs -z3 -d:pserver:anonymous@tcl.cvs.sourceforge.net:/cvsroot/tktoolkit co -r "${CVSTAG}" -P tk
           54  +			workdir="tmp-$$${RANDOM}${RANDOM}${RANDOM}"
           55  +			rm -rf "${workdir}"
    44     56   
    45         -			mv tk "tk${TCLVERS}"
           57  +			mkdir "${workdir}" || exit 1
           58  +			cd "${workdir}" || exit 1
    46     59   
    47         -			tar -cf - "tk${TCLVERS}" | gzip -c > "../${SRC}"
           60  +			wget -O "tmp-tk.tar.gz" "http://core.tcl.tk/tk/tarball/tk-fossil.tar.gz?uuid=${FOSSILDATE}" || rm -f 'tmp-tk.tar.gz'
           61  +			gzip -dc "tmp-tk.tar.gz" | tar -xf -
           62  +
           63  +			mv "tk-fossil" "tk${TCLVERS}"
           64  +                        
           65  +			tar -cf - "tk${TCLVERS}" | gzip -c > "../../${SRC}"
           66  +
           67  +			cd ..
           68  +			rm -rf "${workdir}"
    48     69   		)
    49     70   	else
    50     71   		rm -f "${SRC}.tmp"
    51     72   		wget -O "${SRC}.tmp" "${SRCURL}" || exit 1
    52     73   		mv "${SRC}.tmp" "${SRC}"
    53     74   	fi
    54     75   fi
................................................................................
    82    103   				continue
    83    104   			fi
    84    105   
    85    106   			echo "Applying: ${patch}"
    86    107   			${PATCH:-patch} -p1 < "${patch}"
    87    108   		done
    88    109   	)
          110  +
          111  +	# Apply patch scripts if needed
          112  +	for patchscript in "${PATCHSCRIPTDIR}"/*.sh; do
          113  +		if [ -f "${patchscript}" ]; then
          114  +			echo "Running patch script: ${patchscript}"
          115  +                                
          116  +			(
          117  +				. "${patchscript}"
          118  +			)
          119  +		fi
          120  +	done
    89    121   
    90    122   	for dir in unix win macosx win64 __fail__; do
    91    123   		if [ "${dir}" = "__fail__" ]; then
    92    124   			exit 1
    93    125   		fi
    94    126   
    95    127   		# Windows/amd64 workarounds
................................................................................
   139    171   		) || continue
   140    172   
   141    173   		echo "Running: ${MAKE:-make} install"
   142    174   		${MAKE:-make} install || continue
   143    175   
   144    176   		# Update to include resources, if found
   145    177   		if [ "${dir}" = "win" ]; then
          178  +			echo ' *** Importing user-specified icon'
          179  +			cp "${KITCREATOR_ICON}" rc/tk.ico
          180  +
          181  +			echo ' *** Importing user-specified resources'
          182  +			cat "${KITCREATOR_RC}" | grep -v '^ *tclsh  *ICON' >> "./rc/tk_base.rc"
          183  +
   146    184   			echo ' *** Creating tkbase.res.o to support Windows build'
   147    185   			echo "\"${RC:-windres}\" -o tkbase.res.o  --define STATIC_BUILD --include \"./../generic\" --include \"${TCLCONFIGDIR}/../generic\" --include \"${TCLCONFIGDIR}\" --include \"./rc\" \"./rc/tk_base.rc\""
   148    186   			"${RC:-windres}" -o tkbase.res.o  --define STATIC_BUILD --include "./../generic" --include "${TCLCONFIGDIR}/../generic" --include "${TCLCONFIGDIR}" --include "./rc" "./rc/tk_base.rc"
   149    187   
   150    188   			if [ -f "tkbase.res.o" ]; then
   151    189   				cp "tkbase.res.o" "${INSTDIR}/lib/"
   152    190   			fi

Added tk/patchscripts/visibility-unhidden.sh version [05e06e331d].

            1  +#! /bin/bash
            2  +
            3  +if [ "${KITTARGET}" != "kitdll" ]; then
            4  +	exit 0
            5  +fi
            6  +
            7  +for file in unix/configure; do
            8  +	sed 's@-fvisibility@-__disabled__fvisibility@' "${file}" > "${file}.new"
            9  +	cat "${file}.new" > "${file}"
           10  +	rm -f "${file}.new"
           11  +done