dnl# -*- sh -*-
dnl# the "configure" script is made from this by running GNU "autoconf"
dnl#
dnl# "$Id: configure.in,v 1.33.2.6 1999/10/19 04:50:32 bill Exp $"
dnl#
dnl# Configuration script for the Fast Light Tool Kit (FLTK).
dnl#
dnl# Copyright 1998-1999 by Bill Spitzak and others.
dnl#
dnl# This library is free software; you can redistribute it and/or
dnl# modify it under the terms of the GNU Library General Public
dnl# License as published by the Free Software Foundation; either
dnl# version 2 of the License, or (at your option) any later version.
dnl#
dnl# This library is distributed in the hope that it will be useful,
dnl# but WITHOUT ANY WARRANTY; without even the implied warranty of
dnl# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
dnl# Library General Public License for more details.
dnl#
dnl# You should have received a copy of the GNU Library General Public
dnl# License along with this library; if not, write to the Free Software
dnl# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
dnl# USA.
dnl#
dnl# Please report all bugs and problems to "fltk-bugs@easysw.com".
dnl#

AC_INIT(src/Fl.cxx)

AC_PROG_RANLIB

LIBNAME="libfltk.a"
if test "$RANLIB" != ":"; then
  LIBCOMMAND="ar cr"
else
  LIBCOMMAND="ar crs"
fi
DSOCOMMAND="echo"
DSONAME=""

dnl# Get the operating system and version number...

uname=`uname`
uversion=`uname -r | sed -e 's/-.*$//g;s/\.//g'`
dnl# uversion=`uname -r | sed -e '1,$s/[[-.A-Za-z]]//g'`
if test "$uname" = "IRIX64"; then
    uname="IRIX"
fi

dnl# Clear debugging flags and only enable debugging if the user asks for
dnl# it.

DEBUGFLAG=""
PICFLAG=0
CFLAGS="${CFLAGS:=}"
CXXFLAGS="${CXXFLAGS:=}"

AC_ARG_ENABLE(debug, [  --enable-debug          turn on debugging [default=no]],[if eval "test x$enable_debug = xyes"; then
  DEBUGFLAG="-g "
fi])
AC_ARG_ENABLE(shared, [  --enable-shared         turn on shared libraries [default=no]],[
if eval "test x$enable_shared = xyes"; then
  PICFLAG=1
  case $uname in
      SunOS* | UNIX_S*)
          DSONAME="libfltk.so.1"
	  DSOCOMMAND="\$(CXX) -Wl,-h,libfltk.so.1 \$(LDLIBS) -G $DEBUGFLAG -o"
	  ;;
      HP-UX*)
          DSONAME="libfltk.sl.1"
	  DSOCOMMAND="ld -b -z +h libfltk.sl.1 $DEBUGFLAG -o"
	  ;;
      OSF1*)
          DSONAME="libfltk.so.1"
          DSOCOMMAND="\$(CXX) -Wl,-soname,libfltk.so.1 \$(LDLIBS) -shared $DEBUGFLAG -o"
	  ;;
      IRIX*)
          DSONAME="libfltk.so.1"
          DSOCOMMAND="\$(CXX) -soname libfltk.so.1 \$(LDLIBS) -shared $DEBUGFLAG -o"
	  ;;
      *)
          echo "Warning: shared libraries may not be supported.  Trying -shared"
	  echo "         option with compiler."
          DSONAME="libfltk.so.1"
          DSOCOMMAND="\$(CXX) -Wl,-soname,libfltk.so.1 \$(LDLIBS) -shared $DEBUGFLAG -o"
	  ;;
  esac
fi])

AC_PROG_CC
AC_PROG_CXX
dnl# AC_PROG_INSTALL

AC_C_BIGENDIAN

AC_CHECK_SIZEOF(short, 2)
AC_CHECK_SIZEOF(int, 4)
AC_CHECK_SIZEOF(long, 4)
if test $ac_cv_sizeof_short -eq 2; then
    AC_DEFINE(U16,unsigned short)
fi
if test $ac_cv_sizeof_int -eq 4; then
    AC_DEFINE(U32,unsigned)
else
    if test $ac_cv_sizeof_long -eq 4; then
        AC_DEFINE(U32,unsigned long)
    fi
fi
if test $ac_cv_sizeof_int -eq 8; then
    AC_DEFINE(U64,unsigned)
else
    if test $ac_cv_sizeof_long -eq 8; then
        AC_DEFINE(U64,unsigned long)
    fi
fi

AC_HEADER_DIRENT
AC_CHECK_HEADER(sys/select.h)
AC_CHECK_FUNC(scandir,
    if test "$uname" = "SunOS"; then
	echo Not using Solaris scandir BSD emulation function.
    else
        AC_DEFINE(HAVE_SCANDIR)
    fi)
AC_CHECK_FUNC(vsnprintf,
    if test "$uname" = "HP-UX" -a "$uversion" = "1020"; then
	echo Not using built-in vsnprintf function because you are running HP-UX 10.20.
    else
        AC_DEFINE(HAVE_VSNPRINTF)
    fi)
