23bb059065
Fixed library include order when building DSOs on MacOS X (STR #596) fl_xid() could cause a WIN32 application to crash (STR #560, STR #576, STR #618) Fl_Browser::remove_() removed the item from the list before computing the item height, which caused problems with some programs (STR #613) git-svn-id: file:///fltk/svn/fltk/branches/branch-1.1@3897 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
916 lines
24 KiB
Bash
916 lines
24 KiB
Bash
dnl -*- sh -*-
|
|
dnl the "configure" script is made from this by running GNU "autoconf"
|
|
dnl
|
|
dnl "$Id: configure.in,v 1.33.2.31.2.121 2004/11/20 03:19:57 easysw Exp $"
|
|
dnl
|
|
dnl Configuration script for the Fast Light Tool Kit (FLTK).
|
|
dnl
|
|
dnl Copyright 1998-2004 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@fltk.org".
|
|
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=6
|
|
FL_RELEASE_VERSION=
|
|
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_RELEASE_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...
|
|
CFLAGS="${CFLAGS:=}"
|
|
CPPFLAGS="${CPPFLAGS:=}"
|
|
CXXFLAGS="${CXXFLAGS:=}"
|
|
OPTIM="${OPTIM:=}"
|
|
|
|
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
|
|
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="-lfltk"
|
|
LINKFLTKGL="-lfltk_gl"
|
|
LINKFLTKIMG="-lfltk_images"
|
|
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(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*)
|
|
AC_MSG_WARN(Shared libraries are not supported under CygWin.)
|
|
;;
|
|
*)
|
|
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="-L../lib -lfltk_images -lfltk_forms -lfltk"
|
|
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])
|
|
|
|
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)
|
|
|
|
dnl FLTK library uses math library functions...
|
|
AC_SEARCH_LIBS(pow, m)
|
|
|
|
dnl Check for image libraries...
|
|
SAVELIBS="$LIBS"
|
|
IMAGELIBS=""
|
|
|
|
AC_SUBST(IMAGELIBS)
|
|
|
|
AC_ARG_ENABLE(localjpeg, [ --enable-localjpeg use local JPEG library, default=auto],
|
|
[if eval "test x$enable_localjpeg = xyes"; then
|
|
ac_cv_lib_jpeg_jpeg_CreateCompress=no
|
|
fi])
|
|
|
|
AC_CHECK_LIB(jpeg,jpeg_CreateCompress,
|
|
JPEGINC=""
|
|
JPEG=""
|
|
IMAGELIBS="-ljpeg $IMAGELIBS",
|
|
JPEGINC="-I../jpeg"
|
|
JPEG="jpeg"
|
|
IMAGELIBS="-lfltk_jpeg $IMAGELIBS")
|
|
|
|
AC_ARG_ENABLE(localzlib, [ --enable-localzlib use local ZLIB library, default=auto],
|
|
[if eval "test x$enable_localzlib = xyes"; then
|
|
ac_cv_lib_z_gzgets=no
|
|
fi])
|
|
|
|
AC_CHECK_LIB(z,gzgets,
|
|
ZLIBINC=""
|
|
ZLIB=""
|
|
LIBS="-lz $LIBS"
|
|
IMAGELIBS="-lz $IMAGELIBS",
|
|
ZLIBINC="-I../zlib"
|
|
ZLIB="zlib"
|
|
LIBS="-lfltk_z $LIBS"
|
|
IMAGELIBS="-lfltk_z $IMAGELIBS")
|
|
|
|
AC_ARG_ENABLE(localpng, [ --enable-localpng use local PNG library, default=auto],
|
|
[if eval "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_CHECK_HEADER(png.h, AC_DEFINE(HAVE_PNG_H))],[
|
|
AC_DEFINE(HAVE_PNG_H)
|
|
PNGINC="-I../png"
|
|
PNG="png"
|
|
IMAGELIBS="-lfltk_png $IMAGELIBS"])
|
|
|
|
AC_SUBST(JPEG)
|
|
AC_SUBST(JPEGINC)
|
|
AC_SUBST(PNG)
|
|
AC_SUBST(PNGINC)
|
|
AC_SUBST(ZLIB)
|
|
AC_SUBST(ZLIBINC)
|
|
|
|
AC_DEFINE(HAVE_LIBJPEG)
|
|
AC_DEFINE(HAVE_LIBPNG)
|
|
AC_DEFINE(HAVE_LIBZ)
|
|
|
|
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])
|
|
|
|
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$have_pthread = xyes; then
|
|
AC_DEFINE(HAVE_PTHREAD)
|
|
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"
|
|
;;
|
|
|
|
*)
|
|
# 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 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_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 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
|
|
;;
|
|
esac
|
|
|
|
AC_SUBST(GLDEMOS)
|
|
AC_SUBST(GLLIB)
|
|
AC_SUBST(HLINKS)
|
|
AC_SUBST(POSTBUILD)
|
|
AC_SUBST(THREADS)
|
|
|
|
dnl Figure out the appropriate formatted man page extension...
|
|
case "$uname" in
|
|
*BSD* | Darwin*)
|
|
# *BSD
|
|
CAT1EXT=0
|
|
CAT3EXT=0
|
|
;;
|
|
IRIX*)
|
|
# SGI IRIX
|
|
CAT1EXT=z
|
|
CAT3EXT=z
|
|
;;
|
|
*)
|
|
# All others
|
|
CAT1EXT=1
|
|
CAT3EXT=3
|
|
;;
|
|
esac
|
|
|
|
AC_SUBST(CAT1EXT)
|
|
AC_SUBST(CAT3EXT)
|
|
|
|
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
|
|
# Starting with GCC 3.0, you must link C++ programs against either
|
|
# libstdc++ (shared by default), or libsupc++ (always static). If
|
|
# you care about binary portability between Linux distributions,
|
|
# you need to either 1) build your own GCC with static C++ libraries
|
|
# or 2) link using gcc and libsupc++. We choose the latter since
|
|
# CUPS doesn't (currently) use any of the stdc++ library.
|
|
#
|
|
# Also, GCC 3.0.x still has problems compiling some code. You may
|
|
# or may not have success with it. USE 3.0.x WITH EXTREME CAUTION!
|
|
#
|
|
# Previous versions of GCC do not have the reliance on the stdc++
|
|
# or g++ libraries, so the extra supc++ library is not needed.
|
|
|
|
AC_MSG_CHECKING(if libsupc++ is required)
|
|
|
|
SUPC="`$CXX -print-file-name=libsupc++.a 2>/dev/null`"
|
|
case "$SUPC" in
|
|
libsupc++.a*)
|
|
# Library not found, so this is and older GCC...
|
|
AC_MSG_RESULT(no)
|
|
;;
|
|
*)
|
|
# This is gcc 3.x, and it knows of libsupc++, so we need it
|
|
LIBS="$LIBS -lsupc++"
|
|
AC_MSG_RESULT(yes)
|
|
;;
|
|
esac
|
|
|
|
CXX="$CC"
|
|
|
|
# Show all standard warnings + unused variables, conversion errors,
|
|
# and inlining problems when compiling...
|
|
OPTIM="-Wall -Wunused -Wconversion $OPTIM"
|
|
|
|
# The following additional warnings are useful for tracking down problems...
|
|
#OPTIM="-Wshadow $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.
|
|
#
|
|
# "-O2" 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="-O2 $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 FL/Makefile)
|
|
|
|
dnl Make sure the fltk-config script is executable...
|
|
chmod +x fltk-config
|
|
|
|
dnl
|
|
dnl End of "$Id: configure.in,v 1.33.2.31.2.121 2004/11/20 03:19:57 easysw Exp $".
|
|
dnl
|