Files
libgphoto2/configure.in
2002-12-03 08:06:40 +00:00

439 lines
14 KiB
Plaintext

dnl Process this file with autoconf to produce a configure script.
AC_PREREQ(2.50)
AC_INIT(libgphoto2/gphoto2.h)
AM_CONFIG_HEADER(config.h)
AM_INIT_AUTOMAKE(libgphoto2, 2.1.2dev1)
AM_MAINTAINER_MODE
AC_LIBTOOL_DLOPEN
dnl ---------------------------------------------------------------------------
dnl Versioning:
dnl - AGE (Micro): Increment if any interfaces have been added; set to 0
dnl if any interfaces have been removed. Removal has
dnl precedence over adding, so set to 0 if both happened.
dnl - REVISION (Minor): Increment any time the source changes; set to
dnl 0 if you incremented CURRENT.
dnl - CURRENT (Major): Increment if the interface has additions, changes,
dnl removals.
dnl ---------------------------------------------------------------------------
LIBGPHOTO2_AGE=3
LIBGPHOTO2_REVISION=0
LIBGPHOTO2_CURRENT=2
AC_SUBST(LIBGPHOTO2_AGE)
AC_SUBST(LIBGPHOTO2_REVISION)
AC_SUBST(LIBGPHOTO2_CURRENT)
LIBGPHOTO2_VERSION_INFO=`expr $LIBGPHOTO2_CURRENT + $LIBGPHOTO2_REVISION`:$LIBGPHOTO2_AGE:$LIBGPHOTO2_REVISION
AC_SUBST(LIBGPHOTO2_VERSION_INFO)
dnl Checks for programs.
AC_PROG_CC
AC_PROG_CPP
AC_PROG_INSTALL
AC_DEFINE_UNQUOTED(HAVE_CC,"$CC",[The C compiler we're using])
dnl ---------------------------------------------------------------------------
dnl i18n support (including some hacks)
dnl ---------------------------------------------------------------------------
dnl The following is a hack to get gphoto2 to build on gettext-0.10.35
dnl systems - BUILD_INCLUDED_LIBINTL is set only in gettext-0.10.37 which is
dnl the gettext version provided with gphoto2.
BUILD_INCLUDED_LIBINTL=no
AC_SUBST(BUILD_INCLUDED_LIBINTL)
dnl USE_INCLUDED_LIBINTL=no
dnl AC_SUBST(USE_INCLUDED_LIBINTL)
ALL_LINGUAS="da de es fr it ja no ru sl sv uk zh_CN"
# EVIL HACKS
AC_MSG_CHECKING([for po/Makevars requiring evil hack])
GETTEXT_PACKAGE="${PACKAGE}-${LIBGPHOTO2_CURRENT}"
AC_DEFINE_UNQUOTED(GETTEXT_PACKAGE,"$GETTEXT_PACKAGE",[The gettext domain we're using])
AC_SUBST(GETTEXT_PACKAGE)
if test -f po/Makevars.template
then
sed -e "s/^DOMAIN.*/DOMAIN = ${GETTEXT_PACKAGE}/" < po/Makevars.template > po/Makevars
AC_MSG_RESULT([yes. done.])
else
AC_MSG_RESULT([no])
fi
AM_GNU_GETTEXT
AC_CHECK_FUNC(gettext, gettext_without_libintl=true)
# same trick as with libdl:
# if gettext() doesn't require linking against libintl,
# we don't have to check for gettext in libintl. Otherwise
# we may even require libintl.
dnl AC_CHECK_LIB(intl, gettext, [LIBS="$LIBS -lintl"])
if test "$gettext_without_libintl" != "true" -a "$USE_NLS" = "yes"; then
AC_CHECK_LIB(intl, gettext, [INTLLIBS="$INTLLIBS -lintl"])
fi
dnl ---------------------------------------------------------------------------
dnl Turn on debugging and all warnings when using gcc
dnl ---------------------------------------------------------------------------
if test "$ac_cv_prog_gcc" = "yes"; then
CFLAGS="$CFLAGS -g -Wall -Wmissing-declarations -Wmissing-prototypes"
LDFLAGS="$LDFLAGS -g -Wall"
fi
dnl Replace `main' with a function in -libs:
AC_CHECK_LIB(ibs, main)
dnl ---------------------------------------------------------------------------
dnl Checks for header files.
dnl ---------------------------------------------------------------------------
AC_HEADER_DIRENT
AC_HEADER_STDC
AC_CHECK_HEADERS(unistd.h mcheck.h)
AC_INLINE
AC_CONST
dnl ---------------------------------------------------------------------------
dnl Check for libtool: lt_dlforeachfile has been introduced in
dnl libtool-1.4. However, there are still systems out
dnl there running libtool-1.3. For those, we will need
dnl dlopen. Note that on some systems (e.g. FreeBSD)
dnl -ldl isn't needed.
dnl ---------------------------------------------------------------------------
AC_PROG_LIBTOOL
have_ltdl=false
ltdl_msg="no"
try_ltdl=false
AC_ARG_WITH(ltdl, [ --with-ltdl Use ltdl],[
if test x$withval = xyes; then
try_ltdl=true
fi])
if $try_ltdl; then
AC_CHECK_LIB(ltdl, lt_dlforeachfile,[
AC_CHECK_HEADER(ltdl.h,[
AC_DEFINE(HAVE_LTDL,1,[whether we use libltdl])
LTDL_LIBS="-lltdl"
ltdl_msg="yes"
have_ltdl=true])])
fi
if ! $have_ltdl; then
AC_CHECK_FUNC(dlopen,,[
AC_CHECK_LIB(dl, dlopen,[LTDL_LIBS="-ldl"],[AC_ERROR([
*** Could not determine how to handle
*** shared libraries!])])])
fi
AC_SUBST(LTDL_LIBS)
dnl Checks for typedefs, structures, and compiler characteristics.
AC_TYPE_SIZE_T
dnl Checks for library functions.
AC_CHECK_FUNCS(mkdir strdup strncpy strcpy snprintf sprintf vsnprintf)
dnl Find out how to get struct tm
AC_STRUCT_TM
dnl Check for tm_gmtoff in struct tm
AC_MSG_CHECKING([for tm_gmtoff in struct tm])
AC_TRY_COMPILE([
#include <sys/types.h>
#include <$ac_cv_struct_tm>], [struct tm tm; tm.tm_gmtoff;],
AC_DEFINE(HAVE_TM_GMTOFF,1,[whether struct tm has tm_gmtoff field])
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
dnl Create a stdint.h-like file containing size-specific integer definitions
dnl that will always be available
AC_NEED_STDINT_H(libgphoto2/_stdint.h)
dnl Create a header file containing NetBSD-style byte swapping macros
AC_NEED_BYTEORDER_H(libgphoto2/gphoto2-endian.h)
dnl Solaris hack for grep and tr
[
if test -n "`echo $host_os | grep '[sS]olaris'`"; then
TR=/usr/xpg4/bin/tr
GREP=/usr/xpg4/bin/grep
else
TR=tr
GREP=grep
fi
]
dnl ---------------------------------------------------------------------------
dnl camlib directory
dnl ---------------------------------------------------------------------------
AC_MSG_CHECKING(where to install camlibs)
AC_ARG_WITH(camlibdir,
[ --with-camlibdir=<path> install camlibs in directory <path> ],
camlibdir="$withval", camlibdir='${libdir}/gphoto2/${VERSION}')
AC_MSG_RESULT("$camlibdir")
AC_SUBST(camlibdir)
dnl ---------------------------------------------------------------------------
dnl Camera drivers
dnl ---------------------------------------------------------------------------
camlibs='barbie canon casio digita dimera directory fuji gsmart jamcam jd11 kodak konica largan minolta mustek panasonic pccam600 polaroid ptp ricoh samsung sierra sipix sipixblink sonydscf1 sonydscf55 soundvision spca504_flash stv0674 stv0680 sx330z'
AC_SUBST(SUBDIRS_CAMLIBS)
for i in $camlibs; do
d=`echo $i | $TR a-z A-Z`
eval "CONFIG_DRIVER_$d=n"
done
AC_MSG_CHECKING(which drivers to compile)
AC_ARG_WITH(drivers,
[ --with-drivers=<list> compile drivers in <list>; ]
[ drivers may be separated with commas; ]
[ 'all' compiles all drivers; ]
[ possible drivers are: ]
[ barbie, canon, casio, digita, dimera,]
[ directory, fuji, gsmart, jamcam, jd11, kodak,]
[ konica, mustek, largan,]
[ minolta, panasonic, pccam600, polaroid, ptp, ]
[ ricoh, samsung, sierra, sipix, sonydscf1, sonydscf55,]
[ soundvision, spca504_flash, stv0680, sx330z ],
drivers="$withval", drivers="all")
if test "$drivers" = "all"; then
for i in $camlibs; do
SUBDIRS_CAMLIBS="$SUBDIRS_CAMLIBS $i"
done
AC_MSG_RESULT(all)
else
drivers=`echo $drivers | sed 's/,/ /g'`
for driver in $drivers; do
if test -n "`echo $camlibs | $GREP -E \"(^| )$driver( |\$)\"`"; then
SUBDIRS_CAMLIBS="$SUBDIRS_CAMLIBS $driver"
else
AC_ERROR(Unknown driver $driver!)
fi
done
AC_MSG_RESULT($drivers)
fi
dnl ************************************************************
dnl find out where to install documentation files
dnl ************************************************************
GP_CHECK_DOC_DIR()dnl
dnl ********
dnl build docs?
dnl ********
GP_BUILD_DOCS()dnl
dnl ************************************************************
dnl initialize packaging
dnl ************************************************************
GPKG_CHECK_RPM()dnl Check wether to package for a system using RPM
GPKG_CHECK_LINUX()dnl Check wether to package for a linux system
dnl ---------------------------------------------------------------------------
dnl pkg-config: pkg-config is a tool to simplify checks for libraries and
dnl versions. I really think this is a good thing and therefore
dnl use it here. However, if pkg-config is not installed,
dnl we offer alternative checks, too.
dnl ---------------------------------------------------------------------------
pkgconfig_msg="no (http://www.freedesktop.org/software/pkgconfig)"
try_pkgconfig=true
have_pkgconfig=false
AC_ARG_WITH(pkgconfig, [ --without-pkgconfig Don't use pkg-config],[
if test x$withval = xno; then
try_pkgconfig=false
pkgconfig_msg="no (not requested)"
fi])
if $try_pkgconfig; then
AC_PATH_PROG(PKG_CONFIG,pkg-config)
if test -n "${PKG_CONFIG}"; then
have_pkgconfig=true
pkgconfig_msg="yes"
fi
fi
# guessing directory to install *.pc into
pkgconfigdir='${libdir}/pkgconfig'
AC_SUBST(pkgconfigdir)
dnl ---------------------------------------------------------------------------
dnl libexif: The CameraFilesystem can use libexif for extracting thumbnails
dnl out of EXIF data. Similarly, it can extract the mtime of
dnl a file.
dnl libexif is available from
dnl http://www.sourceforge.net/projects/libexif
dnl ---------------------------------------------------------------------------
exif_msg="no (http://www.sourceforge.net/projects/libexif)"
try_exif=true
have_exif=false
AC_ARG_WITH(exif, [ --without-exif Don't use libexif],[
if test x$withval = xno; then
try_exif=false
exif_msg="no (not requested)"
fi])
if test "x$prefix" = xNONE; then
exif_prefix=$ac_default_prefix
else
exif_prefix=$prefix
fi
AC_ARG_WITH(exif-prefix, [ --with-exif-prefix=PREFIX Location of libexif],[
exif_prefix="$withval"])
if $try_exif; then
if $have_pkgconfig; then
AC_MSG_CHECKING([for libexif])
if ${PKG_CONFIG} --exists libexif > /dev/null 2>&1; then
EXIF_CFLAGS=`$PKG_CONFIG --cflags libexif`
EXIF_LIBS=`$PKG_CONFIG --libs libexif`
have_exif=true
exif_msg=yes
AC_DEFINE(HAVE_EXIF,1,[whether we use libexif])
fi
AC_MSG_RESULT($exif_msg)
else
CPPFLAGS_save="$CPPFLAGS"
CPPFLAGS="-I$exif_prefix/include/libexif -I$exif_prefix/include $CPPFLAGS"
AC_CHECK_HEADER(exif-data.h, [
EXIF_CFLAGS="-I$exif_prefix/include -I$exif_prefix/include/libexif"
EXIF_LIBS="-L$exif_prefix/lib -lexif"
have_exif=true
exif_msg=yes
AC_DEFINE(HAVE_EXIF,1,[whether we use libexif])])
fi
if $have_exif; then
CPPFLAGS_save="$CPPFLAGS"
CPPFLAGS=$EXIF_CFLAGS
AC_CHECK_HEADER([exif-ifd.h], [
exif_msg="yes (>= 0.5.4)"
AC_DEFINE(HAVE_EXIF_0_5_4,1,[whether we use a version of libexif greater than 0.5.3])])
CPPFLAGS="$CPPFLAGS_save"
fi
fi
AM_CONDITIONAL(HAVE_EXIF, $have_exif)
AC_SUBST(EXIF_CFLAGS)
AC_SUBST(EXIF_LIBS)
dnl ---------------------------------------------------------------------------
dnl /proc/meminfo: If the meminfo /proc entry is available, we use it
dnl to limit the libgphoto2 filesystem cache size.
dnl ---------------------------------------------------------------------------
if test "$cross_compiling" != yes; then
AC_CHECK_FILE(/proc/meminfo, [
proc_meminfo_msg="available";
proc_meminfo=true;
AC_DEFINE(HAVE_PROCMEMINFO,1,[whether we get memory info from /proc/meminfo])
], [
proc_meminfo_msg="not available";
proc_meminfo=false;
])
else
proc_meminfo_msg="state not known, cross-compilation";
proc_meminfo=false;
fi
dnl Check for sysctl()
AC_MSG_CHECKING([for sysctl on BSD])
AC_TRY_COMPILE([
#include <unistd.h>
#include <sys/sysctl.h>
#if __FreeBSD__
# include <sys/types.h>
#elif (__NetBSD__ || __OpenBSD__)
# include <sys/param.h>
#endif],
[int mib[2] = { CTL_HW, HW_PHYSMEM };
int value;
size_t valuelen = sizeof(value);
sysctl(mib, 2 , &value, &valuelen, NULL, 0)],
AC_DEFINE(HAVE_SYSCTL,1,[whether we may use sysctl])
AC_MSG_RESULT(yes),
AC_MSG_RESULT(no)
)
dnl ---------------------------------------------------------------------------
dnl Configure libgphoto2-port
dnl ---------------------------------------------------------------------------
AC_CONFIG_SUBDIRS(libgphoto2_port)
AC_OUTPUT([
Makefile
camlibs/Makefile
camlibs/barbie/Makefile
camlibs/canon/Makefile
camlibs/canon/doc/Makefile
camlibs/casio/Makefile
camlibs/digita/Makefile
camlibs/dimera/Makefile
camlibs/directory/Makefile
camlibs/fuji/Makefile
camlibs/gsmart/Makefile
camlibs/jamcam/Makefile
camlibs/jd11/Makefile
camlibs/kodak/Makefile
camlibs/kodak/dc120/Makefile
camlibs/kodak/dc210/Makefile
camlibs/kodak/dc240/Makefile
camlibs/kodak/dc3200/Makefile
camlibs/konica/Makefile
camlibs/konica/localization/Makefile
camlibs/largan/Makefile
camlibs/largan/lmini/Makefile
camlibs/minolta/Makefile
camlibs/minolta/dimagev/Makefile
camlibs/mustek/Makefile
camlibs/panasonic/Makefile
camlibs/panasonic/l859/Makefile
camlibs/panasonic/coolshot/Makefile
camlibs/pccam600/Makefile
camlibs/polaroid/Makefile
camlibs/ptp/Makefile
camlibs/ricoh/Makefile
camlibs/samsung/Makefile
camlibs/sierra/Makefile
camlibs/sipix/Makefile
camlibs/sipixblink/Makefile
camlibs/sonydscf1/Makefile
camlibs/sonydscf55/Makefile
camlibs/soundvision/Makefile
camlibs/spca504_flash/Makefile
camlibs/stv0674/Makefile
camlibs/stv0680/Makefile
camlibs/sx330z/Makefile
tests/Makefile
libgphoto2/Makefile
libgphoto2/libgphoto2.pc
gphoto2-config
packaging/Makefile
packaging/linux-hotplug/Makefile
packaging/rpm/Makefile
packaging/rpm/package.spec
doc/Makefile
doc/api/Makefile
])
if test "x$CDPATH" != "x"
then
echo
echo "***********************************************************"
echo "* You have CDPATH set. You may have to run \"unset CDPATH\" *"
echo "* before running \"make dist\" or \"make rpm\". *"
echo "***********************************************************"
fi
echo "
Configuration (libgphoto2):
Source code location: ${srcdir}
Version: ${VERSION}
Compiler: ${CC}
Build API documentation: $gtkdoc_msg
pkg-config: $pkgconfig_msg
EXIF support: $exif_msg
Use ltdl.h: $ltdl_msg
/proc/meminfo: $proc_meminfo_msg
"
# Build User's Manual: $manual_msg
echo "
Please check whether the configuration I detected matches what you
would like to have. E.g. make sure that USB support is there if you
intend to use USB cameras with $PACKAGE.
Please also check that PKG_CONFIG_PATH contains ${pkgconfigdir}
before compiling any libgphoto2 frontend.
"