libusb 0.5.0 → 0.5.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. checksums.yaml.gz.sig +0 -0
  3. data.tar.gz.sig +0 -0
  4. data/.travis.yml +1 -0
  5. data/History.md +8 -0
  6. data/README.md +5 -15
  7. data/Rakefile +8 -1
  8. data/ext/extconf.rb +49 -12
  9. data/ext/{libusb-1.0.19 → libusb-1.0.20}/AUTHORS +12 -1
  10. data/ext/{libusb-1.0.19 → libusb-1.0.20}/COPYING +0 -0
  11. data/ext/{libusb-1.0.19 → libusb-1.0.20}/ChangeLog +18 -2
  12. data/ext/{libusb-1.0.19 → libusb-1.0.20}/INSTALL +0 -0
  13. data/ext/{libusb-1.0.19 → libusb-1.0.20}/Makefile.am +0 -0
  14. data/ext/{libusb-1.0.19 → libusb-1.0.20}/Makefile.in +31 -18
  15. data/ext/{libusb-1.0.19 → libusb-1.0.20}/NEWS +0 -0
  16. data/ext/{libusb-1.0.19 → libusb-1.0.20}/PORTING +0 -0
  17. data/ext/{libusb-1.0.19 → libusb-1.0.20}/README +5 -3
  18. data/ext/{libusb-1.0.19 → libusb-1.0.20}/TODO +0 -0
  19. data/ext/{libusb-1.0.19 → libusb-1.0.20}/Xcode/common.xcconfig +0 -0
  20. data/ext/{libusb-1.0.19 → libusb-1.0.20}/Xcode/config.h +0 -0
  21. data/ext/{libusb-1.0.19 → libusb-1.0.20}/Xcode/debug.xcconfig +0 -0
  22. data/ext/{libusb-1.0.19 → libusb-1.0.20}/Xcode/libusb.xcconfig +0 -0
  23. data/ext/libusb-1.0.20/Xcode/libusb.xcodeproj/project.pbxproj +865 -0
  24. data/ext/{libusb-1.0.19 → libusb-1.0.20}/Xcode/libusb_debug.xcconfig +0 -0
  25. data/ext/{libusb-1.0.19 → libusb-1.0.20}/Xcode/libusb_release.xcconfig +0 -0
  26. data/ext/{libusb-1.0.19 → libusb-1.0.20}/Xcode/release.xcconfig +0 -0
  27. data/ext/{libusb-1.0.19 → libusb-1.0.20}/aclocal.m4 +35 -32
  28. data/ext/{libusb-1.0.19 → libusb-1.0.20}/android/README +0 -0
  29. data/ext/{libusb-1.0.19 → libusb-1.0.20}/android/config.h +0 -0
  30. data/ext/{libusb-1.0.19 → libusb-1.0.20}/android/jni/Android.mk +0 -0
  31. data/ext/{libusb-1.0.19 → libusb-1.0.20}/android/jni/Application.mk +0 -0
  32. data/ext/{libusb-1.0.19 → libusb-1.0.20}/android/jni/examples.mk +0 -0
  33. data/ext/{libusb-1.0.19 → libusb-1.0.20}/android/jni/libusb.mk +0 -0
  34. data/ext/{libusb-1.0.19 → libusb-1.0.20}/android/jni/tests.mk +0 -0
  35. data/ext/{libusb-1.0.19 → libusb-1.0.20}/compile +1 -1
  36. data/ext/{libusb-1.0.19 → libusb-1.0.20}/config.guess +13 -160
  37. data/ext/{libusb-1.0.19 → libusb-1.0.20}/config.h.in +6 -0
  38. data/ext/{libusb-1.0.19 → libusb-1.0.20}/config.sub +26 -12
  39. data/ext/{libusb-1.0.19 → libusb-1.0.20}/configure +244 -20
  40. data/ext/{libusb-1.0.19 → libusb-1.0.20}/configure.ac +27 -4
  41. data/ext/{libusb-1.0.19 → libusb-1.0.20}/depcomp +1 -1
  42. data/ext/{libusb-1.0.19 → libusb-1.0.20}/doc/Makefile.am +0 -0
  43. data/ext/{libusb-1.0.19 → libusb-1.0.20}/doc/Makefile.in +19 -6
  44. data/ext/libusb-1.0.20/doc/doxygen.cfg.in +2334 -0
  45. data/ext/{libusb-1.0.19 → libusb-1.0.20}/examples/Makefile.am +0 -0
  46. data/ext/{libusb-1.0.19 → libusb-1.0.20}/examples/Makefile.in +19 -6
  47. data/ext/{libusb-1.0.19 → libusb-1.0.20}/examples/dpfp.c +0 -0
  48. data/ext/{libusb-1.0.19 → libusb-1.0.20}/examples/dpfp_threaded.c +15 -10
  49. data/ext/{libusb-1.0.19 → libusb-1.0.20}/examples/ezusb.c +0 -0
  50. data/ext/{libusb-1.0.19 → libusb-1.0.20}/examples/ezusb.h +0 -0
  51. data/ext/{libusb-1.0.19 → libusb-1.0.20}/examples/fxload.c +28 -7
  52. data/ext/{libusb-1.0.19 → libusb-1.0.20}/examples/getopt/getopt.c +0 -0
  53. data/ext/{libusb-1.0.19 → libusb-1.0.20}/examples/getopt/getopt.h +0 -0
  54. data/ext/{libusb-1.0.19 → libusb-1.0.20}/examples/getopt/getopt1.c +0 -0
  55. data/ext/{libusb-1.0.19 → libusb-1.0.20}/examples/hotplugtest.c +21 -3
  56. data/ext/{libusb-1.0.19 → libusb-1.0.20}/examples/listdevs.c +0 -0
  57. data/ext/{libusb-1.0.19 → libusb-1.0.20}/examples/sam3u_benchmark.c +0 -0
  58. data/ext/{libusb-1.0.19 → libusb-1.0.20}/examples/xusb.c +2 -1
  59. data/ext/{libusb-1.0.19 → libusb-1.0.20}/install-sh +170 -196
  60. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb-1.0.pc.in +0 -0
  61. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/Makefile.am +15 -0
  62. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/Makefile.in +192 -53
  63. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/core.c +218 -100
  64. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/descriptor.c +3 -1
  65. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/hotplug.c +26 -9
  66. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/hotplug.h +8 -0
  67. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/io.c +432 -290
  68. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/libusb-1.0.def +2 -0
  69. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/libusb-1.0.rc +0 -0
  70. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/libusb.h +11 -10
  71. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/libusbi.h +106 -29
  72. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/os/darwin_usb.c +27 -67
  73. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/os/darwin_usb.h +3 -7
  74. data/ext/libusb-1.0.20/libusb/os/haiku/Makefile.am +5 -0
  75. data/ext/libusb-1.0.20/libusb/os/haiku/Makefile.in +810 -0
  76. data/ext/libusb-1.0.20/libusb/os/haiku/aclocal.m4 +1193 -0
  77. data/ext/libusb-1.0.20/libusb/os/haiku/compile +347 -0
  78. data/ext/libusb-1.0.20/libusb/os/haiku/config.guess +1421 -0
  79. data/ext/libusb-1.0.20/libusb/os/haiku/config.sub +1807 -0
  80. data/ext/libusb-1.0.20/libusb/os/haiku/configure +17579 -0
  81. data/ext/libusb-1.0.20/libusb/os/haiku/configure.ac +8 -0
  82. data/ext/libusb-1.0.20/libusb/os/haiku/depcomp +791 -0
  83. data/ext/libusb-1.0.20/libusb/os/haiku/haiku_pollfs.cpp +378 -0
  84. data/ext/libusb-1.0.20/libusb/os/haiku/haiku_usb.h +112 -0
  85. data/ext/libusb-1.0.20/libusb/os/haiku/haiku_usb_backend.cpp +550 -0
  86. data/ext/libusb-1.0.20/libusb/os/haiku/haiku_usb_raw.cpp +255 -0
  87. data/ext/libusb-1.0.20/libusb/os/haiku/haiku_usb_raw.h +180 -0
  88. data/ext/libusb-1.0.20/libusb/os/haiku/install-sh +501 -0
  89. data/ext/{libusb-1.0.19 → libusb-1.0.20/libusb/os/haiku}/ltmain.sh +0 -0
  90. data/ext/{libusb-1.0.19 → libusb-1.0.20/libusb/os/haiku}/m4/libtool.m4 +0 -0
  91. data/ext/{libusb-1.0.19 → libusb-1.0.20/libusb/os/haiku}/m4/ltoptions.m4 +0 -0
  92. data/ext/{libusb-1.0.19 → libusb-1.0.20/libusb/os/haiku}/m4/ltsugar.m4 +0 -0
  93. data/ext/{libusb-1.0.19 → libusb-1.0.20/libusb/os/haiku}/m4/ltversion.m4 +0 -0
  94. data/ext/{libusb-1.0.19 → libusb-1.0.20/libusb/os/haiku}/m4/lt~obsolete.m4 +0 -0
  95. data/ext/{libusb-1.0.19 → libusb-1.0.20/libusb/os/haiku}/missing +1 -1
  96. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/os/linux_netlink.c +4 -4
  97. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/os/linux_udev.c +1 -2
  98. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/os/linux_usbfs.c +46 -49
  99. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/os/linux_usbfs.h +1 -1
  100. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/os/netbsd_usb.c +9 -73
  101. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/os/openbsd_usb.c +9 -73
  102. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/os/poll_posix.c +2 -0
  103. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/os/poll_posix.h +0 -0
  104. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/os/poll_windows.c +3 -1
  105. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/os/poll_windows.h +0 -0
  106. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/os/threads_posix.c +3 -3
  107. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/os/threads_posix.h +0 -0
  108. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/os/threads_windows.c +3 -1
  109. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/os/threads_windows.h +0 -0
  110. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/os/wince_usb.c +87 -250
  111. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/os/wince_usb.h +0 -0
  112. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/os/windows_common.h +1 -1
  113. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/os/windows_usb.c +267 -181
  114. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/os/windows_usb.h +22 -7
  115. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/strerror.c +5 -2
  116. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/sync.c +2 -1
  117. data/ext/{libusb-1.0.19 → libusb-1.0.20}/libusb/version.h +1 -1
  118. data/ext/libusb-1.0.20/libusb/version_nano.h +1 -0
  119. data/ext/libusb-1.0.20/ltmain.sh +9655 -0
  120. data/ext/libusb-1.0.20/m4/libtool.m4 +7992 -0
  121. data/ext/libusb-1.0.20/m4/ltoptions.m4 +384 -0
  122. data/ext/libusb-1.0.20/m4/ltsugar.m4 +123 -0
  123. data/ext/libusb-1.0.20/m4/ltversion.m4 +23 -0
  124. data/ext/libusb-1.0.20/m4/lt~obsolete.m4 +98 -0
  125. data/ext/libusb-1.0.20/missing +215 -0
  126. data/ext/{libusb-1.0.19 → libusb-1.0.20}/tests/Makefile.am +0 -0
  127. data/ext/{libusb-1.0.19 → libusb-1.0.20}/tests/Makefile.in +19 -6
  128. data/ext/{libusb-1.0.19 → libusb-1.0.20}/tests/libusb_testlib.h +0 -0
  129. data/ext/{libusb-1.0.19 → libusb-1.0.20}/tests/stress.c +0 -0
  130. data/ext/{libusb-1.0.19 → libusb-1.0.20}/tests/testlib.c +0 -0
  131. data/lib/libusb.rb +1 -0
  132. data/lib/libusb/call.rb +1 -0
  133. data/lib/libusb/context.rb +5 -2
  134. data/lib/libusb/stdio.rb +25 -0
  135. data/lib/libusb/version_gem.rb +1 -1
  136. data/libusb.gemspec +2 -1
  137. metadata +152 -115
  138. metadata.gz.sig +0 -0
  139. data/ext/libusb-1.0.19/Xcode/libusb.xcodeproj/project.pbxproj +0 -1
  140. data/ext/libusb-1.0.19/doc/doxygen.cfg.in +0 -1288
  141. data/ext/libusb-1.0.19/libusb/version_nano.h +0 -1
