1# This configure.in is based off of the one that glib uses 2 3# require atleast autoconf 2.59 4AC_PREREQ(2.59) 5 6# init autoconf (and check for presence of usb.c) 7AC_INIT([libusb],[0.1.12]) 8AC_CONFIG_SRCDIR([usb.c]) 9 10AH_TOP( 11#undef LINUX_API 12#undef BSD_API 13#undef DARWIN_API 14 15#undef HAVE_OLD_DEV_USB_USB_H 16 17#undef HAVE_LIMITS_H 18#undef HAVE_UNISTD_H 19#undef HAVE_VALUES_H 20 21#undef LIBUSB_MAJOR_VERSION 22#undef LIBUSB_MINOR_VERSION 23#undef LIBUSB_MICRO_VERSION 24#undef LIBUSB_INTERFACE_AGE 25#undef LIBUSB_BINARY_AGE 26) 27 28# Save this value here, since automake will set cflags later 29cflags_set=${CFLAGS+set} 30 31AM_INIT_AUTOMAKE([gnu nostdinc subdir-objects 1.7.6 --warnings=all]) 32 33LIBUSB_VERSION=$VERSION 34 35# 36# The following version number definitions apply to libusb 37# as a whole, so if changes occoured in any of them, they are all 38# treated with the same interface and binary age. 39# 40# Making releases: 41# LIBUSB_MICRO_VERSION += 1; 42# LIBUSB_INTERFACE_AGE += 1; 43# LIBUSB_BINARY_AGE += 1; 44# if any functions have been added, set LIBUSB_INTERFACE_AGE to 0. 45# if backwards compatibility has been broken, 46# set LIBUSB_BINARY_AGE _and_ LIBUSB_INTERFACE_AGE to 0. 47# 48LIBUSB_MAJOR_VERSION=0 49LIBUSB_MINOR_VERSION=1 50LIBUSB_MICRO_VERSION=12 51LIBUSB_INTERFACE_AGE=4 52LIBUSB_BINARY_AGE=8 53 54AC_SUBST(LIBUSB_MAJOR_VERSION) 55AC_SUBST(LIBUSB_MINOR_VERSION) 56AC_SUBST(LIBUSB_MICRO_VERSION) 57AC_SUBST(LIBUSB_VERSION) 58AC_SUBST(LIBUSB_INTERFACE_AGE) 59AC_SUBST(LIBUSB_BINARY_AGE) 60 61AC_DEFINE_UNQUOTED(LIBUSB_MAJOR_VERSION, $LIBUSB_MAJOR_VERSION) 62AC_DEFINE_UNQUOTED(LIBUSB_MINOR_VERSION, $LIBUSB_MINOR_VERSION) 63AC_DEFINE_UNQUOTED(LIBUSB_MICRO_VERSION, $LIBUSB_MICRO_VERSION) 64AC_DEFINE_UNQUOTED(LIBUSB_INTERFACE_AGE, $LIBUSB_INTERFACE_AGE) 65AC_DEFINE_UNQUOTED(LIBUSB_BINARY_AGE, $LIBUSB_BINARY_AGE) 66 67# libtool versioning 68# JR: Add support for MICRO_VERSION to be alpha-numeric. This will make 69# lt_current use the numeric part of MICRO_VERSION 70 71LIBUSB_MICRO_VERSION_NUM=`echo $LIBUSB_MICRO_VERSION | sed 's/[[a-zA-Z]]//g'` 72LT_RELEASE=$LIBUSB_MAJOR_VERSION.$LIBUSB_MINOR_VERSION 73LT_CURRENT=`expr $LIBUSB_MICRO_VERSION_NUM - $LIBUSB_INTERFACE_AGE` 74LT_REVISION=$LIBUSB_INTERFACE_AGE 75LT_AGE=`expr $LIBUSB_BINARY_AGE - $LIBUSB_INTERFACE_AGE` 76AC_SUBST(LT_RELEASE) 77AC_SUBST(LT_CURRENT) 78AC_SUBST(LT_REVISION) 79AC_SUBST(LT_AGE) 80 81AC_CONFIG_HEADERS([config.h]) 82 83dnl Initialize libtool 84AM_PROG_LIBTOOL 85 86dnl This has already been dragged in by AM_PROG_LIBTOOL 87dnl AC_CANONICAL_HOST 88 89LINUX_API=0 90DARWIN_API=0 91BSD_API=0 92 93AC_MSG_CHECKING(for what USB OS support) 94case $host in 95 *-linux*) 96 AC_DEFINE(LINUX_API, 1) 97 AC_DEFINE(BSD_API, 0) 98 AC_DEFINE(DARWIN_API, 0) 99 LINUX_API=1 100 os_support=linux 101 AC_MSG_RESULT(Linux) 102 OSLIBS="" 103 ;; 104 *-freebsd*|*-kfreebsd*-gnu|*-openbsd*|*-netbsd*) 105 AC_DEFINE(BSD_API, 1) 106 AC_DEFINE(LINUX_API, 0) 107 AC_DEFINE(DARWIN_API, 0) 108 BSD_API=1 109 os_support=bsd 110 AC_MSG_RESULT(FreeBSD, OpenBSD and/or NetBSD) 111 OSLIBS="" 112 ;; 113 *-darwin*) 114 AC_DEFINE(DARWIN_API, 1) 115 AC_DEFINE(LINUX_API, 0) 116 AC_DEFINE(BSD_API, 0) 117 DARWIN_API=1 118 os_support=darwin 119 AC_MSG_RESULT(Darwin and/or MacOS 10) 120 OSLIBS="-Wl,-framework -Wl,IOKit -Wl,-framework -Wl,CoreFoundation -Wl,-prebind" 121 ;; 122 *) 123 AC_MSG_RESULT(unknown operating system) 124 AC_MSG_ERROR(libusb does not support compiling for $host) 125 ;; 126esac 127 128AC_SUBST(DARWIN_API) 129AC_SUBST(LINUX_API) 130AC_SUBST(BSD_API) 131 132AM_CONDITIONAL(LINUX_API, test "$os_support" = "linux") 133AM_CONDITIONAL(BSD_API, test "$os_support" = "bsd") 134AM_CONDITIONAL(DARWIN_API, test "$os_support" = "darwin") 135 136AC_SUBST(OSLIBS) 137 138if test `expr $LIBUSB_MINOR_VERSION \% 2` = 1 ; then 139 debug_default=yes 140else 141 debug_default=minimum 142fi 143 144dnl declare --enable-* args and collect ac_help strings 145AC_ARG_ENABLE(debug, [ --enable-debug=[no/minimum/yes] turn on debugging [default=$debug_default]],,enable_debug=$debug_default) 146 147if test "x$enable_debug" = "xyes"; then 148 test "$cflags_set" = set || CFLAGS="$CFLAGS -g" 149fi 150 151# Checks for programs. 152AC_LANG_CPLUSPLUS 153AC_PROG_CC 154AM_PROG_CC_C_O 155AC_PROG_INSTALL 156 157changequote(,)dnl 158if test "x$GCC" = "xyes"; then 159 case " $CFLAGS " in 160 *[\ \ ]-Wall[\ \ ]*) ;; 161 *) CFLAGS="$CFLAGS -Wall" ;; 162 esac 163fi 164changequote([,])dnl 165 166# Checks for header files. 167AC_HEADER_STDC 168 169# Checks for library functions. 170AC_FUNC_VPRINTF 171 172AC_C_CONST 173 174dnl for bytesex stuff 175AC_C_BIGENDIAN 176 177if test "$ac_cv_c_bigendian" = "yes"; then 178 BIGENDIAN="1" 179else 180 BIGENDIAN="0" 181fi 182AC_SUBST(BIGENDIAN) 183 184dnl header file checks 185AC_CHECK_HEADERS(limits.h, AC_DEFINE_UNQUOTED(HAVE_LIMITS_H)) 186AC_CHECK_HEADERS(unistd.h, AC_DEFINE_UNQUOTED(HAVE_UNISTD_H)) 187AC_CHECK_HEADERS(values.h, AC_DEFINE_UNQUOTED(HAVE_VALUES_H)) 188 189# Check for some functions 190AC_CHECK_FUNCS(memmove) 191 192if test "$os_support" = "bsd"; then 193 AC_MSG_CHECKING(if dev/usb/usb.h uses new naming convention) 194 AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[#include <dev/usb/usb.h>]], [[ 195 int a = ((struct usb_ctl_request *)0L)->ucr_addr 196 ]])],[AC_MSG_RESULT(yes)],[AC_MSG_RESULT(no) 197 AC_DEFINE_UNQUOTED(HAVE_OLD_DEV_USB_USB_H)]) 198fi 199 200#pkg-config: pkg-config is a tool to simplify checks for libraries and versions. 201pkgconfig_msg="no (http://www.freedesktop.org/software/pkgconfig)" 202try_pkgconfig=true 203have_pkgconfig=false 204AC_ARG_WITH(pkgconfig, [ --without-pkgconfig don"t use pkg-config],[ 205 if test x$withval = xno; then 206 try_pkgconfig=false 207 pkgconfig_msg="no (not requested)" 208 fi]) 209if $try_pkgconfig; then 210 AC_PATH_PROG(PKG_CONFIG,pkg-config) 211 if test -n "${PKG_CONFIG}"; then 212 have_pkgconfig=true 213 pkgconfig_msg="yes" 214 fi 215fi 216# guessing directory to install *.pc into 217pkgconfigdir="${libdir}/pkgconfig" 218AC_SUBST(pkgconfigdir) 219 220# Check if the user wants to enable documentation 221AC_MSG_CHECKING(if we should build the documentation) 222AC_ARG_ENABLE(build-docs, [ --disable-build-docs turn off building documentation], 223 [ test "$enableval" != no && build_docs=yes || build_docs=no ], 224 build_docs=auto) 225AC_MSG_RESULT($build_docs) 226 227if test "$build_docs" != "no"; then 228 AC_CHECK_PROG(JADE, jade, jade) 229 if test -z "$JADE"; then 230 AC_CHECK_PROG(JADE, openjade, openjade) 231 fi 232fi 233 234LIBUSB_INIT_DOXYGEN([LIBUSB C++ API Reference], [Version $VERSION]) 235 236dnl Not quite ready for primetime --jerdfelt 237dnl AC_CHECK_PROG(DVIPS, dvips, dvips, false) 238dnl if test "$DVIPS" = "false"; then 239dnl unset BUILD_DOCS 240dnl fi 241 242if test "$build_docs" != "no" -a -z "$JADE"; then 243 AC_MSG_WARN(Documentation build components not installed. sgml docs will not be built) 244 build_docs="no" 245fi 246 247AM_CONDITIONAL(BUILD_DOCS, test "$build_docs" != "no") 248 249AC_CONFIG_FILES([ 250 Makefile 251 doc/Makefile 252 libusb.spec 253 libusb-config 254 libusb.pc 255 tests/Makefile 256 README 257 INSTALL.libusb 258 usb.h 259 Doxyfile 260]) 261AC_CONFIG_COMMANDS([default],[[chmod +x libusb-config]],[[]]) 262AC_OUTPUT 263 264