libusb 0.3.4 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (136) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/Gemfile +1 -0
  5. data/History.md +10 -0
  6. data/README.md +19 -6
  7. data/Rakefile +1 -1
  8. data/ext/extconf.rb +17 -1
  9. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/AUTHORS +18 -6
  10. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/COPYING +0 -0
  11. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/ChangeLog +58 -1
  12. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/INSTALL +0 -0
  13. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/Makefile.am +6 -1
  14. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/Makefile.in +248 -174
  15. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/NEWS +2 -2
  16. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/PORTING +0 -0
  17. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/README +2 -1
  18. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/TODO +0 -0
  19. data/ext/libusbx-1.0.17/Xcode/common.xcconfig +40 -0
  20. data/ext/libusbx-1.0.17/Xcode/config.h +28 -0
  21. data/ext/libusbx-1.0.17/Xcode/debug.xcconfig +29 -0
  22. data/ext/libusbx-1.0.17/Xcode/libusbx.xcconfig +21 -0
  23. data/ext/libusbx-1.0.17/Xcode/libusbx.xcodeproj/project.pbxproj +864 -0
  24. data/ext/libusbx-1.0.17/Xcode/libusbx_debug.xcconfig +21 -0
  25. data/ext/libusbx-1.0.17/Xcode/libusbx_release.xcconfig +21 -0
  26. data/ext/libusbx-1.0.17/Xcode/release.xcconfig +29 -0
  27. data/ext/libusbx-1.0.17/aclocal.m4 +1112 -0
  28. data/ext/libusbx-1.0.17/android/README +114 -0
  29. data/ext/libusbx-1.0.17/android/config.h +90 -0
  30. data/ext/libusbx-1.0.17/android/jni/Android.mk +23 -0
  31. data/ext/libusbx-1.0.17/android/jni/Application.mk +19 -0
  32. data/ext/libusbx-1.0.17/android/jni/examples.mk +134 -0
  33. data/ext/libusbx-1.0.17/android/jni/libusb.mk +54 -0
  34. data/ext/libusbx-1.0.17/android/jni/tests.mk +56 -0
  35. data/ext/libusbx-1.0.17/compile +347 -0
  36. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/config.guess +164 -130
  37. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/config.h.in +37 -1
  38. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/config.sub +174 -89
  39. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/configure +723 -302
  40. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/configure.ac +71 -20
  41. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/depcomp +345 -185
  42. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/doc/Makefile.am +0 -0
  43. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/doc/Makefile.in +95 -32
  44. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/doc/doxygen.cfg.in +1 -1
  45. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/examples/Makefile.am +5 -4
  46. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/examples/Makefile.in +208 -104
  47. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/examples/dpfp.c +1 -1
  48. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/examples/dpfp_threaded.c +1 -1
  49. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/examples/ezusb.c +188 -8
  50. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/examples/ezusb.h +18 -5
  51. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/examples/fxload.c +90 -64
  52. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/examples/getopt/getopt.c +0 -0
  53. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/examples/getopt/getopt.h +0 -0
  54. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/examples/getopt/getopt1.c +0 -0
  55. data/ext/libusbx-1.0.17/examples/hotplugtest.c +97 -0
  56. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/examples/listdevs.c +12 -4
  57. data/ext/libusbx-1.0.17/examples/sam3u_benchmark.c +193 -0
  58. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/examples/xusb.c +106 -49
  59. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/install-sh +21 -14
  60. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb-1.0.pc.in +1 -1
  61. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/Makefile.am +29 -10
  62. data/ext/libusbx-1.0.17/libusb/Makefile.in +914 -0
  63. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/core.c +378 -87
  64. data/ext/libusbx-1.0.17/libusb/descriptor.c +1199 -0
  65. data/ext/libusbx-1.0.17/libusb/hotplug.c +322 -0
  66. data/ext/libusbx-1.0.17/libusb/hotplug.h +82 -0
  67. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/io.c +182 -62
  68. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/libusb-1.0.def +32 -0
  69. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/libusb-1.0.rc +2 -0
  70. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/libusb.h +481 -32
  71. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/libusbi.h +135 -38
  72. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/os/darwin_usb.c +591 -496
  73. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/os/darwin_usb.h +39 -46
  74. data/ext/libusbx-1.0.17/libusb/os/linux_netlink.c +345 -0
  75. data/ext/libusbx-1.0.17/libusb/os/linux_udev.c +306 -0
  76. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/os/linux_usbfs.c +653 -617
  77. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/os/linux_usbfs.h +32 -0
  78. data/ext/{libusbx-1.0.14/libusb/os/openbsd_usb.c → libusbx-1.0.17/libusb/os/netbsd_usb.c} +70 -63
  79. data/ext/libusbx-1.0.17/libusb/os/openbsd_usb.c +823 -0
  80. data/ext/libusbx-1.0.17/libusb/os/poll_posix.c +51 -0
  81. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/os/poll_posix.h +2 -1
  82. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/os/poll_windows.c +85 -106
  83. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/os/poll_windows.h +14 -3
  84. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/os/threads_posix.c +3 -1
  85. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/os/threads_posix.h +0 -0
  86. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/os/threads_windows.c +6 -5
  87. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/os/threads_windows.h +0 -0
  88. data/ext/libusbx-1.0.17/libusb/os/wince_usb.c +1026 -0
  89. data/ext/libusbx-1.0.17/libusb/os/wince_usb.h +131 -0
  90. data/ext/libusbx-1.0.17/libusb/os/windows_common.h +108 -0
  91. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/os/windows_usb.c +92 -57
  92. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/os/windows_usb.h +2 -63
  93. data/ext/libusbx-1.0.17/libusb/strerror.c +184 -0
  94. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/sync.c +24 -38
  95. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/libusb/version.h +1 -1
  96. data/ext/libusbx-1.0.17/libusb/version_nano.h +1 -0
  97. data/ext/{libusbx-1.0.14 → libusbx-1.0.17}/ltmain.sh +60 -41
  98. data/ext/{libusbx-1.0.14/aclocal.m4 → libusbx-1.0.17/m4/libtool.m4} +229 -1723
  99. data/ext/libusbx-1.0.17/m4/ltoptions.m4 +384 -0
  100. data/ext/libusbx-1.0.17/m4/ltsugar.m4 +123 -0
  101. data/ext/libusbx-1.0.17/m4/ltversion.m4 +23 -0
  102. data/ext/libusbx-1.0.17/m4/lt~obsolete.m4 +98 -0
  103. data/ext/libusbx-1.0.17/missing +215 -0
  104. data/ext/libusbx-1.0.17/tests/Makefile.am +6 -0
  105. data/ext/libusbx-1.0.17/tests/Makefile.in +583 -0
  106. data/ext/libusbx-1.0.17/tests/libusbx_testlib.h +107 -0
  107. data/ext/libusbx-1.0.17/tests/stress.c +160 -0
  108. data/ext/libusbx-1.0.17/tests/testlib.c +276 -0
  109. data/lib/libusb.rb +4 -0
  110. data/lib/libusb/call.rb +43 -1
  111. data/lib/libusb/constants.rb +5 -0
  112. data/lib/libusb/context.rb +100 -0
  113. data/lib/libusb/dev_handle.rb +27 -0
  114. data/lib/libusb/device.rb +10 -4
  115. data/lib/libusb/version_gem.rb +1 -1
  116. data/test/test_libusb_capability.rb +2 -2
  117. data/test/test_libusb_compat.rb +2 -2
  118. data/test/test_libusb_compat_mass_storage.rb +2 -2
  119. data/test/test_libusb_descriptors.rb +4 -2
  120. data/test/test_libusb_event_machine.rb +2 -2
  121. data/test/test_libusb_gc.rb +2 -2
  122. data/test/test_libusb_hotplug.rb +115 -0
  123. data/test/test_libusb_iso_transfer.rb +3 -3
  124. data/test/test_libusb_mass_storage.rb +6 -16
  125. data/test/test_libusb_mass_storage2.rb +26 -3
  126. data/test/test_libusb_structs.rb +2 -2
  127. data/test/test_libusb_threads.rb +2 -2
  128. data/test/test_libusb_version.rb +2 -2
  129. metadata +127 -68
  130. metadata.gz.sig +0 -0
  131. data/ext/libusbx-1.0.14/THANKS +0 -7
  132. data/ext/libusbx-1.0.14/compile +0 -143
  133. data/ext/libusbx-1.0.14/libusb/Makefile.in +0 -721
  134. data/ext/libusbx-1.0.14/libusb/descriptor.c +0 -731
  135. data/ext/libusbx-1.0.14/libusb/version_nano.h +0 -1
  136. data/ext/libusbx-1.0.14/missing +0 -376
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 1425207f83b268ee1050a13374313d26266e9240
4
- data.tar.gz: f99a0d6169f80df3159d9c2c2c1cfcd1d51355dd
3
+ metadata.gz: 428db0ee683915ca8ae18a971e95055bc2db4949
4
+ data.tar.gz: 5dc69761a77d13ac360f87e9489525bf3ac7c94b
5
5
  SHA512:
