292 lines
7.5 KiB
Plaintext
292 lines
7.5 KiB
Plaintext
dnl Process this file with autoconf to produce a configure script.
|
|
AC_INIT(OpenEXR_Viewers, 2.2.0)
|
|
AC_SUBST(OPENEXR_VIEWERS_VERSION, 2.2.0)
|
|
AC_CANONICAL_HOST
|
|
AC_CONFIG_SRCDIR(playexr/main.cpp)
|
|
AM_CONFIG_HEADER(config/OpenEXR_ViewersConfig.h)
|
|
AM_INIT_AUTOMAKE(1.6.3) dnl Require automake 1.6.3 or better
|
|
AM_MAINTAINER_MODE
|
|
|
|
|
|
LIBTOOL_CURRENT=6
|
|
LIBTOOL_REVISION=1
|
|
LIBTOOL_AGE=0
|
|
LIBTOOL_VERSION=$LIBTOOL_CURRENT:$LIBTOOL_REVISION:$LIBTOOL_AGE
|
|
AC_SUBST(LIBTOOL_VERSION)
|
|
|
|
dnl Checks for programs.
|
|
AC_PROG_CXX
|
|
AC_PROG_INSTALL
|
|
AC_PROG_CC
|
|
AC_PROG_LN_S
|
|
AC_PROG_LIBTOOL
|
|
AC_PROG_MAKE_SET
|
|
|
|
dnl
|
|
dnl PKGCONFIG preparations
|
|
dnl
|
|
|
|
if test -z "${PKG_CONFIG_PATH}"; then
|
|
PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
|
|
fi
|
|
|
|
export PKG_CONFIG_PATH
|
|
|
|
LIB64_IF_EXISTS=""
|
|
if [[ -e /usr/lib64 ]]; then
|
|
LIB64_IF_EXISTS="-L/usr/lib64"
|
|
fi
|
|
|
|
AC_MSG_RESULT([LIB64_IF_EXISTS ... $LIB64_IF_EXISTS])
|
|
|
|
|
|
dnl
|
|
dnl get ccflags and libs from openexr and ctl packages
|
|
dnl
|
|
|
|
dnl
|
|
dnl get ccflags and libs from other packages in use and check
|
|
dnl whether test programs compile.
|
|
dnl OpenEXR is required. If OpenEXR_CTL is optional. If it is present,
|
|
dnl the viewer will use ctl. The compile flag HAVE_CTL_INTERPRETER is set
|
|
dnl to 1 if ctl is in use.
|
|
|
|
dnl
|
|
dnl check openexr
|
|
dnl
|
|
AM_PATH_PKGCONFIG(
|
|
[OPENEXR_CXXFLAGS],
|
|
[OPENEXR_LDFLAGS],
|
|
[OPENEXR_LIBS],
|
|
[OpenEXR],
|
|
[OpenEXR],
|
|
[$LIB64_IF_EXISTS -L/usr/local/lib],
|
|
[-lIlmImf -lImath -lIex -lHalf -lz -lpthread],
|
|
[openexr-prefix])
|
|
|
|
dnl
|
|
dnl check optional OpenexrCTL (see comment above)
|
|
dnl
|
|
AM_PATH_PKGCONFIG(
|
|
[OPENEXR_CTL_CXXFLAGS],
|
|
[OPENEXR_CTL_LDFLAGS],
|
|
[OPENEXR_CTL_LIBS],
|
|
[OpenEXR_CTL],
|
|
[OpenEXR CTL],
|
|
[$LIB64_IF_EXISTS -L/usr/local/lib],
|
|
[-lIlmImfCtl -lIlmImf -lz -lImath -lHalf -lIex -lIlmThread -lpthread -lIlmCtlSimd -lIlmCtlMath -lIlmCtl],
|
|
[openexrctl-prefix])
|
|
|
|
|
|
dnl --enable-threading
|
|
AC_ARG_ENABLE(threading,
|
|
AC_HELP_STRING([--enable-threading],
|
|
[enable multi-threading [[default=yes]]]),
|
|
[multithread="${enableval}"], [multithread=yes])
|
|
|
|
if test x$PKG_CONFIG == xno && test "x${multithread}" != xno ; then
|
|
ACX_PTHREAD(
|
|
[
|
|
AC_DEFINE(HAVE_PTHREAD)
|
|
OPENEXR_LIBS="$PTHREAD_LIBS $OPENEXR_LIBS"
|
|
OPENEXR_CXXFLAGS="$OPENEXR_CXXFLAGS $PTHREAD_CFLAGS"
|
|
OPENEXR_CTL_LIBS="$PTHREAD_LIBS $OPENEXR_CTL_LIBS"
|
|
OPENEXR_CTL_CXXFLAGS="$OPENEXR_CTL_CXXFLAGS $PTHREAD_CFLAGS"
|
|
CC="$PTHREAD_CC"
|
|
|
|
AM_POSIX_SEM()
|
|
],
|
|
[AC_MSG_ERROR([POSIX thread support required])])
|
|
AC_MSG_NOTICE([multithread true, LIBS = $LIBS, CC = $CC, CXXFLAGS = $CXXFLAGS])
|
|
fi
|
|
|
|
|
|
AM_COMPILELINKRUN(
|
|
[OpenEXR],
|
|
[openexrtest],
|
|
[$OPENEXR_CXXFLAGS],
|
|
[$OPENEXR_LDFLAGS],
|
|
[$OPENEXR_LIBS],[[
|
|
#include <stdlib.h>
|
|
#include <ImfTestFile.h>
|
|
#include <ImfNamespace.h>
|
|
]],
|
|
[[OPENEXR_IMF_NAMESPACE::isOpenExrFile("notExist");]],
|
|
AC_MSG_RESULT([Compiled and ran OpenEXR test program.]),
|
|
AC_MSG_ERROR([Could not compile OpenEXR test program.]))
|
|
|
|
|
|
|
|
AM_COMPILELINKRUN(
|
|
[OpenEXR_CTL],
|
|
[openexrctltest],
|
|
[$OPENEXR_CTL_CXXFLAGS],
|
|
[$OPENEXR_CTL_LDFLAGS],
|
|
[$OPENEXR_CTL_LIBS],[[
|
|
#include <ImfCtlApplyTransforms.h>
|
|
#include <CtlSimdInterpreter.h>
|
|
#include <ImfHeader.h>
|
|
#include <ImfFrameBuffer.h>
|
|
#include <ImathBox.h>
|
|
#include <ImfNamespace.h>
|
|
#include <vector>
|
|
#include <cstdlib>
|
|
using namespace Ctl;
|
|
using namespace OPENEXR_IMF_NAMESPACE;
|
|
using namespace Imath;
|
|
]],
|
|
[[
|
|
SimdInterpreter interpreter;
|
|
std::vector<std::string> transformNames;
|
|
Box2i transformWindow (V2i (0, 0), V2i (0, 0));
|
|
Header envHeader;
|
|
Header inHeader;
|
|
Header outHeader;
|
|
FrameBuffer inFb;
|
|
FrameBuffer outFb;
|
|
|
|
ImfCtl::applyTransforms (interpreter, transformNames, transformWindow,
|
|
envHeader, inHeader, inFb, outHeader, outFb);
|
|
]],
|
|
AC_MSG_RESULT([Compiled and ran OpenEXR_CTL test program.]); have_ctl=yes,
|
|
AC_MSG_RESULT([The OpenEXR_CTL package could not be found. Will build and install playexr and exrdisplay without ctl support. ]); have_ctl=no)
|
|
|
|
|
|
|
|
dnl
|
|
dnl if some autoconf expert knows how to get the actual prefix used, please
|
|
dnl tell us. Until then...
|
|
dnl
|
|
if test "x$prefix" != "xNONE"; then
|
|
ACTUAL_PREFIX=$prefix
|
|
else
|
|
ACTUAL_PREFIX=/usr/local
|
|
fi
|
|
|
|
|
|
|
|
[if (test "${have_ctl}" = yes) ; then
|
|
OPENEXR_CTL_CXXFLAGS="$OPENEXR_CTL_CXXFLAGS -DHAVE_CTL_INTERPRETER=1 -DCTL_MODULE_BASE_PATH=\\\"$ACTUAL_PREFIX/lib/CTL\\\""
|
|
else
|
|
OPENEXR_CTL_CXXFLAGS="-DHAVE_CTL_INTERPRETER=0 $OPENEXR_CXXFLAGS"
|
|
OPENEXR_CTL_LIBS="-DHAVE_CTL_INTERPRETER=0 $OPENEXR_LIBS"
|
|
OPENEXR_CTL_LDFLAGS="-DHAVE_CTL_INTERPRETER=0 $OPENEXR_LDFLAGS"
|
|
fi]
|
|
|
|
dnl
|
|
dnl These are already shared by AM_PATH_PKGCONFIG... now we update them
|
|
dnl with the latest changes
|
|
AC_SUBST(OPENEXR_CTL_CXXFLAGS)
|
|
AC_SUBST(OPENEXR_CTL_LDFLAGS)
|
|
AC_SUBST(OPENEXR_CTL_LIBS)
|
|
|
|
|
|
dnl
|
|
dnl check for alternate OpenGL headers
|
|
dnl
|
|
AM_PATH_GL(,)
|
|
|
|
dnl
|
|
dnl check for FLTK
|
|
dnl
|
|
AM_PATH_FLTK(have_fltk=yes, have_fltk=no)
|
|
|
|
dnl
|
|
dnl check for Cg
|
|
dnl
|
|
if test "${have_fltk}" = yes; then
|
|
AM_PATH_CG(have_cg=yes, have_cg=no)
|
|
if test "${have_cg}" = yes; then
|
|
AC_DEFINE(HAVE_FRAGMENT_SHADERS)
|
|
fi
|
|
else have_cg=no
|
|
fi
|
|
|
|
|
|
dnl Checks for header files.
|
|
AC_HEADER_STDC
|
|
AC_CHECK_HEADERS(limits.h unistd.h)
|
|
|
|
dnl Checks for typedefs, structures, and compiler characteristics.
|
|
AC_C_CONST
|
|
AC_C_INLINE
|
|
AC_TYPE_SIZE_T
|
|
|
|
dnl gcc optimization
|
|
AC_MSG_CHECKING(for gcc optimization flags)
|
|
old_cflags=$CFLAGS
|
|
CFLAGS="$CFLAGS -pipe"
|
|
AC_TRY_COMPILE([#include <stdio.h>],
|
|
[ printf ("hello, world"); ],
|
|
[ EXTRA_OPT_CFLAGS="-pipe"],[ EXTRA_OPT_CFLAGS=""])
|
|
CFLAGS=$old_cflags
|
|
AC_MSG_RESULT([$EXTRA_OPT_CFLAGS])
|
|
|
|
dnl Platform-specific stuff
|
|
case "$host" in
|
|
*darwin*)
|
|
AC_DEFINE(HAVE_DARWIN)
|
|
|
|
dnl OS X universal binary support, requires --disable-dependency-tracking
|
|
AC_ARG_ENABLE(osx-universal-binaries,
|
|
AC_HELP_STRING([--enable-osx-universal-binaries],
|
|
[build universal binaries on OS X [[default=no]]]),
|
|
[build_osxuniversal="${enableval}"], [build_osxuniversal=no])
|
|
|
|
if test "${build_osxuniversal}" != no ; then
|
|
if test "$enable_dependency_tracking" != no ; then
|
|
AC_MSG_ERROR([--enable-osx-universal-binary requires --disable-dependency-tracking.
|
|
Please re-run configure with these options:
|
|
--disable-dependency-tracking --enable-osx-universal-binary
|
|
])
|
|
fi
|
|
CXXFLAGS="$CXXFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386"
|
|
dnl LDFLAGS="$LDFLAGS -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386"
|
|
fi
|
|
|
|
CXXFLAGS="$CXXFLAGS"
|
|
;;
|
|
esac
|
|
|
|
AM_CFLAGS="$EXTRA_OPT_CFLAGS"
|
|
AM_CXXFLAGS="$EXTRA_OPT_CFLAGS"
|
|
|
|
AC_SUBST(AM_CFLAGS)
|
|
AC_SUBST(AM_CXXFLAGS)
|
|
|
|
AM_CONDITIONAL(HAVE_FLTK, test "x$have_fltk" = xyes)
|
|
AM_CONDITIONAL(HAVE_CG, test "x$have_cg" = xyes)
|
|
AM_CONDITIONAL(HAVE_CTL, test "x$have_ctl" = xyes)
|
|
|
|
AC_OUTPUT([
|
|
Makefile
|
|
config/Makefile
|
|
exrdisplay/Makefile
|
|
playexr/Makefile
|
|
doc/Makefile
|
|
])
|
|
|
|
if test "x$build_osxuniversal" = xyes; then
|
|
AC_MSG_RESULT([
|
|
---------------------------------------------
|
|
Summary for OpenEXR features:
|
|
|
|
build exrdisplay FLTK application $have_fltk
|
|
with fragment shader support $have_cg
|
|
ctl support $have_ctl
|
|
build OS X universal binaries $build_osxuniversal
|
|
---------------------------------------------
|
|
])
|
|
else
|
|
AC_MSG_RESULT([
|
|
---------------------------------------------
|
|
Summary for OpenEXR features:
|
|
|
|
build exrdisplay FLTK application $have_fltk
|
|
with fragment shader support $have_cg
|
|
ctl support $have_ctl
|
|
---------------------------------------------
|
|
])
|
|
fi
|
|
|