|
Packit |
b0f24f |
# Process this file with autoconf to produce a configure script.
|
|
Packit |
b0f24f |
AC_PREREQ(2.52)
|
|
Packit |
b0f24f |
AC_INIT([libmtp], [1.1.14], [libmtp-discuss@lists.sourceforge.net])
|
|
Packit |
b0f24f |
AC_CONFIG_MACRO_DIR([m4])
|
|
Packit |
b0f24f |
AM_INIT_AUTOMAKE([foreign])
|
|
Packit |
b0f24f |
AC_CONFIG_SRCDIR([src/libmtp.c])
|
|
Packit |
b0f24f |
AM_CONFIG_HEADER(config.h)
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
# Checks for programs.
|
|
Packit |
b0f24f |
AC_PROG_CC
|
|
Packit |
b0f24f |
AC_PROG_INSTALL
|
|
Packit |
b0f24f |
AC_PROG_LN_S
|
|
Packit |
b0f24f |
AC_LIBTOOL_WIN32_DLL
|
|
Packit |
b0f24f |
AC_PROG_LIBTOOL
|
|
Packit |
b0f24f |
AM_ICONV
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
# Optionally set install location of udev
|
|
Packit |
b0f24f |
UDEV=/usr/lib/udev
|
|
Packit |
b0f24f |
AC_ARG_WITH(udev,
|
|
Packit |
b0f24f |
AC_HELP_STRING([--with-udev=DIR],
|
|
Packit |
b0f24f |
[directory where udev is installed [default=/usr/lib/udev]]),
|
|
Packit |
b0f24f |
[UDEV="${withval}"], [])
|
|
Packit |
b0f24f |
AC_SUBST(UDEV)
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
# Optionally set name of udev rules file, default
|
|
Packit |
b0f24f |
# priority is 69, to appear before 70-acl.rules which handles
|
|
Packit |
b0f24f |
# access control to the devices. We try to let all other userspace
|
|
Packit |
b0f24f |
# libusb-based device handlers take precedence since libmtp may
|
|
Packit |
b0f24f |
# attempt to autoprobe the devices.
|
|
Packit |
b0f24f |
#
|
|
Packit |
b0f24f |
# Later rules can then use the identifiers for its processing.
|
|
Packit |
b0f24f |
UDEV_RULES=69-libmtp.rules
|
|
Packit |
b0f24f |
AC_ARG_WITH(udev-rules,
|
|
Packit |
b0f24f |
AC_HELP_STRING([--with-udev-rules=NAME],
|
|
Packit |
b0f24f |
[file name for udev rules [default=69-libmtp.rules]]),
|
|
Packit |
b0f24f |
[UDEV_RULES="${withval}"], [])
|
|
Packit |
b0f24f |
AC_SUBST(UDEV_RULES)
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
# Optionally set group for device nodes
|
|
Packit |
b0f24f |
UDEV_GROUP=
|
|
Packit |
b0f24f |
AC_ARG_WITH(udev-group,
|
|
Packit |
b0f24f |
AC_HELP_STRING([--with-udev-group=GROUP],
|
|
Packit |
b0f24f |
[file group for device nodes [default: none specified]]),
|
|
Packit |
b0f24f |
[UDEV_GROUP="-g\"${withval}\""], [])
|
|
Packit |
b0f24f |
AC_SUBST(UDEV_GROUP)
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
# Optionally set mode for device nodes
|
|
Packit |
b0f24f |
UDEV_MODE=
|
|
Packit |
b0f24f |
AC_ARG_WITH(udev-mode,
|
|
Packit |
b0f24f |
AC_HELP_STRING([--with-udev-mode=GROUP],
|
|
Packit |
b0f24f |
[file mode for device nodes [default: none specified]]),
|
|
Packit |
b0f24f |
[UDEV_MODE="-m\"${withval}\""], [])
|
|
Packit |
b0f24f |
AC_SUBST(UDEV_MODE)
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
# Optionally enable and check for doxygen
|
|
Packit |
b0f24f |
AC_ARG_ENABLE([doxygen],
|
|
Packit |
b0f24f |
AS_HELP_STRING([--enable-doxygen], [Build API documentation using Doxygen [default=auto]]),
|
|
Packit |
b0f24f |
[ac_enable_doxygen=$enableval], [ac_enable_doxygen=auto])
|
|
Packit |
b0f24f |
if test "x$ac_enable_doxygen" != "xno"; then
|
|
Packit |
b0f24f |
AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, true, false)
|
|
Packit |
b0f24f |
if test "x$HAVE_DOXYGEN" = "xfalse" -a "x$ac_enable_doxygen" = "xyes"; then
|
|
Packit |
b0f24f |
AC_MSG_ERROR([*** API documentation explicitly requested but Doxygen not found])
|
|
Packit |
b0f24f |
fi
|
|
Packit |
b0f24f |
if test "x$HAVE_DOXYGEN" = "xtrue"; then
|
|
Packit |
b0f24f |
AC_MSG_NOTICE([API documentation will be generated using Doxygen])
|
|
Packit |
b0f24f |
fi
|
|
Packit |
b0f24f |
else
|
|
Packit |
b0f24f |
HAVE_DOXYGEN=false
|
|
Packit |
b0f24f |
AC_MSG_NOTICE([API documentation will not be generated])
|
|
Packit |
b0f24f |
fi
|
|
Packit |
b0f24f |
AM_CONDITIONAL(HAVE_DOXYGEN,$HAVE_DOXYGEN)
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
# Check for Darwin
|
|
Packit |
b0f24f |
AC_MSG_CHECKING([if the host operating system is Darwin])
|
|
Packit |
b0f24f |
case "$host" in
|
|
Packit |
b0f24f |
*-darwin*)
|
|
Packit |
b0f24f |
AC_MSG_RESULT([yes])
|
|
Packit |
b0f24f |
CFLAGS="$CFLAGS -DUSE_DARWIN"
|
|
Packit |
b0f24f |
OSFLAGS="-framework IOKit"
|
|
Packit |
b0f24f |
;;
|
|
Packit |
b0f24f |
*) AC_MSG_RESULT([no]) ;;
|
|
Packit |
b0f24f |
esac
|
|
Packit |
b0f24f |
AC_SUBST(OSFLAGS)
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
AC_MSG_CHECKING([if the host operating system is Linux])
|
|
Packit |
b0f24f |
AC_TRY_COMPILE([#ifndef __linux__
|
|
Packit |
b0f24f |
#error "FAIL"
|
|
Packit |
b0f24f |
#endif
|
|
Packit |
b0f24f |
],
|
|
Packit |
b0f24f |
[int test;],
|
|
Packit |
b0f24f |
[ AC_MSG_RESULT(yes)
|
|
Packit |
b0f24f |
AM_CONDITIONAL(USE_LINUX, true)
|
|
Packit |
b0f24f |
],
|
|
Packit |
b0f24f |
[ AC_MSG_RESULT(no)
|
|
Packit |
b0f24f |
AM_CONDITIONAL(USE_LINUX, false)
|
|
Packit |
b0f24f |
])
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
# Check for mingw compiler platform
|
|
Packit |
b0f24f |
AC_MSG_CHECKING([For MinGW32])
|
|
Packit |
b0f24f |
case "$host" in
|
|
Packit |
b0f24f |
*-*-mingw*)
|
|
Packit |
b0f24f |
AC_MSG_RESULT([yes])
|
|
Packit |
b0f24f |
mingw_compiler=yes
|
|
Packit |
b0f24f |
;;
|
|
Packit |
b0f24f |
*) AC_MSG_RESULT([no]) ;;
|
|
Packit |
b0f24f |
esac
|
|
Packit |
b0f24f |
AM_CONDITIONAL(COMPILE_MINGW32, [test "$mingw_compiler" = "yes"])
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
# Check if Microsoft LIB.EXE is available
|
|
Packit |
b0f24f |
if test "$mingw_compiler" = "yes"; then
|
|
Packit |
b0f24f |
AC_CHECK_PROG(ms_lib_exe, lib.exe, yes, no)
|
|
Packit |
b0f24f |
fi
|
|
Packit |
b0f24f |
AM_CONDITIONAL(MS_LIB_EXE, test x$ms_lib_exe = xyes)
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
# Check for libusb-1.0
|
|
Packit |
b0f24f |
PKG_CHECK_MODULES(LIBUSB, libusb-1.0 >= 1.0.0,[
|
|
Packit |
b0f24f |
LIBUSB_VER=`$PKG_CONFIG --modversion libusb-1.0`
|
|
Packit |
b0f24f |
LIBUSB_REQUIRES='libusb-1.0'
|
|
Packit |
b0f24f |
AC_DEFINE(HAVE_LIBUSB1, [], [Have libusb 1.0])
|
|
Packit |
b0f24f |
found_libusb1_pkg=yes
|
|
Packit |
b0f24f |
],[
|
|
Packit |
b0f24f |
# Check for libopenusb second
|
|
Packit |
b0f24f |
AC_CHECK_LIB([openusb], [openusb_init],[
|
|
Packit |
b0f24f |
AC_DEFINE(HAVE_OPENUSB, [], [Have libopenusb 1.0])
|
|
Packit |
b0f24f |
LIBUSB_VER=1.0
|
|
Packit |
b0f24f |
],[
|
|
Packit |
b0f24f |
PKG_CHECK_MODULES(LIBUSB, libusb >= 0.1.8, [
|
|
Packit |
b0f24f |
LIBUSB_VER=`$PKG_CONFIG --modversion libusb`
|
|
Packit |
b0f24f |
LIBUSB_REQUIRES='libusb'
|
|
Packit |
b0f24f |
AC_DEFINE(HAVE_LIBUSB0, [], [Have libusb 0.x])
|
|
Packit |
b0f24f |
found_libusb0_pkg=yes
|
|
Packit |
b0f24f |
],[
|
|
Packit |
b0f24f |
# Some systems don't use pkg-config for libusb, so double check.
|
|
Packit |
b0f24f |
AC_CHECK_LIB([usb], [usb_open],[
|
|
Packit |
b0f24f |
LIBUSB_VER=0.1
|
|
Packit |
b0f24f |
AC_DEFINE(HAVE_LIBUSB0, [], [Have libusb 0.x])
|
|
Packit |
b0f24f |
found_libusb0_pkg=yes
|
|
Packit |
b0f24f |
],[
|
|
Packit |
b0f24f |
AC_MSG_ERROR([*** libusb not found! (missing -dev/-devel package?) ***\n*** prefer to install libusb-1 if you can! ***])
|
|
Packit |
b0f24f |
])
|
|
Packit |
b0f24f |
])
|
|
Packit |
b0f24f |
])
|
|
Packit |
b0f24f |
])
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
# Optionally disable MTPZ functionality.
|
|
Packit |
b0f24f |
AC_ARG_ENABLE([mtpz],
|
|
Packit |
b0f24f |
AC_HELP_STRING([--disable-mtpz], [Disable functionality to connect to MTPZ devices (e.g. Zune)]),
|
|
Packit |
b0f24f |
[use_mtpz=$enableval],
|
|
Packit |
b0f24f |
[use_mtpz="yes"])
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
# Include MTPZ if not disabled.
|
|
Packit |
b0f24f |
if test x"$use_mtpz" = "xyes" ; then
|
|
Packit |
b0f24f |
# Check for libgcrypt.
|
|
Packit |
b0f24f |
AC_MSG_CHECKING([for libgcrypt])
|
|
Packit |
b0f24f |
AC_CHECK_LIB([gcrypt], [gcry_check_version], , [AC_MSG_NOTICE([*** libgcrypt not found - disabling MTPZ support ***]) ; use_mtpz="no"])
|
|
Packit |
b0f24f |
fi
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
if test x"$use_mtpz" = "xyes" ; then
|
|
Packit |
b0f24f |
AC_DEFINE(USE_MTPZ, [], [Enable MTPZ functionality])
|
|
Packit |
b0f24f |
AC_MSG_NOTICE([MTPZ functionality enabled]);
|
|
Packit |
b0f24f |
else
|
|
Packit |
b0f24f |
AC_MSG_NOTICE([MTPZ functionality disable]);
|
|
Packit |
b0f24f |
fi
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
AC_SUBST(LIBUSB_CFLAGS)
|
|
Packit |
b0f24f |
AC_SUBST(LIBUSB_LIBS)
|
|
Packit |
b0f24f |
AC_SUBST(LIBUSB_REQUIRES)
|
|
Packit |
b0f24f |
AM_CONDITIONAL(MTPZ_COMPILE, test x"$use_mtpz" = "xyes")
|
|
Packit |
b0f24f |
AM_CONDITIONAL(LIBUSB1_COMPILE, test x"$found_libusb1_pkg" = "xyes")
|
|
Packit |
b0f24f |
AM_CONDITIONAL(LIBUSB0_COMPILE, test x"$found_libusb0_pkg" = "xyes")
|
|
Packit |
b0f24f |
AM_CONDITIONAL(LIBOPENUSB_COMPILE, test x"$ac_cv_lib_openusb_openusb_init" = "xyes")
|
|
Packit |
b0f24f |
AC_MSG_NOTICE([*** using libusb $LIBUSB_VER ***])
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
# Checks for header files.
|
|
Packit |
b0f24f |
AC_HEADER_STDC
|
|
Packit |
b0f24f |
AC_HEADER_TIME
|
|
Packit |
b0f24f |
# zlib.h the day we need to decompress firmware
|
|
Packit |
b0f24f |
AC_CHECK_HEADERS([ctype.h errno.h fcntl.h getopt.h libgen.h \
|
|
Packit |
b0f24f |
limits.h stdio.h string.h sys/stat.h sys/time.h unistd.h \
|
|
Packit |
b0f24f |
langinfo.h locale.h arpa/inet.h byteswap.h sys/uio.h])
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
# Checks for typedefs, structures, and compiler characteristics.
|
|
Packit |
b0f24f |
AC_C_CONST
|
|
Packit |
b0f24f |
AC_TYPE_OFF_T
|
|
Packit |
b0f24f |
AC_TYPE_SIGNAL
|
|
Packit |
b0f24f |
AC_TYPE_SIZE_T
|
|
Packit |
b0f24f |
AC_STRUCT_ST_BLKSIZE
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
# Checks for library functions.
|
|
Packit |
b0f24f |
AC_FUNC_MEMCMP
|
|
Packit |
b0f24f |
AC_FUNC_STAT
|
|
Packit |
b0f24f |
AC_CHECK_FUNCS(basename memset select strdup strerror strndup strrchr strtoul usleep mkstemp)
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
# Switches.
|
|
Packit |
b0f24f |
# Enable LFS (Large File Support)
|
|
Packit |
b0f24f |
AC_SYS_LARGEFILE
|
|
Packit |
b0f24f |
# Stick in "-Werror" if you want to be more aggressive.
|
|
Packit |
b0f24f |
# (No need to use AC_SUBST on this default substituted environment variable.)
|
|
Packit |
b0f24f |
# Only add these additional CFLAGS if we are using GCC. Other C compilers may
|
|
Packit |
b0f24f |
# not support them.
|
|
Packit |
b0f24f |
if test x"$GCC" == "xyes" ; then
|
|
Packit |
b0f24f |
CFLAGS="$CFLAGS -Wall -Wmissing-prototypes"
|
|
Packit |
b0f24f |
fi
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
# Output files
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
# Create a stdint.h-like file containing size-specific integer definitions
|
|
Packit |
b0f24f |
# that will always be available. The <stdint.h> file is required by the
|
|
Packit |
b0f24f |
# library, but we provide this anyway because the libptp2 stuff wants this
|
|
Packit |
b0f24f |
# file.
|
|
Packit |
b0f24f |
AX_NEED_STDINT_H([src/_stdint.h])
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
# Create a header file containing NetBSD-style byte swapping macros.
|
|
Packit |
b0f24f |
# This m4 macros has caused severe pain, I am considering creating a
|
|
Packit |
b0f24f |
# hard-coded byte swapper that will be eternally portable.
|
|
Packit |
b0f24f |
AC_NEED_BYTEORDER_H(src/gphoto2-endian.h)
|
|
Packit |
b0f24f |
|
|
Packit |
b0f24f |
AC_CONFIG_FILES([src/libmtp.h doc/Doxyfile Makefile doc/Makefile src/Makefile
|
|
Packit |
b0f24f |
examples/Makefile util/Makefile libmtp.sh hotplug.sh libmtp.pc])
|
|
Packit |
b0f24f |
AC_OUTPUT
|
|
Packit |
b0f24f |
chmod +x hotplug.sh
|