Edit

kc3-lang/SDL/src/hidapi/configure.ac

Branch :

  • Show log

    Commit

  • Author : Sam Lantinga
    Date : 2018-08-09 16:05:48
    Hash : 4f41f07d
    Message : Added missing files from previous commits

  • src/hidapi/configure.ac
  • AC_PREREQ(2.63)
    
    # Version number. This is currently the only place.
    m4_define([HIDAPI_MAJOR],   0)
    m4_define([HIDAPI_MINOR],   8)
    m4_define([HIDAPI_RELEASE], 0)
    m4_define([HIDAPI_RC],      -rc1)
    m4_define([VERSION_STRING], HIDAPI_MAJOR[.]HIDAPI_MINOR[.]HIDAPI_RELEASE[]HIDAPI_RC)
    
    AC_INIT([hidapi],[VERSION_STRING],[alan@signal11.us])
    
    # Library soname version
    # Follow the following rules (particularly the ones in the second link):
    #  http://www.gnu.org/software/libtool/manual/html_node/Updating-version-info.html
    #  http://sourceware.org/autobook/autobook/autobook_91.html
    lt_current="0"
    lt_revision="0"
    lt_age="0"
    LTLDFLAGS="-version-info ${lt_current}:${lt_revision}:${lt_age}"
    
    AC_CONFIG_MACRO_DIR([m4])
    AM_INIT_AUTOMAKE([foreign -Wall -Werror])
    AC_CONFIG_MACRO_DIR([m4])
    
    m4_ifdef([AM_PROG_AR], [AM_PROG_AR])
    LT_INIT
    
    AC_PROG_CC
    AC_PROG_CXX
    AC_PROG_OBJC
    PKG_PROG_PKG_CONFIG
    
    
    m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])])
    
    hidapi_lib_error() {
    	echo ""
    	echo "  Library $1 was not found on this system."
    	echo "  Please install it and re-run ./configure"
    	echo ""
    	exit 1
    }
    
    hidapi_prog_error() {
    	echo ""
    	echo "  Program $1 was not found on this system."
    	echo "  This program is part of $2."
    	echo "  Please install it and re-run ./configure"
    	echo ""
    	exit 1
    }
    
    AC_MSG_CHECKING([operating system])
    AC_MSG_RESULT($host)
    case $host in
    *-linux*)
    	AC_MSG_RESULT([ (Linux back-end)])
    	AC_DEFINE(OS_LINUX, 1, [Linux implementations])
    	AC_SUBST(OS_LINUX)
    	backend="linux"
    	os="linux"
    	threads="pthreads"
    
    	# HIDAPI/hidraw libs
    	PKG_CHECK_MODULES([libudev], [libudev], true, [hidapi_lib_error libudev])
    	LIBS_HIDRAW_PR+=" $libudev_LIBS"
    	CFLAGS_HIDRAW+=" $libudev_CFLAGS"
    
    	# HIDAPI/libusb libs
    	AC_CHECK_LIB([rt], [clock_gettime], [LIBS_LIBUSB_PRIVATE+=" -lrt"], [hidapi_lib_error librt])
    	PKG_CHECK_MODULES([libusb], [libusb-1.0 >= 1.0.9], true, [hidapi_lib_error libusb-1.0])
    	LIBS_LIBUSB_PRIVATE+=" $libusb_LIBS"
    	CFLAGS_LIBUSB+=" $libusb_CFLAGS"
    	;;
    *-darwin*)
    	AC_MSG_RESULT([ (Mac OS X back-end)])
    	AC_DEFINE(OS_DARWIN, 1, [Mac implementation])
    	AC_SUBST(OS_DARWIN)
    	backend="mac"
    	os="darwin"
    	threads="pthreads"
    	LIBS="${LIBS} -framework IOKit -framework CoreFoundation"
    	;;
    *-freebsd*)
    	AC_MSG_RESULT([ (FreeBSD back-end)])
    	AC_DEFINE(OS_FREEBSD, 1, [FreeBSD implementation])
    	AC_SUBST(OS_FREEBSD)
    	backend="libusb"
    	os="freebsd"
    	threads="pthreads"
    
    	CFLAGS="$CFLAGS -I/usr/local/include"
    	LDFLAGS="$LDFLAGS -L/usr/local/lib"
    	LIBS="${LIBS}"
    	AC_CHECK_LIB([usb], [libusb_init], [LIBS_LIBUSB_PRIVATE="${LIBS_LIBUSB_PRIVATE} -lusb"], [hidapi_lib_error libusb])
    	AC_CHECK_LIB([iconv], [iconv_open], [LIBS_LIBUSB_PRIVATE="${LIBS_LIBUSB_PRIVATE} -liconv"], [hidapi_lib_error libiconv])
    	echo libs_priv: $LIBS_LIBUSB_PRIVATE
    	;;
    *-kfreebsd*)
    	AC_MSG_RESULT([ (kFreeBSD back-end)])
    	AC_DEFINE(OS_KFREEBSD, 1, [kFreeBSD implementation])
    	AC_SUBST(OS_KFREEBSD)
    	backend="libusb"
    	os="kfreebsd"
    	threads="pthreads"
    
    	AC_CHECK_LIB([usb], [libusb_init], [LIBS_LIBUSB_PRIVATE="${LIBS_LIBUSB_PRIVATE} -lusb"], [hidapi_lib_error libusb])
    	echo libs_priv: $LIBS_LIBUSB_PRIVATE
    	;;
    *-mingw*)
    	AC_MSG_RESULT([ (Windows back-end, using MinGW)])
    	backend="windows"
    	os="windows"
    	threads="windows"
    	win_implementation="mingw"
    	;;
    *-cygwin*)
    	AC_MSG_RESULT([ (Windows back-end, using Cygwin)])
    	backend="windows"
    	os="windows"
    	threads="windows"
    	win_implementation="cygwin"
    	;;
    *)
    	AC_MSG_ERROR([HIDAPI is not supported on your operating system yet])
    esac
    
    LIBS_HIDRAW="${LIBS} ${LIBS_HIDRAW_PR}"
    LIBS_LIBUSB="${LIBS} ${LIBS_LIBUSB_PRIVATE}"
    AC_SUBST([LIBS_HIDRAW])
    AC_SUBST([LIBS_LIBUSB])
    AC_SUBST([CFLAGS_LIBUSB])
    AC_SUBST([CFLAGS_HIDRAW])
    
    if test "x$os" = xwindows; then
    	AC_DEFINE(OS_WINDOWS, 1, [Windows implementations])
    	AC_SUBST(OS_WINDOWS)
    	LDFLAGS="${LDFLAGS} -no-undefined"
    	LIBS="${LIBS} -lsetupapi"
    fi
    
    if test "x$threads" = xpthreads; then
    	AX_PTHREAD([found_pthreads=yes], [found_pthreads=no])
    
    	if test "x$found_pthreads" = xyes; then
    		if test "x$os" = xlinux; then
    			# Only use pthreads for libusb implementation on Linux.
    			LIBS_LIBUSB="$PTHREAD_LIBS $LIBS_LIBUSB"
    			CFLAGS_LIBUSB="$CFLAGS_LIBUSB $PTHREAD_CFLAGS"
    			# There's no separate CC on Linux for threading,
    			# so it's ok that both implementations use $PTHREAD_CC
    			CC="$PTHREAD_CC"
    		else
    			LIBS="$PTHREAD_LIBS $LIBS"
    			CFLAGS="$CFLAGS $PTHREAD_CFLAGS"
    			CC="$PTHREAD_CC"
    		fi
    	fi
    fi
    
    # Test GUI
    AC_ARG_ENABLE([testgui],
    	[AS_HELP_STRING([--enable-testgui],
    		[enable building of test GUI (default n)])],
    	[testgui_enabled=$enableval],
    	[testgui_enabled='no'])
    AM_CONDITIONAL([BUILD_TESTGUI], [test "x$testgui_enabled" != "xno"])
    
    # Configure the MacOS TestGUI app bundle
    rm -Rf testgui/TestGUI.app
    mkdir -p testgui/TestGUI.app
    cp -R ${srcdir}/testgui/TestGUI.app.in/* testgui/TestGUI.app
    chmod -R u+w testgui/TestGUI.app
    mkdir testgui/TestGUI.app/Contents/MacOS/
    
    if test "x$testgui_enabled" != "xno"; then
    	if test "x$os" = xdarwin; then
    		# On Mac OS, don't use pkg-config.
    		AC_CHECK_PROG([foxconfig], [fox-config], [fox-config], false)
    		if test "x$foxconfig" = "xfalse"; then
    			hidapi_prog_error fox-config "FOX Toolkit"
    		fi
    		LIBS_TESTGUI+=`$foxconfig --libs`
    		LIBS_TESTGUI+=" -framework Cocoa -L/usr/X11R6/lib"
    		CFLAGS_TESTGUI+=`$foxconfig --cflags`
    		OBJCFLAGS+=" -x objective-c++"
    	elif test "x$os" = xwindows; then
    		# On Windows, just set the paths for Fox toolkit
    		if test "x$win_implementation" = xmingw; then
    			CFLAGS_TESTGUI="-I\$(srcdir)/../../hidapi-externals/fox/include -g -c"
    			LIBS_TESTGUI=" -mwindows \$(srcdir)/../../hidapi-externals/fox/lib/libFOX-1.6.a -lgdi32 -Wl,--enable-auto-import -static-libgcc -static-libstdc++ -lkernel32"
    		else
    			# Cygwin
    			CFLAGS_TESTGUI="-DWIN32 -I\$(srcdir)/../../hidapi-externals/fox/include -g -c"
    			LIBS_TESTGUI="\$(srcdir)/../../hidapi-externals/fox/lib/libFOX-cygwin-1.6.a -lgdi32 -Wl,--enable-auto-import -static-libgcc -static-libstdc++ -lkernel32"
    		fi
    	else
    		# On Linux and FreeBSD platforms, use pkg-config to find fox.
    		PKG_CHECK_MODULES([fox], [fox17], [], [PKG_CHECK_MODULES([fox], [fox])])
    		LIBS_TESTGUI="${LIBS_TESTGUI} $fox_LIBS"
    		if test "x$os" = xfreebsd; then
    			LIBS_TESTGUI="${LIBS_TESTGUI} -L/usr/local/lib"
    		fi
    		CFLAGS_TESTGUI="${CFLAGS_TESTGUI} $fox_CFLAGS"
    	fi
    fi
    AC_SUBST([LIBS_TESTGUI])
    AC_SUBST([CFLAGS_TESTGUI])
    AC_SUBST([backend])
    
    # OS info for Automake
    AM_CONDITIONAL(OS_LINUX, test "x$os" = xlinux)
    AM_CONDITIONAL(OS_DARWIN, test "x$os" = xdarwin)
    AM_CONDITIONAL(OS_FREEBSD, test "x$os" = xfreebsd)
    AM_CONDITIONAL(OS_KFREEBSD, test "x$os" = xkfreebsd)
    AM_CONDITIONAL(OS_WINDOWS, test "x$os" = xwindows)
    
    AC_CONFIG_HEADERS([config.h])
    
    if test "x$os" = "xlinux"; then
    	AC_CONFIG_FILES([pc/hidapi-hidraw.pc])
    	AC_CONFIG_FILES([pc/hidapi-libusb.pc])
    else
    	AC_CONFIG_FILES([pc/hidapi.pc])
    fi
    
    AC_SUBST(LTLDFLAGS)
    
    AC_CONFIG_FILES([Makefile \
    	hidtest/Makefile \
    	libusb/Makefile \
    	linux/Makefile \
    	mac/Makefile \
    	testgui/Makefile \
    	windows/Makefile])
    AC_OUTPUT