Mercurial > jwe > octave
diff configure.in @ 5:9c27e323492f
[project @ 1993-08-08 01:29:13 by jwe]
Initial revision
author | jwe |
---|---|
date | Sun, 08 Aug 1993 01:32:33 +0000 |
parents | |
children | 969b6494a10c |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/configure.in Sun Aug 08 01:32:33 1993 +0000 @@ -0,0 +1,412 @@ +dnl Process this file with autoconf to produce a configure script. +dnl +AC_INIT([[src]]/octave.cc)dnl + +# See if we were given the target host type. If not, guess. + +if test $# -gt 0; then + TARGET=`eval echo $\{\`echo $#\`\}` + case $TARGET in + -*) target_host_type= ;; + *) target_host_type=$TARGET ;; + esac +fi + +if test -z "$target_host_type" -o "$target_host_type" = unknown; then + target_host_type=`sh $srcdir/config.guess` + if test -z "$target_host_type"; then + echo "warning: unable to guess system type" + target_host_type=unknown + fi +fi + +case "$target_host_type" in + unknown) + echo "configuring Octave for an unknown system type" + ;; + *) + echo "configuring Octave for a $target_host_type" + ;; +esac +AC_SUBST(target_host_type)dnl + +# Set up to handle --with-FOO options. + +AC_WITH(f2c, use_f2c=true, use_f2c=false)dnl +AC_WITH(dld, use_dld=true, use_dld=false)dnl + +DYNAMIC_LD_OBJ= +DLD_DIR= +LIBDLD= +DLD_OBJECTS='$(DLD_OBJECTS)' +LD_STATIC_FLAG= +if $use_dld; then + DYNAMIC_LD_OBJ='dynamic-ld.o' + DLD_DIR=dld + LIBDLD='../libdld.a' + DLD_OBJECTS= : # don't link them in if doing dynamic linking + DEFS="$DEFS -DWITH_DLD=1" + LD_STATIC_FLAG=-static +fi +AC_SUBST(DYNAMIC_LD_OBJ)dnl +AC_SUBST(DLD_DIR)dnl +AC_SUBST(LIBDLD)dnl +AC_SUBST(DLD_OBJECTS)dnl +AC_SUBST(LD_STATIC_FLAG)dnl + +echo "checking for npsol" +if test -f $srcdir/libcruft/npsol/npsol.f; then + : +else + DEFS="$DEFS -DNPSOL_MISSING=1" +fi + +echo "checking for qpsol" +if test -f $srcdir/libcruft/qpsol/qpsol.f; then + : +else + DEFS="$DEFS -DQPSOL_MISSING=1" +fi + +echo "checking for fsqp" +if test -f $srcdir/libcruft/fsqp/fsqpd.f; then + : +else + DEFS="$DEFS -DFSQP_MISSING=1" +fi + +AC_PROG_CC +AC_GCC_TRADITIONAL +AC_AIX + +# Do special things for gcc. + +case "$CC" in + gcc*) + CFLAGS="-g -O -Wall" + LDFLAGS="-g -O" + gcc_version=`gcc -v 2>&1 | grep "^gcc version" | sed 's/^gcc version *//'` + case "$gcc_version" in + 1.*) + cat << EOF +warning: gcc version $gcc_version is likely to cause problems -- + you should probably consider getting version 2.x +EOF + ;; + esac + ;; + *) + CFLAGS="-g" + LDFLAGS="-g" + ;; +esac +AC_SUBST(CFLAGS)dnl +AC_SUBST(LDFLAGS)dnl + +AC_PROGRAM_CHECK(GXX, g++, g++, [])dnl +if test "$GXX" = g++ ; then + CXXFLAGS="-g -O -Wall" + gxx_version=`g++ -v 2>&1 | grep "^g.. version" | sed 's/^g.. version *//'` + case "$gxx_version" in + 1.*) + cat << EOF +warning: g++ version $gxx_version is likely to cause problems -- + you should probably consider getting version 2.x +EOF + ;; + esac +else + cat << EOF +warning: Octave has only been tested with g++, and I can't + seem to find it. +EOF +fi +AC_SUBST(CXXFLAGS)dnl + +# If we haven't been forced to use f2c, try to find a Fortran compiler +# under any one of several common Un*x Fortran compiler names. +# Put fc last to avoid confusion with some vendor's /bin/sh fc +# builtin. +# +# g77 : GNU Fortran (someday...) +# xlf : IBM / AIX +# cf77 : Cray / Unicos +# fc : Convex +# +# I don't think the Cray compiler will ever work like f2c... + +if $use_f2c; then + true +else + F77= + AC_PROGRAMS_CHECK(F77, g77 xlf cf77 f77 fc)dnl + + # If it looks like we have a Fortran compiler, try to determine + # whether it might be compatible with f2c. + + if test -n "$F77"; then + echo "checking $F77/f2c compatibility" + export F77 + export CC + tmpdef=`sh $srcdir/f2c-compat.sh $srcdir/flibs.sh` + status=$? + if test $status -eq 0; then + if test "$tmpdef" = '-DF77_APPEND_UNDERSCORE=1'; then + DEFS="$DEFS $tmpdef" + fi + else + F77= + fi + fi +fi + +# If we can't find a Fortran compiler, or if it looks like it isn't +# compatible with f2c, try to find f2c. + +if test -z "$F77"; then + AC_PROGRAM_CHECK(F2C, f2c, f2c, [])dnl +fi + +F2CFLAGS= +FFLAGS="-O" +if test -n "$F77"; then + export F77 + FLIBS=`sh $srcdir/flibs.sh` + DOT_O_DOT_F_C1= + DOT_O_DOT_F_C2= + DOT_O_DOT_F_C3= + DOT_O_DOT_F_C4= + DEFAULT_DOT_C_FROM_DOT_F= + DEFAULT_DOT_O_FROM_DOT_F= +elif test -n "$F2C" || $use_f2c; then + AC_HAVE_LIBRARY(f2c, FLIBS=-lf2c, [])dnl + if test -z "$FLIBS" ; then + AC_HAVE_LIBRARY(F77, FLIBS=-lF77, [])dnl + if test -n "$FLIBS" ; then + AC_HAVE_LIBRARY(I77, FLIBS="$FLIBS -lI77", [])dnl + fi + fi + if test -z "$FLIBS" ; then + cat << EOF +warning: I found f2c but I couldn't find libf2c.a, or + libF77.a and libI77.a +EOF + fi +DEFAULT_DOT_C_FROM_DOT_F='# A rule for making C source from Fortran source.\ +# If we are using f2c we should also turn off the default rule for\ +# making objects from .f files so that we do not invoke the fortran\ +# compiler by mistake.\ +\ +\%.c : \%.f\ + cat $< | $(F2C) $(F2CFLAGS) > $(@F)' + DEFAULT_DOT_O_FROM_DOT_F='\%.o : \%.f' + DEFS="$DEFS -DF77_APPEND_UNDERSCORE=1" +else + cat << EOF +warning: in order to build octave, you must have a compatible + Fortran compiler or f2c installed and in your path. + See the file INSTALL for more information. + Continuing anyway... +EOF +fi + +AC_SUBST(FFLAGS)dnl +AC_SUBST(FLIBS)dnl +AC_SUBST(F2C)dnl +AC_SUBST(F2CFLAGS)dnl +AC_SUBST(DEFAULT_DOT_C_FROM_DOT_F)dnl +AC_SUBST(DEFAULT_DOT_O_FROM_DOT_F)dnl + +AC_PROG_INSTALL +AC_PROG_RANLIB +AC_STDC_HEADERS +AC_UNISTD_H +AC_DIR_HEADER + +# For now, don't define LEXLIB to be -lfl -- we don't use anything in +# it, and it might not be installed. +# +# Also make sure that we generate an interactive scanner if we are +# using flex. + +AC_PROG_LEX +case "$LEX" in + flex*) + LFLAGS="-t -I" + LEXLIB= + ;; + *) + LFLAGS="-t" + cat << EOF +warning: I didn't find flex, but that's only a problem + if you need to reconstruct lex.cc +EOF + ;; +esac +AC_SUBST(LFLAGS)dnl + +AC_PROG_YACC +case "$YACC" in + bison*) + ;; + *) + cat << EOF +warning: I didn't find bison, but that's only a problem + if you need to reconstruct parse.cc +EOF + ;; +esac + +# Define VOID_SIGHANDLER for readline. + +AC_RETSIGTYPE +case "$RETSIGTYPE" in + int) + ;; + *) + VOID_SIGHANDLER="-DVOID_SIGHANDLER=1" + ;; +esac +AC_SUBST(VOID_SIGHANDLER)dnl + +AC_HAVE_HEADERS(termio.h)dnl +case "$DEFS" in + *HAVE_TERMIO_H*) + ;; + *) + AC_HAVE_HEADERS(sgtty.h)dnl + case "$DEFS" in + *HAVE_SGTTY_H*) + ;; + *) + echo "I couldn't find either termio.h or sgtty.h!" + exit 1 + ;; + esac + ;; +esac + +# Hack for readline's sysdep.h + +case "$target_host_type" in + *next*) + echo "using BSD version of readline/sysdep.h on the NeXT" + rm -f readline/sysdep.h + cp readline/sysdep-obsd.h readline/sysdep.h + ;; +esac + +# Check to see if we have IEEE math functions, and if so, which ones. +# +# Also check for some additional trig functions that aren't ANSI but +# are often available. If they are missing, we try to replace them +# with functions from the BSD/NET2 math library. + +XLIBS="$LIBS" +LIBS="$XLIBS -lm" +AC_HAVE_FUNCS(finite isnan isinf)dnl +AC_REPLACE_FUNCS(acosh asinh atanh)dnl +LIBS="$XLIBS" + +if test -n "$LIBOBJS"; then + for func in $LIBOBJS + do + case "$func" in + *acosh.o*) + DEFS="$DEFS -DACOSH_MISSING=1" + ;; + *asinh.o*) + DEFS="$DEFS -DASINH_MISSING=1" + ;; + *atanh.o*) + DEFS="$DEFS -DATANH_MISSING=1" + ;; + esac + done + + case $LIBOBJS in + *acosh.o* | *asinh.o*) + AC_REPLACE_FUNCS(copysign)dnl + ;; + esac + + case $LIBOBJS in + *acosh.o* | *asinh.o* | *atanh.o*) + AC_REPLACE_FUNCS(log1p)dnl + ;; + esac + + case $LIBOBJS in + *log1p*) + AC_REPLACE_FUNCS(log__L)dnl + ;; + esac + + case $LIBOBJS in + *log1p*) + AC_REPLACE_FUNCS(finite)dnl + ;; + esac + + case $LIBOBJS in + *copysign* | *finite* | *log1p*) + AC_REPLACE_FUNCS(logb scalb)dnl + ;; + esac +fi + +AC_PROGRAM_CHECK(GNUPLOT_BINARY, gnuplot, gnuplot, [])dnl +if test -z "$GNUPLOT_BINARY"; then + cat << EOF +warning: I didn't find gnuplot. It isn't necessary to have gnuplot + installed, but you won't be able to use any of Octave's + plotting commands without it. + + If gnuplot is installed but it isn't in your path, you can + tell Octave where to find it by typing the command + + gnuplot_binary = '/full/path/to/gnuplot/binary' + + at the Octave prompt. +EOF +fi + +AC_PROGRAM_CHECK(DEFAULT_PAGER, less, less, [])dnl +if test -z "$DEFAULT_PAGER"; then + AC_PROGRAM_CHECK(DEFAULT_PAGER, more, more, [])dnl +fi +if test -z "$DEFAULT_PAGER"; then + AC_PROGRAM_CHECK(DEFAULT_PAGER, page, page, [])dnl +fi +if test -z "$DEFAULT_PAGER"; then + AC_PROGRAM_CHECK(DEFAULT_PAGER, pg, pg, [])dnl +fi +if test -z "$DEFAULT_PAGER"; then + echo "warning: I couldn't find less(1), more(1), page(1), or pg(1)" +fi +AC_SUBST(DEFAULT_PAGER)dnl + +AC_PROGRAM_CHECK(RUNTEST, runtest, runtest, [])dnl +AC_PROGRAM_CHECK(EXPECT, expect, expect, [])dnl +if test -z "$EXPECT" ; then + RUNTEST= +fi +AC_SUBST(RUNTEST)dnl + +define([tmpa], [libcruft/blas/Makefile libcruft/dassl/Makefile])dnl +define([tmpb], [libcruft/fftpack/Makefile])dnl +define([tmpc], [libcruft/fsqp/Makefile libcruft/lapack/Makefile])dnl +define([tmpd], [libcruft/linpack/Makefile libcruft/minpack/Makefile])dnl +define([tmpe], [libcruft/misc/Makefile libcruft/npsol/Makefile])dnl +define([tmpf], [libcruft/odepack/Makefile libcruft/qpsol/Makefile])dnl +define([tmpg], [libcruft/quadpack/Makefile libcruft/ranlib/Makefile])dnl +define([tmph], [libcruft/villad/Makefile])dnl +define([cruftdirs], [tmpa tmpb tmpc tmpd tmpe tmpf tmpg tmph])dnl +define([tmpA], [Makefile Makeconf libcruft/Makefile libcruft/Makerules])dnl +define([tmpB], [liboctave/Makefile src/Makefile])dnl +define([tmpC], [dld/Makefile readline/Makefile readline/doc/Makefile])dnl +define([tmpD], [readline/examples/Makefile doc/Makefile])dnl +define([tmpE], [scripts/Makefile test/Makefile])dnl +define([tmpF], [test/config/Makefile test/octave/Makefile])dnl +define([srcdirs], [tmpA tmpB tmpC tmpD tmpE tmpF])dnl +AC_OUTPUT([srcdirs cruftdirs])dnl