diff options
author | kristerw <kristerw> | 2002-01-06 22:09:31 +0000 |
---|---|---|
committer | kristerw <kristerw> | 2002-01-06 22:09:31 +0000 |
commit | 762536e93f27a0755599b74e9e6fa43ce9d51cbb (patch) | |
tree | ba76464607ccb368d430f7d1e4d6611c02e2a08d /emulators/xmame | |
parent | 938ff07af7a539af757fb7ded83694a82475e4bd (diff) | |
download | pkgsrc-762536e93f27a0755599b74e9e6fa43ce9d51cbb.tar.gz |
Make xmame compile for new systems that have libusbhid.so instead of libusb.so.
Noted by Rui-Xiang Guo in a mail to tech-pkg.
Diffstat (limited to 'emulators/xmame')
-rw-r--r-- | emulators/xmame/Makefile | 4 | ||||
-rw-r--r-- | emulators/xmame/distinfo | 4 | ||||
-rw-r--r-- | emulators/xmame/patches/patch-ab | 20 | ||||
-rw-r--r-- | emulators/xmame/patches/patch-ac | 60 |
4 files changed, 85 insertions, 3 deletions
diff --git a/emulators/xmame/Makefile b/emulators/xmame/Makefile index 9b91d1e7b38..f23e650f82b 100644 --- a/emulators/xmame/Makefile +++ b/emulators/xmame/Makefile @@ -1,4 +1,4 @@ -# $NetBSD: Makefile,v 1.63 2002/01/06 09:36:45 kristerw Exp $ +# $NetBSD: Makefile,v 1.64 2002/01/06 22:09:31 kristerw Exp $ # DISTNAME= xmame-0.57.1 @@ -97,7 +97,7 @@ MAKE_FLAGS+= X11_DGA=1 MAKE_FLAGS+= JOY_I386=1 .endif .if ${OPSYS} == "NetBSD" -. if exists(/usr/lib/libusb.a) +. if exists(/usr/lib/libusb.a) || exists(/usr/lib/libusbhid.a) MAKE_FLAGS+= JOY_USB=1 . endif .endif diff --git a/emulators/xmame/distinfo b/emulators/xmame/distinfo index 9eba9b29c61..b8f3af27c0b 100644 --- a/emulators/xmame/distinfo +++ b/emulators/xmame/distinfo @@ -1,6 +1,8 @@ -$NetBSD: distinfo,v 1.16 2002/01/06 09:36:45 kristerw Exp $ +$NetBSD: distinfo,v 1.17 2002/01/06 22:09:31 kristerw Exp $ SHA1 (xmame-0.57.1.tar.bz2) = dde6921edd3d107409743398814a87d3a7f9dd74 Size (xmame-0.57.1.tar.bz2) = 5350283 bytes SHA1 (patch-aa) = be131167296c50e3aea55da46288dfc16bf3ad8e +SHA1 (patch-ab) = b6bb3acba452b91c8b9dd946531e9195d5d196fb +SHA1 (patch-ac) = 08dda8c365c9891e1f54ef622325015a38cb9758 SHA1 (patch-ae) = ccc133c1a597a4f9f4eee3d189fc917c60d2e958 diff --git a/emulators/xmame/patches/patch-ab b/emulators/xmame/patches/patch-ab new file mode 100644 index 00000000000..ac8c972f30f --- /dev/null +++ b/emulators/xmame/patches/patch-ab @@ -0,0 +1,20 @@ +$NetBSD: patch-ab,v 1.13 2002/01/06 22:09:32 kristerw Exp $ +--- src/unix/unix.mak.orig Sun Jan 6 03:44:58 2002 ++++ src/unix/unix.mak Sun Jan 6 19:01:36 2002 +@@ -214,7 +214,16 @@ + endif + ifdef JOY_USB + CONFIG += -DUSB_JOYSTICK ++ifeq ($(ARCH), netbsd) ++ifeq ($(shell test -f /usr/include/usbhid.h && echo have_usbhid), have_usbhid) ++CONFIG += -DHAVE_USBHID_H ++MY_LIBS += -lusbhid ++else + MY_LIBS += -lusb ++endif ++else ++MY_LIBS += -lusb ++endif + endif + + ifdef EFENCE diff --git a/emulators/xmame/patches/patch-ac b/emulators/xmame/patches/patch-ac new file mode 100644 index 00000000000..508c48eece1 --- /dev/null +++ b/emulators/xmame/patches/patch-ac @@ -0,0 +1,60 @@ +$NetBSD: patch-ac,v 1.6 2002/01/06 22:09:32 kristerw Exp $ +--- src/unix/joystick-drivers/joy_usb.c.orig Wed Jan 2 03:45:55 2002 ++++ src/unix/joystick-drivers/joy_usb.c Sun Jan 6 22:17:55 2002 +@@ -21,7 +21,11 @@ + #endif + + #if defined(__ARCH_netbsd) ++#ifdef HAVE_USBHID_H ++#include <usbhid.h> ++#else + #include <usb.h> ++#endif + #elif defined(__ARCH_freebsd) + #include <libusb.h> + #endif +@@ -69,7 +73,7 @@ + + static int joy_initialize_hid(int i) + { +- int size, is_joystick, report_id; ++ int size, is_joystick, report_id = 0; + struct hid_data *d; + struct hid_item h; + report_desc_t rd; +@@ -82,7 +86,19 @@ + + priv_joy_data[i].hids = NULL; + ++#ifdef HAVE_USBHID_H ++ if (ioctl(joy_data[i].fd, USB_GET_REPORT_ID, &report_id) < 0) ++ { ++ fprintf(stderr_file, "error: /dev/uhid%d: %s", i, strerror(errno)); ++ return FALSE; ++ } ++ ++ size = hid_report_size(rd, hid_input, report_id); ++ priv_joy_data[i].offset = 0; ++#else + size = hid_report_size(rd, hid_input, &report_id); ++ priv_joy_data[i].offset = (report_id != 0); ++#endif + if ((priv_joy_data[i].data_buf = malloc(size)) == NULL) + { + fprintf(stderr_file, "error: couldn't malloc %d bytes\n", size); +@@ -90,10 +106,14 @@ + return FALSE; + } + priv_joy_data[i].dlen = size; +- priv_joy_data[i].offset = (report_id != 0); + + is_joystick = 0; ++#ifdef HAVE_USBHID_H ++ for (d = hid_start_parse(rd, 1 << hid_input, report_id); ++ hid_get_item(d, &h); ) ++#else + for (d = hid_start_parse(rd, 1 << hid_input); hid_get_item(d, &h); ) ++#endif + { + int axis, usage, page, interesting_hid; + |