Making progress! Here's what I've got now: ############## OpenEXR AC_MSG_CHECKING(for openexr support) AC_LANG(C++) AC_CHECK_HEADER(OpenEXR/half.h,,AC_MSG_ERROR([*** openexr dev header half.h not found ***])) AC_LANG(C) # AM_PATH_OPENEXR(have_openexr=yes OPENEXR='openexr', have_openexr=no OPENEXR= ) OPENEXR_INCLUDES="-I/usr/include/OpenEXR" AC_SUBST(OPENEXR_INCLUDES) # end OpenEXR This works, barely. I tried using $prefix and $ac_default_prefix in OPENEXR_INCLUDES, but those gave NONE and /usr/local/include respectively. How do I get the hard path to /usr out of OPENEXR_INCLUDES? For OPENEXR_LIBS I have that set in Makefile.am. OpenEXR is a plug-in, should not link to the main program. I didn't change AC_MSG_CHECKING as Stepan suggested because I'm not clear what I should do instead or why. There's an old AM_PATH_OPENEXR macro somebody had created in our acinclude.m4, but it reports no OpenEXR unless used with flags on the line with ./configure. This was from before OpenEXR was packaged, when we had to use optional args to add OpenEXR. Suggestions? AC_DEFUN(AM_PATH_OPENEXR, [dnl dnl Get the cflags and libraries dnl AC_ARG_WITH(openexr-prefix,[ --with-openexr-prefix=PFX Prefix where libopenexr is installed (optional)], openexr_prefix="$withval", openexr_prefix="") AC_ARG_ENABLE(openexrtest, [ --disable-openexrtest Do not try to compile and run a test Openexr program],, enable_openexrtest=yes) if test "x$openexr_prefix" != "xNONE" ; then openexr_args="$openexr_args --prefix=$openexr_prefix" OPENEXR_INCLUDES="-I$openexr_prefix/include/OpenEXR" OPENEXR_LIBS="-L$openexr_prefix/lib" elif test "$prefix" != ""; then openexr_args="$openexr_args --prefix=$prefix" OPENEXR_INCLUDES="-I$prefix/include/OpenEXR" OPENEXR_LIBS="-L$prefix/lib" fi OPENEXR_LIBS="$X_LIBS $OPENEXR_LIBS -lIlmImf -lImath -lIex -lHalf -lz" AC_MSG_CHECKING(for OpenEXR) no_openexr="" if test "x$enable_openexrtest" = "xyes" ; then ac_save_CXXFLAGS="$CXXFLAGS" ac_save_LIBS="$LIBS" CXXFLAGS="$CXXFLAGS $OPENEXR_CXXFLAGS $OPENEXR_INCLUDES $OPENEXR_LIBS" LIBS="$LIBS $OPENEXR_LIBS" rm -f conf.openexrtest AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_RUN([ #include <stdlib.h> #include <ImfRgbaFile.h> #include <stdio.h> int main () { printf("running openexrtest program... "); try { Imf::RgbaInputFile exr (""); } catch (...) { } system("touch conf.openexrtest"); return 0; } ],, no_openexr=yes,[echo $ac_n "cross compiling; assumed OK... $ac_c"]) AC_LANG_RESTORE CXXFLAGS="$ac_save_CXXFLAGS" LIBS="$ac_save_LIBS" fi if test "x$no_openexr" = "x" ; then AC_MSG_RESULT(yes) ifelse([$1], , :, [$1]) else AC_MSG_RESULT(no) if test -f conf.openexrtest ; then : else echo "*** Could not run OpenEXR test program, checking why..." CXXFLAGS="$CXXFLAGS $OPENEXR_CXXFLAGS $OPENEXR_INCLUDES $OPENEXR_LIBS" LIBS="$LIBS $OPENEXR_LIBS" AC_LANG_SAVE AC_LANG_CPLUSPLUS AC_TRY_LINK([ #include <stdio.h> #include <ImfRgbaFile.h> ], [ Imf::RgbaInputFile exr ("");return 0; ], [ echo "*** The test program compiled, but did not run. This usually means" echo "*** that the run-time linker is not finding OpenEXR or finding the wrong" echo "*** version of OpenEXR. If it is not finding OpenEXR, you'll need to set your" echo "*** LD_LIBRARY_PATH environment variable, or edit /etc/ld.so.conf to point" echo "*** to the installed location Also, make sure you have run ldconfig if that" echo "*** is required on your system" echo "*** LD_LIBRARY_PATH = " printenv LD_LIBRARY_PATH echo "*** OPENEXR_LIBS = $OPENEXR_LIBS" echo "*** OPENEXR_INCLUDES = $OPENEXR_INCLUDES" echo "***"]) AC_LANG_RESTORE CXXFLAGS="$ac_save_CXXFLAGS" LIBS="$ac_save_LIBS" fi OPENEXR_INCLUDES="" OPENEXR_LIBS="" ifelse([$2], , :, [$2]) fi AC_SUBST(OPENEXR_INCLUDES) AC_SUBST(OPENEXR_LIBS) rm -f conf.openexrtest ]) Thanks, Robin _______________________________________________ Autoconf mailing list Autoconf@xxxxxxx http://lists.gnu.org/mailman/listinfo/autoconf