1dnl
2dnl SPDX-License-Identifier: BSD-3-Clause
3dnl Copyright (c) Contributors to the OpenEXR Project.
4dnl
5
6dnl Process this file with autoconf to produce a configure script.
7AC_INIT(DtexToExr, 1.0.0)
8AC_SUBST(DTEXTOEXR_VERSION, 1.0.0)
9AC_CANONICAL_HOST
10AC_CONFIG_SRCDIR(DtexToExr.cpp)
11AM_INIT_AUTOMAKE(1.6.3)  dnl Require automake 1.6.3 or better
12AM_MAINTAINER_MODE
13
14
15LIBTOOL_CURRENT=6
16LIBTOOL_REVISION=0
17LIBTOOL_AGE=0
18LIBTOOL_VERSION=$LIBTOOL_CURRENT:$LIBTOOL_REVISION:$LIBTOOL_AGE
19AC_SUBST(LIBTOOL_VERSION)
20
21dnl Checks for programs.
22AC_PROG_CXX
23AC_PROG_INSTALL
24AC_PROG_CC
25AC_PROG_LN_S
26AC_PROG_LIBTOOL
27AC_PROG_MAKE_SET
28
29dnl
30dnl PKGCONFIG preparations
31dnl
32
33if test -z "${PKG_CONFIG_PATH}"; then
34	PKG_CONFIG_PATH=/usr/local/lib64/pkgconfig:/usr/local/lib/pkgconfig:/usr/lib/pkgconfig
35fi
36
37export PKG_CONFIG_PATH
38
39LIB64_IF_EXISTS=""
40if [[ -e /usr/lib64 ]]; then
41   LIB64_IF_EXISTS="-L/usr/lib64"
42fi
43
44
45dnl
46dnl get ccflags and libs from openexr and prmansdk packages
47dnl
48
49dnl
50dnl get ccflags and libs from other packages in use and check
51dnl whether test programs compile.
52dnl OpenEXR is required. IlmBase is required.
53dnl
54
55dnl
56dnl check openexr
57dnl
58AM_PATH_PKGCONFIG(
59   [OPENEXR_CXXFLAGS],
60   [OPENEXR_LDFLAGS],
61   [OPENEXR_LIBS],
62   [OpenEXR],
63   [OpenEXR],
64   [$LIB64_IF_EXISTS -L/usr/local/lib],
65   [-lOpenEXR -lImath -lIex -lHalf -lz -lpthread],
66   [openexr-prefix])
67
68
69PRMANSDK_CXXFLAGS=""
70PRMANSDK_LDFLAGS=""
71PRMANSDK_LIBS=""
72PRMANSDK_LIBNAME="prman"
73
74AC_ARG_WITH(
75   [prmansdk-include-dir],
76   [AS_HELP_STRING([--with-prmansdk-include-dir],
77   [prman sdk include directory])],
78   [PRMANSDK_CXXFLAGS="-I$withval"])
79
80AC_ARG_WITH(
81   [prmansdk-lib-dir],
82   [AS_HELP_STRING([--with-prmansdk-lib-dir],
83   [prman sdk library directory])],
84   [PRMANSDK_LDFLAGS="-L$withval -Wl,-rpath $withval"])
85
86AC_ARG_WITH(
87   [prmansdk-libname],
88   [AS_HELP_STRING([--with-prmansdk-libname],
89   [prman sdk library name (default:prman)])],
90   [PRMANSDK_LIBNAME="$withval"])
91
92PRMANSDK_LIBS="-l$PRMANSDK_LIBNAME"
93
94export PRMANSDK_CXXFLAGS
95export PRMANSDK_LDFLAGS
96export PRMANSDK_LIBS
97export PRMANSDK_LIBNAME
98
99AC_SUBST([PRMANSDK_CXXFLAGS])
100AC_SUBST([PRMANSDK_LDFLAGS])
101AC_SUBST([PRMANSDK_LIBS])
102AC_SUBST([PRMANSDK_LIBNAME])
103
104CXXFLAGS="$CXXFLAGS $PRMANSDK_CXXFLAGS $OPENEXR_CXXFLAGS"
105LDFLAGS="$LDFLAGS $PRMANSDK_LDFLAGS $OPENEXR_LDFLAGS"
106
107dnl
108dnl OpenEXR test program
109dnl
110
111AM_COMPILELINKRUN(
112   [OpenEXR],
113   [openexrtest],
114   [$OPENEXR_CXXFLAGS],
115   [$OPENEXR_LDFLAGS],
116   [$OPENEXR_LIBS],[[
117#include <stdlib.h>
118#include <ImfTestFile.h>
119#include <OpenEXRConfig.h>
120]],
121   [[OPENEXR_IMF_NAMESPACE::isOpenExrFile("notExist");]],
122   AC_MSG_RESULT([Compiled and ran OpenEXR test program.]),
123   AC_MSG_ERROR([Could not compile OpenEXR test program.]))
124
125dnl
126dnl Dtex test program
127dnl
128
129AM_COMPILELINKRUN(
130   [PrmanSDK],
131   [prmansdktest],
132   [$PRMANSDK_CXXFLAGS],
133   [$PRMANSDK_LDFLAGS],
134   [$PRMANSDK_LIBS],
135[[
136#include <stdio.h>
137#include <stdlib.h>
138#include <dtex.h>
139]],
140[[
141DtexCache* dtexCache = DtexCreateCache( 10000, NULL );
142if ( dtexCache ) { DtexDestroyCache( dtexCache ); }
143]],
144   AC_MSG_RESULT([Compiled and ran PrmanSDK test program.]),
145   AC_MSG_ERROR([Could not compile PrmanSDK test program.]))
146
147
148dnl
149dnl if some autoconf expert knows how to get the actual prefix used, please
150dnl tell us.  Until then...
151dnl
152if test "x$prefix" != "xNONE"; then
153   ACTUAL_PREFIX=$prefix
154else
155   ACTUAL_PREFIX=/usr/local
156fi
157
158dnl Checks for header files.
159AC_HEADER_STDC
160AC_CHECK_HEADERS(limits.h unistd.h)
161
162dnl Checks for typedefs, structures, and compiler characteristics.
163AC_C_CONST
164AC_C_INLINE
165AC_TYPE_SIZE_T
166
167dnl gcc optimization
168AC_MSG_CHECKING(for gcc optimization flags)
169old_cflags=$CFLAGS
170CFLAGS="$CFLAGS -pipe"
171AC_TRY_COMPILE([#include <stdio.h>],
172[ printf ("hello, world"); ],
173[ EXTRA_OPT_CFLAGS="-pipe"],[ EXTRA_OPT_CFLAGS=""])
174CFLAGS=$old_cflags
175AC_MSG_RESULT([$EXTRA_OPT_CFLAGS])
176
177dnl Platform-specific stuff
178case "$host" in
179*darwin*)
180  AC_DEFINE(HAVE_DARWIN)
181
182  dnl OS X universal binary support, requires --disable-dependency-tracking
183  AC_ARG_ENABLE(osx-universal-binaries,
184	      AC_HELP_STRING([--enable-osx-universal-binaries],
185			     [build universal binaries on OS X [[default=no]]]),
186	      [build_osxuniversal="${enableval}"], [build_osxuniversal=no])
187
188  if test "${build_osxuniversal}" != no ; then
189    if test "$enable_dependency_tracking" != no ; then
190      AC_MSG_ERROR([--enable-osx-universal-binary requires --disable-dependency-tracking.
191Please re-run configure with these options:
192  --disable-dependency-tracking --enable-osx-universal-binary
193  		  ])
194    fi
195    CXXFLAGS="$CXXFLAGS -isysroot /Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386"
196    dnl LDFLAGS="$LDFLAGS -Wl,-syslibroot,/Developer/SDKs/MacOSX10.4u.sdk -arch ppc -arch i386"
197  fi
198
199  CXXFLAGS="$CXXFLAGS"
200  ;;
201esac
202
203AM_CFLAGS="$EXTRA_OPT_CFLAGS"
204AM_CXXFLAGS="$EXTRA_OPT_CFLAGS"
205
206AC_SUBST(AM_CFLAGS)
207AC_SUBST(AM_CXXFLAGS)
208
209AC_OUTPUT([
210Makefile
211])
212
213if test "x$build_osxuniversal" = xyes; then
214  AC_MSG_RESULT([
215---------------------------------------------
216Summary for DtexToExr features:
217
218build OS X universal binaries                   $build_osxuniversal
219---------------------------------------------
220  ])
221else
222  AC_MSG_RESULT([
223---------------------------------------------
224Summary for DtexToExr features:
225
226---------------------------------------------
227  ])
228fi
229