From 9250b467f7b42c16e96273ee30938d40307027bb Mon Sep 17 00:00:00 2001
From: Joerg Wunsch <j@uriah.heep.sax.de>
Date: Fri, 20 Jan 2012 09:39:56 +0000
Subject: [PATCH] libusb-win32 recently changed the name of their header file
 from usb.h to lusb0_usb.h (for whatever reason).  Autoprobe for the filename
 during configure, and include whatever is appropriate.

git-svn-id: svn://svn.savannah.nongnu.org/avrdude/trunk/avrdude@1043 81a1dc3b-b13d-400b-aceb-764788c761c2
---
 ChangeLog      | 10 ++++++++++
 avrftdi.c      |  8 +++++++-
 configure.ac   |  2 ++
 ser_avrdoper.c |  8 +++++++-
 usb_libusb.c   |  8 +++++++-
 usbasp.c       |  8 +++++++-
 usbtiny.c      |  8 +++++++-
 7 files changed, 47 insertions(+), 5 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 7e00cbc7..ca8859f1 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2012-01-20  Joerg Wunsch <j.gnu@uriah.heep.sax.de>
+
+	* configure.ac: Check for presence of lusb_usb.h as an alternative
+	to usb.h; libusb-win32 switched to this name in version 1.2.5.0.
+	* avrftdi.c: Decide whether to include <usb.h>, or <lusb0_usb.h>.
+	* ser_avrdoper.c: (Dito.)
+	* usbasp.c: (Dito.)
+	* usb_libusb.c: (Dito.)
+	* usbtiny.c: (Dito.)
+
 2012-01-19  Rene Liebscher <R.Liebscher@gmx.de>
 
 	* avr.c: Unsigned variable was used for return code of paged_write/load
diff --git a/avrftdi.c b/avrftdi.c
index b968e93f..558b7975 100644
--- a/avrftdi.c
+++ b/avrftdi.c
@@ -42,7 +42,13 @@
 #ifdef HAVE_LIBFTDI
 
 #include <ftdi.h>
-#include <usb.h>
+#if defined(HAVE_USB_H)
+#  include <usb.h>
+#elif defined(HAVE_LUSB0_USB_H)
+#  include <lusb0_usb.h>
+#else
+#  error "libusb needs either <usb.h> or <lusb0_usb.h>"
+#endif
 
 /* This is for running the code without having a FTDI-device.
  * The generated code is useless! For debugging purposes only.
diff --git a/configure.ac b/configure.ac
index 2581c213..6d909163 100644
--- a/configure.ac
+++ b/configure.ac
@@ -69,6 +69,8 @@ if test x$have_libusb = xyes; then
                ;;
    esac
    AC_DEFINE([HAVE_LIBUSB])
+   AC_CHECK_HEADERS([usb.h])
+   AC_CHECK_HEADERS([lusb0_usb.h])
 fi
 AC_SUBST(LIBUSB, $LIBUSB)
 
diff --git a/ser_avrdoper.c b/ser_avrdoper.c
index 5a8e59fa..375d2cc7 100644
--- a/ser_avrdoper.c
+++ b/ser_avrdoper.c
@@ -248,7 +248,13 @@ static int usbGetReport(union filedescriptor *fdp, int reportType, int reportNum
 /* ------------------------------------------------------------------------ */
 /* ------------------------------------------------------------------------ */
 
-#include <usb.h>
+#if defined(HAVE_USB_H)
+#  include <usb.h>
+#elif defined(HAVE_LUSB0_USB_H)
+#  include <lusb0_usb.h>
+#else
+#  error "libusb needs either <usb.h> or <lusb0_usb.h>"
+#endif
 
 /* ------------------------------------------------------------------------- */
 
diff --git a/usb_libusb.c b/usb_libusb.c
index cc476a6d..2bb34b08 100644
--- a/usb_libusb.c
+++ b/usb_libusb.c
@@ -36,7 +36,13 @@
 #include <sys/types.h>
 #include <sys/time.h>
 
-#include <usb.h>
+#if defined(HAVE_USB_H)
+#  include <usb.h>
+#elif defined(HAVE_LUSB0_USB_H)
+#  include <lusb0_usb.h>
+#else
+#  error "libusb needs either <usb.h> or <lusb0_usb.h>"
+#endif
 
 #include "avrdude.h"
 #include "serial.h"
diff --git a/usbasp.c b/usbasp.c
index df5637b7..683cf72c 100644
--- a/usbasp.c
+++ b/usbasp.c
@@ -53,7 +53,13 @@
 #  include <libusb.h>
 # endif
 #else
-# include <usb.h>
+# if defined(HAVE_USB_H)
+#  include <usb.h>
+# elif defined(HAVE_LUSB0_USB_H)
+#  include <lusb0_usb.h>
+# else
+#  error "libusb needs either <usb.h> or <lusb0_usb.h>"
+# endif
 #endif
 
 #ifdef USE_LIBUSB_1_0
diff --git a/usbtiny.c b/usbtiny.c
index 7fe8c857..e594ccdc 100644
--- a/usbtiny.c
+++ b/usbtiny.c
@@ -40,7 +40,13 @@
 #include "usbtiny.h"
 
 #if defined(HAVE_LIBUSB)      // we use LIBUSB to talk to the board
-#include <usb.h>
+#if defined(HAVE_USB_H)
+#  include <usb.h>
+#elif defined(HAVE_LUSB0_USB_H)
+#  include <lusb0_usb.h>
+#else
+#  error "libusb needs either <usb.h> or <lusb0_usb.h>"
+#endif
 
 #ifndef HAVE_UINT_T
 typedef	unsigned int	uint_t;