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.
291 lines
7.0 KiB
291 lines
7.0 KiB
dnl Process this file with 'autoconf' to produce a 'configure' script
|
|
dnl $Id: configure.in 409 2004-07-06 19:22:39Z garland $
|
|
|
|
AC_REVISION($Revision: 1.19 $)
|
|
AC_INIT(include/gfx/gfx.h)
|
|
AC_CONFIG_HEADER(include/gfx/config.h)
|
|
|
|
sys=`uname`
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
dnl --
|
|
dnl -- Handle command line options
|
|
dnl --
|
|
|
|
AC_ARG_WITH(libtiff-lzw,
|
|
[ --with-libtiff-lzw Use the libtiff LZW compression kit],
|
|
AC_DEFINE(HAVE_LIBTIFF_LZW))
|
|
|
|
AC_ARG_WITH(local,
|
|
[ --with-local[=DIR] Use libraries in DIR (default /usr/local)],
|
|
[if test $withval = "yes"; then withval="/usr/local"; fi
|
|
CPPFLAGS="-I${withval}/include"
|
|
LDFLAGS="-L${withval}/lib"])
|
|
|
|
AC_ARG_ENABLE(gzstream,
|
|
[ --enable-gzstream Allow for automatic (de)compression])
|
|
|
|
if test "$enable_gzstream" = "yes"; then
|
|
AC_DEFINE(HAVE_GZSTREAM)
|
|
fi
|
|
|
|
AC_ARG_ENABLE(warnings,
|
|
[ --disable-warnings Disable GCC warning (default to on)],
|
|
[],
|
|
[enable_warnings="yes"])
|
|
|
|
case $sys in
|
|
CYGWIN*|cygwin*)
|
|
AC_ARG_ENABLE(cygwin,
|
|
[ --enable-cygwin Use the Cygwin libraries (default=yes)])
|
|
|
|
if test "$enable_cygwin" = "no"; then
|
|
CFLAGS="$CFLAGS -mno-cygwin"
|
|
CPPFLAGS="$CPPFLAGS -mno-cygwin"
|
|
CXXFLAGS="$CXXFLAGS -mno-cygwin"
|
|
fi
|
|
;;
|
|
esac
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
dnl --
|
|
dnl -- Check for programs that the build process needs
|
|
dnl --
|
|
|
|
AC_PROG_CC
|
|
AC_PROG_CPP
|
|
AC_PROG_CXX
|
|
AC_PROG_CXXCPP
|
|
AC_PROG_RANLIB
|
|
AC_LANG_CPLUSPLUS
|
|
AC_PATH_PROG(RM, rm)
|
|
AC_CHECK_PROG(FLTKCONFIG, fltk-config, fltk-config, :)
|
|
|
|
dnl -- It might be good to write a more thorough test here
|
|
if test $GCC = "yes"; then
|
|
CC_DEPEND="\$(CC) -M"
|
|
CXX_DEPEND="\$(CXX) -M"
|
|
else
|
|
CC_DEPEND="makedepend"
|
|
CXX_DEPEND="makedepend"
|
|
fi
|
|
|
|
AC_SUBST(CC_DEPEND)
|
|
AC_SUBST(CXX_DEPEND)
|
|
|
|
dnl -- If we're using GCC, turn on warnings unless disabled
|
|
if test $GCC = "yes" -a "$enable_warnings" = "yes"; then
|
|
warning="-Wall -Wno-sign-compare"
|
|
CPPFLAGS="$CPPFLAGS $warning"
|
|
fi
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
dnl --
|
|
dnl -- Check for libraries
|
|
dnl --
|
|
|
|
AC_CHECK_LIB(m, sqrt)
|
|
|
|
dnl -- Save the basic (non-GUI) compilation configuration
|
|
BASE_LIBS=${LIBS}
|
|
BASE_CFLAGS=${CFLAGS}
|
|
BASE_CXXFLAGS=${CXXFLAGS}
|
|
BASE_LDFLAGS=${LDFLAGS}
|
|
|
|
IMG_LIBS=""
|
|
AC_SUBST(IMG_LIBS)
|
|
|
|
|
|
dnl -- We pass IMG_LIBS as need libraries to these check because libtiff
|
|
dnl -- can be compiled to use both libz and libjpeg.
|
|
|
|
AC_CHECK_LIB(z, zlibVersion, AC_DEFINE(HAVE_LIBZ) \
|
|
IMG_LIBS="$IMG_LIBS -lz", , $IMG_LIBS)
|
|
|
|
AC_CHECK_LIB(jpeg, jpeg_start_compress, AC_DEFINE(HAVE_LIBJPEG) \
|
|
IMG_LIBS="$IMG_LIBS -ljpeg", , $IMG_LIBS)
|
|
|
|
AC_CHECK_LIB(tiff, TIFFOpen, AC_DEFINE(HAVE_LIBTIFF) \
|
|
IMG_LIBS="$IMG_LIBS -ltiff", , $IMG_LIBS)
|
|
|
|
AC_CHECK_LIB(png, png_read_image, AC_DEFINE(HAVE_LIBPNG) \
|
|
IMG_LIBS="$IMG_LIBS -lpng", , $IMG_LIBS)
|
|
|
|
dnl -- Check for OpenGL headers and libraries
|
|
|
|
AC_CHECK_HEADERS([GL/gl.h OpenGL/gl.h], [break])
|
|
AC_CHECK_HEADERS([GL/glu.h OpenGL/glu.h], [break])
|
|
|
|
dnl -- OpenGL Extension headers
|
|
AC_CHECK_HEADERS(GL/glext.h GL/glxext.h GL/wglext.h OpenGL/glext.h,
|
|
[], [],
|
|
[#if HAVE_GL_GL_H
|
|
#include <GL/gl.h>
|
|
#elif HAVE_OPENGL_GL_H
|
|
#include <OpenGL/gl.h>
|
|
#endif
|
|
])
|
|
|
|
case $sys in
|
|
|
|
Darwin*)
|
|
AC_DEFINE(HAVE_OPENGL, "OpenGL")
|
|
AC_DEFINE(HAVE_POLYOFFSET)
|
|
GL_LIBS="-framework AGL -framework OpenGL"
|
|
X_CORE="-framework Carbon -framework ApplicationServices"
|
|
X_DCORE="$X_CORE"
|
|
X_PRE_LIBS=""
|
|
X_EXTRA_LIBS=""
|
|
|
|
AC_SUBST(X_CFLAGS)
|
|
AC_SUBST(X_LIBS)
|
|
AC_SUBST(X_PRE_LIBS)
|
|
AC_SUBST(X_EXTRA_LIBS)
|
|
;;
|
|
|
|
CYGWIN*|cygwin*)
|
|
CPPFLAGS="${CPPFLAGS} -DWIN32"
|
|
AC_DEFINE(HAVE_OPENGL, "OpenGL")
|
|
AC_DEFINE(HAVE_POLYOFFSET)
|
|
GL_LIBS="-lopengl32 -lglu32"
|
|
X_DCORE="-lkernel32 -luser32 -lgdi32 -lcomdlg32 -lole32 -luuid -lcomctl32 -lwsock32"
|
|
X_CORE="-mwindows -lole32 -luuid -lcomctl32 -lwsock32"
|
|
|
|
X_PRE_LIBS=""
|
|
X_EXTRA_LIBS=""
|
|
|
|
AC_SUBST(X_CFLAGS)
|
|
AC_SUBST(X_LIBS)
|
|
AC_SUBST(X_PRE_LIBS)
|
|
AC_SUBST(X_EXTRA_LIBS)
|
|
;;
|
|
|
|
*)
|
|
AC_PATH_XTRA
|
|
CFLAGS="${CFLAGS} ${X_CFLAGS}"
|
|
CXXFLAGS="${CXXFLAGS} ${X_CFLAGS}"
|
|
LIBS="${X_PRE_LIBS} -lX11 ${X_EXTRA_LIBS} ${LIBS}"
|
|
LDFLAGS="${LDFLAGS} ${X_LIBS}"
|
|
|
|
X_CORE="-lX11 -lXext"
|
|
X_DCORE="$X_CORE"
|
|
|
|
glneeds="$X_CORE $X_EXTRA_LIBS"
|
|
|
|
AC_CHECK_LIB(GL, glBegin, \
|
|
AC_DEFINE(HAVE_OPENGL, "OpenGL") GL_LIBS="-lGL -lGLU", \
|
|
AC_CHECK_LIB(MesaGL, glBegin, \
|
|
[AC_DEFINE(HAVE_OPENGL, "Mesa")
|
|
GL_LIBS="-lMesaGL -lMesaGLU"], ,$glneeds),$glneeds)
|
|
|
|
LIBS="${GL_LIBS} $glneeds"
|
|
|
|
dnl -- Check for OpenGL extensions
|
|
AC_CHECK_FUNC(glPolygonOffset, AC_DEFINE(HAVE_POLYOFFSET))
|
|
AC_CHECK_FUNC(glPolygonOffsetEXT, AC_DEFINE(HAVE_POLYOFFSET_EXT))
|
|
;;
|
|
esac
|
|
|
|
AC_SUBST(X_CORE)
|
|
AC_SUBST(X_DCORE)
|
|
AC_SUBST(GL_LIBS)
|
|
|
|
dnl -- Check for FLTK
|
|
dnl We use custom AC_TRY_LINK tests because AC_CHECK_LIB can't really
|
|
dnl properly handle C++ name mangling.
|
|
|
|
FLTK_LIBS="-lfltk"
|
|
|
|
AC_MSG_CHECKING(for FLTK library)
|
|
save_libs=$LIBS
|
|
LIBS="$FLTK_LIBS $X_CORE $LIBS"
|
|
AC_TRY_LINK(
|
|
[#include <FL/Fl.H>],
|
|
[Fl::run();],
|
|
[AC_DEFINE(HAVE_FLTK)
|
|
AC_MSG_RESULT(yes)],
|
|
[AC_MSG_RESULT(no)
|
|
FLTK_LIBS=""])
|
|
LIBS=$save_libs
|
|
|
|
AC_MSG_CHECKING(for FLTK GL support)
|
|
save_libs=$LIBS
|
|
LIBS="$FLTK_LIBS $GL_LIBS $X_CORE $LIBS"
|
|
AC_TRY_LINK(
|
|
[#include <FL/Fl.H>
|
|
#include <FL/Fl_Gl_Window.H>],
|
|
[Fl_Gl_Window win(640,480);],
|
|
[AC_DEFINE(HAVE_FLTK_GL)
|
|
AC_MSG_RESULT(in libfltk)],
|
|
[FLTK_LIBS="-lfltk_gl $FLTK_LIBS"
|
|
LIBS="$FLTK_LIBS $GL_LIBS $X_CORE $save_libs"
|
|
AC_TRY_LINK(
|
|
[#include <FL/Fl.H>
|
|
#include <FL/Fl_Gl_Window.H>],
|
|
[Fl_Gl_Window win(640,480);],
|
|
[AC_DEFINE(HAVE_FLTK_GL)
|
|
AC_MSG_RESULT(in libfltk_gl)],
|
|
[FLTK_LIBS="-lfltk"
|
|
AC_MSG_RESULT(no)])])
|
|
|
|
LIBS=$save_libs
|
|
AC_SUBST(FLTK_LIBS)
|
|
|
|
dnl -- Restore non-GUI compilation settings
|
|
LIBS=${BASE_LIBS}
|
|
CFLAGS=${BASE_CFLAGS}
|
|
CXXFLAGS=${BASE_CXXFLAGS}
|
|
LDFLAGS=${BASE_LDFLAGS}
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
dnl --
|
|
dnl -- Check for header files that we'll need
|
|
dnl --
|
|
|
|
AC_HEADER_STDC
|
|
AC_CHECK_HEADERS(limits.h)
|
|
AC_CHECK_HEADERS(unistd.h)
|
|
|
|
|
|
dnl -- STL headers that aren't always available
|
|
AC_CHECK_HEADERS(hash_map)
|
|
AC_CHECK_HEADERS(hash_set)
|
|
AC_CHECK_HEADERS(ext/hash_map)
|
|
AC_CHECK_HEADERS(ext/hash_set)
|
|
AC_CHECK_HEADERS(valarray)
|
|
AC_CHECK_HEADERS(sstream)
|
|
AC_CHECK_HEADERS(strstream)
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
dnl --
|
|
dnl -- Check for typedefs, declarations, and compiler characteristics
|
|
dnl --
|
|
|
|
AC_C_CONST
|
|
AC_C_INLINE
|
|
|
|
AC_MSG_CHECKING(for type bool)
|
|
AC_TRY_COMPILE([],
|
|
[bool x; x;],
|
|
[AC_MSG_RESULT(yes)
|
|
AC_DEFINE(HAVE_BOOL)],
|
|
AC_MSG_RESULT(no))
|
|
|
|
|
|
AC_FUNC_ALLOCA
|
|
AC_CHECK_FUNCS(rint getrusage times random getopt getopt_long)
|
|
|
|
dnl ----------------------------------------------------------------------
|
|
dnl --
|
|
dnl -- Wrap up and write the results
|
|
dnl --
|
|
|
|
ROOT=`pwd`
|
|
|
|
CPPFLAGS="$CPPFLAGS -I${ROOT}/include -DHAVE_CONFIG_H"
|
|
CFLAGS="$BASE_CFLAGS $CPPFLAGS"
|
|
CXXFLAGS="$BASE_CXXFLAGS $CPPFLAGS"
|
|
LDFLAGS="$BASE_LDFLAGS -L${ROOT}/src"
|
|
|
|
AC_OUTPUT(gfx-config)
|