1#! /bin/sh
2# $Id: yconfig.sh,v 1.1 2005-09-18 22:04:15 dhmunro Exp $
3
4echo ""
5echo "  ============ begin yorick configuration ============="
6echo ""
7
8rm -f cfg*
9# debug=yes to keep all cfg.* stdout and stderr files
10debug=no
11
12fatality=0
13
14here=`cd ..;pwd`
15# remove any /tmp_mnt automounter garbage from name of current directory
16if echo "$here" | grep '^/tmp_mnt'; then
17  tmp=`echo "$here" | sed -e s%\^/tmp_mnt%%`
18  if test -d "$tmp"; then
19    here="$tmp";
20  else
21    tmp=`echo "$tmp" | sed -e s%\^/[\^/]*%%`
22    if test -d "$tmp"; then
23      here="$tmp";
24    fi
25  fi
26fi
27
28VERSION=`head -1 ../VERSION`
29. ../ysite.sh
30
31if test -z "$Y_SITE"; then
32  Y_SITE="$here"
33else
34  if test "$Y_SITE" = "."; then
35    Y_SITE="$here"
36  fi
37fi
38if test "$Y_HOME" = "."; then Y_HOME=""; fi
39if test "$Y_PLATFORM" = "."; then Y_PLATFORM=""; fi
40if test -z "$Y_HOME"; then
41  if test -z "$Y_PLATFORM"; then
42    Y_PLATFORM=`uname -s`-`uname -m`
43    Y_PLATFORM=`echo $Y_PLATFORM | sed -e "s/ /_/g"`
44  fi
45  Y_HOME="$Y_SITE/$Y_PLATFORM"
46fi
47if test -z "$Y_BINDIR"; then
48  Y_BINDIR='$(Y_EXE_HOME)/bin'
49fi
50
51Y_VERSION="$VERSION".`tail -n 1 ../VERSION`
52echo "Y_VERSION=$Y_VERSION" >>../Make.cfg
53echo "Y_SITE=$Y_SITE" >>../Make.cfg
54echo "Y_HOME=$Y_HOME" >>../Make.cfg
55echo "Y_BINDIR=$Y_BINDIR" >>../Make.cfg
56echo "Y_CFG_SITE=$Y_SITE" >>../Make.cfg
57echo "Y_CFG_HOME=$Y_HOME" >>../Make.cfg
58
59# extract global variables from ../Make.cfg
60CC=`grep '^CC=' ../Make.cfg | sed -e s/CC=//`
61COPTIONS=`grep '^Y_CFLAGS=' ../Make.cfg | sed -e s/Y_CFLAGS=//`
62LDOPTIONS=`grep '^Y_LDFLAGS=' ../Make.cfg | sed -e s/Y_LDFLAGS=//`
63MATHLIB=`grep '^MATHLIB=' ../Make.cfg | sed -e s/MATHLIB=//`
64FPELIB=`grep '^FPELIB=' ../Make.cfg | sed -e s/FPELIB=//`
65if test -z "$FPELIB"; then
66  LOWLIBS="$MATHLIB"
67else
68  LOWLIBS="$MATHLIB" "$FPELIB"
69fi
70X11LIB=`grep '^X11LIB=' ../Make.cfg | sed -e s/X11LIB=//`
71RANLIB=`grep '^RANLIB=' ../Make.cfg | sed -e s/RANLIB=//`
72AR=`grep '^AR=' ../Make.cfg | sed -e s/AR=//`
73
74if test "$HACK103" = "yes"; then
75  echo "will emulate hypot to avoid system sqrt (HACK103)"
76  NO_HYPOT="-DNO_HYPOT"
77else
78cat >cfg.c <<EOF
79int main(int argc, char *argv[])
80{
81  double x=hypot(3.,4.);
82  return (x<4.99999)||(x>5.00001);
83}
84EOF
85if $CC $COPTIONS -o cfg cfg.c $LDOPTIONS $LOWLIBS >cfg.00 2>&1; then
86  echo "using hypot found in libm"
87  NO_HYPOT=""
88else
89  echo "libm does not contain hypot, will emulate"
90  NO_HYPOT="-DNO_HYPOT"
91fi
92fi
93echo "NO_HYPOT=$NO_HYPOT" >>../Make.cfg
94
95cat >cfg.c <<EOF
96int main(int argc, char *argv[])
97{
98  double x=exp10(3.);
99  return (x<999.999)||(x>1000.001);
100}
101EOF
102if $CC $COPTIONS -o cfg cfg.c $LDOPTIONS $LOWLIBS >cfg.00 2>&1; then
103  echo "using exp10 found in libm"
104  NO_EXP10=""
105else
106  echo "libm does not contain exp10, will emulate"
107  NO_EXP10="-DNO_EXP10"
108fi
109echo "NO_EXP10=$NO_EXP10" >>../Make.cfg
110
111if test -z "$FC" && make echofc >/dev/null 2>&1; then
112  FC=`cat cfg.tmp`
113  if test -z "$FC"; then FC=g77; fi
114fi
115rm -f cfg.tmp
116FC=f77
117FORTRAN_LIBS=
118if test -z "$FORTRAN_LINKAGE"; then
119  FORTRAN_LINKAGE=-Df_linkage_
120fi
121CXX=CC
122echo "FORTRAN_LINKAGE=$FORTRAN_LINKAGE" >>../Make.cfg
123
124#----------------------------------------------------------------------
125# clean up, issue warning if compiler gave fishy output
126rm -f cfg cfg.c cfg.o
127for f in cfg.[0-9]*; do
128  if grep ... $f >/dev/null 2>&1; then   # or use test -s $f ?
129    if test $debug = yes; then echo "WARNING - check compiler message in $f"
130    else rm -f $f; fi
131  else # remove empty files
132    rm -f $f
133  fi
134done
135
136echo "appended to ../Make.cfg"
137echo ""
138echo "  ============= end yorick configuration =============="
139
140exit $fatality
141