6
- metadata.gz: dba59042db5e982c7440f4a94d824e3385e58290fb2d45223fdb9ce7b4665da92c9ea55cab1d416932b9f5a276e740c8680b4774d0d483270f9794c484056356
7
- data.tar.gz: 0533627d303ef38c49d0735faee36df039c69b4919580dbed3fe599bcac5bf200878483c8550c48af08d7bd7b1c577ad1ec45cb178e7de2584812dbe68b663ad
6
+ metadata.gz: 0b6cba08e3db887e30d04bc99304098e479e402c71b641f8b1c6949236503eb646d2879bb8af16a77bdbc114dd755ed6c0e20cad5b27f6f5d5b744b712818987
7
+ data.tar.gz: 0e34e376502fb678ce84b1da947f21c18f2281b1b374cb4a8d89b8602dca9deadf72807b0153c4613f27afe49e71c6af8c224154ce42f680413471eea5b2f63b
checksums.yaml.gz.sig ADDED
Binary file
data.tar.gz.sig ADDED
Binary file
data/Gemfile CHANGED
@@ -5,6 +5,7 @@ gemspec
5
5
 
6
6
  group :test do
7
7
  gem 'eventmachine'
8
+ gem 'minitest'
8
9
  end
9
10
 
10
11
  platforms :rbx do
data/History.md CHANGED
@@ -1,3 +1,13 @@
1
+ 0.4.0 / 2013-11-20
2
+ ------------------
3
+ * Add support for device hotplug notifications.
4
+ * Update to libusbx-1.0.17.
5
+ * Add DevHandle#auto_detach_kernel_driver= of libusb-1.0.16.
6
+ * Add new capabilities introduced with libusb-1.0.16.
7
+ * Offer #has_capability? for libusb versions older than 1.0.9.
8
+ * Add new method port_numbers with alias to port_path.
9
+ * Use libusb_get_port_numbers preferred to now deprecated libusb_get_port_path.
10
+
1
11
  0.3.4 / 2013-04-05
2
12
  ------------------
3
13
  * Avoid closing of pollfds by the Ruby GC when used as IO object.
data/README.md CHANGED
@@ -58,36 +58,49 @@ maximum packet size.
58
58
  Prerequisites
59
59
  -------------
60
60
 
