mirror of https://github.com/fltk/fltk.git
FLTK - Fast Light Tool Kit - https://github.com/fltk/fltk - cross platform GUI development
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
962 lines
26 KiB
962 lines
26 KiB
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-2005 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=7 |
|
FL_RELEASE_VERSION=cvs |
|
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="../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]) |
|
|
|
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 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]) |
|
|
|
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 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_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 |
|
|
|
if test x$uname != xDarwin; then |
|
CXX="$CC" |
|
fi |
|
|
|
# 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. |
|
# |
|
# "-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$". |
|
dnl
|
|
|