From 6b278da83ddda46c836e875e31f8716df199eedd Mon Sep 17 00:00:00 2001 From: Albrecht Schlosser Date: Fri, 30 Sep 2016 21:09:59 +0000 Subject: Rename configure.in to configure.ac. git-svn-id: file:///fltk/svn/fltk/branches/branch-1.3-porting@11998 ea41ed52-d2ee-0310-a9c1-e6b18d33e121 --- Makefile | 2 +- configure.ac | 1522 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ configure.in | 1522 ---------------------------------------------------------- 3 files changed, 1523 insertions(+), 1523 deletions(-) create mode 100644 configure.ac delete mode 100644 configure.in diff --git a/Makefile b/Makefile index 892a571c5..720c269af 100644 --- a/Makefile +++ b/Makefile @@ -101,7 +101,7 @@ makeinclude: configure configh.in makeinclude.in config.guess config.sub touch config.h chmod +x fltk-config -configure: configure.in +configure: configure.ac autoconf config.guess config.sub: diff --git a/configure.ac b/configure.ac new file mode 100644 index 000000000..1c7e1deff --- /dev/null +++ b/configure.ac @@ -0,0 +1,1522 @@ +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-2015 by Bill Spitzak and others. +dnl +dnl This library is free software. Distribution and use rights are outlined in +dnl the file "COPYING" which should have been included with this file. If this +dnl file is missing or damaged, see the license at: +dnl +dnl http://www.fltk.org/COPYING.php +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.50... +AC_PREREQ([2.50]) + +dnl Required file in package... +AC_INIT(src/Fl.cxx) + +AC_CANONICAL_HOST + +dnl Do not automatically add "-g" to compiler options... +dnl This must be _before_ "Find compiler commands..." +ARCHFLAGS="${ARCHFLAGS:=}" +CFLAGS="${CFLAGS:=}" +CPPFLAGS="${CPPFLAGS:=}" +CXXFLAGS="${CXXFLAGS:=}" +DSOFLAGS="${DSOFLAGS:=}" +LDFLAGS="${LDFLAGS:=}" +OPTIM="${OPTIM:=}" + +dnl Find compiler commands... +AC_PROG_CC +AC_PROG_CXX + +dnl So --with-archflags option is used during "checking size of long" +case $host_os in + darwin*) + if test "x$with_archflags" != x ; then + CFLAGS="$CFLAGS $with_archflags" + fi + ;; +esac + +dnl FLTK library versions... +FL_MAJOR_VERSION=1 +FL_MINOR_VERSION=4 +FL_PATCH_VERSION=0 +FL_DSO_VERSION=${FL_MAJOR_VERSION}.${FL_MINOR_VERSION} +FL_ABI_VERSION=${FL_MAJOR_VERSION}.${FL_MINOR_VERSION}.0 +FL_VERSION=${FL_MAJOR_VERSION}.${FL_MINOR_VERSION}.${FL_PATCH_VERSION} + +AC_SUBST(FL_MAJOR_VERSION) +AC_SUBST(FL_MINOR_VERSION) +AC_SUBST(FL_PATCH_VERSION) +AC_SUBST(FL_DSO_VERSION) +AC_SUBST(FL_ABI_VERSION) +AC_SUBST(FL_VERSION) + +AC_SUBST(ARCHFLAGS) +AC_SUBST(OPTIM) + +dnl FLTK build options to be used in Makefiles (defined in makeinclude) +BUILD="" + +dnl OS-specific pre-tests... +dnl host_os_gui equals $host_os unless we target Cygwin or Darwin in combination with X11. +host_os_gui=$host_os +case $host_os in + cygwin*) + # Handle Cygwin option *first*, before all other tests. + AC_ARG_ENABLE(cygwin, [ --enable-cygwin use the Cygwin libraries [[default=no]]]) + AC_ARG_ENABLE(x11, [ --enable-x11 with Cygwin or Mac OS, use X11 [[default=no]]]) + if test x$enable_cygwin = xyes; then + # we target Cygwin in combination with X11 + if test x$enable_x11 = xyes; then + host_os_gui="X11$host_os" + fi + fi + ;; + darwin*) + if test x$enable_x11 = xyes; then + host_os_gui="X11" + OPTIM="-U__APPLE__ $OPTIM" + fi + ;; + *) + ;; +esac + +dnl Define the libraries and link options we will 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" +CAIROLIBNAME="../lib/libfltk_cairo.a" + +LIBBASENAME="libfltk.a" +FLLIBBASENAME="libfltk_forms.a" +GLLIBBASENAME="libfltk_gl.a" +IMGLIBBASENAME="libfltk_images.a" +CAIROLIBBASENAME="libfltk_cairo.a" + +dnl Check for Cairo library unless disabled... +CAIRODIR="" +CAIROFLAGS="" +LINKFLTKCAIRO="" +FLTKCAIROOPTION="" +CAIROLIBS="" + +AC_ARG_ENABLE(cairoext,[ --enable-cairoext use fltk code instrumentation for cairo extended use [[default=no]]]) +AC_ARG_ENABLE(cairo, [ --enable-cairo use lib Cairo [[default=no]]]) + +if test x$enable_cairoext = xyes; then + AC_DEFINE(FLTK_USE_CAIRO) + AC_DEFINE(FLTK_HAVE_CAIRO) + dnl FIXME This part should be fixed so configure do not depend on + dnl we do not rely on pkg-config . + CAIRODIR="cairo" + CAIROFLAGS="`pkg-config --cflags cairo`" + CAIROLIBS="-lcairo -lpixman-1" + CXXFLAGS="$CAIROFLAGS $CXXFLAGS" + LINKFLTKCAIRO="../lib/libfltk_cairo.a" + FLTKCAIROOPTION="-L ../cairo -lfltk_cairo$SHAREDSUFFIX" + LIBS="$CAIROLIBS $LIBS" + dnl $LINKFLTKCAIRO + LINKFLTK+=" $LINKFLTKCAIRO" +else + if test x$enable_cairo = xyes; then + AC_DEFINE(FLTK_HAVE_CAIRO) + dnl FIXME This part should be fixed so configure do not depend on + dnl we do not rely on pkg-config . + CAIRODIR="cairo" + CAIROFLAGS="`pkg-config --cflags cairo`" + CAIROLIBS="-lcairo -lpixman-1" + CXXFLAGS="$CAIROFLAGS $CXXFLAGS" + LINKFLTKCAIRO="../lib/libfltk_cairo.a" + FLTKCAIROOPTION="-L ../cairo -lfltk_cairo$SHAREDSUFFIX" + fi +fi + +AC_SUBST(CAIRODIR) +AC_SUBST(CAIROFLAGS) +AC_SUBST(CAIROLIBS) +AC_SUBST(LINKFLTKCAIRO) +AC_SUBST(FLTKCAIROOPTION) + + +AC_SUBST(FLLIBNAME) +AC_SUBST(GLDEMOS) +AC_SUBST(GLLIBNAME) +AC_SUBST(IMGLIBNAME) +AC_SUBST(CAIROLIBNAME) +AC_SUBST(LIBEXT) +AC_SUBST(LIBNAME) +AC_SUBST(LINKFLTK) +AC_SUBST(LINKFLTKFORMS) +AC_SUBST(LINKFLTKGL) +AC_SUBST(LINKFLTKIMG) + +AC_SUBST(LIBBASENAME) +AC_SUBST(FLLIBBASENAME) +AC_SUBST(GLLIBBASENAME) +AC_SUBST(IMGLIBBASENAME) +AC_SUBST(CAIROLIBBASENAME) + +has_abiversion="" +AC_ARG_WITH(abiversion, +[ --with-abiversion Build with FL_ABI_VERSION, e.g. 10304 for FLTK 1.3.4]) +has_abiversion="$with_abiversion" +if test "$has_abiversion" = "yes" ; then + has_abiversion="" +else + if test "$has_abiversion" = "no" ; then + has_abiversion="" + fi +fi +if test ! "$has_abiversion" = "" ; then + AC_DEFINE_UNQUOTED(FL_ABI_VERSION, [$has_abiversion], [define to FL_ABI_VERSION]) +fi + +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(cp936, [ --enable-cp936 turn on CP936 [[default=no]]]) +if test x$enable_cp936 = xyes; then + CFLAGS="$CFLAGS -DCP936" +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 $host_os in + darwin*) + DSONAME="libfltk.$FL_DSO_VERSION.dylib" + FLDSONAME="libfltk_forms.$FL_DSO_VERSION.dylib" + GLDSONAME="libfltk_gl.$FL_DSO_VERSION.dylib" + IMGDSONAME="libfltk_images.$FL_DSO_VERSION.dylib" + CAIRODSONAME="libfltk_cairo.$FL_DSO_VERSION.dylib" + DSOCOMMAND="\$(CXX) \$(ARCHFLAGS) \$(DSOFLAGS) -dynamiclib -lc -o" + ;; + + solaris*) + DSONAME="libfltk.so.$FL_DSO_VERSION" + FLDSONAME="libfltk_forms.so.$FL_DSO_VERSION" + GLDSONAME="libfltk_gl.so.$FL_DSO_VERSION" + IMGDSONAME="libfltk_images.so.$FL_DSO_VERSION" + CAIRODSONAME="libfltk_cairo.so.$FL_DSO_VERSION" + DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -h \$@ \$(LDLIBS) -G $DEBUGFLAG -o" + if test "x$libdir" != "x/usr/lib"; then + DSOLINK="-R$libdir" + fi + ;; + hpux*) + DSONAME="libfltk.sl.$FL_DSO_VERSION" + FLDSONAME="libfltk_forms.sl.$FL_DSO_VERSION" + GLDSONAME="libfltk_gl.sl.$FL_DSO_VERSION" + IMGDSONAME="libfltk_images.sl.$FL_DSO_VERSION" + CAIRODSONAME="libfltk_cairo.sl.$FL_DSO_VERSION" + DSOCOMMAND="ld \$(DSOFLAGS) -b -z +h \$@ $DEBUGFLAG -o" + if test "x$libdir" != "x/usr/lib"; then + DSOLINK="-Wl,-rpath,$libdir" + fi + ;; + irix*) + DSONAME="libfltk.so.$FL_DSO_VERSION" + FLDSONAME="libfltk_forms.so.$FL_DSO_VERSION" + GLDSONAME="libfltk_gl.so.$FL_DSO_VERSION" + IMGDSONAME="libfltk_images.so.$FL_DSO_VERSION" + CAIRODSONAME="libfltk_cairo.so.$FL_DSO_VERSION" + DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -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 + ;; + osf*) + DSONAME="libfltk.so.$FL_DSO_VERSION" + FLDSONAME="libfltk_forms.so.$FL_DSO_VERSION" + GLDSONAME="libfltk_gl.so.$FL_DSO_VERSION" + IMGDSONAME="libfltk_images.so.$FL_DSO_VERSION" + CAIRODSONAME="libfltk_cairo.so.$FL_DSO_VERSION" + DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -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_DSO_VERSION" + FLDSONAME="libfltk_forms.so.$FL_DSO_VERSION" + GLDSONAME="libfltk_gl.so.$FL_DSO_VERSION" + IMGDSONAME="libfltk_images.so.$FL_DSO_VERSION" + CAIRODSONAME="libfltk_cairo.so.$FL_DSO_VERSION" + DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@ \$(LDLIBS) -shared -fPIC $DEBUGFLAG -o" + + # See if the compiler supports -fvisibility... + AC_CACHE_CHECK([if the compiler supports -fvisibility], + ac_cv_cxx_fvisibility, [ + OLDCXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -fvisibility=hidden" + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE(,, + ac_cv_cxx_fvisibility=yes, + ac_cv_cxx_fvisibility=no) + CXXFLAGS="$OLDCXXFLAGS" + AC_LANG_RESTORE + ]) + if test x"$ac_cv_cxx_fvisibility" = xyes; then + OPTIM="$OPTIM -fvisibility=hidden" + fi + + # See if the compiler supports -fvisibility-inlines-hidden... + AC_CACHE_CHECK([if the compiler supports -fvisibility-inlines-hidden], + ac_cv_cxx_fvisibility_inlines, [ + OLDCXXFLAGS="$CXXFLAGS" + CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden" + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE(,, + ac_cv_cxx_fvisibility_inlines=yes, + ac_cv_cxx_fvisibility_inlines=no) + CXXFLAGS="$OLDCXXFLAGS" + AC_LANG_RESTORE + ]) + if test x"$ac_cv_cxx_fvisibility_inlines" = xyes; then + CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden" + fi + + if test "x$libdir" != "x/usr/lib" -a "x$libdir" != "x/usr/lib64"; 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" + CAIRODSONAME="libfltk_cairo_s.a" + DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-bexpall,-bM:SRE,-bnoentry -o" + SHAREDSUFFIX="_s" + ;; + cygwin* | mingw*) + PICFLAG=0 + if test x$enable_cygwin != xyes; then + DSONAME="mgwfltknox-$FL_DSO_VERSION.dll" + FLDSONAME="mgwfltknox_forms-$FL_DSO_VERSION.dll" + GLDSONAME="mgwfltknox_gl-$FL_DSO_VERSION.dll" + IMGDSONAME="mgwfltknox_images-$FL_DSO_VERSION.dll" + CAIRODSONAME="mgwfltknox_cairo-$FL_DSO_VERSION.dll" + else + if test x$enable_x11 = xyes; then + DSONAME="cygfltk-$FL_DSO_VERSION.dll" + FLDSONAME="cygfltk_forms-$FL_DSO_VERSION.dll" + GLDSONAME="cygfltk_gl-$FL_DSO_VERSION.dll" + IMGDSONAME="cygfltk_images-$FL_DSO_VERSION.dll" + CAIRODSONAME="cygfltk_cairo-$FL_DSO_VERSION.dll" + else + DSONAME="cygfltknox-$FL_DSO_VERSION.dll" + FLDSONAME="cygfltknox_forms-$FL_DSO_VERSION.dll" + GLDSONAME="cygfltknox_gl-$FL_DSO_VERSION.dll" + IMGDSONAME="cygfltknox_images-$FL_DSO_VERSION.dll" + CAIRODSONAME="cygfltknox_cairo-$FL_DSO_VERSION.dll" + fi + fi + #----------------------------------------------------------- + # -Wl,--enable-runtime-pseudo-reloc: See str 1585 + # appears to be necessary for older binutils versions < 2.16 + #----------------------------------------------------------- + LDFLAGS="$LDFLAGS -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc" + DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -shared \ + -Wl,--whole-archive -Wl,--export-all-symbols \ + -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-import \ + -Wl,--enable-auto-image-base -o \$@" + ;; + *) + AC_MSG_WARN([Shared libraries may not be supported. Trying -shared option with compiler.]) + DSONAME="libfltk.so.$FL_DSO_VERSION" + FLDSONAME="libfltk_forms.so.$FL_DSO_VERSION" + GLDSONAME="libfltk_gl.so.$FL_DSO_VERSION" + IMGDSONAME="libfltk_images.so.$FL_DSO_VERSION" + CAIRODSONAME="libfltk_cairo.so.$FL_DSO_VERSION" + DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@ \$(LDLIBS) -shared $DEBUGFLAG -o" + ;; + esac + + LINKSHARED="-L../src $FLTKCAIROOPTION -lfltk_images$SHAREDSUFFIX -lfltk_forms$SHAREDSUFFIX -lfltk$SHAREDSUFFIX" +else + DSOCOMMAND="echo" + DSOLINK="" + DSONAME="" + FLDSONAME="" + GLDSONAME="" + IMGDSONAME="" + CAIRODSONAME="" + PICFLAG=0 + SHAREDSUFFIX="" + FLUID="fluid" + LINKSHARED="$LINKFLTKCAIRO ../lib/libfltk_images.a ../lib/libfltk_forms.a ../lib/libfltk.a" +fi + +AC_SUBST(DSOCOMMAND) +AC_SUBST(DSOFLAGS) +AC_SUBST(DSOLINK) +AC_SUBST(DSONAME) +AC_SUBST(FLDSONAME) +AC_SUBST(GLDSONAME) +AC_SUBST(IMGDSONAME) +AC_SUBST(CAIRODSONAME) +AC_SUBST(SHAREDSUFFIX) +AC_SUBST(LINKSHARED) +AC_SUBST(FLUID) + +AC_ARG_ENABLE(threads, [ --enable-threads enable multi-threading support [[default=yes]]]) + +AC_ARG_WITH(optim, [ --with-optim="flags" use custom optimization flags]) + +AC_ARG_WITH(archflags, [ --with-archflags="flags" + use custom architecture flags + (possible Mac OS X values include -arch i386, -arch x86_64, -arch ppc)], + ARCHFLAGS="$withval") + +dnl Find commands... +AC_PROG_INSTALL +case $host_os in + osf*) + INSTALL="`pwd`/install-sh -c" + ;; +esac +if test "$INSTALL" = "$ac_install_sh"; then + # Use full path to install-sh script... + INSTALL="`pwd`/install-sh -c" +fi +AC_PATH_PROG(NROFF,nroff) +if test "x$NROFF" = "x:"; then + # Try groff instead of nroff... + AC_PATH_PROG(GROFF,groff) + if test "x$GROFF" = "x:"; then + NROFF="echo" + else + NROFF="$GROFF -T ascii" + fi +fi +AC_PATH_PROG(DOXYDOC,doxygen) + +dnl How do we make libraries? +AC_PROG_RANLIB +AC_PATH_TOOL(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 how to compile (Windows) resource files +dnl this will only be used to compile resources for Windows .exe files +AC_PATH_TOOL(RC,windres) + +dnl Architecture checks... +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 +case $host_os in + darwin*) + ;; + *) + AC_C_BIGENDIAN + + 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 + ;; +esac + +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)) + +dnl Do we have the POSIX compatible scandir() prototype? +AC_CACHE_CHECK([whether we have the POSIX compatible scandir() prototype], + ac_cv_cxx_scandir_posix,[ + AC_LANG_SAVE + AC_LANG_CPLUSPLUS + AC_TRY_COMPILE([ + #include + int func (const char *d, dirent ***list, void *sort) { + int n = scandir(d, list, 0, (int(*)(const dirent **, const dirent **))sort); + } + ],[ + ], ac_cv_cxx_scandir_posix=yes, ac_cv_cxx_scandir_posix=no) + AC_LANG_RESTORE + ]) + +dnl Define both HAVE_SCANDIR... macros, if the POSIX compatible function is +dnl available. Otherwise: check, whether any scandir prototype is available, +dnl but dont use it on SunOS and QNX because of an incompatibility in pre-Y2K +dnl SunOS scandir versions. We assume, though, that the POSIX compatible +dnl version on newer SunOS/Solaris versions works as expected. +if test "$ac_cv_cxx_scandir_posix" = yes; then + AC_DEFINE(HAVE_SCANDIR) + AC_DEFINE(HAVE_SCANDIR_POSIX) +else + AC_CHECK_FUNC(scandir,[ + case $host_os in + solaris* | *qnx*) + AC_MSG_WARN([Not using $host_os scandir emulation function.]) + ;; + *) + AC_DEFINE(HAVE_SCANDIR) + ;; + esac]) +fi + +AC_CHECK_FUNC(vsnprintf,[ + case $host_os in + hpux1020) + AC_MSG_WARN([Not using built-in vsnprintf function because you are running HP-UX 10.20.]) + ;; + osf4) + AC_MSG_WARN([Not using built-in vsnprintf function because you are running Tru64 4.0.]) + ;; + *) + AC_DEFINE(HAVE_VSNPRINTF) + ;; + esac]) +AC_CHECK_FUNC(snprintf,[ + case $host_os in + hpux1020) + AC_MSG_WARN([Not using built-in snprintf function because you are running HP-UX 10.20.]) + ;; + osf4) + AC_MSG_WARN([Not using built-in snprintf function because you are running Tru64 4.0.]) + ;; + *) + 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 != xno; then + LARGEFILE="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE" + + if test x$ac_cv_sys_large_files = x1; then + LARGEFILE="$LARGEFILE -D_LARGE_FILES" + fi + + if test x$ac_cv_sys_file_offset_bits = x64; 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 + +dnl Check for dlopen/dlsym... +AC_SEARCH_LIBS(dlsym, dl, AC_DEFINE(HAVE_DLSYM)) +AC_CHECK_HEADER(dlfcn.h, AC_DEFINE(HAVE_DLFCN_H)) + +dnl Check for audio libraries... +AUDIOLIBS="" + +case $host_os 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="" +STATICIMAGELIBS="" + +AC_SUBST(IMAGELIBS) +AC_SUBST(STATICIMAGELIBS) + +# Handle the JPEG lib linking mode (use fltk local or system lib) +# If --enable-(resp. --disable-)localjpeg parameter is not set by user +# Then we check the JPEG lib usability, with result in sysjpeglib_ok variable +AC_ARG_ENABLE(localjpeg, [ --enable-localjpeg use local JPEG library [[default=auto]]]) +# Check for System lib use if automatic mode or --disable-localjpeg is requested +sysjpeglib_ok=no +sysjpeginc_ok=no +if test x$enable_localjpeg != xyes; then + AC_CHECK_LIB(jpeg,jpeg_CreateCompress, + [AC_CHECK_HEADER(jpeglib.h, + sysjpeginc_ok=yes) + if test x$sysjpeginc_ok = xyes; then + sysjpeglib_ok=yes + fi]) +fi +# Now set the jpeg lib and include flags according to the requested mode and availability +if test x$enable_localjpeg = xyes -o x$sysjpeglib_ok = xno; then + JPEGINC="-I../jpeg" + JPEG="jpeg" + IMAGELIBS="-lfltk_jpeg $IMAGELIBS" + STATICIMAGELIBS="\$libdir/libfltk_jpeg.a $STATICIMAGELIBS" + AC_DEFINE(HAVE_LIBJPEG) + #ac_cv_lib_jpeg_jpeg_CreateCompress=no # from ima: should not be necessary + # Finally, warn user if system lib was requested but not found + if test x$enable_localjpeg = xno; then + AC_MSG_WARN([Cannot find system jpeg lib or header: choosing the local lib mode.]) + fi +else + JPEGINC="" + JPEG="" + IMAGELIBS="-ljpeg $IMAGELIBS" + STATICIMAGELIBS="-ljpeg $STATICIMAGELIBS" + AC_DEFINE(HAVE_LIBJPEG) +fi + +# Handle the ZLIB lib linking mode (use fltk local or system lib) +# If --enable-(resp. --disable-)localzlib parameter is not set by user +# Then we check the ZLIB lib usability, with result in syszlib_ok variable +AC_ARG_ENABLE(localzlib, [ --enable-localzlib use local ZLIB library [[default=auto]]]) +# Check for System lib use if automatic mode or --disable-localzlib is requested +syszlib_ok=no +syszinc_ok=no +if test x$enable_localzlib != xyes; then + AC_CHECK_LIB(z,gzgets, + [AC_CHECK_HEADER(zlib.h, + syszinc_ok=yes) + if test x$syszinc_ok = xyes; then + syszlib_ok=yes + fi]) +fi +# Now set the Z lib and include flags according to the requested mode and availability +if test x$enable_localzlib = xyes -o x$syszlib_ok = xno ; then + ZLIBINC="-I../zlib" + ZLIB="zlib" + LIBS="-lfltk_z $LIBS" + IMAGELIBS="-lfltk_z $IMAGELIBS" + STATICIMAGELIBS="\$libdir/libfltk_z.a $STATICIMAGELIBS" + AC_DEFINE(HAVE_LIBZ) + ac_cv_lib_z_gzgets=no # fc: is still necessary ? + # Finally, warn user if system lib was requested but not found + if test x$enable_localzlib = xno; then + AC_MSG_WARN([Cannot find system z lib or header: choosing the local lib mode.]) + fi +else + ZLIBINC="" + ZLIB="" + LIBS="-lz $LIBS" + IMAGELIBS="-lz $IMAGELIBS" + STATICIMAGELIBS="-lz $STATICIMAGELIBS" + AC_DEFINE(HAVE_LIBZ) +fi + +# Handle the PNG lib linking mode (use fltk local or system lib) +# If --enable-(resp. --disable-)localpng parameter is not set by user +# Then we check the png lib usability with result in syspng_lib variable +AC_ARG_ENABLE(localpng, [ --enable-localpng use local PNG library [[default=auto]]]) + +# Now check if system lib is usable, we check Lib AND include availability with inc variant, +# but only, if the builtin lib is not requested +syspnglib_ok=no +syspnginc_ok=no +if test x$enable_localpng != xyes; then + AC_CHECK_LIB(png, png_read_info, + [AC_CHECK_HEADER(png.h, + AC_DEFINE(HAVE_PNG_H) + syspnginc_ok=yes) + AC_CHECK_HEADER(libpng/png.h, + AC_DEFINE(HAVE_LIBPNG_PNG_H) + syspnginc_ok=yes) + if test x$syspnginc_ok = xyes; then + syspnglib_ok=yes + fi]) +fi + +# The following is executed if the lib was not found usable or if local lib is required explicitly +if test x$enable_localpng = xyes -o x$syspnglib_ok = xno ; then + PNGINC="-I../png" + PNG="png" + IMAGELIBS="-lfltk_png $IMAGELIBS" + STATICIMAGELIBS="\$libdir/libfltk_png.a $STATICIMAGELIBS" + AC_DEFINE(HAVE_LIBPNG) + AC_DEFINE(HAVE_PNG_H) + AC_DEFINE(HAVE_PNG_GET_VALID) + AC_DEFINE(HAVE_PNG_SET_TRNS_TO_ALPHA) + # Finally, warn user if system lib was requested but not found + if test x$enable_localpng = xno; then + AC_MSG_WARN([Cannot find system png lib or header: choosing the local lib mode.]) + fi +else + PNGINC="" + PNG="" + IMAGELIBS="-lpng $IMAGELIBS" + STATICIMAGELIBS="-lpng $STATICIMAGELIBS" + AC_DEFINE(HAVE_LIBPNG) + AC_CHECK_LIB(png,png_get_valid, AC_DEFINE(HAVE_PNG_GET_VALID)) + AC_CHECK_LIB(png,png_set_tRNS_to_alpha, AC_DEFINE(HAVE_PNG_SET_TRNS_TO_ALPHA)) +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 +PTHREAD_FLAGS="" + +dnl Test whether we want to check for pthreads. We must not do it on Windows +dnl unless we run under Cygwin with --enable-cygwin, since we always use +dnl native threads on Windows (even if libpthread is available) +check_pthread=yes +case $host_os in + mingw*) + check_pthread=no + ;; + cygwin*) + if test "x$enable_cygwin" != xyes; then + check_pthread=no + fi + ;; + *) + ;; +esac + +if test "x$enable_threads" != xno -a x$check_pthread = xyes; then + AC_CHECK_HEADER(pthread.h, AC_DEFINE(HAVE_PTHREAD_H)) + + if test x$ac_cv_header_pthread_h = xyes; then + dnl Check various threading options for the platforms we support + for flag in -lpthreads -lpthread -pthread; do + AC_MSG_CHECKING([for pthread_create using $flag]) + SAVELIBS="$LIBS" + LIBS="$flag $LIBS" + AC_TRY_LINK([#include ], + [pthread_create(0, 0, 0, 0);], + have_pthread=yes, + LIBS="$SAVELIBS") + AC_MSG_RESULT([$have_pthread]) + + if test $have_pthread = yes; then + AC_DEFINE(HAVE_PTHREAD) + PTHREAD_FLAGS="-D_THREAD_SAFE -D_REENTRANT" + + # Solaris requires -D_POSIX_PTHREAD_SEMANTICS to + # be POSIX-compliant... :( + case $host_os in + solaris*) + PTHREAD_FLAGS="$PTHREAD_FLAGS -D_POSIX_PTHREAD_SEMANTICS" + ;; + esac + break + fi + done + fi +fi + +AC_SUBST(PTHREAD_FLAGS) + +dnl Define OS-specific stuff... +HLINKS= +OSX_ONLY=: +THREADS= + +AC_ARG_WITH(links, [ --with-links make header links for common misspellings [[default=no]]]) + +INSTALL_DESKTOP="" +UNINSTALL_DESKTOP="" + +case $host_os_gui in + cygwin* | mingw*) + dnl Cygwin environment, using windows GDI ... + # Recent versions of Cygwin are seriously broken and the size + # checks don't work because the shell puts out \r\n instead of + # \n. Here we just force U32 to be defined to "unsigned"... + AC_DEFINE(U32,unsigned) + CFLAGS="-mwindows -DWIN32 -DUSE_OPENGL32 $CFLAGS" + CXXFLAGS="-mwindows -DWIN32 -DUSE_OPENGL32 $CXXFLAGS" + LDFLAGS="-mwindows $LDFLAGS" + DSOFLAGS="-mwindows $DSOFLAGS" + LIBS="$LIBS -lole32 -luuid -lcomctl32" + #BUILD_GDI="Yes" + BUILD="WIN" + if test "x$with_optim" = x; then + dnl Avoid -Os optimization on Cygwin/MinGW + with_optim="-O3" + fi + + 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" != xno; then + if test x$have_pthread = xyes; then + AC_DEFINE(HAVE_PTHREAD) + fi + fi + + THREADS="threads$EXEEXT" + + # Don't make symlinks since Windows is not case sensitive. + if test "x$with_links" != xyes; then + HLINKS="#" + fi + ;; + + darwin*) + AC_DEFINE(__APPLE_QUARTZ__) + + #USEMMFILES="Yes" + BUILD="OSX" + + # MacOS X uses Cocoa for graphics. + LIBS="$LIBS -framework Cocoa" + + if test x$have_pthread = xyes; then + AC_DEFINE(HAVE_PTHREAD) + THREADS="threads$EXEEXT" + fi + + if test x$enable_gl != xno; then + AC_DEFINE(HAVE_GL) + AC_DEFINE(HAVE_GL_GLU_H) + GLLIB="-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 + + # Some steps are only done for OS X package management + OSX_ONLY= + + # Install/Uninstall FLUID application + INSTALL_DESKTOP="install-osx" + UNINSTALL_DESKTOP="uninstall-osx" + ;; + + *) + # All others are UNIX/X11... + # This includes Cygwin target combined with X11 + if test x$have_pthread = xyes; then + AC_DEFINE(HAVE_PTHREAD) + THREADS="threads$EXEEXT" + 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 -lX11 $X_EXTRA_LIBS" + CFLAGS="$CFLAGS $X_CFLAGS" + CXXFLAGS="$CXXFLAGS $X_CFLAGS" + LDFLAGS="$X_LIBS $LDFLAGS" + DSOFLAGS="$X_LIBS $DSOFLAGS" + AC_DEFINE(USE_X11) + #BUILD_X11="Yes" + BUILD="X11" + 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_LIB(GL, glXGetProcAddressARB, + AC_DEFINE(HAVE_GLXGETPROCADDRESSARB),, -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=yes]]]) + + if test x$enable_xinerama != xno; 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=yes]]]) + + if test x$enable_xft != xno; then + AC_PATH_PROG(FTCONFIG,freetype-config) + + if test "x$FTCONFIG" != x; then + CPPFLAGS="`$FTCONFIG --cflags` $CPPFLAGS" + CFLAGS="`$FTCONFIG --cflags` $CFLAGS" + CXXFLAGS="`$FTCONFIG --cflags` $CXXFLAGS" + + AC_CHECK_LIB(fontconfig, FcPatternCreate) + AC_CHECK_HEADER(X11/Xft/Xft.h, + AC_CHECK_LIB(Xft, XftDrawCreate, + AC_DEFINE(USE_XFT) + #BUILD_XFT="Yes" + BUILD="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=yes]]]) + + if test x$enable_xdbe != xno; then + AC_CHECK_HEADER(X11/extensions/Xdbe.h, AC_DEFINE(HAVE_XDBE),, + [#include ]) + AC_CHECK_LIB(Xext, XdbeQueryExtension, + LIBS="-lXext $LIBS") + fi + + dnl Check for the Xfixes extension unless disabled... + AC_ARG_ENABLE(xfixes, [ --enable-xfixes turn on Xfixes support [[default=yes]]]) + + if test x$enable_xfixes != xno; then + AC_CHECK_HEADER(X11/extensions/Xfixes.h, AC_DEFINE(HAVE_XFIXES),, + [#include ]) + AC_CHECK_LIB(Xfixes, XFixesQueryExtension, + LIBS="-lXfixes $LIBS") + fi + + dnl Check for the Xcursor library unless disabled... + AC_ARG_ENABLE(xcursor, [ --enable-xcursor turn on Xcursor support [[default=yes]]]) + + if test x$enable_xcursor != xno; then + AC_CHECK_HEADER(X11/Xcursor/Xcursor.h, AC_DEFINE(HAVE_XCURSOR),, + [#include ]) + AC_CHECK_LIB(Xcursor, XcursorImageCreate, + LIBS="-lXcursor $LIBS") + fi + + dnl Check for the Xrender library unless disabled... + AC_ARG_ENABLE(xrender, [ --enable-xrender turn on Xrender support [[default=yes]]]) + + if test x$enable_xrender != xno; then + AC_CHECK_HEADER(X11/extensions/Xrender.h, AC_DEFINE(HAVE_XRENDER),, + [#include ]) + AC_CHECK_LIB(Xrender, XRenderQueryVersion, + LIBS="-lXrender $LIBS") + fi + + dnl Check for the X11/Xregion.h header file... + AC_CHECK_HEADER(X11/Xregion.h, AC_DEFINE(HAVE_X11_XREGION_H),, + [#include ]) + + 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, + # but Cygwin in general not. + case $host_os in + cygwin*) + HLINKS="#" + ;; + *) + ;; + esac + # Make symlinks since UNIX/Linux is case sensitive, + # but only if explicitly configured (default=no) + if test "x$with_links" != xyes; 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(OSX_ONLY) +AC_SUBST(THREADS) + +AC_SUBST(INSTALL_DESKTOP) +AC_SUBST(UNINSTALL_DESKTOP) + +AC_SUBST(BUILD) + +dnl Figure out the appropriate formatted man page extension... +case "$host_os" 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=6 + ;; +esac + +AC_SUBST(CAT1EXT) +AC_SUBST(CAT3EXT) +AC_SUBST(CAT6EXT) + +dnl Fix "mandir" variable... +if test "$mandir" = "\${prefix}/man" -a "$prefix" = "/usr"; then + case "$host_os" 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 + +case $host_os in + irix[1-5]*) + ;; + irix*) + if test "$libdir" = "\${exec_prefix}/lib" -a "$exec_prefix" = "\${prefix}" -a "$prefix" = "/usr"; then + libdir="/usr/lib32" + fi + ;; +esac + +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" + + # We know that Carbon is deprecated on OS X 10.4. To avoid hundreds of warnings + # we will temporarily disable 'deprecated' warnings on OS X. + case $host_os in + darwin[1-7]) + ;; + darwin*) + OPTIM="-Wno-deprecated-declarations $OPTIM" + ;; + esac + + # 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 GCC supports -fno-strict-aliasing... + AC_MSG_CHECKING([if GCC supports -fno-strict-aliasing]) + OLDCFLAGS="$CFLAGS" + CFLAGS="$CFLAGS -fno-strict-aliasing" + AC_TRY_COMPILE(,, + OPTIM="$OPTIM -fno-strict-aliasing" + AC_MSG_RESULT([yes]), + AC_MSG_RESULT([no])) + CFLAGS="$OLDCFLAGS" + +dnl Experimental (as of 17 Feb 2015): +dnl Make sure that shared libraries don't have undefined references + # See if ld supports -no-undefined... + AC_MSG_CHECKING([if ld supports -no-undefined]) + OLDLDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -Wl,-no-undefined" + AC_TRY_LINK(,, + [DSOFLAGS="$DSOFLAGS -Wl,-no-undefined"] + AC_MSG_RESULT([yes]), + AC_MSG_RESULT([no])) + LDFLAGS="$OLDLDFLAGS" + + # See if ld supports -Bsymbolic-functions... + AC_MSG_CHECKING([if ld supports -Bsymbolic-functions]) + OLDLDFLAGS="$LDFLAGS" + LDFLAGS="$LDFLAGS -Wl,-Bsymbolic-functions" + AC_TRY_LINK(,, + [DSOFLAGS="$DSOFLAGS -Wl,-Bsymbolic-functions"] + AC_MSG_RESULT([yes]), + AC_MSG_RESULT([no])) + LDFLAGS="$OLDLDFLAGS" + + # See if toolchain supports a sectioned build... + AC_MSG_CHECKING([if toolchain supports sections]) + OLDLDFLAGS="$LDFLAGS" + OLDCFLAGS="$CFLAGS" + LDFLAGS="$LDFLAGS -Wl,-gc-sections" + CFLAGS="$CFLAGS -ffunction-sections -fdata-sections" + AC_TRY_LINK(,, + [DSOFLAGS="$DSOFLAGS -Wl,-gc-sections" + OPTIM="$OPTIM -ffunction-sections -fdata-sections"] + AC_MSG_RESULT([yes]), + AC_MSG_RESULT([no])) + LDFLAGS="$OLDLDFLAGS" + 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... + case $host_os in + solaris*) + 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])) + ;; + esac +else + case "$host_os" 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 + ;; + hpux*) + # 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 $PICFLAG = 1; then + OPTIM="+z $OPTIM" + fi + + CXXFLAGS="$CXXFLAGS +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 + ;; + solaris*) + # 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 via the STR form.. + AC_MSG_WARN([Building FLTK with default compiler optimizations]) + AC_MSG_WARN([Send the FLTK developers your uname and compiler options via http://www.fltk.org/str.php]) + ;; + esac +fi + +OPTIM="$DEBUGFLAG $OPTIM" + +dnl Take archflags away from CFLAGS (makefiles use ARCHFLAGS explicitly) +case $host_os in + darwin*) + if test "x$with_archflags" != x ; then + CFLAGS="`echo $CFLAGS | sed -e "s/$with_archflags//g"`" + fi + ;; +esac + +dnl Define the FLTK documentation directory... +case $host_os in + mingw*) + # Determine the path where MSys has /usr installed + msyspath=`mount | grep '\/usr ' | cut -d ' ' -f -1 | sed -e 's/\\\/\// g'` + # Then substitute that in the WIN32 path instead of /usr + AC_DEFINE_UNQUOTED(FLTK_DOCDIR, "$msyspath/local/share/doc/fltk") + ;; + *) + 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 + ;; +esac + +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 Summarize results of configure tests... +echo "" +echo "Configuration Summary" +echo "-------------------------------------------------------------------------" + +case $host_os_gui in + cygwin* | mingw*) + graphics="GDI" + ;; + darwin*) + graphics="Quartz" + ;; + *) + graphics="X11" + if test x$enable_xft != xno; then + graphics="$graphics+Xft" + fi + if test x$enable_xdbe != xno; then + graphics="$graphics+Xdbe" + fi + if test x$enable_xinerama != xno; then + graphics="$graphics+Xinerama" + fi + ;; +esac + +echo " Directories: prefix=$prefix" +echo " bindir=$bindir" +echo " datadir=$datadir" +echo " datarootdir=$datarootdir" +echo " exec_prefix=$exec_prefix" +echo " includedir=$includedir" +echo " libdir=$libdir" +echo " mandir=$mandir" +case $host_os in + mingw*) + echo " MSys docpath=$msyspath/local/share/doc/fltk" + ;; +esac +echo " Graphics: $graphics" + +if test x$JPEG = x; then + echo "Image Libraries: JPEG=System" +else + echo "Image Libraries: JPEG=Builtin" +fi +if test x$PNG = x; then + echo " PNG=System" +else + echo " PNG=Builtin" +fi +if test x$ZLIB = x; then + echo " ZLIB=System" +else + echo " ZLIB=Builtin" +fi +if test x$enable_cairo = xyes; then + echo " CAIRO=lib" +fi +if test x$enable_cairoext = xyes; then + echo " CAIRO=internal_use" +fi + + +if test x$enable_largefile != xno; then + echo " Large Files: YES" +else + echo " Large Files: NO" +fi + +if test x$GLDEMOS = x; then + echo " OpenGL: NO" +else + echo " OpenGL: YES" +fi + +if test x$THREADS = x; then + echo " Threads: NO" +else + echo " Threads: YES" +fi + +dnl Set empty BINARY_DIR variable for fltk-config.in (CMake compatibility) +BINARY_DIR= +AC_SUBST(BINARY_DIR) + +dnl Write all of the files... +AC_CONFIG_HEADER(config.h:configh.in) +AC_CONFIG_HEADER(FL/abi-version.h:abi-version.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 diff --git a/configure.in b/configure.in deleted file mode 100644 index 1c7e1deff..000000000 --- a/configure.in +++ /dev/null @@ -1,1522 +0,0 @@ -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-2015 by Bill Spitzak and others. -dnl -dnl This library is free software. Distribution and use rights are outlined in -dnl the file "COPYING" which should have been included with this file. If this -dnl file is missing or damaged, see the license at: -dnl -dnl http://www.fltk.org/COPYING.php -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.50... -AC_PREREQ([2.50]) - -dnl Required file in package... -AC_INIT(src/Fl.cxx) - -AC_CANONICAL_HOST - -dnl Do not automatically add "-g" to compiler options... -dnl This must be _before_ "Find compiler commands..." -ARCHFLAGS="${ARCHFLAGS:=}" -CFLAGS="${CFLAGS:=}" -CPPFLAGS="${CPPFLAGS:=}" -CXXFLAGS="${CXXFLAGS:=}" -DSOFLAGS="${DSOFLAGS:=}" -LDFLAGS="${LDFLAGS:=}" -OPTIM="${OPTIM:=}" - -dnl Find compiler commands... -AC_PROG_CC -AC_PROG_CXX - -dnl So --with-archflags option is used during "checking size of long" -case $host_os in - darwin*) - if test "x$with_archflags" != x ; then - CFLAGS="$CFLAGS $with_archflags" - fi - ;; -esac - -dnl FLTK library versions... -FL_MAJOR_VERSION=1 -FL_MINOR_VERSION=4 -FL_PATCH_VERSION=0 -FL_DSO_VERSION=${FL_MAJOR_VERSION}.${FL_MINOR_VERSION} -FL_ABI_VERSION=${FL_MAJOR_VERSION}.${FL_MINOR_VERSION}.0 -FL_VERSION=${FL_MAJOR_VERSION}.${FL_MINOR_VERSION}.${FL_PATCH_VERSION} - -AC_SUBST(FL_MAJOR_VERSION) -AC_SUBST(FL_MINOR_VERSION) -AC_SUBST(FL_PATCH_VERSION) -AC_SUBST(FL_DSO_VERSION) -AC_SUBST(FL_ABI_VERSION) -AC_SUBST(FL_VERSION) - -AC_SUBST(ARCHFLAGS) -AC_SUBST(OPTIM) - -dnl FLTK build options to be used in Makefiles (defined in makeinclude) -BUILD="" - -dnl OS-specific pre-tests... -dnl host_os_gui equals $host_os unless we target Cygwin or Darwin in combination with X11. -host_os_gui=$host_os -case $host_os in - cygwin*) - # Handle Cygwin option *first*, before all other tests. - AC_ARG_ENABLE(cygwin, [ --enable-cygwin use the Cygwin libraries [[default=no]]]) - AC_ARG_ENABLE(x11, [ --enable-x11 with Cygwin or Mac OS, use X11 [[default=no]]]) - if test x$enable_cygwin = xyes; then - # we target Cygwin in combination with X11 - if test x$enable_x11 = xyes; then - host_os_gui="X11$host_os" - fi - fi - ;; - darwin*) - if test x$enable_x11 = xyes; then - host_os_gui="X11" - OPTIM="-U__APPLE__ $OPTIM" - fi - ;; - *) - ;; -esac - -dnl Define the libraries and link options we will 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" -CAIROLIBNAME="../lib/libfltk_cairo.a" - -LIBBASENAME="libfltk.a" -FLLIBBASENAME="libfltk_forms.a" -GLLIBBASENAME="libfltk_gl.a" -IMGLIBBASENAME="libfltk_images.a" -CAIROLIBBASENAME="libfltk_cairo.a" - -dnl Check for Cairo library unless disabled... -CAIRODIR="" -CAIROFLAGS="" -LINKFLTKCAIRO="" -FLTKCAIROOPTION="" -CAIROLIBS="" - -AC_ARG_ENABLE(cairoext,[ --enable-cairoext use fltk code instrumentation for cairo extended use [[default=no]]]) -AC_ARG_ENABLE(cairo, [ --enable-cairo use lib Cairo [[default=no]]]) - -if test x$enable_cairoext = xyes; then - AC_DEFINE(FLTK_USE_CAIRO) - AC_DEFINE(FLTK_HAVE_CAIRO) - dnl FIXME This part should be fixed so configure do not depend on - dnl we do not rely on pkg-config . - CAIRODIR="cairo" - CAIROFLAGS="`pkg-config --cflags cairo`" - CAIROLIBS="-lcairo -lpixman-1" - CXXFLAGS="$CAIROFLAGS $CXXFLAGS" - LINKFLTKCAIRO="../lib/libfltk_cairo.a" - FLTKCAIROOPTION="-L ../cairo -lfltk_cairo$SHAREDSUFFIX" - LIBS="$CAIROLIBS $LIBS" - dnl $LINKFLTKCAIRO - LINKFLTK+=" $LINKFLTKCAIRO" -else - if test x$enable_cairo = xyes; then - AC_DEFINE(FLTK_HAVE_CAIRO) - dnl FIXME This part should be fixed so configure do not depend on - dnl we do not rely on pkg-config . - CAIRODIR="cairo" - CAIROFLAGS="`pkg-config --cflags cairo`" - CAIROLIBS="-lcairo -lpixman-1" - CXXFLAGS="$CAIROFLAGS $CXXFLAGS" - LINKFLTKCAIRO="../lib/libfltk_cairo.a" - FLTKCAIROOPTION="-L ../cairo -lfltk_cairo$SHAREDSUFFIX" - fi -fi - -AC_SUBST(CAIRODIR) -AC_SUBST(CAIROFLAGS) -AC_SUBST(CAIROLIBS) -AC_SUBST(LINKFLTKCAIRO) -AC_SUBST(FLTKCAIROOPTION) - - -AC_SUBST(FLLIBNAME) -AC_SUBST(GLDEMOS) -AC_SUBST(GLLIBNAME) -AC_SUBST(IMGLIBNAME) -AC_SUBST(CAIROLIBNAME) -AC_SUBST(LIBEXT) -AC_SUBST(LIBNAME) -AC_SUBST(LINKFLTK) -AC_SUBST(LINKFLTKFORMS) -AC_SUBST(LINKFLTKGL) -AC_SUBST(LINKFLTKIMG) - -AC_SUBST(LIBBASENAME) -AC_SUBST(FLLIBBASENAME) -AC_SUBST(GLLIBBASENAME) -AC_SUBST(IMGLIBBASENAME) -AC_SUBST(CAIROLIBBASENAME) - -has_abiversion="" -AC_ARG_WITH(abiversion, -[ --with-abiversion Build with FL_ABI_VERSION, e.g. 10304 for FLTK 1.3.4]) -has_abiversion="$with_abiversion" -if test "$has_abiversion" = "yes" ; then - has_abiversion="" -else - if test "$has_abiversion" = "no" ; then - has_abiversion="" - fi -fi -if test ! "$has_abiversion" = "" ; then - AC_DEFINE_UNQUOTED(FL_ABI_VERSION, [$has_abiversion], [define to FL_ABI_VERSION]) -fi - -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(cp936, [ --enable-cp936 turn on CP936 [[default=no]]]) -if test x$enable_cp936 = xyes; then - CFLAGS="$CFLAGS -DCP936" -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 $host_os in - darwin*) - DSONAME="libfltk.$FL_DSO_VERSION.dylib" - FLDSONAME="libfltk_forms.$FL_DSO_VERSION.dylib" - GLDSONAME="libfltk_gl.$FL_DSO_VERSION.dylib" - IMGDSONAME="libfltk_images.$FL_DSO_VERSION.dylib" - CAIRODSONAME="libfltk_cairo.$FL_DSO_VERSION.dylib" - DSOCOMMAND="\$(CXX) \$(ARCHFLAGS) \$(DSOFLAGS) -dynamiclib -lc -o" - ;; - - solaris*) - DSONAME="libfltk.so.$FL_DSO_VERSION" - FLDSONAME="libfltk_forms.so.$FL_DSO_VERSION" - GLDSONAME="libfltk_gl.so.$FL_DSO_VERSION" - IMGDSONAME="libfltk_images.so.$FL_DSO_VERSION" - CAIRODSONAME="libfltk_cairo.so.$FL_DSO_VERSION" - DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -h \$@ \$(LDLIBS) -G $DEBUGFLAG -o" - if test "x$libdir" != "x/usr/lib"; then - DSOLINK="-R$libdir" - fi - ;; - hpux*) - DSONAME="libfltk.sl.$FL_DSO_VERSION" - FLDSONAME="libfltk_forms.sl.$FL_DSO_VERSION" - GLDSONAME="libfltk_gl.sl.$FL_DSO_VERSION" - IMGDSONAME="libfltk_images.sl.$FL_DSO_VERSION" - CAIRODSONAME="libfltk_cairo.sl.$FL_DSO_VERSION" - DSOCOMMAND="ld \$(DSOFLAGS) -b -z +h \$@ $DEBUGFLAG -o" - if test "x$libdir" != "x/usr/lib"; then - DSOLINK="-Wl,-rpath,$libdir" - fi - ;; - irix*) - DSONAME="libfltk.so.$FL_DSO_VERSION" - FLDSONAME="libfltk_forms.so.$FL_DSO_VERSION" - GLDSONAME="libfltk_gl.so.$FL_DSO_VERSION" - IMGDSONAME="libfltk_images.so.$FL_DSO_VERSION" - CAIRODSONAME="libfltk_cairo.so.$FL_DSO_VERSION" - DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -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 - ;; - osf*) - DSONAME="libfltk.so.$FL_DSO_VERSION" - FLDSONAME="libfltk_forms.so.$FL_DSO_VERSION" - GLDSONAME="libfltk_gl.so.$FL_DSO_VERSION" - IMGDSONAME="libfltk_images.so.$FL_DSO_VERSION" - CAIRODSONAME="libfltk_cairo.so.$FL_DSO_VERSION" - DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -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_DSO_VERSION" - FLDSONAME="libfltk_forms.so.$FL_DSO_VERSION" - GLDSONAME="libfltk_gl.so.$FL_DSO_VERSION" - IMGDSONAME="libfltk_images.so.$FL_DSO_VERSION" - CAIRODSONAME="libfltk_cairo.so.$FL_DSO_VERSION" - DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@ \$(LDLIBS) -shared -fPIC $DEBUGFLAG -o" - - # See if the compiler supports -fvisibility... - AC_CACHE_CHECK([if the compiler supports -fvisibility], - ac_cv_cxx_fvisibility, [ - OLDCXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS -fvisibility=hidden" - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - AC_TRY_COMPILE(,, - ac_cv_cxx_fvisibility=yes, - ac_cv_cxx_fvisibility=no) - CXXFLAGS="$OLDCXXFLAGS" - AC_LANG_RESTORE - ]) - if test x"$ac_cv_cxx_fvisibility" = xyes; then - OPTIM="$OPTIM -fvisibility=hidden" - fi - - # See if the compiler supports -fvisibility-inlines-hidden... - AC_CACHE_CHECK([if the compiler supports -fvisibility-inlines-hidden], - ac_cv_cxx_fvisibility_inlines, [ - OLDCXXFLAGS="$CXXFLAGS" - CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden" - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - AC_TRY_COMPILE(,, - ac_cv_cxx_fvisibility_inlines=yes, - ac_cv_cxx_fvisibility_inlines=no) - CXXFLAGS="$OLDCXXFLAGS" - AC_LANG_RESTORE - ]) - if test x"$ac_cv_cxx_fvisibility_inlines" = xyes; then - CXXFLAGS="$CXXFLAGS -fvisibility-inlines-hidden" - fi - - if test "x$libdir" != "x/usr/lib" -a "x$libdir" != "x/usr/lib64"; 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" - CAIRODSONAME="libfltk_cairo_s.a" - DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-bexpall,-bM:SRE,-bnoentry -o" - SHAREDSUFFIX="_s" - ;; - cygwin* | mingw*) - PICFLAG=0 - if test x$enable_cygwin != xyes; then - DSONAME="mgwfltknox-$FL_DSO_VERSION.dll" - FLDSONAME="mgwfltknox_forms-$FL_DSO_VERSION.dll" - GLDSONAME="mgwfltknox_gl-$FL_DSO_VERSION.dll" - IMGDSONAME="mgwfltknox_images-$FL_DSO_VERSION.dll" - CAIRODSONAME="mgwfltknox_cairo-$FL_DSO_VERSION.dll" - else - if test x$enable_x11 = xyes; then - DSONAME="cygfltk-$FL_DSO_VERSION.dll" - FLDSONAME="cygfltk_forms-$FL_DSO_VERSION.dll" - GLDSONAME="cygfltk_gl-$FL_DSO_VERSION.dll" - IMGDSONAME="cygfltk_images-$FL_DSO_VERSION.dll" - CAIRODSONAME="cygfltk_cairo-$FL_DSO_VERSION.dll" - else - DSONAME="cygfltknox-$FL_DSO_VERSION.dll" - FLDSONAME="cygfltknox_forms-$FL_DSO_VERSION.dll" - GLDSONAME="cygfltknox_gl-$FL_DSO_VERSION.dll" - IMGDSONAME="cygfltknox_images-$FL_DSO_VERSION.dll" - CAIRODSONAME="cygfltknox_cairo-$FL_DSO_VERSION.dll" - fi - fi - #----------------------------------------------------------- - # -Wl,--enable-runtime-pseudo-reloc: See str 1585 - # appears to be necessary for older binutils versions < 2.16 - #----------------------------------------------------------- - LDFLAGS="$LDFLAGS -Wl,--enable-auto-import -Wl,--enable-runtime-pseudo-reloc" - DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -shared \ - -Wl,--whole-archive -Wl,--export-all-symbols \ - -Wl,--enable-runtime-pseudo-reloc -Wl,--enable-auto-import \ - -Wl,--enable-auto-image-base -o \$@" - ;; - *) - AC_MSG_WARN([Shared libraries may not be supported. Trying -shared option with compiler.]) - DSONAME="libfltk.so.$FL_DSO_VERSION" - FLDSONAME="libfltk_forms.so.$FL_DSO_VERSION" - GLDSONAME="libfltk_gl.so.$FL_DSO_VERSION" - IMGDSONAME="libfltk_images.so.$FL_DSO_VERSION" - CAIRODSONAME="libfltk_cairo.so.$FL_DSO_VERSION" - DSOCOMMAND="\$(CXX) \$(DSOFLAGS) -Wl,-soname,\$@ \$(LDLIBS) -shared $DEBUGFLAG -o" - ;; - esac - - LINKSHARED="-L../src $FLTKCAIROOPTION -lfltk_images$SHAREDSUFFIX -lfltk_forms$SHAREDSUFFIX -lfltk$SHAREDSUFFIX" -else - DSOCOMMAND="echo" - DSOLINK="" - DSONAME="" - FLDSONAME="" - GLDSONAME="" - IMGDSONAME="" - CAIRODSONAME="" - PICFLAG=0 - SHAREDSUFFIX="" - FLUID="fluid" - LINKSHARED="$LINKFLTKCAIRO ../lib/libfltk_images.a ../lib/libfltk_forms.a ../lib/libfltk.a" -fi - -AC_SUBST(DSOCOMMAND) -AC_SUBST(DSOFLAGS) -AC_SUBST(DSOLINK) -AC_SUBST(DSONAME) -AC_SUBST(FLDSONAME) -AC_SUBST(GLDSONAME) -AC_SUBST(IMGDSONAME) -AC_SUBST(CAIRODSONAME) -AC_SUBST(SHAREDSUFFIX) -AC_SUBST(LINKSHARED) -AC_SUBST(FLUID) - -AC_ARG_ENABLE(threads, [ --enable-threads enable multi-threading support [[default=yes]]]) - -AC_ARG_WITH(optim, [ --with-optim="flags" use custom optimization flags]) - -AC_ARG_WITH(archflags, [ --with-archflags="flags" - use custom architecture flags - (possible Mac OS X values include -arch i386, -arch x86_64, -arch ppc)], - ARCHFLAGS="$withval") - -dnl Find commands... -AC_PROG_INSTALL -case $host_os in - osf*) - INSTALL="`pwd`/install-sh -c" - ;; -esac -if test "$INSTALL" = "$ac_install_sh"; then - # Use full path to install-sh script... - INSTALL="`pwd`/install-sh -c" -fi -AC_PATH_PROG(NROFF,nroff) -if test "x$NROFF" = "x:"; then - # Try groff instead of nroff... - AC_PATH_PROG(GROFF,groff) - if test "x$GROFF" = "x:"; then - NROFF="echo" - else - NROFF="$GROFF -T ascii" - fi -fi -AC_PATH_PROG(DOXYDOC,doxygen) - -dnl How do we make libraries? -AC_PROG_RANLIB -AC_PATH_TOOL(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 how to compile (Windows) resource files -dnl this will only be used to compile resources for Windows .exe files -AC_PATH_TOOL(RC,windres) - -dnl Architecture checks... -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 -case $host_os in - darwin*) - ;; - *) - AC_C_BIGENDIAN - - 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 - ;; -esac - -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)) - -dnl Do we have the POSIX compatible scandir() prototype? -AC_CACHE_CHECK([whether we have the POSIX compatible scandir() prototype], - ac_cv_cxx_scandir_posix,[ - AC_LANG_SAVE - AC_LANG_CPLUSPLUS - AC_TRY_COMPILE([ - #include - int func (const char *d, dirent ***list, void *sort) { - int n = scandir(d, list, 0, (int(*)(const dirent **, const dirent **))sort); - } - ],[ - ], ac_cv_cxx_scandir_posix=yes, ac_cv_cxx_scandir_posix=no) - AC_LANG_RESTORE - ]) - -dnl Define both HAVE_SCANDIR... macros, if the POSIX compatible function is -dnl available. Otherwise: check, whether any scandir prototype is available, -dnl but dont use it on SunOS and QNX because of an incompatibility in pre-Y2K -dnl SunOS scandir versions. We assume, though, that the POSIX compatible -dnl version on newer SunOS/Solaris versions works as expected. -if test "$ac_cv_cxx_scandir_posix" = yes; then - AC_DEFINE(HAVE_SCANDIR) - AC_DEFINE(HAVE_SCANDIR_POSIX) -else - AC_CHECK_FUNC(scandir,[ - case $host_os in - solaris* | *qnx*) - AC_MSG_WARN([Not using $host_os scandir emulation function.]) - ;; - *) - AC_DEFINE(HAVE_SCANDIR) - ;; - esac]) -fi - -AC_CHECK_FUNC(vsnprintf,[ - case $host_os in - hpux1020) - AC_MSG_WARN([Not using built-in vsnprintf function because you are running HP-UX 10.20.]) - ;; - osf4) - AC_MSG_WARN([Not using built-in vsnprintf function because you are running Tru64 4.0.]) - ;; - *) - AC_DEFINE(HAVE_VSNPRINTF) - ;; - esac]) -AC_CHECK_FUNC(snprintf,[ - case $host_os in - hpux1020) - AC_MSG_WARN([Not using built-in snprintf function because you are running HP-UX 10.20.]) - ;; - osf4) - AC_MSG_WARN([Not using built-in snprintf function because you are running Tru64 4.0.]) - ;; - *) - 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 != xno; then - LARGEFILE="-D_LARGEFILE_SOURCE -D_LARGEFILE64_SOURCE" - - if test x$ac_cv_sys_large_files = x1; then - LARGEFILE="$LARGEFILE -D_LARGE_FILES" - fi - - if test x$ac_cv_sys_file_offset_bits = x64; 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 - -dnl Check for dlopen/dlsym... -AC_SEARCH_LIBS(dlsym, dl, AC_DEFINE(HAVE_DLSYM)) -AC_CHECK_HEADER(dlfcn.h, AC_DEFINE(HAVE_DLFCN_H)) - -dnl Check for audio libraries... -AUDIOLIBS="" - -case $host_os 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="" -STATICIMAGELIBS="" - -AC_SUBST(IMAGELIBS) -AC_SUBST(STATICIMAGELIBS) - -# Handle the JPEG lib linking mode (use fltk local or system lib) -# If --enable-(resp. --disable-)localjpeg parameter is not set by user -# Then we check the JPEG lib usability, with result in sysjpeglib_ok variable -AC_ARG_ENABLE(localjpeg, [ --enable-localjpeg use local JPEG library [[default=auto]]]) -# Check for System lib use if automatic mode or --disable-localjpeg is requested -sysjpeglib_ok=no -sysjpeginc_ok=no -if test x$enable_localjpeg != xyes; then - AC_CHECK_LIB(jpeg,jpeg_CreateCompress, - [AC_CHECK_HEADER(jpeglib.h, - sysjpeginc_ok=yes) - if test x$sysjpeginc_ok = xyes; then - sysjpeglib_ok=yes - fi]) -fi -# Now set the jpeg lib and include flags according to the requested mode and availability -if test x$enable_localjpeg = xyes -o x$sysjpeglib_ok = xno; then - JPEGINC="-I../jpeg" - JPEG="jpeg" - IMAGELIBS="-lfltk_jpeg $IMAGELIBS" - STATICIMAGELIBS="\$libdir/libfltk_jpeg.a $STATICIMAGELIBS" - AC_DEFINE(HAVE_LIBJPEG) - #ac_cv_lib_jpeg_jpeg_CreateCompress=no # from ima: should not be necessary - # Finally, warn user if system lib was requested but not found - if test x$enable_localjpeg = xno; then - AC_MSG_WARN([Cannot find system jpeg lib or header: choosing the local lib mode.]) - fi -else - JPEGINC="" - JPEG="" - IMAGELIBS="-ljpeg $IMAGELIBS" - STATICIMAGELIBS="-ljpeg $STATICIMAGELIBS" - AC_DEFINE(HAVE_LIBJPEG) -fi - -# Handle the ZLIB lib linking mode (use fltk local or system lib) -# If --enable-(resp. --disable-)localzlib parameter is not set by user -# Then we check the ZLIB lib usability, with result in syszlib_ok variable -AC_ARG_ENABLE(localzlib, [ --enable-localzlib use local ZLIB library [[default=auto]]]) -# Check for System lib use if automatic mode or --disable-localzlib is requested -syszlib_ok=no -syszinc_ok=no -if test x$enable_localzlib != xyes; then - AC_CHECK_LIB(z,gzgets, - [AC_CHECK_HEADER(zlib.h, - syszinc_ok=yes) - if test x$syszinc_ok = xyes; then - syszlib_ok=yes - fi]) -fi -# Now set the Z lib and include flags according to the requested mode and availability -if test x$enable_localzlib = xyes -o x$syszlib_ok = xno ; then - ZLIBINC="-I../zlib" - ZLIB="zlib" - LIBS="-lfltk_z $LIBS" - IMAGELIBS="-lfltk_z $IMAGELIBS" - STATICIMAGELIBS="\$libdir/libfltk_z.a $STATICIMAGELIBS" - AC_DEFINE(HAVE_LIBZ) - ac_cv_lib_z_gzgets=no # fc: is still necessary ? - # Finally, warn user if system lib was requested but not found - if test x$enable_localzlib = xno; then - AC_MSG_WARN([Cannot find system z lib or header: choosing the local lib mode.]) - fi -else - ZLIBINC="" - ZLIB="" - LIBS="-lz $LIBS" - IMAGELIBS="-lz $IMAGELIBS" - STATICIMAGELIBS="-lz $STATICIMAGELIBS" - AC_DEFINE(HAVE_LIBZ) -fi - -# Handle the PNG lib linking mode (use fltk local or system lib) -# If --enable-(resp. --disable-)localpng parameter is not set by user -# Then we check the png lib usability with result in syspng_lib variable -AC_ARG_ENABLE(localpng, [ --enable-localpng use local PNG library [[default=auto]]]) - -# Now check if system lib is usable, we check Lib AND include availability with inc variant, -# but only, if the builtin lib is not requested -syspnglib_ok=no -syspnginc_ok=no -if test x$enable_localpng != xyes; then - AC_CHECK_LIB(png, png_read_info, - [AC_CHECK_HEADER(png.h, - AC_DEFINE(HAVE_PNG_H) - syspnginc_ok=yes) - AC_CHECK_HEADER(libpng/png.h, - AC_DEFINE(HAVE_LIBPNG_PNG_H) - syspnginc_ok=yes) - if test x$syspnginc_ok = xyes; then - syspnglib_ok=yes - fi]) -fi - -# The following is executed if the lib was not found usable or if local lib is required explicitly -if test x$enable_localpng = xyes -o x$syspnglib_ok = xno ; then - PNGINC="-I../png" - PNG="png" - IMAGELIBS="-lfltk_png $IMAGELIBS" - STATICIMAGELIBS="\$libdir/libfltk_png.a $STATICIMAGELIBS" - AC_DEFINE(HAVE_LIBPNG) - AC_DEFINE(HAVE_PNG_H) - AC_DEFINE(HAVE_PNG_GET_VALID) - AC_DEFINE(HAVE_PNG_SET_TRNS_TO_ALPHA) - # Finally, warn user if system lib was requested but not found - if test x$enable_localpng = xno; then - AC_MSG_WARN([Cannot find system png lib or header: choosing the local lib mode.]) - fi -else - PNGINC="" - PNG="" - IMAGELIBS="-lpng $IMAGELIBS" - STATICIMAGELIBS="-lpng $STATICIMAGELIBS" - AC_DEFINE(HAVE_LIBPNG) - AC_CHECK_LIB(png,png_get_valid, AC_DEFINE(HAVE_PNG_GET_VALID)) - AC_CHECK_LIB(png,png_set_tRNS_to_alpha, AC_DEFINE(HAVE_PNG_SET_TRNS_TO_ALPHA)) -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 -PTHREAD_FLAGS="" - -dnl Test whether we want to check for pthreads. We must not do it on Windows -dnl unless we run under Cygwin with --enable-cygwin, since we always use -dnl native threads on Windows (even if libpthread is available) -check_pthread=yes -case $host_os in - mingw*) - check_pthread=no - ;; - cygwin*) - if test "x$enable_cygwin" != xyes; then - check_pthread=no - fi - ;; - *) - ;; -esac - -if test "x$enable_threads" != xno -a x$check_pthread = xyes; then - AC_CHECK_HEADER(pthread.h, AC_DEFINE(HAVE_PTHREAD_H)) - - if test x$ac_cv_header_pthread_h = xyes; then - dnl Check various threading options for the platforms we support - for flag in -lpthreads -lpthread -pthread; do - AC_MSG_CHECKING([for pthread_create using $flag]) - SAVELIBS="$LIBS" - LIBS="$flag $LIBS" - AC_TRY_LINK([#include ], - [pthread_create(0, 0, 0, 0);], - have_pthread=yes, - LIBS="$SAVELIBS") - AC_MSG_RESULT([$have_pthread]) - - if test $have_pthread = yes; then - AC_DEFINE(HAVE_PTHREAD) - PTHREAD_FLAGS="-D_THREAD_SAFE -D_REENTRANT" - - # Solaris requires -D_POSIX_PTHREAD_SEMANTICS to - # be POSIX-compliant... :( - case $host_os in - solaris*) - PTHREAD_FLAGS="$PTHREAD_FLAGS -D_POSIX_PTHREAD_SEMANTICS" - ;; - esac - break - fi - done - fi -fi - -AC_SUBST(PTHREAD_FLAGS) - -dnl Define OS-specific stuff... -HLINKS= -OSX_ONLY=: -THREADS= - -AC_ARG_WITH(links, [ --with-links make header links for common misspellings [[default=no]]]) - -INSTALL_DESKTOP="" -UNINSTALL_DESKTOP="" - -case $host_os_gui in - cygwin* | mingw*) - dnl Cygwin environment, using windows GDI ... - # Recent versions of Cygwin are seriously broken and the size - # checks don't work because the shell puts out \r\n instead of - # \n. Here we just force U32 to be defined to "unsigned"... - AC_DEFINE(U32,unsigned) - CFLAGS="-mwindows -DWIN32 -DUSE_OPENGL32 $CFLAGS" - CXXFLAGS="-mwindows -DWIN32 -DUSE_OPENGL32 $CXXFLAGS" - LDFLAGS="-mwindows $LDFLAGS" - DSOFLAGS="-mwindows $DSOFLAGS" - LIBS="$LIBS -lole32 -luuid -lcomctl32" - #BUILD_GDI="Yes" - BUILD="WIN" - if test "x$with_optim" = x; then - dnl Avoid -Os optimization on Cygwin/MinGW - with_optim="-O3" - fi - - 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" != xno; then - if test x$have_pthread = xyes; then - AC_DEFINE(HAVE_PTHREAD) - fi - fi - - THREADS="threads$EXEEXT" - - # Don't make symlinks since Windows is not case sensitive. - if test "x$with_links" != xyes; then - HLINKS="#" - fi - ;; - - darwin*) - AC_DEFINE(__APPLE_QUARTZ__) - - #USEMMFILES="Yes" - BUILD="OSX" - - # MacOS X uses Cocoa for graphics. - LIBS="$LIBS -framework Cocoa" - - if test x$have_pthread = xyes; then - AC_DEFINE(HAVE_PTHREAD) - THREADS="threads$EXEEXT" - fi - - if test x$enable_gl != xno; then - AC_DEFINE(HAVE_GL) - AC_DEFINE(HAVE_GL_GLU_H) - GLLIB="-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 - - # Some steps are only done for OS X package management - OSX_ONLY= - - # Install/Uninstall FLUID application - INSTALL_DESKTOP="install-osx" - UNINSTALL_DESKTOP="uninstall-osx" - ;; - - *) - # All others are UNIX/X11... - # This includes Cygwin target combined with X11 - if test x$have_pthread = xyes; then - AC_DEFINE(HAVE_PTHREAD) - THREADS="threads$EXEEXT" - 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 -lX11 $X_EXTRA_LIBS" - CFLAGS="$CFLAGS $X_CFLAGS" - CXXFLAGS="$CXXFLAGS $X_CFLAGS" - LDFLAGS="$X_LIBS $LDFLAGS" - DSOFLAGS="$X_LIBS $DSOFLAGS" - AC_DEFINE(USE_X11) - #BUILD_X11="Yes" - BUILD="X11" - 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_LIB(GL, glXGetProcAddressARB, - AC_DEFINE(HAVE_GLXGETPROCADDRESSARB),, -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=yes]]]) - - if test x$enable_xinerama != xno; 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=yes]]]) - - if test x$enable_xft != xno; then - AC_PATH_PROG(FTCONFIG,freetype-config) - - if test "x$FTCONFIG" != x; then - CPPFLAGS="`$FTCONFIG --cflags` $CPPFLAGS" - CFLAGS="`$FTCONFIG --cflags` $CFLAGS" - CXXFLAGS="`$FTCONFIG --cflags` $CXXFLAGS" - - AC_CHECK_LIB(fontconfig, FcPatternCreate) - AC_CHECK_HEADER(X11/Xft/Xft.h, - AC_CHECK_LIB(Xft, XftDrawCreate, - AC_DEFINE(USE_XFT) - #BUILD_XFT="Yes" - BUILD="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=yes]]]) - - if test x$enable_xdbe != xno; then - AC_CHECK_HEADER(X11/extensions/Xdbe.h, AC_DEFINE(HAVE_XDBE),, - [#include ]) - AC_CHECK_LIB(Xext, XdbeQueryExtension, - LIBS="-lXext $LIBS") - fi - - dnl Check for the Xfixes extension unless disabled... - AC_ARG_ENABLE(xfixes, [ --enable-xfixes turn on Xfixes support [[default=yes]]]) - - if test x$enable_xfixes != xno; then - AC_CHECK_HEADER(X11/extensions/Xfixes.h, AC_DEFINE(HAVE_XFIXES),, - [#include ]) - AC_CHECK_LIB(Xfixes, XFixesQueryExtension, - LIBS="-lXfixes $LIBS") - fi - - dnl Check for the Xcursor library unless disabled... - AC_ARG_ENABLE(xcursor, [ --enable-xcursor turn on Xcursor support [[default=yes]]]) - - if test x$enable_xcursor != xno; then - AC_CHECK_HEADER(X11/Xcursor/Xcursor.h, AC_DEFINE(HAVE_XCURSOR),, - [#include ]) - AC_CHECK_LIB(Xcursor, XcursorImageCreate, - LIBS="-lXcursor $LIBS") - fi - - dnl Check for the Xrender library unless disabled... - AC_ARG_ENABLE(xrender, [ --enable-xrender turn on Xrender support [[default=yes]]]) - - if test x$enable_xrender != xno; then - AC_CHECK_HEADER(X11/extensions/Xrender.h, AC_DEFINE(HAVE_XRENDER),, - [#include ]) - AC_CHECK_LIB(Xrender, XRenderQueryVersion, - LIBS="-lXrender $LIBS") - fi - - dnl Check for the X11/Xregion.h header file... - AC_CHECK_HEADER(X11/Xregion.h, AC_DEFINE(HAVE_X11_XREGION_H),, - [#include ]) - - 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, - # but Cygwin in general not. - case $host_os in - cygwin*) - HLINKS="#" - ;; - *) - ;; - esac - # Make symlinks since UNIX/Linux is case sensitive, - # but only if explicitly configured (default=no) - if test "x$with_links" != xyes; 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(OSX_ONLY) -AC_SUBST(THREADS) - -AC_SUBST(INSTALL_DESKTOP) -AC_SUBST(UNINSTALL_DESKTOP) - -AC_SUBST(BUILD) - -dnl Figure out the appropriate formatted man page extension... -case "$host_os" 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=6 - ;; -esac - -AC_SUBST(CAT1EXT) -AC_SUBST(CAT3EXT) -AC_SUBST(CAT6EXT) - -dnl Fix "mandir" variable... -if test "$mandir" = "\${prefix}/man" -a "$prefix" = "/usr"; then - case "$host_os" 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 - -case $host_os in - irix[1-5]*) - ;; - irix*) - if test "$libdir" = "\${exec_prefix}/lib" -a "$exec_prefix" = "\${prefix}" -a "$prefix" = "/usr"; then - libdir="/usr/lib32" - fi - ;; -esac - -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" - - # We know that Carbon is deprecated on OS X 10.4. To avoid hundreds of warnings - # we will temporarily disable 'deprecated' warnings on OS X. - case $host_os in - darwin[1-7]) - ;; - darwin*) - OPTIM="-Wno-deprecated-declarations $OPTIM" - ;; - esac - - # 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 GCC supports -fno-strict-aliasing... - AC_MSG_CHECKING([if GCC supports -fno-strict-aliasing]) - OLDCFLAGS="$CFLAGS" - CFLAGS="$CFLAGS -fno-strict-aliasing" - AC_TRY_COMPILE(,, - OPTIM="$OPTIM -fno-strict-aliasing" - AC_MSG_RESULT([yes]), - AC_MSG_RESULT([no])) - CFLAGS="$OLDCFLAGS" - -dnl Experimental (as of 17 Feb 2015): -dnl Make sure that shared libraries don't have undefined references - # See if ld supports -no-undefined... - AC_MSG_CHECKING([if ld supports -no-undefined]) - OLDLDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -Wl,-no-undefined" - AC_TRY_LINK(,, - [DSOFLAGS="$DSOFLAGS -Wl,-no-undefined"] - AC_MSG_RESULT([yes]), - AC_MSG_RESULT([no])) - LDFLAGS="$OLDLDFLAGS" - - # See if ld supports -Bsymbolic-functions... - AC_MSG_CHECKING([if ld supports -Bsymbolic-functions]) - OLDLDFLAGS="$LDFLAGS" - LDFLAGS="$LDFLAGS -Wl,-Bsymbolic-functions" - AC_TRY_LINK(,, - [DSOFLAGS="$DSOFLAGS -Wl,-Bsymbolic-functions"] - AC_MSG_RESULT([yes]), - AC_MSG_RESULT([no])) - LDFLAGS="$OLDLDFLAGS" - - # See if toolchain supports a sectioned build... - AC_MSG_CHECKING([if toolchain supports sections]) - OLDLDFLAGS="$LDFLAGS" - OLDCFLAGS="$CFLAGS" - LDFLAGS="$LDFLAGS -Wl,-gc-sections" - CFLAGS="$CFLAGS -ffunction-sections -fdata-sections" - AC_TRY_LINK(,, - [DSOFLAGS="$DSOFLAGS -Wl,-gc-sections" - OPTIM="$OPTIM -ffunction-sections -fdata-sections"] - AC_MSG_RESULT([yes]), - AC_MSG_RESULT([no])) - LDFLAGS="$OLDLDFLAGS" - 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... - case $host_os in - solaris*) - 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])) - ;; - esac -else - case "$host_os" 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 - ;; - hpux*) - # 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 $PICFLAG = 1; then - OPTIM="+z $OPTIM" - fi - - CXXFLAGS="$CXXFLAGS +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 - ;; - solaris*) - # 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 via the STR form.. - AC_MSG_WARN([Building FLTK with default compiler optimizations]) - AC_MSG_WARN([Send the FLTK developers your uname and compiler options via http://www.fltk.org/str.php]) - ;; - esac -fi - -OPTIM="$DEBUGFLAG $OPTIM" - -dnl Take archflags away from CFLAGS (makefiles use ARCHFLAGS explicitly) -case $host_os in - darwin*) - if test "x$with_archflags" != x ; then - CFLAGS="`echo $CFLAGS | sed -e "s/$with_archflags//g"`" - fi - ;; -esac - -dnl Define the FLTK documentation directory... -case $host_os in - mingw*) - # Determine the path where MSys has /usr installed - msyspath=`mount | grep '\/usr ' | cut -d ' ' -f -1 | sed -e 's/\\\/\// g'` - # Then substitute that in the WIN32 path instead of /usr - AC_DEFINE_UNQUOTED(FLTK_DOCDIR, "$msyspath/local/share/doc/fltk") - ;; - *) - 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 - ;; -esac - -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 Summarize results of configure tests... -echo "" -echo "Configuration Summary" -echo "-------------------------------------------------------------------------" - -case $host_os_gui in - cygwin* | mingw*) - graphics="GDI" - ;; - darwin*) - graphics="Quartz" - ;; - *) - graphics="X11" - if test x$enable_xft != xno; then - graphics="$graphics+Xft" - fi - if test x$enable_xdbe != xno; then - graphics="$graphics+Xdbe" - fi - if test x$enable_xinerama != xno; then - graphics="$graphics+Xinerama" - fi - ;; -esac - -echo " Directories: prefix=$prefix" -echo " bindir=$bindir" -echo " datadir=$datadir" -echo " datarootdir=$datarootdir" -echo " exec_prefix=$exec_prefix" -echo " includedir=$includedir" -echo " libdir=$libdir" -echo " mandir=$mandir" -case $host_os in - mingw*) - echo " MSys docpath=$msyspath/local/share/doc/fltk" - ;; -esac -echo " Graphics: $graphics" - -if test x$JPEG = x; then - echo "Image Libraries: JPEG=System" -else - echo "Image Libraries: JPEG=Builtin" -fi -if test x$PNG = x; then - echo " PNG=System" -else - echo " PNG=Builtin" -fi -if test x$ZLIB = x; then - echo " ZLIB=System" -else - echo " ZLIB=Builtin" -fi -if test x$enable_cairo = xyes; then - echo " CAIRO=lib" -fi -if test x$enable_cairoext = xyes; then - echo " CAIRO=internal_use" -fi - - -if test x$enable_largefile != xno; then - echo " Large Files: YES" -else - echo " Large Files: NO" -fi - -if test x$GLDEMOS = x; then - echo " OpenGL: NO" -else - echo " OpenGL: YES" -fi - -if test x$THREADS = x; then - echo " Threads: NO" -else - echo " Threads: YES" -fi - -dnl Set empty BINARY_DIR variable for fltk-config.in (CMake compatibility) -BINARY_DIR= -AC_SUBST(BINARY_DIR) - -dnl Write all of the files... -AC_CONFIG_HEADER(config.h:configh.in) -AC_CONFIG_HEADER(FL/abi-version.h:abi-version.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 -- cgit v1.2.3