61
- * Linux, MacOSX or Windows system with Ruby MRI 1.8.7/1.9.x, JRuby or recent version of Rubinius
62
- * [libusb](http://libusb.org) or [libusbx](http://libusbx.org) library version 1.0.8+ :
61
+ * Linux, MacOSX or Windows system with Ruby MRI 1.8.7/1.9/2.0, JRuby or recent version of Rubinius
62
+ * Optionally: [libusb](http://libusb.org) or [libusbx](http://libusbx.org) library version 1.0.8+ :
63
63
  * Debian or Ubuntu:
64
64
 
65
65
  ```
66
66
  $ sudo apt-get install libusb-1.0-0-dev
67
67
  ```
68
- * OS-X: install with homebrew:
68
+ * OS-X: install with homebrew (note the `x`):
69
69
 
70
70
  ```
71
- $ brew install libusb
71
+ $ brew install libusbx
72
72
  ```
73
73
  or macports:
74
74
 
75
75
  ```
76
76
  $ port install libusb
77
77
  ```
78
- * Windows: libusb.gem already comes with a precompiled `libusb.dll`, but you need to install a device driver (see below)
79
-
78
+ * Windows: libusb.gem already comes with a precompiled `libusb.dll`, but you need to install a device driver (see [below](#usage-on-windows))
80
79
 
81
80
  Install
82
81
  -------
83
82
 
84
83
  $ gem install libusb
85
84
 
85
+ While ```gem install``` the system is checked for a usable libusb(x) library installation.
86
+ If none could be found, a bundled libusbx version is built and used, instead.
87
+
86
88
  Latest code can be used in this way:
87
89
 
88
90
  $ git clone git://github.com/larskanis/libusb.git
89
91
  $ rake install_gem
90
92
 
93
+ Device hotplug support
94
+ ----------------------
95
+
96
+ Support for device hotplugging can be used, if ```LIBUSB.has_capability?(:CAP_HAS_HOTPLUG)``` returns ```true```.
97
+ This requires libusb(x)-1.0.16 or newer on Linux or OS-X. Windows support is [still on the way](https://github.com/libusbx/libusbx/issues/9).
98
+
99
+ A hotplug event handler can be registered with {LIBUSB::Context#on_hotplug_event}.
100
+ You then need to call {LIBUSB::Context#handle_events} in order to receive any events.
101
+ This can be done as blocking calls (possibly in it's own thread) or by using {LIBUSB::Context#pollfds} to
102
+ detect any events to handle.
103
+
91
104
 
92
105
  Usage on Windows
93
106
  ----------------
data/Rakefile CHANGED
@@ -35,7 +35,7 @@ STATIC_SOURCESDIR = COMPILE_HOME + 'sources'
35
35
  # LIBUSB_TARBALL = STATIC_SOURCESDIR + "libusb-#{LIBUSB_VERSION}.tar.bz2"
36
36
 
37
37
  # Fetch tarball from libusbx
38
- LIBUSB_VERSION = ENV['LIBUSB_VERSION'] || '1.0.14'
38
+ LIBUSB_VERSION = ENV['LIBUSB_VERSION'] || '1.0.17'
39
39
  LIBUSB_SOURCE_URI = URI( "http://downloads.sourceforge.net/project/libusbx/releases/#{LIBUSB_VERSION[/^\d+\.\d+\.\d+/]}/source/libusbx-#{LIBUSB_VERSION}.tar.bz2" )
40
40
  LIBUSB_TARBALL = STATIC_SOURCESDIR + File.basename( LIBUSB_SOURCE_URI.path )
41
41
 
data/ext/extconf.rb CHANGED
@@ -3,6 +3,16 @@
3
3
  require 'rubygems'
4
4
  require 'ffi'
5
5
 
6
+ if RUBY_PLATFORM =~ /java/
7
+ # JRuby's C extension support is disabled by default, so we can not easily test
8
+ # for udev availability and therefore suppose to have none.
9
+ have_udev = false
10
+ else
11
+ require 'mkmf'
12
+ have_udev = true
13
+ end
14
+
15
+
6
16
  begin
7
17
  module LibTest
8
18
  extend FFI::Library
@@ -22,9 +32,15 @@ rescue LoadError
22
32
  root_dir = File.expand_path('../..', __FILE__)
23
33
  raise "could not find embedded libusb sources" unless libusb_dir
24
34
 
35
+ # Enable udev for hot-plugging when it is available.
36
+ # This is the same check that is done in libusb's configure.ac file
37
+ # but we don't abort in case it's not available, but continue
38
+ # without hot-plugging.
39
+ have_udev &&= have_header('libudev.h') && have_library('udev', 'udev_new')
40
+
25
41
  old_dir = Dir.pwd
26
42
  Dir.chdir libusb_dir
27
- cmd = "sh configure --prefix=#{root_dir} && make && make install"
43
+ cmd = "sh configure #{'--disable-udev' unless have_udev} --prefix=#{root_dir} && make && make install"
28
44
  puts cmd
29
45
  system cmd
30
46
  raise "libusb build exited with #{$?.exitstatus}" if $?.exitstatus!=0
@@ -1,12 +1,13 @@
1
1
  Copyright © 2001 Johannes Erdfelt <johannes@erdfelt.com>
2
2
  Copyright © 2007-2009 Daniel Drake <dsd@gentoo.org>
3
3
  Copyright © 2010-2012 Peter Stuge <peter@stuge.se>
4
- Copyright © 2008-2011 Nathan Hjelm <hjelmn@users.sourceforge.net>
5
- Copyright © 2009-2012 Pete Batard <pete@akeo.ie>
6
- Copyright © 2009-2012 Ludovic Rousseau <ludovic.rousseau@gmail.com>
4
+ Copyright © 2008-2013 Nathan Hjelm <hjelmn@users.sourceforge.net>
5
+ Copyright © 2009-2013 Pete Batard <pete@akeo.ie>
6
+ Copyright © 2009-2013 Ludovic Rousseau <ludovic.rousseau@gmail.com>
7
7
  Copyright © 2010-2012 Michael Plante <michael.plante@gmail.com>
8
- Copyright © 2011-2012 Hans de Goede <hdegoede@redhat.com>
9
- Copyright © 2012 Martin Pieuchot <mpi@openbsd.org>
8
+ Copyright © 2011-2013 Hans de Goede <hdegoede@redhat.com>
9
+ Copyright © 2012-2013 Martin Pieuchot <mpi@openbsd.org>
10
+ Copyright © 2012-2013 Toby Gray <toby.gray@realvnc.com>
10
11
 
11
12
  Other contributors:
12
13
  Alan Ott
@@ -16,35 +17,46 @@ Anthony Clay
16
17
  Artem Egorkine
17
18
  Aurelien Jarno
18
19
  Bastien Nocera
20
+ Benjamin Dobell
21
+ Chris Dickens
22
+ Colin Walters
19
23
  Dave Camarillo
20
24
  David Engraf
21
25
  David Moore
22
26
  Davidlohr Bueso
27
+ Federico Manzan
23
28
  Felipe Balbi
29
+ Florian Albrechtskirchinger
24
30
  Francesco Montorsi
25
31
  Graeme Gill
26
32
  Hans Ulrich Niedermann
27
33
  Hector Martin
28
34
  Hoi-Ho Chan
35
+ Ilya Konstantinov
29
36
  James Hanko
30
37
  Konrad Rzepecki
31
38
  Lars Wirzenius
39
+ Luca Longinotti
32
40
  Martin Koegler
33
41
  Matthias Bolte
34
42
  Mike Frysinger
35
43
  Mikhail Gusarov
36
44
  Nicholas Corgan
37
45
  Orin Eman
46
+ Paul Fertser
38
47
  Pekka Nikander
39
48
  Rob Walker
40
49
  Sean McBride
41
50
  Sebastian Pipping
42
51
  Simon Haggett
43
52
  Thomas Röfer
44
- Toby Gray
53
+ Tim Roberts
45
54
  Toby Peterson
46
55
  Trygve Laugstøl
47
56
  Uri Lublin
48
57
  Vasily Khoruzhick
58
+ Vegard Storheil Eriksen
49
59
  Vitali Lovich
50
60
  Xiaofan Chen
61
+ Zoltán Kovács
62
+ Роман Донченко
File without changes
@@ -1,12 +1,69 @@
1
1
  For detailed information about the changes below, please see the git log or
2
2
  visit: http://log.libusbx.org
3
3
 
4
+ 2013-09-06: v1.0.17
5
+ * Hotplug callbacks now always get passed a libusb_context, even if it is
6
+ the default context. Previously NULL would be passed for the default context,
7
+ but since the first context created is the default context, and most apps
8
+ use only 1 context, this meant that apps explicitly creating a context would
9
+ still get passed NULL
10
+ * Android: Add .mk files to build with the Android NDK
11
+ * Darwin: Add Xcode project
12
+ * Darwin: Fix crash on unplug (#121)
13
+ * Linux: Fix hang (deadlock) on libusb_exit
14
+ * Linux: Fix libusbx build failure with --disable-udev (#124)
15
+ * Linux: Fix libusb_get_device_list() hang with --disable-udev (#130)
16
+ * OpenBSD: Update OpenBSD backend with support for control transfers to
17
+ non-ugen(4) devices and make get_configuration() no longer generate I/O.
18
+ Note that using this libusbx version on OpenBSD requires using
19
+ OpenBSD 5.3-current or later. Users of older OpenBSD versions are advised
20
+ to stay with the libusb shipped with OpenBSD (mpi)
21
+ * Windows: fix libusb_dll_2010.vcxproj link errors (#129)
22
+ * Various other bug fixes and improvements
23
+ The (#xx) numbers are libusbx issue numbers, see ie:
24
+ https://github.com/libusbx/libusbx/issues/121
25
+
26
+ 2013-07-11: v1.0.16
27
+ * Add hotplug support for Darwin and Linux (#9)
28
+ * Add superspeed endpoint companion descriptor support (#15)
29
+ * Add BOS descriptor support (#15)
30
+ * Make descriptor parsing code more robust
31
+ * New libusb_get_port_numbers API, this is libusb_get_port_path without
32
+ the unnecessary context parameter, libusb_get_port_path is now deprecated
33
+ * New libusb_strerror API (#14)
34
+ * New libusb_set_auto_detach_kernel_driver API (#17)
35
+ * Improve topology API docs (#95)
36
+ * Logging now use a single write call per log-message, avoiding log-message
37
+ "interlacing" when using multiple threads.
38
+ * Android: use Android logging when building on Android (#101)
39
+ * Darwin: make libusb_reset reenumerate device on descriptors change (#89)
40
+ * Darwin: add support for the LIBUSB_TRANSFER_ADD_ZERO_PACKET flag (#91)
41
+ * Darwin: add a device cache (#112, #114)
42
+ * Examples: Add sam3u_benchmark isochronous example by Harald Welte (#109)
43
+ * Many other bug fixes and improvements
44
+ The (#xx) numbers are libusbx issue numbers, see ie:
45
+ https://github.com/libusbx/libusbx/issues/9
46
+
47
+ 2013-04-15: v1.0.15
48
+ * Improve transfer cancellation and avoid short read failures on broken descriptors
49
+ * Filter out 8-bit characters in libusb_get_string_descriptor_ascii()
50
+ * Add WinCE support
51
+ * Add library stress tests
52
+ * Add Cypress FX3 firmware upload support for fxload sample
53
+ * Add HID and kernel driver detach support capabilities detection
54
+ * Add SuperSpeed detection on OS X
55
+ * Fix bInterval value interpretation on OS X
56
+ * Fix issues with autoclaim, composite HID devices, interface autoclaim and
57
+ early abort in libusb_close() on Windows. Also add VS2012 solution files.
58
+ * Improve fd event handling on Linux
59
+ * Other bug fixes and improvements
60
+
4
61
  2012-09-26: v1.0.14
5
62
  * Reverts the previous API change with regards to bMaxPower.
6
63
  If this doesn't matter to you, you are encouraged to keep using v1.0.13,
7
64
  as it will use the same attribute as v2.0, to be released soon.
8
65
  * Note that LIBUSBX_API_VERSION is *decreased* to 0x010000FF and the previous
9
- guidelines with regards to concurent use of MaxPower/bMaxPower still apply.
66
+ guidelines with regards to concurrent use of MaxPower/bMaxPower still apply.
10
67
 
11
68
  2012-09-20: v1.0.13
12
69
  * [MAJOR] Fix a typo in the API with struct libusb_config_descriptor where
File without changes
@@ -2,13 +2,18 @@ AUTOMAKE_OPTIONS = dist-bzip2 no-dist-gzip
2
2
  ACLOCAL_AMFLAGS = -I m4
3
3
  DISTCLEANFILES = libusb-1.0.pc
4
4
  EXTRA_DIST = TODO PORTING msvc libusb/libusb-1.0.def libusb/version_nano.h \
5
- examples/getopt/getopt.c examples/getopt/getopt1.c examples/getopt/getopt.h
5
+ examples/getopt/getopt.c examples/getopt/getopt1.c examples/getopt/getopt.h \
6
+ android Xcode
6
7
  SUBDIRS = libusb doc
7
8
 
8
9
  if BUILD_EXAMPLES
9
10
  SUBDIRS += examples
10
11
  endif
11
12
 
13
+ if BUILD_TESTS
14
+ SUBDIRS += tests
15
+ endif
16
+
12
17
  pkgconfigdir=$(libdir)/pkgconfig
13
18
  pkgconfig_DATA=libusb-1.0.pc
14
19
 
@@ -1,9 +1,8 @@
1
- # Makefile.in generated by automake 1.11.1 from Makefile.am.
1
+ # Makefile.in generated by automake 1.13.4 from Makefile.am.
2
2
  # @configure_input@
3
3
 
4
- # Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
5
- # 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
6
- # Inc.
4
+ # Copyright (C) 1994-2013 Free Software Foundation, Inc.
5
+
7
6
  # This Makefile.in is free software; the Free Software Foundation
8
7
  # gives unlimited permission to copy and/or distribute it,
9
8
  # with or without modifications, as long as this notice is preserved.
@@ -16,6 +15,51 @@
16
15
  @SET_MAKE@
17
16
 
18
17
  VPATH = @srcdir@
18
+ am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
19
+ am__make_running_with_option = \
20
+ case $${target_option-} in \
21
+ ?) ;; \
22
+ *) echo "am__make_running_with_option: internal error: invalid" \
23
+ "target option '$${target_option-}' specified" >&2; \
24
+ exit 1;; \
25
+ esac; \
26
+ has_opt=no; \
27
+ sane_makeflags=$$MAKEFLAGS; \
28
+ if $(am__is_gnu_make); then \
29
+ sane_makeflags=$$MFLAGS; \
30
+ else \
31
+ case $$MAKEFLAGS in \
32
+ *\\[\ \ ]*) \
33
+ bs=\\; \
34
+ sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
35
+ | sed "s/$$bs$$bs[$$bs $$bs ]*//g"`;; \
36
+ esac; \
37
+ fi; \
38
+ skip_next=no; \
39
+ strip_trailopt () \
40
+ { \
41
+ flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
42
+ }; \
43
+ for flg in $$sane_makeflags; do \
44
+ test $$skip_next = yes && { skip_next=no; continue; }; \
45
+ case $$flg in \
46
+ *=*|--*) continue;; \
47
+ -*I) strip_trailopt 'I'; skip_next=yes;; \
48
+ -*I?*) strip_trailopt 'I';; \
49
+ -*O) strip_trailopt 'O'; skip_next=yes;; \
50
+ -*O?*) strip_trailopt 'O';; \
51
+ -*l) strip_trailopt 'l'; skip_next=yes;; \
52
+ -*l?*) strip_trailopt 'l';; \
53
+ -[dEDm]) skip_next=yes;; \
54
+ -[JT]) skip_next=yes;; \
55
+ esac; \
56
+ case $$flg in \
57
+ *$$target_option*) has_opt=yes; break;; \
58
+ esac; \
59
+ done; \
60
+ test $$has_opt = yes
61
+ am__make_dryrun = (target_option=n; $(am__make_running_with_option))
62
+ am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
19
63
  pkgdatadir = $(datadir)/@PACKAGE@
20
64
  pkgincludedir = $(includedir)/@PACKAGE@
21
65
  pkglibdir = $(libdir)/@PACKAGE@
@@ -35,15 +79,19 @@ POST_UNINSTALL = :
35
79
  build_triplet = @build@
36
80
  host_triplet = @host@
37
81
  @BUILD_EXAMPLES_TRUE@am__append_1 = examples
82
+ @BUILD_TESTS_TRUE@am__append_2 = tests
38
83
  subdir = .
39
- DIST_COMMON = README $(am__configure_deps) $(srcdir)/Makefile.am \
40
- $(srcdir)/Makefile.in $(srcdir)/config.h.in \
41
- $(srcdir)/libusb-1.0.pc.in $(top_srcdir)/configure AUTHORS \
42
- COPYING ChangeLog INSTALL NEWS THANKS TODO compile \
43
- config.guess config.sub depcomp install-sh ltmain.sh missing
84
+ DIST_COMMON = INSTALL NEWS README AUTHORS ChangeLog \
85
+ $(srcdir)/Makefile.in $(srcdir)/Makefile.am \
86
+ $(top_srcdir)/configure $(am__configure_deps) \
87
+ $(srcdir)/config.h.in $(srcdir)/libusb-1.0.pc.in COPYING TODO \
88
+ compile config.guess config.sub depcomp install-sh missing \
89
+ ltmain.sh
44
90
  ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
45
- am__aclocal_m4_deps = $(top_srcdir)/libusb/version.h \
46
- $(top_srcdir)/configure.ac
91
+ am__aclocal_m4_deps = $(top_srcdir)/m4/libtool.m4 \
92
+ $(top_srcdir)/m4/ltoptions.m4 $(top_srcdir)/m4/ltsugar.m4 \
93
+ $(top_srcdir)/m4/ltversion.m4 $(top_srcdir)/m4/lt~obsolete.m4 \
94
+ $(top_srcdir)/libusb/version.h $(top_srcdir)/configure.ac
47
95
  am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
48
96
  $(ACLOCAL_M4)
49
97
  am__CONFIG_DISTCLEAN_FILES = config.status config.cache config.log \
@@ -52,21 +100,33 @@ mkinstalldirs = $(install_sh) -d
52
100
  CONFIG_HEADER = config.h
53
101
  CONFIG_CLEAN_FILES = libusb-1.0.pc
54
102
  CONFIG_CLEAN_VPATH_FILES =
55
- AM_V_GEN = $(am__v_GEN_$(V))
56
- am__v_GEN_ = $(am__v_GEN_$(AM_DEFAULT_VERBOSITY))
57
- am__v_GEN_0 = @echo " GEN " $@;
58
- AM_V_at = $(am__v_at_$(V))
59
- am__v_at_ = $(am__v_at_$(AM_DEFAULT_VERBOSITY))
103
+ AM_V_P = $(am__v_P_@AM_V@)
104
+ am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
105
+ am__v_P_0 = false
106
+ am__v_P_1 = :
107
+ AM_V_GEN = $(am__v_GEN_@AM_V@)
108
+ am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
109
+ am__v_GEN_0 = @echo " GEN " $@;
110
+ am__v_GEN_1 =
111
+ AM_V_at = $(am__v_at_@AM_V@)
112
+ am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
60
113
  am__v_at_0 = @
114
+ am__v_at_1 =
61
115
  SOURCES =
62
116
  DIST_SOURCES =
63
- RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
64
- html-recursive info-recursive install-data-recursive \
65
- install-dvi-recursive install-exec-recursive \
66
- install-html-recursive install-info-recursive \
67
- install-pdf-recursive install-ps-recursive install-recursive \
68
- installcheck-recursive installdirs-recursive pdf-recursive \
69
- ps-recursive uninstall-recursive
117
+ RECURSIVE_TARGETS = all-recursive check-recursive cscopelist-recursive \
118
+ ctags-recursive dvi-recursive html-recursive info-recursive \
119
+ install-data-recursive install-dvi-recursive \
120
+ install-exec-recursive install-html-recursive \
121
+ install-info-recursive install-pdf-recursive \
122
+ install-ps-recursive install-recursive installcheck-recursive \
123
+ installdirs-recursive pdf-recursive ps-recursive \
124
+ tags-recursive uninstall-recursive
125
+ am__can_run_installinfo = \
126
+ case $$AM_UPDATE_INFO_DIR in \
127
+ n|no|NO) false;; \
128
+ *) (install-info --version) >/dev/null 2>&1;; \
129
+ esac
70
130
  am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
71
131
  am__vpath_adj = case $$p in \
72
132
  $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
@@ -88,23 +148,54 @@ am__nobase_list = $(am__nobase_strip_setup); \
88
148
  am__base_list = \
89
149
  sed '$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;$$!N;s/\n/ /g' | \
90
150
  sed '$$!N;$$!N;$$!N;$$!N;s/\n/ /g'
151
+ am__uninstall_files_from_dir = { \
152
+ test -z "$$files" \
153
+ || { test ! -d "$$dir" && test ! -f "$$dir" && test ! -r "$$dir"; } \
154
+ || { echo " ( cd '$$dir' && rm -f" $$files ")"; \
155
+ $(am__cd) "$$dir" && rm -f $$files; }; \
156
+ }
91
157
  am__installdirs = "$(DESTDIR)$(pkgconfigdir)"
92
158
  DATA = $(pkgconfig_DATA)
93
159
  RECURSIVE_CLEAN_TARGETS = mostlyclean-recursive clean-recursive \
94
160
  distclean-recursive maintainer-clean-recursive
95
- AM_RECURSIVE_TARGETS = $(RECURSIVE_TARGETS:-recursive=) \
96
- $(RECURSIVE_CLEAN_TARGETS:-recursive=) tags TAGS ctags CTAGS \
97
- distdir dist dist-all distcheck
161
+ am__recursive_targets = \
162
+ $(RECURSIVE_TARGETS) \
163
+ $(RECURSIVE_CLEAN_TARGETS) \
164
+ $(am__extra_recursive_targets)
165
+ AM_RECURSIVE_TARGETS = $(am__recursive_targets:-recursive=) TAGS CTAGS \
166
+ cscope distdir dist dist-all distcheck
167
+ am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) \
168
+ $(LISP)config.h.in
169
+ # Read a list of newline-separated strings from the standard input,
170
+ # and print each of them once, without duplicates. Input order is
171
+ # *not* preserved.
172
+ am__uniquify_input = $(AWK) '\
173
+ BEGIN { nonempty = 0; } \
174
+ { items[$$0] = 1; nonempty = 1; } \
175
+ END { if (nonempty) { for (i in items) print i; }; } \
176
+ '
177
+ # Make sure the list of sources is unique. This is necessary because,
178
+ # e.g., the same source file might be shared among _SOURCES variables
179
+ # for different programs/libraries.
180
+ am__define_uniq_tagged_files = \
181
+ list='$(am__tagged_files)'; \
182
+ unique=`for i in $$list; do \
183
+ if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
184
+ done | $(am__uniquify_input)`
98
185
  ETAGS = etags
99
186
  CTAGS = ctags
100
- DIST_SUBDIRS = libusb doc examples
187
+ CSCOPE = cscope
188
+ DIST_SUBDIRS = libusb doc examples tests
101
189
  DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
102
190
  distdir = $(PACKAGE)-$(VERSION)
103
191
  top_distdir = $(distdir)
104
192
  am__remove_distdir = \
105
- { test ! -d "$(distdir)" \
106
- || { find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
107
- && rm -fr "$(distdir)"; }; }
193
+ if test -d "$(distdir)"; then \
194
+ find "$(distdir)" -type d ! -perm -200 -exec chmod u+w {} ';' \
195
+ && rm -rf "$(distdir)" \
196
+ || { sleep 5 && rm -rf "$(distdir)"; }; \
197
+ else :; fi
198
+ am__post_remove_distdir = $(am__remove_distdir)
108
199
  am__relativize = \
109
200
  dir0=`pwd`; \
110
201
  sed_first='s,^\([^/]*\)/.*$$,\1,'; \
@@ -132,7 +223,10 @@ am__relativize = \
132
223
  reldir="$$dir2"
133
224
  GZIP_ENV = --best
134
225
  DIST_ARCHIVES = $(distdir).tar.bz2
226
+ DIST_TARGETS = dist-bzip2
135
227
  distuninstallcheck_listfiles = find . -type f -print
228
+ am__distuninstallcheck_listfiles = $(distuninstallcheck_listfiles) \
229
+ | sed 's|^\./|$(prefix)/|' | grep -v '$(infodir)/dir$$'
136
230
  distcleancheck_listfiles = find . -type f -print
137
231
  ACLOCAL = @ACLOCAL@
138
232
  AMTAR = @AMTAR@
@@ -185,6 +279,7 @@ OBJDUMP = @OBJDUMP@
185
279
  OBJEXT = @OBJEXT@
186
280
  OS_DARWIN = @OS_DARWIN@
187
281
  OS_LINUX = @OS_LINUX@
282
+ OS_NETBSD = @OS_NETBSD@
188
283
  OS_OPENBSD = @OS_OPENBSD@
189
284
  OS_WINDOWS = @OS_WINDOWS@
190
285
  OTOOL = @OTOOL@
@@ -197,16 +292,14 @@ PACKAGE_TARNAME = @PACKAGE_TARNAME@
197
292
  PACKAGE_URL = @PACKAGE_URL@
198
293
  PACKAGE_VERSION = @PACKAGE_VERSION@
199
294
  PATH_SEPARATOR = @PATH_SEPARATOR@
200
- PC_LIBS_PRIVATE = @PC_LIBS_PRIVATE@
201
295
  RANLIB = @RANLIB@
202
296
  RC = @RC@
203
297
  SED = @SED@
204
298
  SET_MAKE = @SET_MAKE@
205
299
  SHELL = @SHELL@
206
300
  STRIP = @STRIP@
207
- THREAD_CFLAGS = @THREAD_CFLAGS@
301
+ USE_UDEV = @USE_UDEV@
208
302
  VERSION = @VERSION@
209
- VISIBILITY_CFLAGS = @VISIBILITY_CFLAGS@
210
303
  abs_builddir = @abs_builddir@
211
304
  abs_srcdir = @abs_srcdir@
212
305
  abs_top_builddir = @abs_top_builddir@
@@ -263,9 +356,10 @@ AUTOMAKE_OPTIONS = dist-bzip2 no-dist-gzip
263
356
  ACLOCAL_AMFLAGS = -I m4
264
357
  DISTCLEANFILES = libusb-1.0.pc
265
358
  EXTRA_DIST = TODO PORTING msvc libusb/libusb-1.0.def libusb/version_nano.h \
266
- examples/getopt/getopt.c examples/getopt/getopt1.c examples/getopt/getopt.h
359
+ examples/getopt/getopt.c examples/getopt/getopt1.c examples/getopt/getopt.h \
360
+ android Xcode
267
361
 
268
- SUBDIRS = libusb doc $(am__append_1)
362
+ SUBDIRS = libusb doc $(am__append_1) $(am__append_2)
269
363
  pkgconfigdir = $(libdir)/pkgconfig
270
364
  pkgconfig_DATA = libusb-1.0.pc
271
365
  reldir = .release/$(distdir)
@@ -273,7 +367,7 @@ all: config.h
273
367
  $(MAKE) $(AM_MAKEFLAGS) all-recursive
274
368
 
275
369
  .SUFFIXES:
276
- am--refresh:
370
+ am--refresh: Makefile
277
371
  @:
278
372
  $(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
279
373
  @for dep in $?; do \
@@ -309,10 +403,8 @@ $(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
309
403
  $(am__aclocal_m4_deps):
310
404
 
311
405
  config.h: stamp-h1
312
- @if test ! -f $@; then \
313
- rm -f stamp-h1; \
314
- $(MAKE) $(AM_MAKEFLAGS) stamp-h1; \
315
- else :; fi
406
+ @if test ! -f $@; then rm -f stamp-h1; else :; fi
407
+ @if test ! -f $@; then $(MAKE) $(AM_MAKEFLAGS) stamp-h1; else :; fi
316
408
 
317
409
  stamp-h1: $(srcdir)/config.h.in $(top_builddir)/config.status
318
410
  @rm -f stamp-h1
@@ -337,8 +429,11 @@ distclean-libtool:
337
429
  -rm -f libtool config.lt
338
430
  install-pkgconfigDATA: $(pkgconfig_DATA)
339
431
  @$(NORMAL_INSTALL)
340
- test -z "$(pkgconfigdir)" || $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)"
341
432
  @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
433
+ if test -n "$$list"; then \
434
+ echo " $(MKDIR_P) '$(DESTDIR)$(pkgconfigdir)'"; \
435
+ $(MKDIR_P) "$(DESTDIR)$(pkgconfigdir)" || exit 1; \
436
+ fi; \
342
437
  for p in $$list; do \
343
438
  if test -f "$$p"; then d=; else d="$(srcdir)/"; fi; \
344
439
  echo "$$d$$p"; \
@@ -352,27 +447,28 @@ uninstall-pkgconfigDATA:
352
447
  @$(NORMAL_UNINSTALL)
353
448
  @list='$(pkgconfig_DATA)'; test -n "$(pkgconfigdir)" || list=; \
354
449
  files=`for p in $$list; do echo $$p; done | sed -e 's|^.*/||'`; \
355
- test -n "$$files" || exit 0; \
356
- echo " ( cd '$(DESTDIR)$(pkgconfigdir)' && rm -f" $$files ")"; \
357
- cd "$(DESTDIR)$(pkgconfigdir)" && rm -f $$files
450
+ dir='$(DESTDIR)$(pkgconfigdir)'; $(am__uninstall_files_from_dir)
358
451
 
359
452
  # This directory's subdirectories are mostly independent; you can cd
360
- # into them and run `make' without going through this Makefile.
361
- # To change the values of `make' variables: instead of editing Makefiles,
362
- # (1) if the variable is set in `config.status', edit `config.status'
363
- # (which will cause the Makefiles to be regenerated when you run `make');
364
- # (2) otherwise, pass the desired values on the `make' command line.
365
- $(RECURSIVE_TARGETS):
366
- @fail= failcom='exit 1'; \
367
- for f in x $$MAKEFLAGS; do \
368
- case $$f in \
369
- *=* | --[!k]*);; \
370
- *k*) failcom='fail=yes';; \
371
- esac; \
372
- done; \
453
+ # into them and run 'make' without going through this Makefile.
454
+ # To change the values of 'make' variables: instead of editing Makefiles,
455
+ # (1) if the variable is set in 'config.status', edit 'config.status'
456
+ # (which will cause the Makefiles to be regenerated when you run 'make');
457
+ # (2) otherwise, pass the desired values on the 'make' command line.
458
+ $(am__recursive_targets):
459
+ @fail=; \
460
+ if $(am__make_keepgoing); then \
461
+ failcom='fail=yes'; \
462
+ else \
463
+ failcom='exit 1'; \
464
+ fi; \
373
465
  dot_seen=no; \
374
466
  target=`echo $@ | sed s/-recursive//`; \
375
- list='$(SUBDIRS)'; for subdir in $$list; do \
467
+ case "$@" in \
468
+ distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
469
+ *) list='$(SUBDIRS)' ;; \
470
+ esac; \
471
+ for subdir in $$list; do \
376
472
  echo "Making $$target in $$subdir"; \
377
473
  if test "$$subdir" = "."; then \
378
474
  dot_seen=yes; \
@@ -387,57 +483,12 @@ $(RECURSIVE_TARGETS):
387
483
  $(MAKE) $(AM_MAKEFLAGS) "$$target-am" || exit 1; \
388
484
  fi; test -z "$$fail"
389
485
 
390
- $(RECURSIVE_CLEAN_TARGETS):
391
- @fail= failcom='exit 1'; \
392
- for f in x $$MAKEFLAGS; do \
393
- case $$f in \
394
- *=* | --[!k]*);; \
395
- *k*) failcom='fail=yes';; \
396
- esac; \
397
- done; \
398
- dot_seen=no; \
399
- case "$@" in \
400
- distclean-* | maintainer-clean-*) list='$(DIST_SUBDIRS)' ;; \
401
- *) list='$(SUBDIRS)' ;; \
402
- esac; \
403
- rev=''; for subdir in $$list; do \
404
- if test "$$subdir" = "."; then :; else \
405
- rev="$$subdir $$rev"; \
406
- fi; \
407
- done; \
408
- rev="$$rev ."; \
409
- target=`echo $@ | sed s/-recursive//`; \
410
- for subdir in $$rev; do \
411
- echo "Making $$target in $$subdir"; \
412
- if test "$$subdir" = "."; then \
413
- local_target="$$target-am"; \
414
- else \
415
- local_target="$$target"; \
416
- fi; \
417
- ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) $$local_target) \
418
- || eval $$failcom; \
419
- done && test -z "$$fail"
420
- tags-recursive:
421
- list='$(SUBDIRS)'; for subdir in $$list; do \
422
- test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) tags); \
423
- done
424
- ctags-recursive:
425
- list='$(SUBDIRS)'; for subdir in $$list; do \
426
- test "$$subdir" = . || ($(am__cd) $$subdir && $(MAKE) $(AM_MAKEFLAGS) ctags); \
427
- done
486
+ ID: $(am__tagged_files)
487
+ $(am__define_uniq_tagged_files); mkid -fID $$unique
488
+ tags: tags-recursive
489
+ TAGS: tags
428
490
 
429
- ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
430
- list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
431
- unique=`for i in $$list; do \
432
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
433
- done | \
434
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
435
- END { if (nonempty) { for (i in files) print i; }; }'`; \
436
- mkid -fID $$unique
437
- tags: TAGS
438
-
439
- TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
440
- $(TAGS_FILES) $(LISP)
491
+ tags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
441
492
  set x; \
442
493
  here=`pwd`; \
443
494
  if ($(ETAGS) --etags-include --version) >/dev/null 2>&1; then \
@@ -453,12 +504,7 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
453
504
  set "$$@" "$$include_option=$$here/$$subdir/TAGS"; \
454
505
  fi; \
455
506
  done; \
456
- list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
457
- unique=`for i in $$list; do \
458
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
459
- done | \
460
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
461
- END { if (nonempty) { for (i in files) print i; }; }'`; \
507
+ $(am__define_uniq_tagged_files); \
462
508
  shift; \
463
509
  if test -z "$(ETAGS_ARGS)$$*$$unique"; then :; else \
464
510
  test -n "$$unique" || unique=$$empty_fix; \
@@ -470,15 +516,11 @@ TAGS: tags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
470
516
  $$unique; \
471
517
  fi; \
472
518
  fi
473
- ctags: CTAGS
474
- CTAGS: ctags-recursive $(HEADERS) $(SOURCES) config.h.in $(TAGS_DEPENDENCIES) \
475
- $(TAGS_FILES) $(LISP)
476
- list='$(SOURCES) $(HEADERS) config.h.in $(LISP) $(TAGS_FILES)'; \
477
- unique=`for i in $$list; do \
478
- if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
479
- done | \
480
- $(AWK) '{ files[$$0] = 1; nonempty = 1; } \
481
- END { if (nonempty) { for (i in files) print i; }; }'`; \
519
+ ctags: ctags-recursive
520
+
521
+ CTAGS: ctags
522
+ ctags-am: $(TAGS_DEPENDENCIES) $(am__tagged_files)
523
+ $(am__define_uniq_tagged_files); \
482
524
  test -z "$(CTAGS_ARGS)$$unique" \
483
525
  || $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
484
526
  $$unique
@@ -487,9 +529,31 @@ GTAGS:
487
529
  here=`$(am__cd) $(top_builddir) && pwd` \
488
530
  && $(am__cd) $(top_srcdir) \
489
531
  && gtags -i $(GTAGS_ARGS) "$$here"
532
+ cscope: cscope.files
533
+ test ! -s cscope.files \
534
+ || $(CSCOPE) -b -q $(AM_CSCOPEFLAGS) $(CSCOPEFLAGS) -i cscope.files $(CSCOPE_ARGS)
535
+ clean-cscope:
536
+ -rm -f cscope.files
537
+ cscope.files: clean-cscope cscopelist
538
+ cscopelist: cscopelist-recursive
539
+
540
+ cscopelist-am: $(am__tagged_files)
541
+ list='$(am__tagged_files)'; \
542
+ case "$(srcdir)" in \
543
+ [\\/]* | ?:[\\/]*) sdir="$(srcdir)" ;; \
544
+ *) sdir=$(subdir)/$(srcdir) ;; \
545
+ esac; \
546
+ for i in $$list; do \
547
+ if test -f "$$i"; then \
548
+ echo "$(subdir)/$$i"; \
549
+ else \
550
+ echo "$$sdir/$$i"; \
551
+ fi; \
552
+ done >> $(top_builddir)/cscope.files
490
553
 
491
554
  distclean-tags:
492
555
  -rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
556
+ -rm -f cscope.out cscope.in.out cscope.po.out cscope.files
493
557
 
494
558
  distdir: $(DISTFILES)
495
559
  $(am__remove_distdir)
@@ -525,13 +589,10 @@ distdir: $(DISTFILES)
525
589
  done
526
590
  @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
527
591
  if test "$$subdir" = .; then :; else \
528
- test -d "$(distdir)/$$subdir" \
529
- || $(MKDIR_P) "$(distdir)/$$subdir" \
530
- || exit 1; \
531
- fi; \
532
- done
533
- @list='$(DIST_SUBDIRS)'; for subdir in $$list; do \
534
- if test "$$subdir" = .; then :; else \
592
+ $(am__make_dryrun) \
593
+ || test -d "$(distdir)/$$subdir" \
594
+ || $(MKDIR_P) "$(distdir)/$$subdir" \
595
+ || exit 1; \
535
596
  dir1=$$subdir; dir2="$(distdir)/$$subdir"; \
536
597
  $(am__relativize); \
537
598
  new_distdir=$$reldir; \
@@ -560,35 +621,35 @@ distdir: $(DISTFILES)
560
621
  || chmod -R a+r "$(distdir)"
561
622
  dist-gzip: distdir
562
623
  tardir=$(distdir) && $(am__tar) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).tar.gz
563
- $(am__remove_distdir)
624
+ $(am__post_remove_distdir)
564
625
  dist-bzip2: distdir
565
- tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
566
- $(am__remove_distdir)
626
+ tardir=$(distdir) && $(am__tar) | BZIP2=$${BZIP2--9} bzip2 -c >$(distdir).tar.bz2
627
+ $(am__post_remove_distdir)
567
628
 
568
- dist-lzma: distdir
569
- tardir=$(distdir) && $(am__tar) | lzma -9 -c >$(distdir).tar.lzma
570
- $(am__remove_distdir)
629
+ dist-lzip: distdir
630
+ tardir=$(distdir) && $(am__tar) | lzip -c $${LZIP_OPT--9} >$(distdir).tar.lz
631
+ $(am__post_remove_distdir)
571
632
 
572
633
  dist-xz: distdir
573
- tardir=$(distdir) && $(am__tar) | xz -c >$(distdir).tar.xz
574
- $(am__remove_distdir)
634
+ tardir=$(distdir) && $(am__tar) | XZ_OPT=$${XZ_OPT--e} xz -c >$(distdir).tar.xz
635
+ $(am__post_remove_distdir)
575
636
 
576
637
  dist-tarZ: distdir
577
638
  tardir=$(distdir) && $(am__tar) | compress -c >$(distdir).tar.Z
578
- $(am__remove_distdir)
639
+ $(am__post_remove_distdir)
579
640
 
580
641
  dist-shar: distdir
581
642
  shar $(distdir) | GZIP=$(GZIP_ENV) gzip -c >$(distdir).shar.gz
582
- $(am__remove_distdir)
643
+ $(am__post_remove_distdir)
583
644
 
584
645
  dist-zip: distdir
585
646
  -rm -f $(distdir).zip
586
647
  zip -rq $(distdir).zip $(distdir)
587
- $(am__remove_distdir)
648
+ $(am__post_remove_distdir)
588
649
 
589
- dist dist-all: distdir
590
- tardir=$(distdir) && $(am__tar) | bzip2 -9 -c >$(distdir).tar.bz2
591
- $(am__remove_distdir)
650
+ dist dist-all:
651
+ $(MAKE) $(AM_MAKEFLAGS) $(DIST_TARGETS) am__post_remove_distdir='@:'
652
+ $(am__post_remove_distdir)
592
653
 
593
654
  # This target untars the dist file and tries a VPATH configuration. Then
594
655
  # it guarantees that the distribution is self-contained by making another
@@ -599,8 +660,8 @@ distcheck: dist
599
660
  GZIP=$(GZIP_ENV) gzip -dc $(distdir).tar.gz | $(am__untar) ;;\
600
661
  *.tar.bz2*) \
601
662
  bzip2 -dc $(distdir).tar.bz2 | $(am__untar) ;;\
602
- *.tar.lzma*) \
603
- lzma -dc $(distdir).tar.lzma | $(am__untar) ;;\
663
+ *.tar.lz*) \
664
+ lzip -dc $(distdir).tar.lz | $(am__untar) ;;\
604
665
  *.tar.xz*) \
605
666
  xz -dc $(distdir).tar.xz | $(am__untar) ;;\
606
667
  *.tar.Z*) \
@@ -610,9 +671,9 @@ distcheck: dist
610
671
  *.zip*) \
611
672
  unzip $(distdir).zip ;;\
612
673
  esac
613
- chmod -R a-w $(distdir); chmod a+w $(distdir)
614
- mkdir $(distdir)/_build
615
- mkdir $(distdir)/_inst
674
+ chmod -R a-w $(distdir)
675
+ chmod u+w $(distdir)
676
+ mkdir $(distdir)/_build $(distdir)/_inst
616
677
  chmod a-w $(distdir)
617
678
  test -d $(distdir)/_build || exit 0; \
618
679
  dc_install_base=`$(am__cd) $(distdir)/_inst && pwd | sed -e 's,^[^:\\/]:[\\/],/,'` \
@@ -620,6 +681,7 @@ distcheck: dist
620
681
  && am__cwd=`pwd` \
621
682
  && $(am__cd) $(distdir)/_build \
622
683
  && ../configure --srcdir=.. --prefix="$$dc_install_base" \
684
+ $(AM_DISTCHECK_CONFIGURE_FLAGS) \
623
685
  $(DISTCHECK_CONFIGURE_FLAGS) \
624
686
  && $(MAKE) $(AM_MAKEFLAGS) \
625
687
  && $(MAKE) $(AM_MAKEFLAGS) dvi \
@@ -643,13 +705,21 @@ distcheck: dist
643
705
  && $(MAKE) $(AM_MAKEFLAGS) distcleancheck \
644
706
  && cd "$$am__cwd" \
645
707
  || exit 1
646
- $(am__remove_distdir)
708
+ $(am__post_remove_distdir)
647
709
  @(echo "$(distdir) archives ready for distribution: "; \
648
710
  list='$(DIST_ARCHIVES)'; for i in $$list; do echo $$i; done) | \
649
711
  sed -e 1h -e 1s/./=/g -e 1p -e 1x -e '$$p' -e '$$x'
650
712
  distuninstallcheck:
651
- @$(am__cd) '$(distuninstallcheck_dir)' \
652
- && test `$(distuninstallcheck_listfiles) | wc -l` -le 1 \
713
+ @test -n '$(distuninstallcheck_dir)' || { \
714
+ echo 'ERROR: trying to run $@ with an empty' \
715
+ '$$(distuninstallcheck_dir)' >&2; \
716
+ exit 1; \
717
+ }; \
718
+ $(am__cd) '$(distuninstallcheck_dir)' || { \
719
+ echo 'ERROR: cannot chdir into $(distuninstallcheck_dir)' >&2; \
720
+ exit 1; \
721
+ }; \
722
+ test `$(am__distuninstallcheck_listfiles) | wc -l` -eq 0 \
653
723
  || { echo "ERROR: files left after uninstall:" ; \
654
724
  if test -n "$(DESTDIR)"; then \
655
725
  echo " (check DESTDIR support)"; \
@@ -683,10 +753,15 @@ install-am: all-am
683
753
 
684
754
  installcheck: installcheck-recursive
685
755
  install-strip:
686
- $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
687
- install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
688
- `test -z '$(STRIP)' || \
689
- echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
756
+ if test -z '$(STRIP)'; then \
757
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
758
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
759
+ install; \
760
+ else \
761
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
762
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
763
+ "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
764
+ fi
690
765
  mostlyclean-generic:
691
766
 
692
767
  clean-generic:
@@ -769,25 +844,24 @@ ps-am:
769
844
 
770
845
  uninstall-am: uninstall-pkgconfigDATA
771
846
 
772
- .MAKE: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) all \
773
- ctags-recursive install-am install-strip tags-recursive
774
-
775
- .PHONY: $(RECURSIVE_CLEAN_TARGETS) $(RECURSIVE_TARGETS) CTAGS GTAGS \
776
- all all-am am--refresh check check-am clean clean-generic \
777
- clean-libtool ctags ctags-recursive dist dist-all dist-bzip2 \
778
- dist-gzip dist-lzma dist-shar dist-tarZ dist-xz dist-zip \
779
- distcheck distclean distclean-generic distclean-hdr \
780
- distclean-libtool distclean-tags distcleancheck distdir \
781
- distuninstallcheck dvi dvi-am html html-am info info-am \
782
- install install-am install-data install-data-am install-dvi \
783
- install-dvi-am install-exec install-exec-am install-html \
784
- install-html-am install-info install-info-am install-man \
785
- install-pdf install-pdf-am install-pkgconfigDATA install-ps \
786
- install-ps-am install-strip installcheck installcheck-am \
787
- installdirs installdirs-am maintainer-clean \
847
+ .MAKE: $(am__recursive_targets) all install-am install-strip
848
+
849
+ .PHONY: $(am__recursive_targets) CTAGS GTAGS TAGS all all-am \
850
+ am--refresh check check-am clean clean-cscope clean-generic \
851
+ clean-libtool cscope cscopelist-am ctags ctags-am dist \
852
+ dist-all dist-bzip2 dist-gzip dist-lzip dist-shar dist-tarZ \
853
+ dist-xz dist-zip distcheck distclean distclean-generic \
854
+ distclean-hdr distclean-libtool distclean-tags distcleancheck \
855
+ distdir distuninstallcheck dvi dvi-am html html-am info \
856
+ info-am install install-am install-data install-data-am \
857
+ install-dvi install-dvi-am install-exec install-exec-am \
858
+ install-html install-html-am install-info install-info-am \
859
+ install-man install-pdf install-pdf-am install-pkgconfigDATA \
860
+ install-ps install-ps-am install-strip installcheck \
861
+ installcheck-am installdirs installdirs-am maintainer-clean \
788
862
  maintainer-clean-generic mostlyclean mostlyclean-generic \
789
- mostlyclean-libtool pdf pdf-am ps ps-am tags tags-recursive \
790
- uninstall uninstall-am uninstall-pkgconfigDATA
863
+ mostlyclean-libtool pdf pdf-am ps ps-am tags tags-am uninstall \
864
+ uninstall-am uninstall-pkgconfigDATA
791
865
 
792
866
 
793
867
  .PHONY: dist-up