dnl Process this file with autoconf to produce a configure script. AC_PREREQ(2.50) AC_INIT(libgphoto2/gphoto2.h) AM_CONFIG_HEADER(libgphoto2/config.h) AM_INIT_AUTOMAKE(libgphoto2, 2.1.1dev6) AM_MAINTAINER_MODE AC_LIBTOOL_DLOPEN dnl --------------------------------------------------------------------------- dnl Versioning (libgphoto2-(AGE.)CURRENT.REVISION): 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=1 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 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" 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=true AC_ARG_WITH(ltdl, [ --without-ltdl Don't use ltdl],[ if test x$withval = xno; then try_ltdl=false 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 #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 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 sonydscf1 sonydscf55 soundvision 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= compile drivers in ; ] [ 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, polaroid, ptp, ricoh,] [ samsung, sierra, sx330z, sonydscf1, sonydscf55,] [ soundvision, stv0680, pccam600 ], 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 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 --------------------------------------------------------------------------- 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; ]) 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/sonydscf1/Makefile camlibs/sonydscf55/Makefile camlibs/soundvision/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. "