Check-in [04784f0fe8]
Overview
Comment:Added a GNU autoconf script for building the kitsh
Downloads: Tarball | ZIP archive | SQL archive
Timelines: family | ancestors | descendants | both | trunk
Files: files | file ages | folders
SHA1:04784f0fe8fdb85ade6c6817ccb87c628763b094
User & Date: rkeene on 2010-09-26 04:37:49
Other Links: manifest | tags
Context
2010-09-26
04:37
Added support for creating proper kitsh environment check-in: 5996f7a35f user: rkeene tags: trunk
04:37
Added a GNU autoconf script for building the kitsh check-in: 04784f0fe8 user: rkeene tags: trunk
04:37
Removed building shared verions of code

Added support for passing arguments to child "configure" scripts

Added Solaris compile support check-in: 8d94c2989e user: rkeene tags: trunk

Changes

Modified kitsh/build.sh from [9c9a954427] to [20e80b20ba].

    23     23   
    24     24   
    25     25   (
    26     26   	cp -r 'buildsrc' 'build'
    27     27   	cd "${BUILDDIR}" || exit 1
    28     28   
    29     29   	# Compile all objects...
    30         -	## TODO: XXX: Need to replace this with a configure script
    31         -	${CC:-cc} ${CPPFLAGS} ${CFLAGS} -I${TCLCONFIGDIR} -I${TCLCONFIGDIR}/../generic -o kit *.c $(find "${OTHERPKGSDIR}" -name '*.a' | grep '/inst/') ${LDFLAGS} -lz -lm -ldl  -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic || \
    32         -	${CC:-cc} ${CPPFLAGS} ${CFLAGS} -I${TCLCONFIGDIR} -I${TCLCONFIGDIR}/../generic -o kit *.c $(find "${OTHERPKGSDIR}" -name '*.a' | grep '/inst/') ${LDFLAGS} -lz -lm -ldl -lnsl -lsocket -Wl,-Bstatic -lstdc++ -Wl,-Bdynamic
           30  +	./configure --with-tcl="${TCLCONFIGDIR}"
           31  +	${MAKE:-make} || exit 1
           32  +
    33     33   	strip kit >/dev/null 2>/dev/null
    34     34   
    35     35   	# Create VFS directory
    36     36   	mkdir "starpack.vfs"
    37     37   	mkdir "starpack.vfs/lib"
    38     38   
    39     39   	## Copy in all built directories
................................................................................
    55     55   		### Call installer
    56     56   		cp kit runkit
    57     57   		echo 'set argv [list kit starpack.vfs]' > setup.tcl
    58     58   		echo 'source installvfs.tcl' >> setup.tcl
    59     59   		echo | ./runkit
    60     60   	fi
    61     61   
           62  +	exit 0
    62     63   ) || exit 1
    63     64   
    64     65   exit 0

Added kitsh/buildsrc/kitsh-0.0/Makefile.in version [9c5abd59ed].

            1  +CC = @CC@
            2  +CFLAGS = -Wall @CFLAGS@
            3  +CPPFLAGS = @CPPFLAGS@
            4  +LDFLAGS = @LDFLAGS@
            5  +LIBS = @LIBS@
            6  +OBJS = kitInit.o main.o pwb.o rechan.o zlib.o
            7  +ARCHS = ../../../mk4tcl/inst/lib/Mk4tcl/Mk4tcl.a ../../../tcl/inst/lib/libtcl8.4.a ../../../tclvfs/inst/lib/vfs1.3/libvfs1.3.a
            8  +
            9  +all: kit
           10  +
           11  +kit: $(OBJS) $(ARCHS)
           12  +	$(CC) $(CPPFLAGS) $(CFLAGS) -o kit $(OBJS) $(ARCHS) $(LDFLAGS) $(LIBS)
           13  +
           14  +clean:
           15  +	rm -f kit $(OBJS)
           16  +
           17  +distclean: clean
           18  +	rm -f config.h Makefile config.log config.status
           19  +	rm -rf autom4te.cache
           20  +
           21  +mrproper: distclean
           22  +	rm -f configure config.h
           23  +
           24  +.PHONY: all clean distclean

