This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
>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