libusb 0.5.1 → 0.6.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 (155) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +8 -2
  3. data/Gemfile +2 -0
  4. data/History.md +12 -0
  5. data/README.md +25 -14
  6. data/Rakefile +64 -109
  7. data/appveyor.yml +23 -0
  8. data/ext/extconf.rb +10 -12
  9. data/ext/libusb_recipe.rb +29 -0
  10. data/lib/libusb/call.rb +14 -11
  11. data/lib/libusb/compat.rb +9 -9
  12. data/lib/libusb/context.rb +16 -1
  13. data/lib/libusb/dependencies.rb +7 -0
  14. data/lib/libusb/dev_handle.rb +13 -3
  15. data/lib/libusb/eventmachine.rb +4 -4
  16. data/lib/libusb/transfer.rb +71 -10
  17. data/lib/libusb/version_gem.rb +1 -1
  18. data/libusb.gemspec +7 -5
  19. data/ports/archives/libusb-1.0.21.tar.bz2 +0 -0
  20. data/test/test_libusb_bulk_stream_transfer.rb +1 -1
  21. data/test/test_libusb_descriptors.rb +4 -4
  22. data/test/test_libusb_event_machine.rb +7 -7
  23. data/test/test_libusb_hotplug.rb +15 -3
  24. data/test/test_libusb_iso_transfer.rb +1 -1
  25. data/test/test_libusb_mass_storage.rb +19 -19
  26. data/test/test_libusb_mass_storage2.rb +1 -1
  27. data/test/test_libusb_structs.rb +13 -0
  28. data/test/test_libusb_threads.rb +2 -2
  29. data/wireshark-usb-sniffer.png +0 -0
  30. metadata +32 -156
  31. checksums.yaml.gz.sig +0 -0
  32. data.tar.gz.sig +0 -0
  33. data/ext/libusb-1.0.20/AUTHORS +0 -89
  34. data/ext/libusb-1.0.20/COPYING +0 -504
  35. data/ext/libusb-1.0.20/ChangeLog +0 -227
  36. data/ext/libusb-1.0.20/INSTALL +0 -234
  37. data/ext/libusb-1.0.20/Makefile.am +0 -28
  38. data/ext/libusb-1.0.20/Makefile.in +0 -897
  39. data/ext/libusb-1.0.20/NEWS +0 -2
  40. data/ext/libusb-1.0.20/PORTING +0 -94
  41. data/ext/libusb-1.0.20/README +0 -29
  42. data/ext/libusb-1.0.20/TODO +0 -2
  43. data/ext/libusb-1.0.20/Xcode/common.xcconfig +0 -49
  44. data/ext/libusb-1.0.20/Xcode/config.h +0 -28
  45. data/ext/libusb-1.0.20/Xcode/debug.xcconfig +0 -29
  46. data/ext/libusb-1.0.20/Xcode/libusb.xcconfig +0 -21
  47. data/ext/libusb-1.0.20/Xcode/libusb.xcodeproj/project.pbxproj +0 -865
  48. data/ext/libusb-1.0.20/Xcode/libusb_debug.xcconfig +0 -21
  49. data/ext/libusb-1.0.20/Xcode/libusb_release.xcconfig +0 -21
  50. data/ext/libusb-1.0.20/Xcode/release.xcconfig +0 -30
  51. data/ext/libusb-1.0.20/aclocal.m4 +0 -1193
  52. data/ext/libusb-1.0.20/android/README +0 -114
  53. data/ext/libusb-1.0.20/android/config.h +0 -81
  54. data/ext/libusb-1.0.20/android/jni/Android.mk +0 -23
  55. data/ext/libusb-1.0.20/android/jni/Application.mk +0 -24
  56. data/ext/libusb-1.0.20/android/jni/examples.mk +0 -134
  57. data/ext/libusb-1.0.20/android/jni/libusb.mk +0 -54
  58. data/ext/libusb-1.0.20/android/jni/tests.mk +0 -56
  59. data/ext/libusb-1.0.20/compile +0 -347
  60. data/ext/libusb-1.0.20/config.guess +0 -1421
  61. data/ext/libusb-1.0.20/config.h.in +0 -155
  62. data/ext/libusb-1.0.20/config.sub +0 -1807
  63. data/ext/libusb-1.0.20/configure +0 -15466
  64. data/ext/libusb-1.0.20/configure.ac +0 -326
  65. data/ext/libusb-1.0.20/depcomp +0 -791
  66. data/ext/libusb-1.0.20/doc/Makefile.am +0 -9
  67. data/ext/libusb-1.0.20/doc/Makefile.in +0 -456
  68. data/ext/libusb-1.0.20/doc/doxygen.cfg.in +0 -2334
  69. data/ext/libusb-1.0.20/examples/Makefile.am +0 -19
  70. data/ext/libusb-1.0.20/examples/Makefile.in +0 -713
  71. data/ext/libusb-1.0.20/examples/dpfp.c +0 -506
  72. data/ext/libusb-1.0.20/examples/dpfp_threaded.c +0 -549
  73. data/ext/libusb-1.0.20/examples/ezusb.c +0 -831
  74. data/ext/libusb-1.0.20/examples/ezusb.h +0 -120
  75. data/ext/libusb-1.0.20/examples/fxload.c +0 -308
  76. data/ext/libusb-1.0.20/examples/getopt/getopt.c +0 -1060
  77. data/ext/libusb-1.0.20/examples/getopt/getopt.h +0 -180
  78. data/ext/libusb-1.0.20/examples/getopt/getopt1.c +0 -188
  79. data/ext/libusb-1.0.20/examples/hotplugtest.c +0 -122
  80. data/ext/libusb-1.0.20/examples/listdevs.c +0 -71
  81. data/ext/libusb-1.0.20/examples/sam3u_benchmark.c +0 -193
  82. data/ext/libusb-1.0.20/examples/xusb.c +0 -1130
  83. data/ext/libusb-1.0.20/install-sh +0 -501
  84. data/ext/libusb-1.0.20/libusb-1.0.pc.in +0 -11
  85. data/ext/libusb-1.0.20/libusb/Makefile.am +0 -90
  86. data/ext/libusb-1.0.20/libusb/Makefile.in +0 -1053
  87. data/ext/libusb-1.0.20/libusb/core.c +0 -2452
  88. data/ext/libusb-1.0.20/libusb/descriptor.c +0 -1201
  89. data/ext/libusb-1.0.20/libusb/hotplug.c +0 -344
  90. data/ext/libusb-1.0.20/libusb/hotplug.h +0 -90
  91. data/ext/libusb-1.0.20/libusb/io.c +0 -2760
  92. data/ext/libusb-1.0.20/libusb/libusb-1.0.def +0 -168
  93. data/ext/libusb-1.0.20/libusb/libusb-1.0.rc +0 -61
  94. data/ext/libusb-1.0.20/libusb/libusb.h +0 -1999
  95. data/ext/libusb-1.0.20/libusb/libusbi.h +0 -1102
  96. data/ext/libusb-1.0.20/libusb/os/darwin_usb.c +0 -1969
  97. data/ext/libusb-1.0.20/libusb/os/darwin_usb.h +0 -158
  98. data/ext/libusb-1.0.20/libusb/os/haiku/Makefile.am +0 -5
  99. data/ext/libusb-1.0.20/libusb/os/haiku/Makefile.in +0 -810
  100. data/ext/libusb-1.0.20/libusb/os/haiku/aclocal.m4 +0 -1193
  101. data/ext/libusb-1.0.20/libusb/os/haiku/compile +0 -347
  102. data/ext/libusb-1.0.20/libusb/os/haiku/config.guess +0 -1421
  103. data/ext/libusb-1.0.20/libusb/os/haiku/config.sub +0 -1807
  104. data/ext/libusb-1.0.20/libusb/os/haiku/configure +0 -17579
  105. data/ext/libusb-1.0.20/libusb/os/haiku/configure.ac +0 -8
  106. data/ext/libusb-1.0.20/libusb/os/haiku/depcomp +0 -791
  107. data/ext/libusb-1.0.20/libusb/os/haiku/haiku_pollfs.cpp +0 -378
  108. data/ext/libusb-1.0.20/libusb/os/haiku/haiku_usb.h +0 -112
  109. data/ext/libusb-1.0.20/libusb/os/haiku/haiku_usb_backend.cpp +0 -550
  110. data/ext/libusb-1.0.20/libusb/os/haiku/haiku_usb_raw.cpp +0 -255
  111. data/ext/libusb-1.0.20/libusb/os/haiku/haiku_usb_raw.h +0 -180
  112. data/ext/libusb-1.0.20/libusb/os/haiku/install-sh +0 -501
  113. data/ext/libusb-1.0.20/libusb/os/haiku/ltmain.sh +0 -9655
  114. data/ext/libusb-1.0.20/libusb/os/haiku/m4/libtool.m4 +0 -7992
  115. data/ext/libusb-1.0.20/libusb/os/haiku/m4/ltoptions.m4 +0 -384
  116. data/ext/libusb-1.0.20/libusb/os/haiku/m4/ltsugar.m4 +0 -123
  117. data/ext/libusb-1.0.20/libusb/os/haiku/m4/ltversion.m4 +0 -23
  118. data/ext/libusb-1.0.20/libusb/os/haiku/m4/lt~obsolete.m4 +0 -98
  119. data/ext/libusb-1.0.20/libusb/os/haiku/missing +0 -215
  120. data/ext/libusb-1.0.20/libusb/os/linux_netlink.c +0 -369
  121. data/ext/libusb-1.0.20/libusb/os/linux_udev.c +0 -306
  122. data/ext/libusb-1.0.20/libusb/os/linux_usbfs.c +0 -2692
  123. data/ext/libusb-1.0.20/libusb/os/linux_usbfs.h +0 -192
  124. data/ext/libusb-1.0.20/libusb/os/netbsd_usb.c +0 -674
  125. data/ext/libusb-1.0.20/libusb/os/openbsd_usb.c +0 -768
  126. data/ext/libusb-1.0.20/libusb/os/poll_posix.c +0 -53
  127. data/ext/libusb-1.0.20/libusb/os/poll_posix.h +0 -11
  128. data/ext/libusb-1.0.20/libusb/os/poll_windows.c +0 -728
  129. data/ext/libusb-1.0.20/libusb/os/poll_windows.h +0 -131
  130. data/ext/libusb-1.0.20/libusb/os/threads_posix.c +0 -82
  131. data/ext/libusb-1.0.20/libusb/os/threads_posix.h +0 -50
  132. data/ext/libusb-1.0.20/libusb/os/threads_windows.c +0 -214
  133. data/ext/libusb-1.0.20/libusb/os/threads_windows.h +0 -87
  134. data/ext/libusb-1.0.20/libusb/os/wince_usb.c +0 -869
  135. data/ext/libusb-1.0.20/libusb/os/wince_usb.h +0 -131
  136. data/ext/libusb-1.0.20/libusb/os/windows_common.h +0 -108
  137. data/ext/libusb-1.0.20/libusb/os/windows_usb.c +0 -4643
  138. data/ext/libusb-1.0.20/libusb/os/windows_usb.h +0 -973
  139. data/ext/libusb-1.0.20/libusb/strerror.c +0 -202
  140. data/ext/libusb-1.0.20/libusb/sync.c +0 -308
  141. data/ext/libusb-1.0.20/libusb/version.h +0 -18
  142. data/ext/libusb-1.0.20/libusb/version_nano.h +0 -1
  143. data/ext/libusb-1.0.20/ltmain.sh +0 -9655
  144. data/ext/libusb-1.0.20/m4/libtool.m4 +0 -7992
  145. data/ext/libusb-1.0.20/m4/ltoptions.m4 +0 -384
  146. data/ext/libusb-1.0.20/m4/ltsugar.m4 +0 -123
  147. data/ext/libusb-1.0.20/m4/ltversion.m4 +0 -23
  148. data/ext/libusb-1.0.20/m4/lt~obsolete.m4 +0 -98
  149. data/ext/libusb-1.0.20/missing +0 -215
  150. data/ext/libusb-1.0.20/tests/Makefile.am +0 -6
  151. data/ext/libusb-1.0.20/tests/Makefile.in +0 -596
  152. data/ext/libusb-1.0.20/tests/libusb_testlib.h +0 -107
  153. data/ext/libusb-1.0.20/tests/stress.c +0 -160
  154. data/ext/libusb-1.0.20/tests/testlib.c +0 -277
  155. metadata.gz.sig +0 -0