Added kitsh/buildsrc/kitsh-0.0/aclocal.m4 version [fe1b839d01].

            1  +AC_DEFUN(DC_DO_NETWORK, [
            2  +	AC_SEARCH_LIBS(inet_aton, xnet ws2_32 wsock32, [
            3  +		AC_DEFINE(HAVE_INET_ATON, [], [Have inet_aton()])
            4  +	], [
            5  +		AC_SEARCH_LIBS(inet_addr, nsl ws2_32 wsock32, [
            6  +			AC_DEFINE(HAVE_INET_ADDR, [], [Have inet_addr()])
            7  +		], [
            8  +			AC_MSG_WARN([could not find inet_addr or inet_aton!])
            9  +		])
           10  +	])
           11  +
           12  +	AC_SEARCH_LIBS(inet_ntoa, socket nsl ws2_32 wsock32,, [ AC_MSG_WARN([Couldn't find inet_ntoa!]) ])
           13  +	AC_SEARCH_LIBS(connect, socket nsl ws2_32 wsock32,, [ AC_MSG_WARN([Couldn't find connect!]) ])
           14  +	AC_SEARCH_LIBS(socket, socket nsl ws2_32 wsock32,, [ AC_MSG_WARN([Couldn't find socket!]) ])
           15  +])
           16  +
           17  +AC_DEFUN(DC_DO_TCL, [
           18  +	AC_MSG_CHECKING([path to tcl])
           19  +	AC_ARG_WITH(tcl, AC_HELP_STRING([--with-tcl], [directory containing tcl configuration (tclConfig.sh)]), [], [
           20  +		with_tcl="auto"
           21  +	])
           22  +
           23  +	if test "${with_tcl}" = "auto"; then
           24  +		for dir in `echo "${PATH}" | sed 's@:@ @g'`; do
           25  +			if test -f "${dir}/../lib/tclConfig.sh"; then
           26  +				tclconfigsh="${dir}/../lib/tclConfig.sh"
           27  +				break
           28  +			fi
           29  +			if test -f "${dir}/../lib64/tclConfig.sh"; then
           30  +				tclconfigsh="${dir}/../lib64/tclConfig.sh"
           31  +				break
           32  +			fi
           33  +		done
           34  +
           35  +		if test -z "${tclconfigsh}"; then
           36  +			AC_MSG_ERROR([Unable to find tclConfig.sh])
           37  +		fi
           38  +	else
           39  +		tclconfigsh="${with_tcl}/tclConfig.sh"
           40  +	fi
           41  +
           42  +
           43  +	source "${tclconfigsh}"
           44  +
           45  +	CFLAGS="${CFLAGS} ${TCL_INCLUDE_SPEC} -I${TCL_SRC_DIR}/generic"
           46  +	CPPFLAGS="${CPPFLAGS} ${TCL_INCLUDE_SPEC} -I${TCL_SRC_DIR}/generic"
           47  +	LDFLAGS="${LDFLAGS}"
           48  +
           49  +	AC_SUBST(CFLAGS)
           50  +	AC_SUBST(CPPFLAGS)
           51  +	AC_SUBST(LDFLAGS)
           52  +
           53  +	AC_MSG_RESULT([$tclconfigsh])
           54  +])
           55  +
           56  +AC_DEFUN(DC_DO_STATIC_LINK_LIBCXX, [
           57  +	AC_MSG_CHECKING([for how to statically link to libstdc++])
           58  +
           59  +	STATICLIBCXX="-Wl,-Bstatic -lstdc++ -Wl,-Bdynamic"
           60  +	LIBS="${LDFLAGS} ${STATICLIBCXX}"
           61  +
           62  +	AC_SUBST(LIBS)
           63  +
           64  +	AC_MSG_RESULT([${STATICLIBCXX}])
           65  +])

Added kitsh/buildsrc/kitsh-0.0/config.h.in version [a3db3152de].

            1  +/* config.h.in.  Generated from configure.ac by autoheader.  */
            2  +
            3  +/* Have inet_addr() */
            4  +#undef HAVE_INET_ADDR
            5  +
            6  +/* Have inet_aton() */
            7  +#undef HAVE_INET_ATON
            8  +
            9  +/* Define to the address where bug reports for this package should be sent. */
           10  +#undef PACKAGE_BUGREPORT
           11  +
           12  +/* Define to the full name of this package. */
           13  +#undef PACKAGE_NAME
           14  +
           15  +/* Define to the full name and version of this package. */
           16  +#undef PACKAGE_STRING
           17  +
           18  +/* Define to the one symbol short name of this package. */
           19  +#undef PACKAGE_TARNAME
           20  +
           21  +/* Define to the version of this package. */
           22  +#undef PACKAGE_VERSION
           23  +
           24  +/* Define to 1 if on AIX 3.
           25  +   System headers sometimes define this.
           26  +   We just want to avoid a redefinition error message.  */
           27  +#ifndef _ALL_SOURCE
           28  +# undef _ALL_SOURCE
           29  +#endif
           30  +
           31  +/* Enable GNU extensions on systems that have them.  */
           32  +#ifndef _GNU_SOURCE
           33  +# undef _GNU_SOURCE
           34  +#endif

Added kitsh/buildsrc/kitsh-0.0/configure.ac version [6a3c97057b].

            1  +dnl What are we running
            2  +AC_INIT(kitsh, 0.0)
            3  +AC_CONFIG_HEADER(config.h)
            4  +
            5  +dnl Checks for programs.
            6  +AC_PROG_CC
            7  +AC_PROG_MAKE_SET
            8  +AC_PROG_INSTALL
            9  +AC_AIX
           10  +AC_GNU_SOURCE
           11  +
           12  +dnl Check for network libraries
           13  +DC_DO_NETWORK
           14  +
           15  +dnl Find the appropriate Tcl headers and libraries
           16  +DC_DO_TCL
           17  +
           18  +dnl Find out how to statically link to libstdc++ (for Metakit)
           19  +DC_DO_STATIC_LINK_LIBCXX
           20  +
           21  +dnl Find the appropriate libraries to link to
           22  +AC_SEARCH_LIBS(inflate, z zlib,, [ AC_MSG_WARN([Couldn't find inflate (normally in zlib)!]) ])
           23  +AC_SEARCH_LIBS(acos, m,, [ AC_MSG_WARN([Couldn't find acos (normally in libm)!]) ])
           24  +AC_SEARCH_LIBS(dlsym, dl,, [ AC_MSG_WARN([Couldn't find dlsym (normally in libdl)!]) ])
           25  +
           26  +dnl Produce output
           27  +AC_OUTPUT(Makefile)

Added kitsh/buildsrc/kitsh-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: