Atlas - configure.ac
Home / ext / SDL / src / hidapi Lines: 1 | Size: 7789 bytes [Download] [Show on GitHub] [Search similar files] [Raw] [Raw (proxy)][FILE BEGIN]1AC_PREREQ(2.63) 2 3AC_INIT([hidapi],[m4_normalize(m4_builtin([include], VERSION))],[https://github.com/libusb/hidapi/issues]) 4 5echo "This build script for HIDAPI is deprecated." 6echo "Consider using CMake instead." 7 8# Library soname version 9# Follow the following rules (particularly the ones in the second link): 10# http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html 11# http://sourceware.org/autobook/autobook/autobook_91.html 12lt_current="0" 13lt_revision="0" 14lt_age="0" 15LTLDFLAGS="-version-info ${lt_current}:${lt_revision}:${lt_age}" 16 17AC_CONFIG_MACRO_DIR([m4]) 18AM_INIT_AUTOMAKE([foreign -Wall -Werror]) 19 20m4_ifdef([AM_PROG_AR], [AM_PROG_AR]) 21LT_INIT 22 23AC_PROG_CC 24AC_PROG_CXX 25AC_PROG_OBJC 26PKG_PROG_PKG_CONFIG 27 28 29m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])]) 30 31hidapi_lib_error() { 32 echo "" 33 echo " Library $1 was not found on this system." 34 echo " Please install it and re-run ./configure" 35 echo "" 36 exit 1 37} 38 39hidapi_prog_error() { 40 echo "" 41 echo " Program $1 was not found on this system." 42 echo " This program is part of $2." 43 echo " Please install it and re-run ./configure" 44 echo "" 45 exit 1 46} 47 48AC_MSG_CHECKING([operating system]) 49AC_MSG_RESULT($host) 50case $host in 51*-linux*) 52 AC_MSG_RESULT([ (Linux back-end)]) 53 AC_DEFINE(OS_LINUX, 1, [Linux implementations]) 54 AC_SUBST(OS_LINUX) 55 backend="linux" 56 os="linux" 57 threads="pthreads" 58 59 # HIDAPI/hidraw libs 60 PKG_CHECK_MODULES([libudev], [libudev], true, [hidapi_lib_error libudev]) 61 LIBS_HIDRAW_PR="${LIBS_HIDRAW_PR} $libudev_LIBS" 62 CFLAGS_HIDRAW="${CFLAGS_HIDRAW} $libudev_CFLAGS" 63 64 # HIDAPI/libusb libs 65 AC_CHECK_LIB([rt], [clock_gettime], [LIBS_LIBUSB_PRIVATE="${LIBS_LIBUSB_PRIVATE} -lrt"], [hidapi_lib_error librt]) 66 PKG_CHECK_MODULES([libusb], [libusb-1.0 >= 1.0.9], true, [hidapi_lib_error libusb-1.0]) 67 LIBS_LIBUSB_PRIVATE="${LIBS_LIBUSB_PRIVATE} $libusb_LIBS" 68 CFLAGS_LIBUSB="${CFLAGS_LIBUSB} $libusb_CFLAGS" 69 ;; 70*-darwin*) 71 AC_MSG_RESULT([ (Mac OS X back-end)]) 72 AC_DEFINE(OS_DARWIN, 1, [Mac implementation]) 73 AC_SUBST(OS_DARWIN) 74 backend="mac" 75 os="darwin" 76 threads="pthreads" 77 LIBS="${LIBS} -framework IOKit -framework CoreFoundation" 78 ;; 79*-freebsd*) 80 AC_MSG_RESULT([ (FreeBSD back-end)]) 81 AC_DEFINE(OS_FREEBSD, 1, [FreeBSD implementation]) 82 AC_SUBST(OS_FREEBSD) 83 backend="libusb" 84 os="freebsd" 85 threads="pthreads" 86 87 CFLAGS="$CFLAGS -I/usr/local/include" 88 LDFLAGS="$LDFLAGS -L/usr/local/lib" 89 LIBS="${LIBS}" 90 PKG_CHECK_MODULES([libusb], [libusb-1.0 >= 1.0.9], true, [hidapi_lib_error libusb-1.0]) 91 LIBS_LIBUSB_PRIVATE="${LIBS_LIBUSB_PRIVATE} $libusb_LIBS" 92 CFLAGS_LIBUSB="${CFLAGS_LIBUSB} $libusb_CFLAGS" 93 AC_CHECK_LIB([iconv], [iconv_open], [LIBS_LIBUSB_PRIVATE="${LIBS_LIBUSB_PRIVATE} -liconv"], [hidapi_lib_error libiconv]) 94 ;; 95*-kfreebsd*) 96 AC_MSG_RESULT([ (kFreeBSD back-end)]) 97 AC_DEFINE(OS_KFREEBSD, 1, [kFreeBSD implementation]) 98 AC_SUBST(OS_KFREEBSD) 99 backend="libusb" 100 os="kfreebsd" 101 threads="pthreads" 102 103 PKG_CHECK_MODULES([libusb], [libusb-1.0 >= 1.0.9], true, [hidapi_lib_error libusb-1.0]) 104 LIBS_LIBUSB_PRIVATE="${LIBS_LIBUSB_PRIVATE} $libusb_LIBS" 105 CFLAGS_LIBUSB="${CFLAGS_LIBUSB} $libusb_CFLAGS" 106 ;; 107*-*-haiku) 108 AC_MSG_RESULT([ (Haiku back-end)]) 109 AC_DEFINE(OS_HAIKU, 1, [Haiku implementation]) 110 AC_SUBST(OS_HAIKU) 111 backend="libusb" 112 os="haiku" 113 threads="pthreads" 114 115 PKG_CHECK_MODULES([libusb], [libusb-1.0 >= 1.0.9], true, [hidapi_lib_error libusb-1.0]) 116 LIBS_LIBUSB_PRIVATE="${LIBS_LIBUSB_PRIVATE} $libusb_LIBS" 117 CFLAGS_LIBUSB="${CFLAGS_LIBUSB} $libusb_CFLAGS" 118 AC_CHECK_LIB([iconv], [libiconv_open], [LIBS_LIBUSB_PRIVATE="${LIBS_LIBUSB_PRIVATE} -liconv"], [hidapi_lib_error libiconv]) 119 ;; 120*-mingw*) 121 AC_MSG_RESULT([ (Windows back-end, using MinGW)]) 122 backend="windows" 123 os="windows" 124 threads="windows" 125 win_implementation="mingw" 126 LDFLAGS="${LDFLAGS} -static-libgcc" 127 ;; 128*-msys*) 129 AC_MSG_RESULT([ (Windows back-end, using MSYS2)]) 130 backend="windows" 131 os="windows" 132 threads="windows" 133 win_implementation="mingw" 134 LDFLAGS="${LDFLAGS} -static-libgcc" 135 ;; 136*-cygwin*) 137 AC_MSG_RESULT([ (Windows back-end, using Cygwin)]) 138 backend="windows" 139 os="windows" 140 threads="windows" 141 win_implementation="cygwin" 142 ;; 143*) 144 AC_MSG_ERROR([HIDAPI is not supported on your operating system yet]) 145esac 146 147LIBS_HIDRAW="${LIBS} ${LIBS_HIDRAW_PR}" 148LIBS_LIBUSB="${LIBS} ${LIBS_LIBUSB_PRIVATE}" 149AC_SUBST([LIBS_HIDRAW]) 150AC_SUBST([LIBS_LIBUSB]) 151AC_SUBST([CFLAGS_LIBUSB]) 152AC_SUBST([CFLAGS_HIDRAW]) 153 154if test "x$os" = xwindows; then 155 AC_DEFINE(OS_WINDOWS, 1, [Windows implementations]) 156 AC_SUBST(OS_WINDOWS) 157 LDFLAGS="${LDFLAGS} -no-undefined" 158 LIBS="${LIBS}" 159fi 160 161if test "x$threads" = xpthreads; then 162 AX_PTHREAD([found_pthreads=yes], [found_pthreads=no]) 163 164 if test "x$found_pthreads" = xyes; then 165 if test "x$os" = xlinux; then 166 # Only use pthreads for libusb implementation on Linux. 167 LIBS_LIBUSB="$PTHREAD_LIBS $LIBS_LIBUSB" 168 CFLAGS_LIBUSB="$CFLAGS_LIBUSB $PTHREAD_CFLAGS" 169 # There's no separate CC on Linux for threading, 170 # so it's ok that both implementations use $PTHREAD_CC 171 CC="$PTHREAD_CC" 172 else 173 LIBS="$PTHREAD_LIBS $LIBS" 174 CFLAGS="$CFLAGS $PTHREAD_CFLAGS" 175 CC="$PTHREAD_CC" 176 fi 177 fi 178fi 179 180# Test GUI 181AC_ARG_ENABLE([testgui], 182 [AS_HELP_STRING([--enable-testgui], 183 [enable building of test GUI (default n)])], 184 [testgui_enabled=$enableval], 185 [testgui_enabled='no']) 186AM_CONDITIONAL([BUILD_TESTGUI], [test "x$testgui_enabled" != "xno"]) 187 188# Configure the MacOS TestGUI app bundle 189rm -Rf testgui/TestGUI.app 190mkdir -p testgui/TestGUI.app 191cp -R ${srcdir}/testgui/TestGUI.app.in/* testgui/TestGUI.app 192chmod -R u+w testgui/TestGUI.app 193mkdir testgui/TestGUI.app/Contents/MacOS/ 194 195if test "x$testgui_enabled" != "xno"; then 196 if test "x$os" = xdarwin; then 197 # On Mac OS, do not use pkg-config. 198 AC_CHECK_PROG([foxconfig], [fox-config], [fox-config], false) 199 if test "x$foxconfig" = "xfalse"; then 200 hidapi_prog_error fox-config "FOX Toolkit" 201 fi 202 LIBS_TESTGUI="${LIBS_TESTGUI} `$foxconfig --libs`" 203 LIBS_TESTGUI="${LIBS_TESTGUI} -framework Cocoa -L/usr/X11R6/lib" 204 CFLAGS_TESTGUI="${CFLAGS_TESTGUI} `$foxconfig --cflags`" 205 OBJCFLAGS="${OBJCFLAGS} -x objective-c++" 206 elif test "x$os" = xwindows; then 207 # On Windows, just set the paths for Fox toolkit 208 if test "x$win_implementation" = xmingw; then 209 CFLAGS_TESTGUI="-I\$(srcdir)/../../hidapi-externals/fox/include -g -c" 210 LIBS_TESTGUI=" -mwindows \$(srcdir)/../../hidapi-externals/fox/lib/libFOX-1.6.a -lgdi32 -Wl,--enable-auto-import -static-libgcc -static-libstdc++ -lkernel32" 211 else 212 # Cygwin 213 CFLAGS_TESTGUI="-DWIN32 -I\$(srcdir)/../../hidapi-externals/fox/include -g -c" 214 LIBS_TESTGUI="\$(srcdir)/../../hidapi-externals/fox/lib/libFOX-cygwin-1.6.a -lgdi32 -Wl,--enable-auto-import -static-libgcc -static-libstdc++ -lkernel32" 215 fi 216 else 217 # On Linux and FreeBSD platforms, use pkg-config to find fox. 218 PKG_CHECK_MODULES([fox], [fox17], [], [PKG_CHECK_MODULES([fox], [fox])]) 219 LIBS_TESTGUI="${LIBS_TESTGUI} $fox_LIBS" 220 if test "x$os" = xfreebsd; then 221 LIBS_TESTGUI="${LIBS_TESTGUI} -L/usr/local/lib" 222 fi 223 CFLAGS_TESTGUI="${CFLAGS_TESTGUI} $fox_CFLAGS" 224 fi 225fi 226AC_SUBST([LIBS_TESTGUI]) 227AC_SUBST([CFLAGS_TESTGUI]) 228AC_SUBST([backend]) 229 230# OS info for Automake 231AM_CONDITIONAL(OS_LINUX, test "x$os" = xlinux) 232AM_CONDITIONAL(OS_DARWIN, test "x$os" = xdarwin) 233AM_CONDITIONAL(OS_FREEBSD, test "x$os" = xfreebsd) 234AM_CONDITIONAL(OS_KFREEBSD, test "x$os" = xkfreebsd) 235AM_CONDITIONAL(OS_HAIKU, test "x$os" = xhaiku) 236AM_CONDITIONAL(OS_WINDOWS, test "x$os" = xwindows) 237 238AC_CONFIG_HEADERS([config.h]) 239 240if test "x$os" = "xlinux"; then 241 AC_CONFIG_FILES([pc/hidapi-hidraw.pc]) 242 AC_CONFIG_FILES([pc/hidapi-libusb.pc]) 243else 244 AC_CONFIG_FILES([pc/hidapi.pc]) 245fi 246 247AC_SUBST(LTLDFLAGS) 248 249AC_CONFIG_FILES([Makefile \ 250 hidtest/Makefile \ 251 libusb/Makefile \ 252 linux/Makefile \ 253 mac/Makefile \ 254 testgui/Makefile \ 255 windows/Makefile]) 256AC_OUTPUT 257[FILE END](C) 2025 0x4248 (C) 2025 4248 Media and 4248 Systems, All part of 0x4248 See LICENCE files for more information. Not all files are by 0x4248 always check Licencing.