This repository has been archived by the owner on Jul 4, 2020. It is now read-only.
forked from yifanlu/VitaMTP
-
Notifications
You must be signed in to change notification settings - Fork 28
/
configure.ac
128 lines (110 loc) · 4.31 KB
/
configure.ac
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
# -*- Autoconf -*-
# Process this file with autoconf to produce a configure script.
AC_PREREQ([2.52])
AC_INIT([vitamtp], [2.5.9], [[email protected]])
AC_CONFIG_MACRO_DIR([m4])
AM_INIT_AUTOMAKE([foreign])
AC_CONFIG_SRCDIR([src/vitamtp.c])
AC_CONFIG_HEADERS([config.h])
# Checks for programs.
AC_PROG_CC
AC_PROG_LIBTOOL
AM_PROG_CC_C_O
AC_PROG_INSTALL
AM_ICONV
PKG_PROG_PKG_CONFIG
# Check for mingw compiler platform
AC_MSG_CHECKING([For MinGW32])
case "$host" in
*-*-mingw*)
AC_MSG_RESULT([yes])
mingw_compiler=yes
;;
*) AC_MSG_RESULT([no]) ;;
esac
AM_CONDITIONAL(COMPILE_MINGW32, [test "$mingw_compiler" = "yes"])
# Optionally enable and check for doxygen
AC_ARG_ENABLE([doxygen],
AS_HELP_STRING([--enable-doxygen], [Build API documentation using Doxygen [default=no]]),
[ac_enable_doxygen=$enableval], [ac_enable_doxygen=auto])
if test "x$ac_enable_doxygen" == "xyes"; then
AC_CHECK_PROG(HAVE_DOXYGEN, doxygen, true, false)
if test "x$HAVE_DOXYGEN" = "xfalse" -a "x$ac_enable_doxygen" = "xyes"; then
AC_MSG_ERROR([*** API documentation explicitly requested but Doxygen not found])
fi
AC_MSG_NOTICE([API documentation will be generated using Doxygen])
else
HAVE_DOXYGEN=false
AC_MSG_NOTICE([API documentation will not be generated])
fi
AM_CONDITIONAL(HAVE_DOXYGEN,$HAVE_DOXYGEN)
# Device support
DEVICE_CFLAGS=
AC_ARG_ENABLE([usb-support],
AS_HELP_STRING([--disable-usb-support], [Disable VitaMTP USB device support [default=no]]),
[ac_enable_usb=$enableval], [ac_enable_usb=yes])
AC_ARG_ENABLE([wireless-support],
AS_HELP_STRING([--disable-wireless-support], [Disable VitaMTP wireless device support [default=no]]),
[ac_enable_wireless=$enableval], [ac_enable_wireless=yes])
AM_CONDITIONAL([ENABLE_USB], [test x"$ac_enable_usb" = "xyes"])
if test x"$ac_enable_usb" = "xyes" ; then
PKG_CHECK_MODULES(LIBUSB, libusb-1.0)
DEVICE_CFLAGS="$DEVICE_CFLAGS -DPTP_USB_SUPPORT"
#AC_CHECK_LIB([usb-1.0], [libusb_init], [], [AC_MSG_ERROR([libusb-1.0 not found])])
#AC_CHECK_HEADERS([libusb-1.0/libusb.h], [], [AC_MSG_ERROR([Cannot find libusb-1.0 header])])
fi
AM_CONDITIONAL([ENABLE_WIRELESS], [test x"$ac_enable_wireless" = "xyes"])
if test x"$ac_enable_wireless" = "xyes" ; then
# We use winsock2 with Windows
if test x"$mingw_compiler" != "xyes" ; then
AC_CHECK_HEADERS([arpa/inet.h netinet/in.h sys/select.h sys/socket.h], [], [AC_MSG_ERROR([Cannot find required networking header.])])
AC_CHECK_FUNCS([select socket socketpair], [], [AC_MSG_ERROR([Cannot find required networking function.])])
else
AC_CHECK_HEADERS([winsock2.h], [], [AC_MSG_ERROR([Cannot find winsock2 headers.])])
fi
DEVICE_CFLAGS="$DEVICE_CFLAGS -DPTP_IP_SUPPORT"
fi
AC_SUBST(DEVICE_CFLAGS)
AC_SUBST(OSFLAGS)
# Checks for XML.
PKG_CHECK_MODULES(XML, libxml-2.0)
#AC_CHECK_LIB([xml2], [xmlReadMemory], [], [AC_MSG_ERROR([libxml2 not found])])
#AC_CHECK_HEADERS([libxml/parser.h libxml/xmlmemory.h libxml/xmlwriter.h], [], [AC_MSG_ERROR([Cannot find libxml2 header])])
# Check for pthreads
ACX_PTHREAD
PTHREAD_CFLAGS="$PTHREAD_CFLAGS -D_REENTRANT -D_THREAD_SAFE -D_POSIX_PTHREAD_SEMANTICS"
AC_SUBST(PTHREAD_CFLAGS)
AC_SUBST(PTHREAD_LIBS)
# Checks for additional headers
AC_CHECK_HEADERS([errno.h fcntl.h iconv.h limits.h memory.h signal.h stdarg.h stddef.h stdlib.h string.h time.h unistd.h], [], [AC_MSG_ERROR([Cannot find required header.])])
if test x"$mingw_compiler" == "xyes" ; then
AC_CHECK_HEADERS([windows.h], [], [AC_MSG_ERROR([Cannot find required header.])])
fi
# Checks for typedefs, structures, and compiler characteristics.
AC_C_INLINE
AC_TYPE_INT16_T
AC_TYPE_INT32_T
AC_TYPE_INT64_T
AC_TYPE_INT8_T
AC_TYPE_SIZE_T
AC_TYPE_SSIZE_T
AC_TYPE_UINT16_T
AC_TYPE_UINT32_T
AC_TYPE_UINT64_T
AC_TYPE_UINT8_T
AC_CHECK_TYPES([ptrdiff_t])
# Checks for library functions.
AC_FUNC_MALLOC
AC_FUNC_MEMCMP
AC_FUNC_MKTIME
AC_FUNC_STAT
AC_FUNC_REALLOC
AC_CHECK_FUNCS([getcwd memset mkdir strchr strcspn strdup strrchr strstr strtol], [], [AC_MSG_ERROR([Cannot find required function.])])
# Support for large files in 32bit systems
AC_SYS_LARGEFILE
# Output
# Required for gphoto-ptp2
AX_NEED_STDINT_H([src/_stdint.h])
AC_NEED_BYTEORDER_H(src/gphoto2-endian.h)
AC_CONFIG_FILES([doc/Doxyfile Makefile doc/Makefile src/Makefile libvitamtp.pc])
AC_OUTPUT