@@ -0,0 +1,8 @@
1
+ AC_INIT([haikuusb], [1.0])
2
+ AM_INIT_AUTOMAKE([no-define foreign])
3
+ AM_MAINTAINER_MODE
4
+ LT_INIT
5
+ AC_PROG_CXX
6
+ AC_CONFIG_FILES([Makefile])
7
+ AC_CONFIG_MACRO_DIR([m4])
8
+ AC_OUTPUT
@@ -0,0 +1,791 @@
1
+ #! /bin/sh
2
+ # depcomp - compile a program generating dependencies as side-effects
3
+
4
+ scriptversion=2013-05-30.07; # UTC
5
+
6
+ # Copyright (C) 1999-2014 Free Software Foundation, Inc.
7
+
8
+ # This program is free software; you can redistribute it and/or modify
9
+ # it under the terms of the GNU General Public License as published by
10
+ # the Free Software Foundation; either version 2, or (at your option)
11
+ # any later version.
12
+
13
+ # This program is distributed in the hope that it will be useful,
14
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
16
+ # GNU General Public License for more details.
17
+
18
+ # You should have received a copy of the GNU General Public License
19
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
20
+
21
+ # As a special exception to the GNU General Public License, if you
22
+ # distribute this file as part of a program that contains a
23
+ # configuration script generated by Autoconf, you may include it under
24
+ # the same distribution terms that you use for the rest of that program.
25
+
26
+ # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
27
+
28
+ case $1 in
29
+ '')
30
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
31
+ exit 1;
32
+ ;;
33
+ -h | --h*)
34
+ cat <<\EOF
35
+ Usage: depcomp [--help] [--version] PROGRAM [ARGS]
36
+
37
+ Run PROGRAMS ARGS to compile a file, generating dependencies
38
+ as side-effects.
39
+
40
+ Environment variables:
41
+ depmode Dependency tracking mode.
42
+ source Source file read by 'PROGRAMS ARGS'.
43
+ object Object file output by 'PROGRAMS ARGS'.
44
+ DEPDIR directory where to store dependencies.
45
+ depfile Dependency file to output.
46
+ tmpdepfile Temporary file to use when outputting dependencies.
47
+ libtool Whether libtool is used (yes/no).
48
+
49
+ Report bugs to <bug-automake@gnu.org>.
50
+ EOF
51
+ exit $?
52
+ ;;
53
+ -v | --v*)
54
+ echo "depcomp $scriptversion"
55
+ exit $?
56
+ ;;
57
+ esac
58
+
59
+ # Get the directory component of the given path, and save it in the
60
+ # global variables '$dir'. Note that this directory component will
61
+ # be either empty or ending with a '/' character. This is deliberate.
62
+ set_dir_from ()
63
+ {
64
+ case $1 in
65
+ */*) dir=`echo "$1" | sed -e 's|/[^/]*$|/|'`;;
66
+ *) dir=;;
67
+ esac
68
+ }
69
+
70
+ # Get the suffix-stripped basename of the given path, and save it the
71
+ # global variable '$base'.
72
+ set_base_from ()
73
+ {
74
+ base=`echo "$1" | sed -e 's|^.*/||' -e 's/\.[^.]*$//'`
75
+ }
76
+
77
+ # If no dependency file was actually created by the compiler invocation,
78
+ # we still have to create a dummy depfile, to avoid errors with the
79
+ # Makefile "include basename.Plo" scheme.
80
+ make_dummy_depfile ()
81
+ {
82
+ echo "#dummy" > "$depfile"
83
+ }
84
+
85
+ # Factor out some common post-processing of the generated depfile.
86
+ # Requires the auxiliary global variable '$tmpdepfile' to be set.
87
+ aix_post_process_depfile ()
88
+ {
89
+ # If the compiler actually managed to produce a dependency file,
90
+ # post-process it.
91
+ if test -f "$tmpdepfile"; then
92
+ # Each line is of the form 'foo.o: dependency.h'.
93
+ # Do two passes, one to just change these to
94
+ # $object: dependency.h
95
+ # and one to simply output
96
+ # dependency.h:
97
+ # which is needed to avoid the deleted-header problem.
98
+ { sed -e "s,^.*\.[$lower]*:,$object:," < "$tmpdepfile"
99
+ sed -e "s,^.*\.[$lower]*:[$tab ]*,," -e 's,$,:,' < "$tmpdepfile"
100
+ } > "$depfile"
101
+ rm -f "$tmpdepfile"
102
+ else
103
+ make_dummy_depfile
104
+ fi
105
+ }
106
+
107
+ # A tabulation character.
108
+ tab=' '
109
+ # A newline character.
110
+ nl='
111
+ '
112
+ # Character ranges might be problematic outside the C locale.
113
+ # These definitions help.
114
+ upper=ABCDEFGHIJKLMNOPQRSTUVWXYZ
115
+ lower=abcdefghijklmnopqrstuvwxyz
116
+ digits=0123456789
117
+ alpha=${upper}${lower}
118
+
119
+ if test -z "$depmode" || test -z "$source" || test -z "$object"; then
120
+ echo "depcomp: Variables source, object and depmode must be set" 1>&2
121
+ exit 1
122
+ fi
123
+
124
+ # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
125
+ depfile=${depfile-`echo "$object" |
126
+ sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
127
+ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
128
+
129
+ rm -f "$tmpdepfile"
130
+
131
+ # Avoid interferences from the environment.
132
+ gccflag= dashmflag=
133
+
134
+ # Some modes work just like other modes, but use different flags. We
135
+ # parameterize here, but still list the modes in the big case below,
136
+ # to make depend.m4 easier to write. Note that we *cannot* use a case
137
+ # here, because this file can only contain one case statement.
138
+ if test "$depmode" = hp; then
139
+ # HP compiler uses -M and no extra arg.
140
+ gccflag=-M
141
+ depmode=gcc
142
+ fi
143
+
144
+ if test "$depmode" = dashXmstdout; then
145
+ # This is just like dashmstdout with a different argument.
146
+ dashmflag=-xM
147
+ depmode=dashmstdout
148
+ fi
149
+
150
+ cygpath_u="cygpath -u -f -"
151
+ if test "$depmode" = msvcmsys; then
152
+ # This is just like msvisualcpp but w/o cygpath translation.
153
+ # Just convert the backslash-escaped backslashes to single forward
154
+ # slashes to satisfy depend.m4
155
+ cygpath_u='sed s,\\\\,/,g'
156
+ depmode=msvisualcpp
157
+ fi
158
+
159
+ if test "$depmode" = msvc7msys; then
160
+ # This is just like msvc7 but w/o cygpath translation.
161
+ # Just convert the backslash-escaped backslashes to single forward
162
+ # slashes to satisfy depend.m4
163
+ cygpath_u='sed s,\\\\,/,g'
164
+ depmode=msvc7
165
+ fi
166
+
167
+ if test "$depmode" = xlc; then
168
+ # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
169
+ gccflag=-qmakedep=gcc,-MF
170
+ depmode=gcc
171
+ fi
172
+
173
+ case "$depmode" in
174
+ gcc3)
175
+ ## gcc 3 implements dependency tracking that does exactly what
176
+ ## we want. Yay! Note: for some reason libtool 1.4 doesn't like
177
+ ## it if -MD -MP comes after the -MF stuff. Hmm.
178
+ ## Unfortunately, FreeBSD c89 acceptance of flags depends upon
179
+ ## the command line argument order; so add the flags where they
180
+ ## appear in depend2.am. Note that the slowdown incurred here
181
+ ## affects only configure: in makefiles, %FASTDEP% shortcuts this.
182
+ for arg
183
+ do
184
+ case $arg in
185
+ -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
186
+ *) set fnord "$@" "$arg" ;;
187
+ esac
188
+ shift # fnord
189
+ shift # $arg
190
+ done
191
+ "$@"
192
+ stat=$?
193
+ if test $stat -ne 0; then
194
+ rm -f "$tmpdepfile"
195
+ exit $stat
196
+ fi
197
+ mv "$tmpdepfile" "$depfile"
198
+ ;;
199
+
200
+ gcc)
201
+ ## Note that this doesn't just cater to obsosete pre-3.x GCC compilers.
202
+ ## but also to in-use compilers like IMB xlc/xlC and the HP C compiler.
203
+ ## (see the conditional assignment to $gccflag above).
204
+ ## There are various ways to get dependency output from gcc. Here's
205
+ ## why we pick this rather obscure method:
206
+ ## - Don't want to use -MD because we'd like the dependencies to end
207
+ ## up in a subdir. Having to rename by hand is ugly.
208
+ ## (We might end up doing this anyway to support other compilers.)
209
+ ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
210
+ ## -MM, not -M (despite what the docs say). Also, it might not be
211
+ ## supported by the other compilers which use the 'gcc' depmode.
212
+ ## - Using -M directly means running the compiler twice (even worse
213
+ ## than renaming).
214
+ if test -z "$gccflag"; then
215
+ gccflag=-MD,
216
+ fi
217
+ "$@" -Wp,"$gccflag$tmpdepfile"
218
+ stat=$?
219
+ if test $stat -ne 0; then
220
+ rm -f "$tmpdepfile"
221
+ exit $stat
222
+ fi
223
+ rm -f "$depfile"
224
+ echo "$object : \\" > "$depfile"
225
+ # The second -e expression handles DOS-style file names with drive
226
+ # letters.
227
+ sed -e 's/^[^:]*: / /' \
228
+ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
229
+ ## This next piece of magic avoids the "deleted header file" problem.
230
+ ## The problem is that when a header file which appears in a .P file
231
+ ## is deleted, the dependency causes make to die (because there is
232
+ ## typically no way to rebuild the header). We avoid this by adding
233
+ ## dummy dependencies for each header file. Too bad gcc doesn't do
234
+ ## this for us directly.
235
+ ## Some versions of gcc put a space before the ':'. On the theory
236
+ ## that the space means something, we add a space to the output as
237
+ ## well. hp depmode also adds that space, but also prefixes the VPATH
238
+ ## to the object. Take care to not repeat it in the output.
239
+ ## Some versions of the HPUX 10.20 sed can't process this invocation
240
+ ## correctly. Breaking it into two sed invocations is a workaround.
241
+ tr ' ' "$nl" < "$tmpdepfile" \
242
+ | sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
243
+ | sed -e 's/$/ :/' >> "$depfile"
244
+ rm -f "$tmpdepfile"
245
+ ;;
246
+
247
+ hp)
248
+ # This case exists only to let depend.m4 do its work. It works by
249
+ # looking at the text of this script. This case will never be run,
250
+ # since it is checked for above.
251
+ exit 1
252
+ ;;
253
+
254
+ sgi)
255
+ if test "$libtool" = yes; then
256
+ "$@" "-Wp,-MDupdate,$tmpdepfile"
257
+ else
258
+ "$@" -MDupdate "$tmpdepfile"
259
+ fi
260
+ stat=$?
261
+ if test $stat -ne 0; then
262
+ rm -f "$tmpdepfile"
263
+ exit $stat
264
+ fi
265
+ rm -f "$depfile"
266
+
267
+ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
268
+ echo "$object : \\" > "$depfile"
269
+ # Clip off the initial element (the dependent). Don't try to be
270
+ # clever and replace this with sed code, as IRIX sed won't handle
271
+ # lines with more than a fixed number of characters (4096 in
272
+ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
273
+ # the IRIX cc adds comments like '#:fec' to the end of the
274
+ # dependency line.
275
+ tr ' ' "$nl" < "$tmpdepfile" \
276
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
277
+ | tr "$nl" ' ' >> "$depfile"
278
+ echo >> "$depfile"
279
+ # The second pass generates a dummy entry for each header file.
280
+ tr ' ' "$nl" < "$tmpdepfile" \
281
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
282
+ >> "$depfile"
283
+ else
284
+ make_dummy_depfile
285
+ fi
286
+ rm -f "$tmpdepfile"
287
+ ;;
288
+
289
+ xlc)
290
+ # This case exists only to let depend.m4 do its work. It works by
291
+ # looking at the text of this script. This case will never be run,
292
+ # since it is checked for above.
293
+ exit 1
294
+ ;;
295
+
296
+ aix)
297
+ # The C for AIX Compiler uses -M and outputs the dependencies
298
+ # in a .u file. In older versions, this file always lives in the
299
+ # current directory. Also, the AIX compiler puts '$object:' at the
300
+ # start of each line; $object doesn't have directory information.
301
+ # Version 6 uses the directory in both cases.
302
+ set_dir_from "$object"
303
+ set_base_from "$object"
304
+ if test "$libtool" = yes; then
305
+ tmpdepfile1=$dir$base.u
306
+ tmpdepfile2=$base.u
307
+ tmpdepfile3=$dir.libs/$base.u
308
+ "$@" -Wc,-M
309
+ else
310
+ tmpdepfile1=$dir$base.u
311
+ tmpdepfile2=$dir$base.u
312
+ tmpdepfile3=$dir$base.u
313
+ "$@" -M
314
+ fi
315
+ stat=$?
316
+ if test $stat -ne 0; then
317
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
318
+ exit $stat
319
+ fi
320
+
321
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
322
+ do
323
+ test -f "$tmpdepfile" && break
324
+ done
325
+ aix_post_process_depfile
326
+ ;;
327
+
328
+ tcc)
329
+ # tcc (Tiny C Compiler) understand '-MD -MF file' since version 0.9.26
330
+ # FIXME: That version still under development at the moment of writing.
331
+ # Make that this statement remains true also for stable, released
332
+ # versions.
333
+ # It will wrap lines (doesn't matter whether long or short) with a
334
+ # trailing '\', as in:
335
+ #
336
+ # foo.o : \
337
+ # foo.c \
338
+ # foo.h \
339
+ #
340
+ # It will put a trailing '\' even on the last line, and will use leading
341
+ # spaces rather than leading tabs (at least since its commit 0394caf7
342
+ # "Emit spaces for -MD").
343
+ "$@" -MD -MF "$tmpdepfile"
344
+ stat=$?
345
+ if test $stat -ne 0; then
346
+ rm -f "$tmpdepfile"
347
+ exit $stat
348
+ fi
349
+ rm -f "$depfile"
350
+ # Each non-empty line is of the form 'foo.o : \' or ' dep.h \'.
351
+ # We have to change lines of the first kind to '$object: \'.
352
+ sed -e "s|.*:|$object :|" < "$tmpdepfile" > "$depfile"
353
+ # And for each line of the second kind, we have to emit a 'dep.h:'
354
+ # dummy dependency, to avoid the deleted-header problem.
355
+ sed -n -e 's|^ *\(.*\) *\\$|\1:|p' < "$tmpdepfile" >> "$depfile"
356
+ rm -f "$tmpdepfile"
357
+ ;;
358
+
359
+ ## The order of this option in the case statement is important, since the
360
+ ## shell code in configure will try each of these formats in the order
361
+ ## listed in this file. A plain '-MD' option would be understood by many
362
+ ## compilers, so we must ensure this comes after the gcc and icc options.
363
+ pgcc)
364
+ # Portland's C compiler understands '-MD'.
365
+ # Will always output deps to 'file.d' where file is the root name of the
366
+ # source file under compilation, even if file resides in a subdirectory.
367
+ # The object file name does not affect the name of the '.d' file.
368
+ # pgcc 10.2 will output
369
+ # foo.o: sub/foo.c sub/foo.h
370
+ # and will wrap long lines using '\' :
371
+ # foo.o: sub/foo.c ... \
372
+ # sub/foo.h ... \
373
+ # ...
374
+ set_dir_from "$object"
375
+ # Use the source, not the object, to determine the base name, since
376
+ # that's sadly what pgcc will do too.
377
+ set_base_from "$source"
378
+ tmpdepfile=$base.d
379
+
380
+ # For projects that build the same source file twice into different object
381
+ # files, the pgcc approach of using the *source* file root name can cause
382
+ # problems in parallel builds. Use a locking strategy to avoid stomping on
383
+ # the same $tmpdepfile.
384
+ lockdir=$base.d-lock
385
+ trap "
386
+ echo '$0: caught signal, cleaning up...' >&2
387
+ rmdir '$lockdir'
388
+ exit 1
389
+ " 1 2 13 15
390
+ numtries=100
391
+ i=$numtries
392
+ while test $i -gt 0; do
393
+ # mkdir is a portable test-and-set.
394
+ if mkdir "$lockdir" 2>/dev/null; then
395
+ # This process acquired the lock.
396
+ "$@" -MD
397
+ stat=$?
398
+ # Release the lock.
399
+ rmdir "$lockdir"
400
+ break
401
+ else
402
+ # If the lock is being held by a different process, wait
403
+ # until the winning process is done or we timeout.
404
+ while test -d "$lockdir" && test $i -gt 0; do
405
+ sleep 1
406
+ i=`expr $i - 1`
407
+ done
408
+ fi
409
+ i=`expr $i - 1`
410
+ done
411
+ trap - 1 2 13 15
412
+ if test $i -le 0; then
413
+ echo "$0: failed to acquire lock after $numtries attempts" >&2
414
+ echo "$0: check lockdir '$lockdir'" >&2
415
+ exit 1
416
+ fi
417
+
418
+ if test $stat -ne 0; then
419
+ rm -f "$tmpdepfile"
420
+ exit $stat
421
+ fi
422
+ rm -f "$depfile"
423
+ # Each line is of the form `foo.o: dependent.h',
424
+ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
425
+ # Do two passes, one to just change these to
426
+ # `$object: dependent.h' and one to simply `dependent.h:'.
427
+ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
428
+ # Some versions of the HPUX 10.20 sed can't process this invocation
429
+ # correctly. Breaking it into two sed invocations is a workaround.
430
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" \
431
+ | sed -e 's/$/ :/' >> "$depfile"
432
+ rm -f "$tmpdepfile"
433
+ ;;
434
+
435
+ hp2)
436
+ # The "hp" stanza above does not work with aCC (C++) and HP's ia64
437
+ # compilers, which have integrated preprocessors. The correct option
438
+ # to use with these is +Maked; it writes dependencies to a file named
439
+ # 'foo.d', which lands next to the object file, wherever that
440
+ # happens to be.
441
+ # Much of this is similar to the tru64 case; see comments there.
442
+ set_dir_from "$object"
443
+ set_base_from "$object"
444
+ if test "$libtool" = yes; then
445
+ tmpdepfile1=$dir$base.d
446
+ tmpdepfile2=$dir.libs/$base.d
447
+ "$@" -Wc,+Maked
448
+ else
449
+ tmpdepfile1=$dir$base.d
450
+ tmpdepfile2=$dir$base.d
451
+ "$@" +Maked
452
+ fi
453
+ stat=$?
454
+ if test $stat -ne 0; then
455
+ rm -f "$tmpdepfile1" "$tmpdepfile2"
456
+ exit $stat
457
+ fi
458
+
459
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
460
+ do
461
+ test -f "$tmpdepfile" && break
462
+ done
463
+ if test -f "$tmpdepfile"; then
464
+ sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
465
+ # Add 'dependent.h:' lines.
466
+ sed -ne '2,${
467
+ s/^ *//
468
+ s/ \\*$//
469
+ s/$/:/
470
+ p
471
+ }' "$tmpdepfile" >> "$depfile"
472
+ else
473
+ make_dummy_depfile
474
+ fi
475
+ rm -f "$tmpdepfile" "$tmpdepfile2"
476
+ ;;
477
+
478
+ tru64)
479
+ # The Tru64 compiler uses -MD to generate dependencies as a side
480
+ # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
481
+ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
482
+ # dependencies in 'foo.d' instead, so we check for that too.
483
+ # Subdirectories are respected.
484
+ set_dir_from "$object"
485
+ set_base_from "$object"
486
+
487
+ if test "$libtool" = yes; then
488
+ # Libtool generates 2 separate objects for the 2 libraries. These
489
+ # two compilations output dependencies in $dir.libs/$base.o.d and
490
+ # in $dir$base.o.d. We have to check for both files, because
491
+ # one of the two compilations can be disabled. We should prefer
492
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
493
+ # automatically cleaned when .libs/ is deleted, while ignoring
494
+ # the former would cause a distcleancheck panic.
495
+ tmpdepfile1=$dir$base.o.d # libtool 1.5
496
+ tmpdepfile2=$dir.libs/$base.o.d # Likewise.
497
+ tmpdepfile3=$dir.libs/$base.d # Compaq CCC V6.2-504
498
+ "$@" -Wc,-MD
499
+ else
500
+ tmpdepfile1=$dir$base.d
501
+ tmpdepfile2=$dir$base.d
502
+ tmpdepfile3=$dir$base.d
503
+ "$@" -MD
504
+ fi
505
+
506
+ stat=$?
507
+ if test $stat -ne 0; then
508
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
509
+ exit $stat
510
+ fi
511
+
512
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
513
+ do
514
+ test -f "$tmpdepfile" && break
515
+ done
516
+ # Same post-processing that is required for AIX mode.
517
+ aix_post_process_depfile
518
+ ;;
519
+
520
+ msvc7)
521
+ if test "$libtool" = yes; then
522
+ showIncludes=-Wc,-showIncludes
523
+ else
524
+ showIncludes=-showIncludes
525
+ fi
526
+ "$@" $showIncludes > "$tmpdepfile"
527
+ stat=$?
528
+ grep -v '^Note: including file: ' "$tmpdepfile"
529
+ if test $stat -ne 0; then
530
+ rm -f "$tmpdepfile"
531
+ exit $stat
532
+ fi
533
+ rm -f "$depfile"
534
+ echo "$object : \\" > "$depfile"
535
+ # The first sed program below extracts the file names and escapes
536
+ # backslashes for cygpath. The second sed program outputs the file
537
+ # name when reading, but also accumulates all include files in the
538
+ # hold buffer in order to output them again at the end. This only
539
+ # works with sed implementations that can handle large buffers.
540
+ sed < "$tmpdepfile" -n '
541
+ /^Note: including file: *\(.*\)/ {
542
+ s//\1/
543
+ s/\\/\\\\/g
544
+ p
545
+ }' | $cygpath_u | sort -u | sed -n '
546
+ s/ /\\ /g
547
+ s/\(.*\)/'"$tab"'\1 \\/p
548
+ s/.\(.*\) \\/\1:/
549
+ H
550
+ $ {
551
+ s/.*/'"$tab"'/
552
+ G
553
+ p
554
+ }' >> "$depfile"
555
+ echo >> "$depfile" # make sure the fragment doesn't end with a backslash
556
+ rm -f "$tmpdepfile"
557
+ ;;
558
+
559
+ msvc7msys)
560
+ # This case exists only to let depend.m4 do its work. It works by
561
+ # looking at the text of this script. This case will never be run,
562
+ # since it is checked for above.
563
+ exit 1
564
+ ;;
565
+
566
+ #nosideeffect)
567
+ # This comment above is used by automake to tell side-effect
568
+ # dependency tracking mechanisms from slower ones.
569
+
570
+ dashmstdout)
571
+ # Important note: in order to support this mode, a compiler *must*
572
+ # always write the preprocessed file to stdout, regardless of -o.
573
+ "$@" || exit $?
574
+
575
+ # Remove the call to Libtool.
576
+ if test "$libtool" = yes; then
577
+ while test "X$1" != 'X--mode=compile'; do
578
+ shift
579
+ done
580
+ shift
581
+ fi
582
+
583
+ # Remove '-o $object'.
584
+ IFS=" "
585
+ for arg
586
+ do
587
+ case $arg in
588
+ -o)
589
+ shift
590
+ ;;
591
+ $object)
592
+ shift
593
+ ;;
594
+ *)
595
+ set fnord "$@" "$arg"
596
+ shift # fnord
597
+ shift # $arg
598
+ ;;
599
+ esac
600
+ done
601
+
602
+ test -z "$dashmflag" && dashmflag=-M
603
+ # Require at least two characters before searching for ':'
604
+ # in the target name. This is to cope with DOS-style filenames:
605
+ # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
606
+ "$@" $dashmflag |
607
+ sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
608
+ rm -f "$depfile"
609
+ cat < "$tmpdepfile" > "$depfile"
610
+ # Some versions of the HPUX 10.20 sed can't process this sed invocation
611
+ # correctly. Breaking it into two sed invocations is a workaround.
612
+ tr ' ' "$nl" < "$tmpdepfile" \
613
+ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
614
+ | sed -e 's/$/ :/' >> "$depfile"
615
+ rm -f "$tmpdepfile"
616
+ ;;
617
+
618
+ dashXmstdout)
619
+ # This case only exists to satisfy depend.m4. It is never actually
620
+ # run, as this mode is specially recognized in the preamble.
621
+ exit 1
622
+ ;;
623
+
624
+ makedepend)
625
+ "$@" || exit $?
626
+ # Remove any Libtool call
627
+ if test "$libtool" = yes; then
628
+ while test "X$1" != 'X--mode=compile'; do
629
+ shift
630
+ done
631
+ shift
632
+ fi
633
+ # X makedepend
634
+ shift
635
+ cleared=no eat=no
636
+ for arg
637
+ do
638
+ case $cleared in
639
+ no)
640
+ set ""; shift
641
+ cleared=yes ;;
642
+ esac
643
+ if test $eat = yes; then
644
+ eat=no
645
+ continue
646
+ fi
647
+ case "$arg" in
648
+ -D*|-I*)
649
+ set fnord "$@" "$arg"; shift ;;
650
+ # Strip any option that makedepend may not understand. Remove
651
+ # the object too, otherwise makedepend will parse it as a source file.
652
+ -arch)
653
+ eat=yes ;;
654
+ -*|$object)
655
+ ;;
656
+ *)
657
+ set fnord "$@" "$arg"; shift ;;
658
+ esac
659
+ done
660
+ obj_suffix=`echo "$object" | sed 's/^.*\././'`
661
+ touch "$tmpdepfile"
662
+ ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
663
+ rm -f "$depfile"
664
+ # makedepend may prepend the VPATH from the source file name to the object.
665
+ # No need to regex-escape $object, excess matching of '.' is harmless.
666
+ sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
667
+ # Some versions of the HPUX 10.20 sed can't process the last invocation
668
+ # correctly. Breaking it into two sed invocations is a workaround.
669
+ sed '1,2d' "$tmpdepfile" \
670
+ | tr ' ' "$nl" \
671
+ | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
672
+ | sed -e 's/$/ :/' >> "$depfile"
673
+ rm -f "$tmpdepfile" "$tmpdepfile".bak
674
+ ;;
675
+
676
+ cpp)
677
+ # Important note: in order to support this mode, a compiler *must*
678
+ # always write the preprocessed file to stdout.
679
+ "$@" || exit $?
680
+
681
+ # Remove the call to Libtool.
682
+ if test "$libtool" = yes; then
683
+ while test "X$1" != 'X--mode=compile'; do
684
+ shift
685
+ done
686
+ shift
687
+ fi
688
+
689
+ # Remove '-o $object'.
690
+ IFS=" "
691
+ for arg
692
+ do
693
+ case $arg in
694
+ -o)
695
+ shift
696
+ ;;
697
+ $object)
698
+ shift
699
+ ;;
700
+ *)
701
+ set fnord "$@" "$arg"
702
+ shift # fnord
703
+ shift # $arg
704
+ ;;
705
+ esac
706
+ done
707
+
708
+ "$@" -E \
709
+ | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
710
+ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
711
+ | sed '$ s: \\$::' > "$tmpdepfile"
712
+ rm -f "$depfile"
713
+ echo "$object : \\" > "$depfile"
714
+ cat < "$tmpdepfile" >> "$depfile"
715
+ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
716
+ rm -f "$tmpdepfile"
717
+ ;;
718
+
719
+ msvisualcpp)
720
+ # Important note: in order to support this mode, a compiler *must*
721
+ # always write the preprocessed file to stdout.
722
+ "$@" || exit $?
723
+
724
+ # Remove the call to Libtool.
725
+ if test "$libtool" = yes; then
726
+ while test "X$1" != 'X--mode=compile'; do
727
+ shift
728
+ done
729
+ shift
730
+ fi
731
+
732
+ IFS=" "
733
+ for arg
734
+ do
735
+ case "$arg" in
736
+ -o)
737
+ shift
738
+ ;;
739
+ $object)
740
+ shift
741
+ ;;
742
+ "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
743
+ set fnord "$@"
744
+ shift
745
+ shift
746
+ ;;
747
+ *)
748
+ set fnord "$@" "$arg"
749
+ shift
750
+ shift
751
+ ;;
752
+ esac
753
+ done
754
+ "$@" -E 2>/dev/null |
755
+ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
756
+ rm -f "$depfile"
757
+ echo "$object : \\" > "$depfile"
758
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::'"$tab"'\1 \\:p' >> "$depfile"
759
+ echo "$tab" >> "$depfile"
760
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
761
+ rm -f "$tmpdepfile"
762
+ ;;
763
+
764
+ msvcmsys)
765
+ # This case exists only to let depend.m4 do its work. It works by
766
+ # looking at the text of this script. This case will never be run,
767
+ # since it is checked for above.
768
+ exit 1
769
+ ;;
770
+
771
+ none)
772
+ exec "$@"
773
+ ;;
774
+
775
+ *)
776
+ echo "Unknown depmode $depmode" 1>&2
777
+ exit 1
778
+ ;;
779
+ esac
780
+
781
+ exit 0
782
+
783
+ # Local Variables:
784
+ # mode: shell-script
785
+ # sh-indentation: 2
786
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
787
+ # time-stamp-start: "scriptversion="
788
+ # time-stamp-format: "%:y-%02m-%02d.%02H"
789
+ # time-stamp-time-zone: "UTC"
790
+ # time-stamp-end: "; # UTC"
791
+ # End: