[
Date Prev][
Date Next][
Thread Prev][
Thread Next][
Date Index][
Thread Index]
20010430: McIDAS on Red Hat 7 (cont.)
- Subject: 20010430: McIDAS on Red Hat 7 (cont.)
- Date: Mon, 30 Apr 2001 13:03:58 -0600
>From: Wahner Paul Contr CSR4500 <address@hidden>
>Organization: Cape Canaveral Air Force Station
>Keywords: 200102121310.f1CDAFL23157 McIDAS-X Linux &
Paul,
>I'm finally getting a chance to get back into this project. I do want to
>stick to your suggestion of trying to stay as close to the McIDAS
>distribution as possible.
OK. Originally, I was interested in seeing if your build of the 99.999%
SSEC distribution of McIDAS-X on RedHat 7.x would exhibit the same problem
serving sounding data through the remote ADDE server as I had seen here
at Unidata and at a couple of my sites. I now know that this is a problem
that is not limited to the Unidata distribution. I have had several
exchanges with SSEC (Dave Santec and others) about the problem. I _think_
that the problem has finally been sent along to John Benson so he could
take a good look at what is going on.
>So I intend to tackle one problem at a time as
>they come up. At this point I'm up to the newer version of Tcl/Tk problem.
>Would you be willing to send me a copy of your "tclcomp.sh" file? With that,
>then I'll see how far I can get until something else breaks.
Sure. By the way, hopefully my mods to tclcomp.sh will show up in the SSEC
7.8 distribution.
Here it is:
---------------------------- tclcomp.sh -------------------------------------
#!/bin/sh
#
# Copyright(c) 1998, Space Science and Engineering Center, UW-Madison
# Refer to "McIDAS Software Acquisition and Distribution Policies"
# in the file mcidas/data/license.txt
#
# $Id: tclcomp.sh,v 1.10 1999/04/23 18:39:17 beckys Exp $
#
# save program name
#
prog=`basename $0`
# make sure we got the correct number of arguments
#
if [ $# -ne 4 ]; then
echo "Usage: $prog tcldir tclsrc tksrc target" 1>&2
exit 1
fi
# save arguments
#
tcldir="$1"
tclsrc="$2"
tksrc="$3"
target="$4"
# if no Tcl source directory...
#
if [ ! -d "$tclsrc" ]; then
echo "$prog: Tcl source directory \"$tclsrc\" does not exist" 1>&2
exit 1
fi
# if no Tk source directory...
#
if [ ! -d "$tksrc" ]; then
echo "$prog: Tk source directory \"$tksrc\" does not exist" 1>&2
exit 1
fi
# Set use of shared libraries for all systems EXCEPT BSDI and Solaris X86
#
# Generation of TK shared libraries appeared busted under Solaris on Intel, but
# is OK on Sparc. If this gets fixed in a later OS version, we can remove this
# special case.
#
case `uname -s` in
BSD/OS)
shared=""
;;
FreeBSD)
shared=""
;;
SunOS)
case `uname -i` in
i86pc)
shared=""
;;
*)
shared="--enable-shared"
esac
;;
*)
shared="--enable-shared"
;;
esac
case $CC in
gcc)
gcc="--enable-gcc"
;;
*) gcc=""
;;
esac
# find Tcl configuration file
#
tclconf=
for i in "$tclsrc/unix/tclConfig.sh" "$tclsrc/lib/tclConfig.sh"; do
if [ -f "$i" ]; then
tclconf="$i"
fi
done
if [ X"$tclconf" = X ]; then
if [ -d "$tclsrc/unix" ]; then
(cd "$tclsrc/unix" &&
./configure $shared $gcc --prefix="$tcldir" >/dev/null 2>&1)
fi
tclconf=$tclsrc/unix/tclConfig.sh
# if there's STILL no Tcl configuration file...
#
if [ ! -f "$tclconf" ]; then
echo "$prog: Couldn't find Tcl configuration information" 1>&2
exit 1
fi
fi
# if no Tk configuration file...
#
tkconf=
for i in "$tksrc/unix/tkConfig.sh" "$tksrc/lib/tkConfig.sh"; do
if [ -f "$i" ]; then
tkconf="$i"
fi
done
if [ X"$tkconf" = X ]; then
if [ -d "$tksrc/unix" ]; then
(cd "$tksrc/unix" &&
./configure $shared $gcc --prefix="$tcldir" \
--with-tcl="../$tclsrc/unix" >/dev/null 2>&1)
fi
tkconf=$tksrc/unix/tkConfig.sh
# if there's STILL no Tk configuration file...
#
if [ ! -f "$tkconf" ]; then
echo "$prog: Couldn't find Tk configuration information" 1>&2
exit 1
fi
fi
# load Tcl and Tk configuration information
#
. "$tclconf"
. "$tkconf"
# get rid of target if it exists
#
if [ -f "$target" ]; then
rm -f "$target"
fi
# extract library name from Tcl LIB and BUILD specifications
#
MY_TCL_LIB_NAME=`echo $TCL_LIB_SPEC | sed 's/[ ]*-L[^ ]*//g'`
MY_TCL_BUILD_NAME=`echo $TCL_BUILD_LIB_SPEC | sed 's/[ ]*-L[^ ]*//g'`
if [ "$MY_TCL_LIB_NAME" != "$MY_TCL_BUILD_NAME" ]; then
echo "$prog: Library name mismatch (LIB=$MY_TCL_LIB_NAME,
BUILD=$MY_TCL_BUILD_NAME)" 1>&2
exit 1
fi
# extract library path from Tcl LIB and BUILD specifications
#
MY_TCL_LIB_DIR=`echo $TCL_LIB_SPEC | sed 's/[ ]*-l[^ ]*//g'`
MY_TCL_BUILD_DIR=`echo $TCL_BUILD_LIB_SPEC | sed 's/[ ]*-l[^ ]*//g'`
# extract library name from Tk LIB and BUILD specifications
#
MY_TK_LIB_NAME=`echo $TK_LIB_SPEC | sed 's/[ ]*-L[^ ]*//g'`
MY_TK_BUILD_NAME=`echo $TK_BUILD_LIB_SPEC | sed 's/[ ]*-L[^ ]*//g'`
if [ "$MY_TK_LIB_NAME" != "$MY_TK_BUILD_NAME" ]; then
echo "$prog: Library name mismatch (LIB=$MY_TK_LIB_NAME,
BUILD=$MY_TK_BUILD_NAME)" 1>&2
exit 1
fi
# extract library path from Tk LIB and BUILD specifications
#
MY_TK_LIB_DIR=`echo $TK_LIB_SPEC | sed 's/[ ]*-l[^ ]*//g'`
MY_TK_BUILD_DIR=`echo $TK_BUILD_LIB_SPEC | sed 's/[ ]*-l[^ ]*//g'`
# build my library specification
#
MY_LIB_DIR="$MY_TK_BUILD_DIR $MY_TCL_BUILD_DIR $MY_TK_LIB_DIR $MY_TCL_LIB_DIR"
MY_LIB_NAME="$MY_TK_LIB_NAME $MY_TCL_LIB_NAME"
# create the target using the Tcl & Tk configuration information
#
cat > "$target" <<EOF
#!/bin/sh
# if this is Solaris, need to add a run-time path when linking
# <<<<< UPC mods 981130 >>>>> - added Linux and OSF1 to list
# of OSes needing RUNTIME_PATH
#
RUNTIME_PATH=
case \`uname -sr\` in
"SunOS 5."*) RUNTIME_PATH="-R $TCL_PREFIX/lib";;
"Linux 2."*) RUNTIME_PATH="-Wl,-rpath,$TCL_PREFIX/lib";;
OSF1*) RUNTIME_PATH="-Wl,-rpath,$TCL_PREFIX/lib";;
IRIX*) RUNTIME_PATH="-Wl,-rpath,$TCL_PREFIX/lib";;
HP-UX*) RUNTIME_PATH="-Wl,+b,$TCL_PREFIX/lib";;
esac
# need different sets of flags for compiling and linking
#
eval \`linking=yup
while [ \$# -gt 0 ]; do
case \$1 in
-c) linking=
break
;;
esac
shift
done
if [ -z "\$linking" ]; then
tclflags="$TCL_DEFS $TK_DEFS"
else
tclflags="\$RUNTIME_PATH $MY_LIB_DIR $MY_LIB_NAME $TK_LIBS
$TCL_LIBS"
fi
echo "tclflags='\$tclflags'"\`
# let compiler do the rest of the dirty work
#
compiler=\$1; shift
exec \$compiler \$* \$tclflags || exit 1
EOF
# make sure the target is executable
#
chmod a+x "$target"
# success!
#
exit 0
---------------------------- tclcomp.sh -------------------------------------
Tom