http://patch-tracking.debian.net/patch/misc/dl/freeglut/2.4.0-6.1/src/freeglut_joystick.c --- freeglut-2.4.0.orig/src/freeglut_joystick.c +++ freeglut-2.4.0/src/freeglut_joystick.c @@ -76,11 +76,11 @@ # include # endif # include -# if defined(__FreeBSD__) || defined(__NetBSD__) +# if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) /* XXX The below hack is done until freeglut's autoconf is updated. */ # define HAVE_USB_JS 1 -# if defined(__FreeBSD__) && __FreeBSD_version >= 500000 +# if (defined(__FreeBSD__) || defined(__FreeBSD_kernel__)) && (__FreeBSD_version >= 500000 || __FreeBSD_kernel_version >= 500000) # include # else /* @@ -131,7 +131,7 @@ /* BSD defines from "jsBSD.cxx" around lines 42-270 */ -#if defined(__NetBSD__) || defined(__FreeBSD__) +#if defined(__NetBSD__) || defined(__FreeBSD__) || defined(__FreeBSD_kernel__) # ifdef HAVE_USB_JS # if defined(__NetBSD__) @@ -142,13 +142,11 @@ # else # include # endif -# elif defined(__FreeBSD__) -# if __FreeBSD_version < 500000 -# include -# else -/* XXX The below hack is done until freeglut's autoconf is updated. */ -# define HAVE_USBHID_H 1 +# elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) +# ifdef HAVE_USBHID_H # include +# else +# include # endif # endif # include @@ -393,7 +391,7 @@ #if TARGET_HOST_UNIX_X11 -# if defined(__FreeBSD__) || defined(__NetBSD__) +# if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) struct os_specific_s *os; # endif @@ -461,7 +459,7 @@ int status; #endif -#if defined(__FreeBSD__) || defined(__NetBSD__) +#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) int len; #endif @@ -598,7 +596,7 @@ #endif #if TARGET_HOST_UNIX_X11 -# if defined(__FreeBSD__) || defined(__NetBSD__) +# if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) if ( joy->os->is_analog ) { int status = read ( joy->os->fd, &joy->os->ajs, sizeof(joy->os->ajs) ); @@ -656,9 +654,9 @@ if (usage > 0 && usage < _JS_MAX_BUTTONS + 1) { if (d) - joy->os->cache_buttons |= (1 << usage - 1); + joy->os->cache_buttons |= (1 << (usage - 1)); else - joy->os->cache_buttons &= ~(1 << usage - 1); + joy->os->cache_buttons &= ~(1 << (usage - 1)); } } } @@ -744,7 +742,7 @@ } if ( buttons ) -# if defined( __FreeBSD__ ) || defined( __NetBSD__ ) +# if defined( __FreeBSD__ ) || defined(__FreeBSD_kernel__) || defined( __NetBSD__ ) *buttons = ( joy->js.b1 ? 1 : 0 ) | ( joy->js.b2 ? 2 : 0 ); /* XXX Should not be here -- BSD is handled earlier */ # else *buttons = joy->js.buttons; @@ -1054,12 +1052,12 @@ CFTypeRef topLevelElement; #endif #if TARGET_HOST_UNIX_X11 -# if defined( __FreeBSD__ ) || defined( __NetBSD__ ) +# if defined( __FreeBSD__ ) || defined(__FreeBSD_kernel__) || defined( __NetBSD__ ) char *cp; # endif # ifdef JS_NEW unsigned char u; -# else +# elif defined(__linux__) int counter; # endif #endif @@ -1285,7 +1283,7 @@ #endif #if TARGET_HOST_UNIX_X11 -#if defined( __FreeBSD__ ) || defined( __NetBSD__ ) +#if defined( __FreeBSD__ ) || defined(__FreeBSD_kernel__) || defined( __NetBSD__ ) for( i = 0; i < _JS_MAX_AXES; i++ ) joy->os->cache_axes[ i ] = 0.0f; @@ -1549,7 +1547,7 @@ #endif #if TARGET_HOST_UNIX_X11 -# if defined( __FreeBSD__ ) || defined( __NetBSD__ ) +# if defined( __FreeBSD__ ) || defined(__FreeBSD_kernel__) || defined( __NetBSD__ ) fgJoystick[ ident ]->id = ident; fgJoystick[ ident ]->error = GL_FALSE; @@ -1619,7 +1617,7 @@ #endif #if TARGET_HOST_UNIX_X11 -#if defined( __FreeBSD__ ) || defined( __NetBSD__ ) +#if defined( __FreeBSD__ ) || defined(__FreeBSD_kernel__) || defined( __NetBSD__ ) if( fgJoystick[ident]->os ) { if( ! fgJoystick[ ident ]->error ) @@ -1684,9 +1682,6 @@ fgInitialiseJoysticks (); - if ( !fgJoystick ) - return 0; - if ( !fgState.JoysticksInitialised ) return 0;