@@ -1,227 +0,0 @@
1
- For detailed information about the changes below, please see the git log or
2
- visit: http://log.libusb.info
3
-
4
- 2015-09-13: v1.0.20
5
- * Add Haiku support
6
- * Fix multiple memory and resource leaks (#16, #52, #76, #81)
7
- * Fix possible deadlock when executing transfer callback
8
- * New libusb_free_pollfds() API
9
- * Darwin: Fix devices not being detected on OS X 10.8 (#48)
10
- * Linux: Allow larger isochronous transfer submission (#23)
11
- * Windows: Fix broken builds Cygwin/MinGW builds and compiler warnings
12
- * Windows: Fix broken bus number lookup
13
- * Windows: Improve submission of control requests for composite devices
14
- * Examples: Add two-stage load support to fxload (#12)
15
- * Correctly report cancellations due to timeouts
16
- * Improve efficiency of event handling
17
- * Improve speed of transfer submission in multi-threaded environments
18
- * Various other bug fixes and improvements
19
- The (#xx) numbers are libusb issue numbers, see ie:
20
- https://github.com/libusb/libusb/issues/16
21
-
22
- 2014-05-30: v1.0.19
23
- * Add support for USB bulk streams on Linux and Mac OS X (#11)
24
- * Windows: Add AMD and Intel USB-3.0 root hub support
25
- * Windows: Fix USB 3.0 speed detection on Windows 8 or later (#10)
26
- * Added Russian translation for libusb_strerror strings
27
- * All: Various small fixes and cleanups
28
-
29
- 2014-01-25: v1.0.18
30
- * Fix multiple memory leaks
31
- * Fix a crash when HID transfers return no data on Windows
32
- * Ensure all pending events are consumed
33
- * Improve Android and ucLinux support
34
- * Multiple Windows improvements (error logging, VS2013, VIA xHCI support)
35
- * Multiple OS X improvements (broken compilation, SIGFPE, 64bit support)
36
-
37
- 2013-09-06: v1.0.17
38
- * Hotplug callbacks now always get passed a libusb_context, even if it is
39
- the default context. Previously NULL would be passed for the default context,
40
- but since the first context created is the default context, and most apps
41
- use only 1 context, this meant that apps explicitly creating a context would
42
- still get passed NULL
43
- * Android: Add .mk files to build with the Android NDK
44
- * Darwin: Add Xcode project
45
- * Darwin: Fix crash on unplug (#121)
46
- * Linux: Fix hang (deadlock) on libusb_exit
47
- * Linux: Fix libusb build failure with --disable-udev (#124)
48
- * Linux: Fix libusb_get_device_list() hang with --disable-udev (#130)
49
- * OpenBSD: Update OpenBSD backend with support for control transfers to
50
- non-ugen(4) devices and make get_configuration() no longer generate I/O.
51
- Note that using this libusb version on OpenBSD requires using
52
- OpenBSD 5.3-current or later. Users of older OpenBSD versions are advised
53
- to stay with the libusb shipped with OpenBSD (mpi)
54
- * Windows: fix libusb_dll_2010.vcxproj link errors (#129)
55
- * Various other bug fixes and improvements
56
-
57
- 2013-07-11: v1.0.16
58
- * Add hotplug support for Darwin and Linux (#9)
59
- * Add superspeed endpoint companion descriptor support (#15)
60
- * Add BOS descriptor support (#15)
61
- * Make descriptor parsing code more robust
62
- * New libusb_get_port_numbers API, this is libusb_get_port_path without
63
- the unnecessary context parameter, libusb_get_port_path is now deprecated
64
- * New libusb_strerror API (#14)
65
- * New libusb_set_auto_detach_kernel_driver API (#17)
66
- * Improve topology API docs (#95)
67
- * Logging now use a single write call per log-message, avoiding log-message
68
- "interlacing" when using multiple threads.
69
- * Android: use Android logging when building on Android (#101)
70
- * Darwin: make libusb_reset reenumerate device on descriptors change (#89)
71
- * Darwin: add support for the LIBUSB_TRANSFER_ADD_ZERO_PACKET flag (#91)
72
- * Darwin: add a device cache (#112, #114)
73
- * Examples: Add sam3u_benchmark isochronous example by Harald Welte (#109)
74
- * Many other bug fixes and improvements
75
- The (#xx) numbers are libusbx issue numbers, see ie:
76
- https://github.com/libusbx/libusbx/issues/9
77
-
78
- 2013-04-15: v1.0.15
79
- * Improve transfer cancellation and avoid short read failures on broken descriptors
80
- * Filter out 8-bit characters in libusb_get_string_descriptor_ascii()
81
- * Add WinCE support
82
- * Add library stress tests
83
- * Add Cypress FX3 firmware upload support for fxload sample
84
- * Add HID and kernel driver detach support capabilities detection
85
- * Add SuperSpeed detection on OS X
86
- * Fix bInterval value interpretation on OS X
87
- * Fix issues with autoclaim, composite HID devices, interface autoclaim and
88
- early abort in libusb_close() on Windows. Also add VS2012 solution files.
89
- * Improve fd event handling on Linux
90
- * Other bug fixes and improvements
91
-
92
- 2012-09-26: v1.0.14
93
- * Reverts the previous API change with regards to bMaxPower.
94
- If this doesn't matter to you, you are encouraged to keep using v1.0.13,
95
- as it will use the same attribute as v2.0, to be released soon.
96
- * Note that LIBUSB_API_VERSION is *decreased* to 0x010000FF and the previous
97
- guidelines with regards to concurrent use of MaxPower/bMaxPower still apply.
98
-
99
- 2012-09-20: v1.0.13
100
- * [MAJOR] Fix a typo in the API with struct libusb_config_descriptor where
101
- MaxPower was used instead of bMaxPower, as defined in the specs. If your
102
- application was accessing the MaxPower attribute, and you need to maintain
103
- compatibility with libusb or older versions, see APPENDIX A below.
104
- * Fix broken support for the 0.1 -> 1.0 libusb-compat layer
105
- * Fix unwanted cancellation of pending timeouts as well as major timeout related bugs
106
- * Fix handling of HID and composite devices on Windows
107
- * Introduce LIBUSB_API_VERSION macro
108
- * Add Cypress FX/FX2 firmware upload sample, based on fxload from
109
- http://linux-hotplug.sourceforge.net
110
- * Add libusb0 (libusb-win32) and libusbK driver support on Windows. Note that while
111
- the drivers allow it, isochronous transfers are not supported yet in libusb. Also
112
- not supported yet is the use of libusb-win32 filter drivers on composite interfaces
113
- * Add support for the new get_capabilities ioctl on Linux and avoid unnecessary
114
- splitting of bulk transfers
115
- * Improve support for newer Intel and Renesas USB 3.0 controllers on Windows
116
- * Harmonize the device number for root hubs across platforms
117
- * Other bug fixes and improvements
118
-
119
- 2012-06-15: v1.0.12
120
- * Fix a potential major regression with pthread on Linux
121
- * Fix missing thread ID from debug log output on cygwin
122
- * Fix possible crash when using longjmp and MinGW's gcc 4.6
123
- * Add topology calls: libusb_get_port_number(), libusb_get_parent() & libusb_get_port_path()
124
- * Add toggleable debug, using libusb_set_debug() or the LIBUSB_DEBUG environment variable
125
- * Define log levels in libusb.h and set timestamp origin to first libusb_init() call
126
- * All logging is now sent to to stderr (info was sent to stdout previously)
127
- * Update log messages severity and avoid polluting log output on OS-X
128
- * Add HID driver support on Windows
129
- * Enable interchangeability of MSVC and MinGW DLLs
130
- * Additional bug fixes and improvements
131
-
132
- 2012-05-08: v1.0.11
133
- * Revert removal of critical Windows event handling that was introduced in 1.0.10
134
- * Fix a possible deadlock in Windows when submitting transfers
135
- * Add timestamped logging
136
- * Add NetBSD support (experimental) and BSD libusb_get_device_speed() data
137
- * Add bootstrap.sh alongside autogen.sh (bootstrap.sh doesn't invoke configure)
138
- * Search for device nodes in /dev for Android support
139
- * Other bug fixes
140
-
141
- 2012-04-17: v1.0.10
142
- * Public release
143
- * Add libusb_get_version
144
- * Add Visual Studio 2010 project files
145
- * Some Windows code cleanup
146
- * Fix xusb sample warnings
147
-
148
- 2012-04-02: v1.0.9
149
- * First libusbx release
150
- * Add libusb_get_device_speed (all, except BSD) and libusb_error_name
151
- * Add Windows support (WinUSB driver only)
152
- * Add OpenBSD support
153
- * Add xusb sample
154
- * Tons of bug fixes
155
-
156
- 2010-05-07: v1.0.8
157
- * Bug fixes
158
-
159
- 2010-04-19: v1.0.7
160
- * Bug fixes and documentation tweaks
161
- * Add more interface class definitions
162
-
163
- 2009-11-22: v1.0.6
164
- * Bug fixes
165
- * Increase libusb_handle_events() timeout to 60s for powersaving
166
-
167
- 2009-11-15: v1.0.5
168
- * Use timerfd when available for timer management
169
- * Small fixes/updates
170
-
171
- 2009-11-06: v1.0.4 release
172
- * Bug fixes including transfer locking to fix some potential threading races
173
- * More flexibility with clock types on Linux
174
- * Use new bulk continuation tracking in Linux 2.6.32 for improved handling
175
- of short/failed transfers
176
-
177
- 2009-08-27: v1.0.3 release
178
- * Bug fixes
179
- * Add libusb_get_max_iso_packet_size()
180
-
181
- 2009-06-13: v1.0.2 release
182
- * Bug fixes
183
-
184
- 2009-05-12: v1.0.1 release
185
- * Bug fixes
186
- * Darwin backend
187
-
188
- 2008-12-13: v1.0.0 release
189
- * Bug fixes
190
-
191
- 2008-11-21: v0.9.4 release
192
- * Bug fixes
193
- * Add libusb_attach_kernel_driver()
194
-
195
- 2008-08-23: v0.9.3 release
196
- * Bug fixes
197
-
198
- 2008-07-19: v0.9.2 release
199
- * Bug fixes
200
-
201
- 2008-06-28: v0.9.1 release
202
- * Bug fixes
203
- * Introduce contexts to the API
204
- * Compatibility with new Linux kernel features
205
-
206
- 2008-05-25: v0.9.0 release
207
- * First libusb-1.0 beta release
208
-
209
- ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
210
-
211
- APPENDIX A - How to maintain code compatibility with versions of libusb and
212
- libusb that use MaxPower:
213
-
214
- If you must to maintain compatibility with versions of the library that aren't
215
- using the bMaxPower attribute in struct libusb_config_descriptor, the
216
- recommended way is to use the new LIBUSB_API_VERSION macro with an #ifdef.
217
- For instance, if your code was written as follows:
218
-
219
- if (dev->config[0].MaxPower < 250)
220
-
221
- Then you should modify it to have:
222
-
223
- #if defined(LIBUSB_API_VERSION) && (LIBUSB_API_VERSION >= 0x01000100)
224
- if (dev->config[0].bMaxPower < 250)
225
- #else
226
- if (dev->config[0].MaxPower < 250)
227
- #endif
@@ -1,234 +0,0 @@
1
- Installation Instructions
2
- *************************
3
-
4
- Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
5
- 2006 Free Software Foundation, Inc.
6
-
7
- This file is free documentation; the Free Software Foundation gives
8
- unlimited permission to copy, distribute and modify it.
9
-
10
- Basic Installation
11
- ==================
12
-
13
- Briefly, the shell commands `./configure; make; make install' should
14
- configure, build, and install this package. The following
15
- more-detailed instructions are generic; see the `README' file for
16
- instructions specific to this package.
17
-
18
- The `configure' shell script attempts to guess correct values for
19
- various system-dependent variables used during compilation. It uses
20
- those values to create a `Makefile' in each directory of the package.
21
- It may also create one or more `.h' files containing system-dependent
22
- definitions. Finally, it creates a shell script `config.status' that
23
- you can run in the future to recreate the current configuration, and a
24
- file `config.log' containing compiler output (useful mainly for
25
- debugging `configure').
26
-
27
- It can also use an optional file (typically called `config.cache'
28
- and enabled with `--cache-file=config.cache' or simply `-C') that saves
29
- the results of its tests to speed up reconfiguring. Caching is
30
- disabled by default to prevent problems with accidental use of stale
31
- cache files.
32
-
33
- If you need to do unusual things to compile the package, please try
34
- to figure out how `configure' could check whether to do them, and mail
35
- diffs or instructions to the address given in the `README' so they can
36
- be considered for the next release. If you are using the cache, and at
37
- some point `config.cache' contains results you don't want to keep, you
38
- may remove or edit it.
39
-
40
- The file `configure.ac' (or `configure.in') is used to create
41
- `configure' by a program called `autoconf'. You need `configure.ac' if
42
- you want to change it or regenerate `configure' using a newer version
43
- of `autoconf'.
44
-
45
- The simplest way to compile this package is:
46
-
47
- 1. `cd' to the directory containing the package's source code and type
48
- `./configure' to configure the package for your system.
49
-
50
- Running `configure' might take a while. While running, it prints
51
- some messages telling which features it is checking for.
52
-
53
- 2. Type `make' to compile the package.
54
-
55
- 3. Optionally, type `make check' to run any self-tests that come with
56
- the package.
57
-
58
- 4. Type `make install' to install the programs and any data files and
59
- documentation.
60
-
61
- 5. You can remove the program binaries and object files from the
62
- source code directory by typing `make clean'. To also remove the
63
- files that `configure' created (so you can compile the package for
64
- a different kind of computer), type `make distclean'. There is
65
- also a `make maintainer-clean' target, but that is intended mainly
66
- for the package's developers. If you use it, you may have to get
67
- all sorts of other programs in order to regenerate files that came
68
- with the distribution.
69
-
70
- Compilers and Options
71
- =====================
72
-
73
- Some systems require unusual options for compilation or linking that the
74
- `configure' script does not know about. Run `./configure --help' for
75
- details on some of the pertinent environment variables.
76
-
77
- You can give `configure' initial values for configuration parameters
78
- by setting variables in the command line or in the environment. Here
79
- is an example:
80
-
81
- ./configure CC=c99 CFLAGS=-g LIBS=-lposix
82
-
83
- *Note Defining Variables::, for more details.
84
-
85
- Compiling For Multiple Architectures
86
- ====================================
87
-
88
- You can compile the package for more than one kind of computer at the
89
- same time, by placing the object files for each architecture in their
90
- own directory. To do this, you can use GNU `make'. `cd' to the
91
- directory where you want the object files and executables to go and run
92
- the `configure' script. `configure' automatically checks for the
93
- source code in the directory that `configure' is in and in `..'.
94
-
95
- With a non-GNU `make', it is safer to compile the package for one
96
- architecture at a time in the source code directory. After you have
97
- installed the package for one architecture, use `make distclean' before
98
- reconfiguring for another architecture.
99
-
100
- Installation Names
101
- ==================
102
-
103
- By default, `make install' installs the package's commands under
104
- `/usr/local/bin', include files under `/usr/local/include', etc. You
105
- can specify an installation prefix other than `/usr/local' by giving
106
- `configure' the option `--prefix=PREFIX'.
107
-
108
- You can specify separate installation prefixes for
109
- architecture-specific files and architecture-independent files. If you
110
- pass the option `--exec-prefix=PREFIX' to `configure', the package uses
111
- PREFIX as the prefix for installing programs and libraries.
112
- Documentation and other data files still use the regular prefix.
113
-
114
- In addition, if you use an unusual directory layout you can give
115
- options like `--bindir=DIR' to specify different values for particular
116
- kinds of files. Run `configure --help' for a list of the directories
117
- you can set and what kinds of files go in them.
118
-
119
- If the package supports it, you can cause programs to be installed
120
- with an extra prefix or suffix on their names by giving `configure' the
121
- option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
122
-
123
- Optional Features
124
- =================
125
-
126
- Some packages pay attention to `--enable-FEATURE' options to
127
- `configure', where FEATURE indicates an optional part of the package.
128
- They may also pay attention to `--with-PACKAGE' options, where PACKAGE
129
- is something like `gnu-as' or `x' (for the X Window System). The
130
- `README' should mention any `--enable-' and `--with-' options that the
131
- package recognizes.
132
-
133
- For packages that use the X Window System, `configure' can usually
134
- find the X include and library files automatically, but if it doesn't,
135
- you can use the `configure' options `--x-includes=DIR' and
136
- `--x-libraries=DIR' to specify their locations.
137
-
138
- Specifying the System Type
139
- ==========================
140
-
141
- There may be some features `configure' cannot figure out automatically,
142
- but needs to determine by the type of machine the package will run on.
143
- Usually, assuming the package is built to be run on the _same_
144
- architectures, `configure' can figure that out, but if it prints a
145
- message saying it cannot guess the machine type, give it the
146
- `--build=TYPE' option. TYPE can either be a short name for the system
147
- type, such as `sun4', or a canonical name which has the form:
148
-
149
- CPU-COMPANY-SYSTEM
150
-
151
- where SYSTEM can have one of these forms:
152
-
153
- OS KERNEL-OS
154
-
155
- See the file `config.sub' for the possible values of each field. If
156
- `config.sub' isn't included in this package, then this package doesn't
157
- need to know the machine type.
158
-
159
- If you are _building_ compiler tools for cross-compiling, you should
160
- use the option `--target=TYPE' to select the type of system they will
161
- produce code for.
162
-
163
- If you want to _use_ a cross compiler, that generates code for a
164
- platform different from the build platform, you should specify the
165
- "host" platform (i.e., that on which the generated programs will
166
- eventually be run) with `--host=TYPE'.
167
-
168
- Sharing Defaults
169
- ================
170
-
171
- If you want to set default values for `configure' scripts to share, you
172
- can create a site shell script called `config.site' that gives default
173
- values for variables like `CC', `cache_file', and `prefix'.
174
- `configure' looks for `PREFIX/share/config.site' if it exists, then
175
- `PREFIX/etc/config.site' if it exists. Or, you can set the
176
- `CONFIG_SITE' environment variable to the location of the site script.
177
- A warning: not all `configure' scripts look for a site script.
178
-
179
- Defining Variables
180
- ==================
181
-
182
- Variables not defined in a site shell script can be set in the
183
- environment passed to `configure'. However, some packages may run
184
- configure again during the build, and the customized values of these
185
- variables may be lost. In order to avoid this problem, you should set
186
- them in the `configure' command line, using `VAR=value'. For example:
187
-
188
- ./configure CC=/usr/local2/bin/gcc
189
-
190
- causes the specified `gcc' to be used as the C compiler (unless it is
191
- overridden in the site shell script).
192
-
193
- Unfortunately, this technique does not work for `CONFIG_SHELL' due to
194
- an Autoconf bug. Until the bug is fixed you can use this workaround:
195
-
196
- CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
197
-
198
- `configure' Invocation
199
- ======================
200
-
201
- `configure' recognizes the following options to control how it operates.
202
-
203
- `--help'
204
- `-h'
205
- Print a summary of the options to `configure', and exit.
206
-
207
- `--version'
208
- `-V'
209
- Print the version of Autoconf used to generate the `configure'
210
- script, and exit.
211
-
212
- `--cache-file=FILE'
213
- Enable the cache: use and save the results of the tests in FILE,
214
- traditionally `config.cache'. FILE defaults to `/dev/null' to
215
- disable caching.
216
-
217
- `--config-cache'
218
- `-C'
219
- Alias for `--cache-file=config.cache'.
220
-
221
- `--quiet'
222
- `--silent'
223
- `-q'
224
- Do not print messages saying which checks are being made. To
225
- suppress all normal output, redirect it to `/dev/null' (any error
226
- messages will still be shown).
227
-
228
- `--srcdir=DIR'
229
- Look for the package's source code in directory DIR. Usually
230
- `configure' can determine that directory automatically.
231
-
232
- `configure' also accepts some other, not widely useful, options. Run
233
- `configure --help' for more details.
234
-