fltk/configure.in
Michael R Sweet d9eecaf4ab Fix problems with new FLUID output, add common to closing braces to show
what widget is being closed, and bump the version number to 1.1.8 in the
repo...


git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@5271 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
2006-07-27 19:26:11 +00:00

1020 lines
27 KiB
Bash

dnl -*- sh -*-
dnl the "configure" script is made from this by running GNU "autoconf"
dnl
dnl "$Id$"
dnl
dnl Configuration script for the Fast Light Tool Kit (FLTK).
dnl
dnl Copyright 1998-2006 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 on the following page:
dnl
dnl http://www.fltk.org/str.php
dnl
dnl We need at least autoconf 2.13...
AC_PREREQ(2.13)
dnl Required file in package...
AC_INIT(src/Fl.cxx)
dnl FLTK library versions...
FL_MAJOR_VERSION=1
FL_MINOR_VERSION=1
FL_PATCH_VERSION=8
FL_API_VERSION=${FL_MAJOR_VERSION}.${FL_MINOR_VERSION}
AC_SUBST(FL_MAJOR_VERSION)
AC_SUBST(FL_MINOR_VERSION)
AC_SUBST(FL_PATCH_VERSION)
AC_SUBST(FL_API_VERSION)
dnl Get the operating system and version number...
uname=`uname`
uversion=`uname -r | sed -e '1,$s/[[^0-9]]//g'`
if test "x$uname" = xIRIX64; then
uname="IRIX"
fi
if test "x$uname" = x; then
# MingW doesn't provide any output when uname is run, even with "-s"...
uname="CYGWIN"
fi
dnl Don't automatically add "-g" to compiler options...
ARCHFLAGS="${ARCHFLAGS:=}"
CFLAGS="${CFLAGS:=}"
CPPFLAGS="${CPPFLAGS:=}"
CXXFLAGS="${CXXFLAGS:=}"
OPTIM="${OPTIM:=}"
AC_SUBST(ARCHFLAGS)
AC_SUBST(OPTIM)
dnl OS-specific pre-tests...
case $uname in
CYGWIN* | MINGW*)
# Handle Cygwin option *first*, before all other tests.
AC_ARG_ENABLE(cygwin, [ --enable-cygwin use the CygWin libraries [default=no]])
if test x$enable_cygwin != xyes; then
# NOTE: We can't use ARCHFLAGS for this, since it does not work
# with some of the function tests - Cygwin uses a
# different C library...
CFLAGS="$CFLAGS -mno-cygwin"
CPPFLAGS="$CPPFLAGS -mno-cygwin"
CXXFLAGS="$CXXFLAGS -mno-cygwin"
LDFLAGS="$LDFLAGS -mno-cygwin"
fi
;;
esac
dnl Define the libraries and link options we'll need.
LINKFLTK="../lib/libfltk.a"
LINKFLTKFORMS="../lib/libfltk_forms.a"
LINKFLTKGL="../lib/libfltk_gl.a"
LINKFLTKIMG="../lib/libfltk_images.a"
GLDEMOS="gldemos"
LIBEXT=".a"
LIBNAME="../lib/libfltk.a"
FLLIBNAME="../lib/libfltk_forms.a"
GLLIBNAME="../lib/libfltk_gl.a"
IMGLIBNAME="../lib/libfltk_images.a"
AC_SUBST(FLLIBNAME)
AC_SUBST(GLDEMOS)
AC_SUBST(GLLIBNAME)
AC_SUBST(IMGLIBNAME)
AC_SUBST(LIBEXT)
AC_SUBST(LIBNAME)
AC_SUBST(LINKFLTK)
AC_SUBST(LINKFLTKFORMS)
AC_SUBST(LINKFLTKGL)
AC_SUBST(LINKFLTKIMG)
dnl Handle compile-time options...
AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]])
if test x$enable_debug = xyes; then
DEBUGFLAG="-g "
else
DEBUGFLAG=""
fi
AC_ARG_ENABLE(gl, [ --enable-gl turn on OpenGL support [default=yes]])
AC_ARG_ENABLE(shared, [ --enable-shared turn on shared libraries [default=no]])
if test x$enable_shared = xyes; then
PICFLAG=1
SHAREDSUFFIX=""
FLUID="fluid-shared"
case $uname in
Darwin*)
DSONAME="libfltk.$FL_API_VERSION.dylib"
FLDSONAME="libfltk_forms.$FL_API_VERSION.dylib"
GLDSONAME="libfltk_gl.$FL_API_VERSION.dylib"
IMGDSONAME="libfltk_images.$FL_API_VERSION.dylib"
DSOCOMMAND="\$(CC) $DSOFLAGS -dynamiclib -lc -o"
;;
SunOS* | UNIX_S*)
DSONAME="libfltk.so.$FL_API_VERSION"
FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
DSOCOMMAND="\$(CXX) -h \$@ \$(LDLIBS) -G $DEBUGFLAG -o"
if test "x$libdir" != "x/usr/lib"; then
DSOLINK="-R$libdir"
fi
;;
HP-UX*)
DSONAME="libfltk.sl.$FL_API_VERSION"
FLDSONAME="libfltk_forms.sl.$FL_API_VERSION"
GLDSONAME="libfltk_gl.sl.$FL_API_VERSION"
IMGDSONAME="libfltk_images.sl.$FL_API_VERSION"
DSOCOMMAND="ld -b -z +h \$@ $DEBUGFLAG -o"
if test "x$libdir" != "x/usr/lib"; then
DSOLINK="-Wl,-rpath,$libdir"
fi
;;
IRIX*)
DSONAME="libfltk.so.$FL_API_VERSION"
FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
DSOCOMMAND="\$(CXX) -Wl,-soname,\$@,-set_version,sgi1.1 \$(LDLIBS) -shared $DEBUGFLAG -o"
if test "x$libdir" != "x/usr/lib" -a "x$libdir" != "x/usr/lib32" -a "x$libdir" != "x/usr/lib64"; then
DSOLINK="-Wl,-rpath,$libdir"
fi
;;
OSF1*)
DSONAME="libfltk.so.$FL_API_VERSION"
FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
DSOCOMMAND="\$(CXX) -Wl,-soname,\$@ \$(LDLIBS) -shared $DEBUGFLAG -o"
if test "x$libdir" != "x/usr/lib" -a "x$libdir" != "x/usr/lib32"; then
DSOLINK="-Wl,-rpath,$libdir"
fi
;;
Linux* | *BSD*)
DSONAME="libfltk.so.$FL_API_VERSION"
FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
DSOCOMMAND="\$(CXX) -Wl,-soname,\$@ \$(LDLIBS) -shared -fPIC $DEBUGFLAG -o"
if test "x$libdir" != "x/usr/lib"; then
DSOLINK="-Wl,-rpath,$libdir"
fi
;;
AIX*)
DSONAME="libfltk_s.a"
FLDSONAME="libfltk_forms_s.a"
GLDSONAME="libfltk_gl_s.a"
IMGDSONAME="libfltk_images_s.a"
DSOCOMMAND="\$(CXX) -Wl,-bexpall,-bM:SRE,-bnoentry -o"
SHAREDSUFFIX="_s"
;;
CYGWIN* | MINGW*)
PICFLAG=0
if test x$enable_cygwin != xyes; then
DSONAME="mgwfltknox-$FL_API_VERSION.dll"
FLDSONAME="mgwfltknox_forms-$FL_API_VERSION.dll"
GLDSONAME="mgwfltknox_gl-$FL_API_VERSION.dll"
IMGDSONAME="mgwfltknox_images-$FL_API_VERSION.dll"
else
DSONAME="cygfltknox-$FL_API_VERSION.dll"
FLDSONAME="cygfltknox_forms-$FL_API_VERSION.dll"
GLDSONAME="cygfltknox_gl-$FL_API_VERSION.dll"
IMGDSONAME="cygfltknox_images-$FL_API_VERSION.dll"
fi
DSOCOMMAND="\$(CXX) -shared -Wl,--whole-archive -Wl,--export-all-symbols -Wl,--enable-auto-import -o \$@"
;;
*)
AC_MSG_WARN(Shared libraries may not be supported. Trying -shared option with compiler.)
DSONAME="libfltk.so.$FL_API_VERSION"
FLDSONAME="libfltk_forms.so.$FL_API_VERSION"
GLDSONAME="libfltk_gl.so.$FL_API_VERSION"
IMGDSONAME="libfltk_images.so.$FL_API_VERSION"
DSOCOMMAND="\$(CXX) -Wl,-soname,\$@ \$(LDLIBS) -shared $DEBUGFLAG -o"
;;
esac
LINKSHARED="-L../src -lfltk_images$SHAREDSUFFIX -lfltk_forms$SHAREDSUFFIX -lfltk$SHAREDSUFFIX"
else
DSOCOMMAND="echo"
DSOLINK=""
DSONAME=""
FLDSONAME=""
GLDSONAME=""
IMGDSONAME=""
PICFLAG=0
SHAREDSUFFIX=""
FLUID="fluid"
LINKSHARED="../lib/libfltk_images.a ../lib/libfltk_forms.a ../lib/libfltk.a"
fi
AC_SUBST(DSOCOMMAND)
AC_SUBST(DSOLINK)
AC_SUBST(DSONAME)
AC_SUBST(FLDSONAME)
AC_SUBST(GLDSONAME)
AC_SUBST(IMGDSONAME)
AC_SUBST(SHAREDSUFFIX)
AC_SUBST(LINKSHARED)
AC_SUBST(FLUID)
AC_ARG_ENABLE(threads, [ --enable-threads enable multi-threading support])
AC_ARG_WITH(optim, [ --with-optim="flags" use custom optimization flags])
AC_ARG_WITH(archflags, [ --with-archflags="flags"
use custom architecture flags],
ARCHFLAGS="$withval")
case $uname in
Darwin*)
AC_ARG_ENABLE(quartz, [ --enable-quartz use Quartz instead of Quickdraw (default=no)])
if test "x$enable_quartz" = "xyes"; then
AC_DEFINE(USE_QUARTZ, 1)
AC_DEFINE(__APPLE_QUARTZ__)
else
AC_DEFINE(__APPLE_QD__)
fi
;;
esac
dnl Find commands...
AC_PROG_CC
AC_PROG_CXX
dnl AC_PROG_INSTALL
AC_PATH_PROG(NROFF,nroff)
if test "x$NROFF" = "x:"; then
AC_PATH_PROG(GROFF,groff)
if test "x$GROFF" = "x:"; then
NROFF="echo"
else
NROFF="$GROFF -T ascii"
fi
fi
AC_PATH_PROG(HTMLDOC,htmldoc)
dnl How do we make libraries?
AC_PROG_RANLIB
AC_PATH_PROG(AR, ar)
if test "x$AR" = "x:"; then
AC_MSG_ERROR(Configure could not find the library archiver, aborting.)
fi
if test "x$RANLIB" != "x:"; then
LIBCOMMAND="$AR cr"
else
LIBCOMMAND="$AR crs"
fi
AC_SUBST(LIBCOMMAND)
dnl Architecture checks...
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
dnl Does the C++ compiler support the bool type?
AC_CACHE_CHECK(whether the compiler recognizes bool as a built-in type,
ac_cv_cxx_bool,[
AC_LANG_SAVE
AC_LANG_CPLUSPLUS
AC_TRY_COMPILE([
int f(int x){return 1;}
int f(char x){return 1;}
int f(bool x){return 1;}
],[
bool b = true;
return f(b);
], ac_cv_cxx_bool=yes, ac_cv_cxx_bool=no)
AC_LANG_RESTORE
])
if test "$ac_cv_cxx_bool" != yes; then
CXXFLAGS="-Dbool=char -Dfalse=0 -Dtrue=1 $CXXFLAGS"
fi
dnl Standard headers and functions...
AC_HEADER_DIRENT
AC_CHECK_HEADER(sys/select.h,AC_DEFINE(HAVE_SYS_SELECT_H))
AC_CHECK_HEADER(sys/stdtypes.h,AC_DEFINE(HAVE_SYS_SELECT_H))
AC_CHECK_FUNC(scandir,
if test "x$uname" = xSunOS -o "x$uname" = xQNX; then
AC_MSG_WARN(Not using $uname scandir emulation function.)
else
AC_DEFINE(HAVE_SCANDIR)
fi)
AC_CHECK_FUNC(vsnprintf,[
case "$uname" in
HP-UX*)
if test "$uversion" = "1020"; then
AC_MSG_WARN(Not using built-in vsnprintf function because you are running HP-UX 10.20.)
else
AC_DEFINE(HAVE_VSNPRINTF)
fi
;;
OSF1*)
if test "$uversion" = "40"; then
AC_MSG_WARN(Not using built-in vsnprintf function because you are running Tru64 4.0.)
else
AC_DEFINE(HAVE_VSNPRINTF)
fi
;;
*)
AC_DEFINE(HAVE_VSNPRINTF)
;;
esac])
AC_CHECK_FUNC(snprintf,[
case "$uname" in
HP-UX*)
if test "$uversion" = "1020"; then
AC_MSG_WARN(Not using built-in snprintf function because you are running HP-UX 10.20.)
else
AC_DEFINE(HAVE_SNPRINTF)
fi
;;
OSF1*)
if test "$uversion" = "40"; then
AC_MSG_WARN(Not using built-in snprintf function because you are running Tru64 4.0.)
else
AC_DEFINE(HAVE_SNPRINTF)
fi
;;
*)
AC_DEFINE(HAVE_SNPRINTF)
;;
esac])
AC_CHECK_HEADER(strings.h, AC_DEFINE(HAVE_STRINGS_H))
AC_CHECK_FUNCS(strcasecmp strlcat strlcpy)
AC_CHECK_HEADER(locale.h, AC_DEFINE(HAVE_LOCALE_H))
AC_CHECK_FUNCS(localeconv)
dnl FLTK library uses math library functions...
AC_SEARCH_LIBS(pow, m)
dnl Check for largefile support...
AC_SYS_LARGEFILE
dnl Define largefile options as needed...
LARGEFILE=""
if test x$enable_largefile = xyes; then
LARGEFILE="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE"
if test $ac_cv_sys_large_files = 1; then
LARGEFILE="$LARGEFILE -D_LARGE_FILES"
fi
if test $ac_cv_sys_file_offset_bits = 64; then
LARGEFILE="$LARGEFILE -D_FILE_OFFSET_BITS=64"
fi
fi
AC_SUBST(LARGEFILE)
dnl Check for "long long" support...
AC_CACHE_CHECK(for long long int, ac_cv_c_long_long,
[if test "$GCC" = yes; then
ac_cv_c_long_long=yes
else
AC_TRY_COMPILE(,[long long int i;],
ac_cv_c_long_long=yes,
ac_cv_c_long_long=no)
fi])
if test $ac_cv_c_long_long = yes; then
AC_DEFINE(HAVE_LONG_LONG)
fi
AC_CHECK_FUNC(strtoll, AC_DEFINE(HAVE_STRTOLL))
dnl Check for audio libraries...
AUDIOLIBS=""
case $uname in
CYGWIN* | MINGW*)
dnl Cygwin environment...
AUDIOLIBS="-lwinmm"
;;
Darwin*)
AUDIOLIBS="-framework CoreAudio"
;;
*)
AC_CHECK_HEADER(alsa/asoundlib.h,
AC_DEFINE(HAVE_ALSA_ASOUNDLIB_H)
AUDIOLIBS="-lasound")
;;
esac
AC_SUBST(AUDIOLIBS)
dnl Check for image libraries...
SAVELIBS="$LIBS"
IMAGELIBS=""
AC_SUBST(IMAGELIBS)
AC_ARG_ENABLE(localjpeg, [ --enable-localjpeg use local JPEG library, default=auto],
[if test x$enable_localjpeg = xyes; then
ac_cv_lib_jpeg_jpeg_CreateCompress=no
fi])
AC_CHECK_LIB(jpeg,jpeg_CreateCompress,
AC_DEFINE(HAVE_LIBJPEG)
JPEGINC=""
JPEG=""
IMAGELIBS="-ljpeg $IMAGELIBS",
if test x$enable_localjpeg = xno; then
JPEGINC=""
JPEG=""
else
AC_DEFINE(HAVE_LIBJPEG)
JPEGINC="-I../jpeg"
JPEG="jpeg"
IMAGELIBS="-lfltk_jpeg $IMAGELIBS"
fi)
AC_ARG_ENABLE(localzlib, [ --enable-localzlib use local ZLIB library, default=auto],
[if test x$enable_localzlib = xyes; then
ac_cv_lib_z_gzgets=no
fi])
AC_CHECK_LIB(z,gzgets,
AC_DEFINE(HAVE_LIBZ)
ZLIBINC=""
ZLIB=""
LIBS="-lz $LIBS"
IMAGELIBS="-lz $IMAGELIBS",
if test x$enable_localzlib = xno; then
ZLIBINC=""
ZLIB=""
else
AC_DEFINE(HAVE_LIBZ)
ZLIBINC="-I../zlib"
ZLIB="zlib"
LIBS="-lfltk_z $LIBS"
IMAGELIBS="-lfltk_z $IMAGELIBS"
fi)
AC_ARG_ENABLE(localpng, [ --enable-localpng use local PNG library, default=auto],
[if test x$enable_localpng = xyes; then
ac_cv_lib_png_png_set_tRNS_to_alpha=no
fi])
AC_CHECK_LIB(png,png_set_tRNS_to_alpha, [
PNGINC=""
PNG=""
IMAGELIBS="-lpng $IMAGELIBS"
AC_DEFINE(HAVE_LIBPNG)
AC_CHECK_HEADER(png.h, AC_DEFINE(HAVE_PNG_H))],[
if test x$enable_localpng = xno; then
PNGINC=""
PNG=""
else
AC_DEFINE(HAVE_LIBPNG)
AC_DEFINE(HAVE_PNG_H)
PNGINC="-I../png"
PNG="png"
IMAGELIBS="-lfltk_png $IMAGELIBS"
fi])
AC_SUBST(JPEG)
AC_SUBST(JPEGINC)
AC_SUBST(PNG)
AC_SUBST(PNGINC)
AC_SUBST(ZLIB)
AC_SUBST(ZLIBINC)
dnl Restore original LIBS settings...
LIBS="$SAVELIBS"
dnl See if we need a .exe extension on executables...
AC_EXEEXT
dnl Check for pthreads for multi-threaded apps...
have_pthread=no
if test "x$enable_threads" = xyes; then
AC_CHECK_HEADER(pthread.h, AC_DEFINE(HAVE_PTHREAD_H))
AC_CHECK_LIB(pthread, pthread_create)
if test "x$ac_cv_lib_pthread_pthread_create" = xyes -a x$ac_cv_header_pthread_h = xyes; then
have_pthread=yes
else
dnl *BSD uses -pthread option...
AC_MSG_CHECKING([for pthread_create using -pthread])
SAVELIBS="$LIBS"
LIBS="-pthread $LIBS"
AC_TRY_LINK([#include <pthread.h>],
[pthread_create(0, 0, 0, 0);],
LIBS="-pthread $SAVELIBS"
have_pthread=yes,
LIBS="$SAVELIBS")
AC_MSG_RESULT([$have_pthread])
fi
fi
dnl Define OS-specific stuff...
HLINKS=
POSTBUILD=:
THREADS=
AC_ARG_WITH(links, [ --with-links make header links for common misspellings])
INSTALL_DESKTOP=""
UNINSTALL_DESKTOP=""
case $uname in
CYGWIN* | MINGW*)
dnl Cygwin environment...
CFLAGS="-mwindows -DWIN32 $CFLAGS"
CXXFLAGS="-mwindows -DWIN32 $CXXFLAGS"
LDFLAGS="-mwindows $LDFLAGS"
LIBS="$LIBS -lole32 -luuid -lcomctl32 -lwsock32"
OPTIM="$OPTIM"
if test x$enable_gl != xno; then
AC_CHECK_HEADER(GL/gl.h,
AC_DEFINE(HAVE_GL)
GLLIB="-lopengl32")
AC_CHECK_HEADER(GL/glu.h,
AC_DEFINE(HAVE_GL_GLU_H)
GLLIB="-lglu32 $GLLIB")
else
LINKFLTKGL=""
GLLIBNAME=""
GLDSONAME=""
GLDEMOS=""
fi
if test "x$enable_threads" = xyes; then
if test x$have_pthread = xyes; then
AC_DEFINE(HAVE_PTHREAD)
fi
THREADS="threads.exe"
fi
# Don't make symlinks since Windows is not case sensitive.
if test "x$with_links" != xyes; then
HLINKS="#"
fi
;;
Darwin*)
# MacOS X uses Carbon for graphics...
LIBS="$LIBS -framework Carbon -framework ApplicationServices"
if test x$have_pthread = xyes; then
AC_DEFINE(HAVE_PTHREAD)
THREADS="threads"
fi
if test x$enable_gl != xno; then
AC_DEFINE(HAVE_GL)
AC_DEFINE(HAVE_GL_GLU_H)
GLLIB="-framework AGL -framework OpenGL"
else
LINKFLTKGL=""
GLLIBNAME=""
GLDSONAME=""
GLDEMOS=""
fi
# Don't make symlinks because HFS+ is not case sensitive...
if test "x$with_links" != xyes; then
HLINKS="#"
fi
# Add a postbuild step after linking applications
POSTBUILD="/Developer/Tools/Rez -t APPL -o"
# Install/Uninstall FLUID application
INSTALL_DESKTOP="install-osx"
UNINSTALL_DESKTOP="uninstall-osx"
;;
*)
# All others are UNIX/X11...
if test x$have_pthread = xyes; then
AC_DEFINE(HAVE_PTHREAD)
THREADS="threads"
fi
dnl Check for X11...
AC_PATH_XTRA
if test x$no_x = xyes; then
AC_MSG_ERROR(Configure could not find required X11 libraries, aborting.)
fi
if test "x$X_PRE_LIBS" != x; then
AC_MSG_WARN(Ignoring libraries \"$X_PRE_LIBS\" requested by configure.)
fi
LIBS="$LIBS -lXext -lX11 $X_EXTRA_LIBS"
CFLAGS="$CFLAGS $X_CFLAGS"
CXXFLAGS="$CXXFLAGS $X_CFLAGS"
LDFLAGS="$X_LIBS $LDFLAGS"
if test "x$x_includes" != x; then
ac_cpp="$ac_cpp -I$x_includes"
fi
dnl Check for OpenGL unless disabled...
GLLIB=
if test x$enable_gl != xno; then
AC_SEARCH_LIBS(dlopen, dl)
AC_CHECK_HEADER(GL/gl.h,
AC_CHECK_LIB(GL, glXMakeCurrent, AC_DEFINE(HAVE_GL) GLLIB="-lGL", \
AC_CHECK_LIB(MesaGL,glXMakeCurrent, AC_DEFINE(HAVE_GL) GLLIB=" -lMesaGL",,\
-lm), \
-lm)
)
AC_CHECK_HEADER(GL/glu.h,
AC_DEFINE(HAVE_GL_GLU_H)
if test x$ac_cv_lib_GL_glXMakeCurrent = xyes; then
GLLIB="-lGLU $GLLIB"
fi
if test x$ac_cv_lib_MesaGL_glXMakeCurrent = xyes; then
GLLIB="-lMesaGLU $GLLIB"
fi
)
if test x$ac_cv_lib_GL_glXMakeCurrent != xyes -a x$ac_cv_lib_MesaGL_glXMakeCurrent != xyes; then
LINKFLTKGL=""
GLLIBNAME=""
GLDSONAME=""
GLDEMOS=""
fi
else
LINKFLTKGL=""
GLLIBNAME=""
GLDSONAME=""
GLDEMOS=""
fi
dnl Check for Xinerama support unless disabled...
AC_ARG_ENABLE(xinerama, [ --enable-xinerama turn on Xinerama support [default=no]])
if test x$enable_xinerama = xyes; then
AC_CHECK_LIB(Xinerama,XineramaIsActive,
AC_DEFINE(HAVE_XINERAMA)
LIBS="-lXinerama $LIBS")
fi
dnl Check for the Xft library unless disabled...
AC_ARG_ENABLE(xft, [ --enable-xft turn on Xft support [default=no]])
if test x$enable_xft = xyes; then
AC_PATH_PROG(FTCONFIG,freetype-config)
if test "x$FTCONFIG" != x; then
CPPFLAGS="`$FTCONFIG --cflags` $CPPFLAGS"
CXXFLAGS="`$FTCONFIG --cflags` $CXXFLAGS"
AC_CHECK_HEADER(X11/Xft/Xft.h,
AC_CHECK_LIB(Xft, XftDrawCreate,
AC_DEFINE(USE_XFT)
LIBS="-lXft $LIBS"))
fi
fi
dnl Check for the Xdbe extension unless disabled...
AC_ARG_ENABLE(xdbe, [ --enable-xdbe turn on Xdbe support [default=no]])
if test x$enable_xdbe = xyes; then
AC_CHECK_HEADER(X11/extensions/Xdbe.h, AC_DEFINE(HAVE_XDBE),,
[#include <X11/Xlib.h>])
fi
dnl Check for overlay visuals...
AC_PATH_PROG(XPROP, xprop)
AC_CACHE_CHECK(for X overlay visuals, ac_cv_have_overlay,
if test "x$XPROP" != x; then
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
else
ac_cv_have_overlay=no
fi)
if test x$ac_cv_have_overlay = xyes; then
AC_DEFINE(HAVE_OVERLAY)
fi
# Make symlinks since UNIX/Linux is case sensitive.
if test "x$with_links" = xno; then
HLINKS="#"
fi
# Install/Uninstall FLUID application support files
INSTALL_DESKTOP="install-linux"
UNINSTALL_DESKTOP="uninstall-linux"
;;
esac
AC_SUBST(GLDEMOS)
AC_SUBST(GLLIB)
AC_SUBST(HLINKS)
AC_SUBST(POSTBUILD)
AC_SUBST(THREADS)
AC_SUBST(INSTALL_DESKTOP)
AC_SUBST(UNINSTALL_DESKTOP)
dnl Figure out the appropriate formatted man page extension...
case "$uname" in
*BSD* | Darwin*)
# *BSD
CAT1EXT=0
CAT3EXT=0
CAT6EXT=0
;;
IRIX*)
# SGI IRIX
CAT1EXT=z
CAT3EXT=z
CAT6EXT=z
;;
*)
# All others
CAT1EXT=1
CAT3EXT=3
CAT6EXT=3
;;
esac
AC_SUBST(CAT1EXT)
AC_SUBST(CAT3EXT)
AC_SUBST(CAT6EXT)
dnl Fix "mandir" variable...
if test "$mandir" = "\${prefix}/man" -a "$prefix" = "/usr"; then
case "$uname" in
*BSD* | Darwin* | Linux*)
# *BSD, Darwin, and Linux
mandir="\${prefix}/share/man"
;;
IRIX*)
# SGI IRIX
mandir="\${prefix}/share/catman"
;;
esac
fi
dnl Fix "libdir" variable...
if test "$prefix" = NONE; then
prefix=/usr/local
fi
if test "$exec_prefix" = NONE; then
exec_prefix="\${prefix}"
fi
if test "$uname" = "IRIX" -a $uversion -ge 62 -a "$libdir" = "\${exec_prefix}/lib" -a "$exec_prefix" = "\${prefix}" -a "$prefix" = "/usr"; then
libdir="/usr/lib32"
fi
dnl Define the command used to update the dependencies (this option
dnl mainly for FLTK core developers - not necessary for users)
MAKEDEPEND="\$(CXX) -M"
AC_SUBST(MAKEDEPEND)
dnl Add warnings to compiler switches:
dnl do this last so messing with switches does not break tests
if test -n "$GCC"; then
# Show all standard warnings + unused variables, conversion errors,
# and inlining problems when compiling...
OPTIM="-Wall -Wunused -Wno-format-y2k $OPTIM"
# The following additional warnings are useful for tracking down problems...
#OPTIM="-Wshadow -Wconversion $OPTIM"
# Set the default compiler optimizations...
if test -z "$DEBUGFLAG"; then
#
# Note: Can't use -fomit-frame-pointer - prevents tools like
# libsafe from working!
#
# Don't use -fforce-mem, -fforce-addr, or -fcaller-saves.
# They all seem to make either no difference or enlarge
# the code by a few hundred bytes.
#
# "-Os" seems to be the best compromise between speed and
# code size. "-O3" and higher seem to make no effective
# difference in the speed of the code, but does bloat the
# library 10+%.
#
if test "x$with_optim" != x; then
OPTIM="$with_optim $OPTIM"
else
OPTIM="-Os $OPTIM"
fi
fi
# Generate position-independent code when needed...
if test $PICFLAG = 1; then
OPTIM="$OPTIM -fPIC"
fi
# See if GCC supports -fno-exceptions...
AC_MSG_CHECKING(if GCC supports -fno-exceptions)
OLDCFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -fno-exceptions"
AC_TRY_COMPILE(,,
OPTIM="$OPTIM -fno-exceptions"
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no))
CFLAGS="$OLDCFLAGS"
# See if we are running Solaris; if so, try the -fpermissive option...
# This option is required on some versions of Solaris to work around
# bugs in the X headers up through Solaris 7.
#
# Unlike the other compiler/optimization settings, this one is placed
# in CFLAGS and CXXFLAGS so that fltk-config will provide the option
# to clients - otherwise client apps will not compile properly...
if test "$uname" = SunOS; then
AC_MSG_CHECKING(if GCC supports -fpermissive)
OLDCFLAGS="$CFLAGS"
CFLAGS="$CFLAGS -fpermissive"
AC_TRY_COMPILE(,,
CXXFLAGS="$CXXFLAGS -fpermissive"
AC_MSG_RESULT(yes),
CFLAGS="$OLDCFLAGS"
AC_MSG_RESULT(no))
fi
else
case "$uname" 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 -mips3"
# CC="cc -n32 -mips3"
# LD="ld -n32 -mips3"
# MAKEDEPEND="CC -M"
if test "x`grep abi=n32 /etc/compiler.defaults`" = x; then
AC_MSG_WARN(FOR BEST RESULTS BEFORE COMPILING: setenv SGI_ABI \"-n32 -mips3\")
fi
OPTIM="-fullwarn $OPTIM"
fi
if test -z "$DEBUGFLAG"; then
if test "x$with_optim" != x; then
OPTIM="$with_optim $OPTIM"
else
OPTIM="-O2 $OPTIM"
if test $uversion -gt 62; then
OPTIM="-OPT:Olimit=4000 $OPTIM"
fi
fi
fi
;;
HP-UX*)
# Running HP-UX; these options should work for the HP compilers.
if test -z "$DEBUGFLAG"; then
if test "x$with_optim" != x; then
OPTIM="$with_optim $OPTIM"
else
OPTIM="+O2 $OPTIM"
fi
fi
if test "x$with_optim" = x; then
OPTIM="$OPTIM +DAportable"
fi
if test $PICFLAG = 1; then
OPTIM="+z $OPTIM"
fi
OPTIM="$OPTIM +W336,501,736,740,749,829"
;;
OSF1*)
# Running Digital/Tru64 UNIX; these options should work for the
# Digital/Compaq/NewHP compilers.
if test -z "$DEBUGFLAG"; then
if test "x$with_optim" != x; then
OPTIM="$with_optim $OPTIM"
else
OPTIM="-O2 $OPTIM"
fi
fi
;;
SunOS*)
# Solaris
if test -z "$DEBUGFLAG"; then
if test "x$with_optim" != x; then
OPTIM="$with_optim $OPTIM"
else
OPTIM="-xO3 $OPTIM"
fi
fi
if test $PICFLAG = 1; then
OPTIM="-KPIC $OPTIM"
fi
;;
AIX*)
if test -z "$DEBUGFLAG"; then
if test "x$with_optim" != x; then
OPTIM="$with_optim $OPTIM"
else
OPTIM="-O2 $OPTIM"
fi
fi
AC_MSG_WARN(The AIX C and C++ compilers are known not to correctly compile the FLTK library.)
;;
*)
# Running some other operating system; inform the user they
# should contribute the necessary options to fltk-bugs@fltk.org...
AC_MSG_WARN(Building FLTK with default compiler optimizations)
AC_MSG_WARN(Contact fltk-bugs@fltk.org with uname and compiler options.)
;;
esac
fi
OPTIM="$DEBUGFLAG $OPTIM"
dnl Define the FLTK documentation directory...
if test x$prefix = xNONE; then
AC_DEFINE_UNQUOTED(FLTK_DOCDIR, "/usr/local/share/doc/fltk")
else
AC_DEFINE_UNQUOTED(FLTK_DOCDIR, "$prefix/share/doc/fltk")
fi
dnl Define the FLTK data directory...
if test x$prefix = xNONE; then
AC_DEFINE_UNQUOTED(FLTK_DATADIR, "/usr/local/share/fltk")
else
AC_DEFINE_UNQUOTED(FLTK_DATADIR, "$prefix/share/fltk")
fi
dnl Write all of the files...
AC_CONFIG_HEADER(config.h:configh.in)
AC_OUTPUT(makeinclude fltk.list fltk-config fltk.spec FL/Makefile)
dnl Make sure the fltk-config script is executable...
chmod +x fltk-config
dnl
dnl End of "$Id$".
dnl