libusb 0.3.4 → 0.4.0

Sign up to get free protection for your applications and to get access to all the features.
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