AC_CHECK_FUNC(snprintf,
    if test "$uname" = "HP-UX" -a "$uversion" = "1020"; then
	echo Not using built-in snprintf function because you are running HP-UX 10.20.
    else
        AC_DEFINE(HAVE_SNPRINTF)
    fi)
AC_CHECK_FUNCS(vsprintf)

AC_PATH_XTRA
echo "Ignoring libraries \"$X_PRE_LIBS\" requested by configure."
dnl# LIBS="$LIBS$X_LIBS$X_PRE_LIBS"
LIBS="$LIBS$X_LIBS"
CFLAGS="$CFLAGS $X_CFLAGS"
CPPFLAGS="$CPPFLAGS $X_CFLAGS"

dnl# My test to see if OpenGL is on this machine:
GLLIB=
AC_CHECK_LIB(GL, glXMakeCurrent, AC_DEFINE(HAVE_GL) GLLIB=" -lGLU -lGL", \
    AC_CHECK_LIB(MesaGL,glXMakeCurrent, AC_DEFINE(HAVE_GL) GLLIB=" -lMesaGLU -lMesaGL",,\
	-lX11 -lXext $X_EXTRA_LIBS -lm), \
    -lX11 -lXext $X_EXTRA_LIBS -lm)
AC_SUBST(GLLIB)

AC_CHECK_HEADER(X11/extensions/Xdbe.h, \
    if test "$uname" != "SunOS"; then
        AC_DEFINE(HAVE_XDBE)
    fi)

AC_CACHE_CHECK("for X overlay visuals", ac_cv_have_overlay,
    if xprop -root 2>/dev/null | grep -c "SERVER_OVERLAY_VISUALS" >/dev/null; then
        ac_cv_have_overlay=yes
    else
        ac_cv_have_overlay=no
    fi)
if test "$ac_cv_have_overlay" = yes; then
    AC_DEFINE(HAVE_OVERLAY)
fi

MAKEDEPEND="\$(CXX) -M"

dnl# add warnings to compiler switches:
dnl# do this last so messing with switches does not break tests
if test -n "$GXX"; then
    CFLAGS="-Wall $CFLAGS"
    CXXFLAGS="-Wall -Wno-return-type $CXXFLAGS"
    if test -z "$DEBUGFLAG"; then
        CFLAGS="-O2 $CFLAGS"
        CXXFLAGS="-O2 $CXXFLAGS"
    fi
    if test $PICFLAG = 1; then
    	CFLAGS="-fPIC $CFLAGS"
    	CXXFLAGS="-fPIC $CXXFLAGS"
    fi
else
    case `(uname) 2>/dev/null` in
        IRIX*)
	    # Running some flavor of IRIX; see which version and
	    # set things up according...
	    if test "$uversion" -ge 62; then
	        # We are running IRIX 6.2 or higher; uncomment the following
		# lines if you don't have IDO 7.2 or higher:
		#
		#     CXX="CC -n32"
		#     CC="cc -n32"
		#     LD="ld -n32"
		#     MAKEDEPEND="CC -M"

		echo "FOR BEST RESULTS BEFORE COMPILING: setenv SGI_ABI -n32"
        	# -woff 3322 is necessary due to errors in Xlib headers on IRIX
        	CFLAGS="-fullwarn $CFLAGS"
        	CXXFLAGS="-fullwarn -woff 1685,3322 $CXXFLAGS"
	    else
        	CXXFLAGS="+w +pp $CXXFLAGS"
	    fi
	    if test -z "$DEBUGFLAG"; then
        	CFLAGS="-O2 $CFLAGS"
        	CXXFLAGS="-O2 $CXXFLAGS"
	    fi
	    ;;
	HP-UX*)
	    # Running HP-UX; these options should work for the HP compilers.
	    if test -z "$DEBUGFLAG"; then
		CFLAGS="+O2 $CFLAGS"
		CXXFLAGS="+O2 +W336,501,736,740,749,829 $CXXFLAGS"
	    fi
	    ;;
	SunOS*)
	    # Solaris
	    if test -z "$DEBUGFLAG"; then
		CFLAGS="-O"
		CXXFLAGS="-O"
	    fi
	    if test $PICFLAG = 1; then
		CFLAGS="-KPIC $CFLAGS"
		CXXFLAGS="-PIC $CXXFLAGS"
	    fi
	    ;;
	*)
	    # Running some other operating system; inform the user they
	    # should contribute the necessary options to fltk-bugs@easysw.com...
	    echo "Building FLTK with default compiler optimizations; contact"
	    echo "fltk-bugs@easysw.com with uname and compiler options needed"
	    echo "for your platform, or set the CFLAGS and CXXFLAGS options"
	    echo "before running configure."
	    ;;
    esac
fi

CFLAGS="$DEBUGFLAG $CFLAGS"
CXXFLAGS="$DEBUGFLAG $CXXFLAGS"

AC_SUBST(DSONAME)
AC_SUBST(DSOCOMMAND)
AC_SUBST(LIBNAME)
AC_SUBST(LIBCOMMAND)
AC_SUBST(MAKEDEPEND)
AC_CONFIG_HEADER(config.h:configh.in)
AC_OUTPUT(makeinclude)

dnl#
dnl# End of "$Id: configure.in,v 1.33.2.6 1999/10/19 04:50:32 bill Exp $".
dnl#
