libusb 0.4.1 → 0.5.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.
- checksums.yaml +7 -0
- checksums.yaml.gz.sig +2 -0
- data.tar.gz.sig +0 -0
- data/.travis.yml +3 -3
- data/History.md +8 -0
- data/README.md +1 -0
- data/Rakefile +14 -14
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/AUTHORS +6 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/COPYING +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/ChangeLog +9 -2
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/INSTALL +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/Makefile.am +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/Makefile.in +188 -156
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/NEWS +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/PORTING +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/README +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/TODO +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/Xcode/common.xcconfig +10 -1
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/Xcode/config.h +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/Xcode/debug.xcconfig +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/Xcode/libusb.xcconfig +1 -1
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/Xcode/libusb.xcodeproj/project.pbxproj +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/Xcode/libusb_debug.xcconfig +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/Xcode/libusb_release.xcconfig +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/Xcode/release.xcconfig +1 -0
- data/ext/libusb-1.0.19/aclocal.m4 +1190 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/android/README +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/android/config.h +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/android/jni/Android.mk +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/android/jni/Application.mk +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/android/jni/examples.mk +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/android/jni/libusb.mk +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/android/jni/tests.mk +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/compile +7 -3
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/config.guess +116 -78
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/config.h.in +0 -3
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/config.sub +66 -46
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/configure +265 -208
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/configure.ac +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/depcomp +269 -186
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/doc/Makefile.am +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/doc/Makefile.in +72 -35
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/doc/doxygen.cfg.in +1 -1
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/examples/Makefile.am +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/examples/Makefile.in +134 -70
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/examples/dpfp.c +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/examples/dpfp_threaded.c +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/examples/ezusb.c +9 -5
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/examples/ezusb.h +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/examples/fxload.c +1 -1
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/examples/getopt/getopt.c +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/examples/getopt/getopt.h +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/examples/getopt/getopt1.c +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/examples/hotplugtest.c +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/examples/listdevs.c +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/examples/sam3u_benchmark.c +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/examples/xusb.c +22 -2
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/install-sh +7 -7
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb-1.0.pc.in +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/Makefile.am +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/Makefile.in +133 -93
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/core.c +86 -15
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/descriptor.c +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/hotplug.c +6 -1
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/hotplug.h +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/io.c +54 -17
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/libusb-1.0.def +8 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/libusb-1.0.rc +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/libusb.h +42 -2
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/libusbi.h +10 -1
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/os/darwin_usb.c +156 -53
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/os/darwin_usb.h +1 -1
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/os/linux_netlink.c +26 -2
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/os/linux_udev.c +2 -1
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/os/linux_usbfs.c +93 -6
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/os/linux_usbfs.h +12 -1
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/os/netbsd_usb.c +6 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/os/openbsd_usb.c +6 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/os/poll_posix.c +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/os/poll_posix.h +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/os/poll_windows.c +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/os/poll_windows.h +12 -6
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/os/threads_posix.c +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/os/threads_posix.h +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/os/threads_windows.c +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/os/threads_windows.h +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/os/wince_usb.c +8 -1
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/os/wince_usb.h +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/os/windows_common.h +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/os/windows_usb.c +175 -42
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/os/windows_usb.h +35 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/strerror.c +17 -2
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/sync.c +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/libusb/version.h +1 -1
- data/ext/libusb-1.0.19/libusb/version_nano.h +1 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/ltmain.sh +3 -3
- data/ext/{libusb-1.0.18/aclocal.m4 → libusb-1.0.19/m4/libtool.m4} +36 -1734
- data/ext/libusb-1.0.19/m4/ltoptions.m4 +384 -0
- data/ext/libusb-1.0.19/m4/ltsugar.m4 +123 -0
- data/ext/libusb-1.0.19/m4/ltversion.m4 +23 -0
- data/ext/libusb-1.0.19/m4/lt~obsolete.m4 +98 -0
- data/ext/libusb-1.0.19/missing +215 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/tests/Makefile.am +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/tests/Makefile.in +128 -70
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/tests/libusb_testlib.h +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/tests/stress.c +0 -0
- data/ext/{libusb-1.0.18 → libusb-1.0.19}/tests/testlib.c +0 -0
- data/lib/libusb.rb +3 -1
- data/lib/libusb/bos.rb +306 -0
- data/lib/libusb/call.rb +84 -0
- data/lib/libusb/constants.rb +4 -0
- data/lib/libusb/dev_handle.rb +77 -0
- data/lib/libusb/endpoint.rb +20 -0
- data/lib/libusb/ss_companion.rb +69 -0
- data/lib/libusb/transfer.rb +34 -0
- data/lib/libusb/version_gem.rb +1 -1
- data/libusb.gemspec +1 -0
- data/test/test_libusb_bos.rb +118 -0
- data/test/test_libusb_bulk_stream_transfer.rb +50 -0
- data/test/test_libusb_descriptors.rb +29 -0
- data/test/test_libusb_hotplug.rb +1 -1
- data/test/test_libusb_threads.rb +1 -1
- metadata +146 -124
- metadata.gz.sig +0 -0
- data/ext/libusb-1.0.18/libusb/version_nano.h +0 -1
- data/ext/libusb-1.0.18/missing +0 -331
|
File without changes
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
#! /bin/sh
|
|
2
2
|
# depcomp - compile a program generating dependencies as side-effects
|
|
3
3
|
|
|
4
|
-
scriptversion=
|
|
4
|
+
scriptversion=2013-05-30.07; # UTC
|
|
5
5
|
|
|
6
|
-
# Copyright (C) 1999
|
|
7
|
-
# 2011, 2012 Free Software Foundation, Inc.
|
|
6
|
+
# Copyright (C) 1999-2013 Free Software Foundation, Inc.
|
|
8
7
|
|
|
9
8
|
# This program is free software; you can redistribute it and/or modify
|
|
10
9
|
# it under the terms of the GNU General Public License as published by
|
|
@@ -28,9 +27,9 @@ scriptversion=2012-03-27.16; # UTC
|
|
|
28
27
|
|
|
29
28
|
case $1 in
|
|
30
29
|
'')
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
echo "$0: No command. Try '$0 --help' for more information." 1>&2
|
|
31
|
+
exit 1;
|
|
32
|
+
;;
|
|
34
33
|
-h | --h*)
|
|
35
34
|
cat <<\EOF
|
|
36
35
|
Usage: depcomp [--help] [--version] PROGRAM [ARGS]
|
|
@@ -57,11 +56,65 @@ EOF
|
|
|
57
56
|
;;
|
|
58
57
|
esac
|
|
59
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
|
+
|
|
60
107
|
# A tabulation character.
|
|
61
108
|
tab=' '
|
|
62
109
|
# A newline character.
|
|
63
110
|
nl='
|
|
64
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}
|
|
65
118
|
|
|
66
119
|
if test -z "$depmode" || test -z "$source" || test -z "$object"; then
|
|
67
120
|
echo "depcomp: Variables source, object and depmode must be set" 1>&2
|
|
@@ -75,6 +128,9 @@ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
|
|
|
75
128
|
|
|
76
129
|
rm -f "$tmpdepfile"
|
|
77
130
|
|
|
131
|
+
# Avoid interferences from the environment.
|
|
132
|
+
gccflag= dashmflag=
|
|
133
|
+
|
|
78
134
|
# Some modes work just like other modes, but use different flags. We
|
|
79
135
|
# parameterize here, but still list the modes in the big case below,
|
|
80
136
|
# to make depend.m4 easier to write. Note that we *cannot* use a case
|
|
@@ -86,32 +142,32 @@ if test "$depmode" = hp; then
|
|
|
86
142
|
fi
|
|
87
143
|
|
|
88
144
|
if test "$depmode" = dashXmstdout; then
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
145
|
+
# This is just like dashmstdout with a different argument.
|
|
146
|
+
dashmflag=-xM
|
|
147
|
+
depmode=dashmstdout
|
|
92
148
|
fi
|
|
93
149
|
|
|
94
150
|
cygpath_u="cygpath -u -f -"
|
|
95
151
|
if test "$depmode" = msvcmsys; then
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
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
|
|
101
157
|
fi
|
|
102
158
|
|
|
103
159
|
if test "$depmode" = msvc7msys; then
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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
|
|
109
165
|
fi
|
|
110
166
|
|
|
111
167
|
if test "$depmode" = xlc; then
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
168
|
+
# IBM C/C++ Compilers xlc/xlC can output gcc-like dependency information.
|
|
169
|
+
gccflag=-qmakedep=gcc,-MF
|
|
170
|
+
depmode=gcc
|
|
115
171
|
fi
|
|
116
172
|
|
|
117
173
|
case "$depmode" in
|
|
@@ -134,8 +190,7 @@ gcc3)
|
|
|
134
190
|
done
|
|
135
191
|
"$@"
|
|
136
192
|
stat=$?
|
|
137
|
-
if test $stat -
|
|
138
|
-
else
|
|
193
|
+
if test $stat -ne 0; then
|
|
139
194
|
rm -f "$tmpdepfile"
|
|
140
195
|
exit $stat
|
|
141
196
|
fi
|
|
@@ -143,13 +198,17 @@ gcc3)
|
|
|
143
198
|
;;
|
|
144
199
|
|
|
145
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).
|
|
146
204
|
## There are various ways to get dependency output from gcc. Here's
|
|
147
205
|
## why we pick this rather obscure method:
|
|
148
206
|
## - Don't want to use -MD because we'd like the dependencies to end
|
|
149
207
|
## up in a subdir. Having to rename by hand is ugly.
|
|
150
208
|
## (We might end up doing this anyway to support other compilers.)
|
|
151
209
|
## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
|
|
152
|
-
## -MM, not -M (despite what the docs say).
|
|
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.
|
|
153
212
|
## - Using -M directly means running the compiler twice (even worse
|
|
154
213
|
## than renaming).
|
|
155
214
|
if test -z "$gccflag"; then
|
|
@@ -157,15 +216,14 @@ gcc)
|
|
|
157
216
|
fi
|
|
158
217
|
"$@" -Wp,"$gccflag$tmpdepfile"
|
|
159
218
|
stat=$?
|
|
160
|
-
if test $stat -
|
|
161
|
-
else
|
|
219
|
+
if test $stat -ne 0; then
|
|
162
220
|
rm -f "$tmpdepfile"
|
|
163
221
|
exit $stat
|
|
164
222
|
fi
|
|
165
223
|
rm -f "$depfile"
|
|
166
224
|
echo "$object : \\" > "$depfile"
|
|
167
|
-
|
|
168
|
-
|
|
225
|
+
# The second -e expression handles DOS-style file names with drive
|
|
226
|
+
# letters.
|
|
169
227
|
sed -e 's/^[^:]*: / /' \
|
|
170
228
|
-e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
|
|
171
229
|
## This next piece of magic avoids the "deleted header file" problem.
|
|
@@ -174,15 +232,15 @@ gcc)
|
|
|
174
232
|
## typically no way to rebuild the header). We avoid this by adding
|
|
175
233
|
## dummy dependencies for each header file. Too bad gcc doesn't do
|
|
176
234
|
## this for us directly.
|
|
177
|
-
tr ' ' "$nl" < "$tmpdepfile" |
|
|
178
235
|
## Some versions of gcc put a space before the ':'. On the theory
|
|
179
236
|
## that the space means something, we add a space to the output as
|
|
180
237
|
## well. hp depmode also adds that space, but also prefixes the VPATH
|
|
181
238
|
## to the object. Take care to not repeat it in the output.
|
|
182
239
|
## Some versions of the HPUX 10.20 sed can't process this invocation
|
|
183
240
|
## correctly. Breaking it into two sed invocations is a workaround.
|
|
184
|
-
|
|
185
|
-
|
|
241
|
+
tr ' ' "$nl" < "$tmpdepfile" \
|
|
242
|
+
| sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
|
|
243
|
+
| sed -e 's/$/ :/' >> "$depfile"
|
|
186
244
|
rm -f "$tmpdepfile"
|
|
187
245
|
;;
|
|
188
246
|
|
|
@@ -200,8 +258,7 @@ sgi)
|
|
|
200
258
|
"$@" -MDupdate "$tmpdepfile"
|
|
201
259
|
fi
|
|
202
260
|
stat=$?
|
|
203
|
-
if test $stat -
|
|
204
|
-
else
|
|
261
|
+
if test $stat -ne 0; then
|
|
205
262
|
rm -f "$tmpdepfile"
|
|
206
263
|
exit $stat
|
|
207
264
|
fi
|
|
@@ -209,7 +266,6 @@ sgi)
|
|
|
209
266
|
|
|
210
267
|
if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
|
|
211
268
|
echo "$object : \\" > "$depfile"
|
|
212
|
-
|
|
213
269
|
# Clip off the initial element (the dependent). Don't try to be
|
|
214
270
|
# clever and replace this with sed code, as IRIX sed won't handle
|
|
215
271
|
# lines with more than a fixed number of characters (4096 in
|
|
@@ -217,19 +273,15 @@ sgi)
|
|
|
217
273
|
# the IRIX cc adds comments like '#:fec' to the end of the
|
|
218
274
|
# dependency line.
|
|
219
275
|
tr ' ' "$nl" < "$tmpdepfile" \
|
|
220
|
-
|
|
221
|
-
|
|
276
|
+
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
|
|
277
|
+
| tr "$nl" ' ' >> "$depfile"
|
|
222
278
|
echo >> "$depfile"
|
|
223
|
-
|
|
224
279
|
# The second pass generates a dummy entry for each header file.
|
|
225
280
|
tr ' ' "$nl" < "$tmpdepfile" \
|
|
226
|
-
|
|
227
|
-
|
|
281
|
+
| sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
|
|
282
|
+
>> "$depfile"
|
|
228
283
|
else
|
|
229
|
-
|
|
230
|
-
# store a dummy comment line, to avoid errors with the Makefile
|
|
231
|
-
# "include basename.Plo" scheme.
|
|
232
|
-
echo "#dummy" > "$depfile"
|
|
284
|
+
make_dummy_depfile
|
|
233
285
|
fi
|
|
234
286
|
rm -f "$tmpdepfile"
|
|
235
287
|
;;
|
|
@@ -247,9 +299,8 @@ aix)
|
|
|
247
299
|
# current directory. Also, the AIX compiler puts '$object:' at the
|
|
248
300
|
# start of each line; $object doesn't have directory information.
|
|
249
301
|
# Version 6 uses the directory in both cases.
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
|
302
|
+
set_dir_from "$object"
|
|
303
|
+
set_base_from "$object"
|
|
253
304
|
if test "$libtool" = yes; then
|
|
254
305
|
tmpdepfile1=$dir$base.u
|
|
255
306
|
tmpdepfile2=$base.u
|
|
@@ -262,9 +313,7 @@ aix)
|
|
|
262
313
|
"$@" -M
|
|
263
314
|
fi
|
|
264
315
|
stat=$?
|
|
265
|
-
|
|
266
|
-
if test $stat -eq 0; then :
|
|
267
|
-
else
|
|
316
|
+
if test $stat -ne 0; then
|
|
268
317
|
rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
|
|
269
318
|
exit $stat
|
|
270
319
|
fi
|
|
@@ -273,65 +322,113 @@ aix)
|
|
|
273
322
|
do
|
|
274
323
|
test -f "$tmpdepfile" && break
|
|
275
324
|
done
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
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
|
|
287
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"
|
|
288
356
|
rm -f "$tmpdepfile"
|
|
289
357
|
;;
|
|
290
358
|
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
#
|
|
297
|
-
#
|
|
298
|
-
#
|
|
299
|
-
#
|
|
300
|
-
#
|
|
301
|
-
# sub/foo.c:
|
|
302
|
-
# sub/foo.h:
|
|
303
|
-
# ICC 7.1 will output
|
|
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
|
|
304
369
|
# foo.o: sub/foo.c sub/foo.h
|
|
305
|
-
# and will wrap long lines using '\':
|
|
370
|
+
# and will wrap long lines using '\' :
|
|
306
371
|
# foo.o: sub/foo.c ... \
|
|
307
372
|
# sub/foo.h ... \
|
|
308
373
|
# ...
|
|
309
|
-
|
|
310
|
-
#
|
|
311
|
-
#
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
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
|
|
316
419
|
rm -f "$tmpdepfile"
|
|
317
420
|
exit $stat
|
|
318
421
|
fi
|
|
319
422
|
rm -f "$depfile"
|
|
320
|
-
# Each line is of the form
|
|
321
|
-
# or
|
|
423
|
+
# Each line is of the form `foo.o: dependent.h',
|
|
424
|
+
# or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
|
|
322
425
|
# Do two passes, one to just change these to
|
|
323
|
-
#
|
|
324
|
-
sed
|
|
325
|
-
|
|
326
|
-
sed
|
|
327
|
-
|
|
328
|
-
s
|
|
329
|
-
s/ *\\*$//
|
|
330
|
-
s/^[^:]*: *//
|
|
331
|
-
/^$/d
|
|
332
|
-
/:$/d
|
|
333
|
-
s/$/ :/
|
|
334
|
-
' < "$tmpdepfile" >> "$depfile"
|
|
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"
|
|
335
432
|
rm -f "$tmpdepfile"
|
|
336
433
|
;;
|
|
337
434
|
|
|
@@ -342,9 +439,8 @@ hp2)
|
|
|
342
439
|
# 'foo.d', which lands next to the object file, wherever that
|
|
343
440
|
# happens to be.
|
|
344
441
|
# Much of this is similar to the tru64 case; see comments there.
|
|
345
|
-
|
|
346
|
-
|
|
347
|
-
base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
|
|
442
|
+
set_dir_from "$object"
|
|
443
|
+
set_base_from "$object"
|
|
348
444
|
if test "$libtool" = yes; then
|
|
349
445
|
tmpdepfile1=$dir$base.d
|
|
350
446
|
tmpdepfile2=$dir.libs/$base.d
|
|
@@ -355,8 +451,7 @@ hp2)
|
|
|
355
451
|
"$@" +Maked
|
|
356
452
|
fi
|
|
357
453
|
stat=$?
|
|
358
|
-
if test $stat -
|
|
359
|
-
else
|
|
454
|
+
if test $stat -ne 0; then
|
|
360
455
|
rm -f "$tmpdepfile1" "$tmpdepfile2"
|
|
361
456
|
exit $stat
|
|
362
457
|
fi
|
|
@@ -366,76 +461,61 @@ hp2)
|
|
|
366
461
|
test -f "$tmpdepfile" && break
|
|
367
462
|
done
|
|
368
463
|
if test -f "$tmpdepfile"; then
|
|
369
|
-
sed -e "s,^.*\.[
|
|
464
|
+
sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
|
|
370
465
|
# Add 'dependent.h:' lines.
|
|
371
466
|
sed -ne '2,${
|
|
372
|
-
|
|
373
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
467
|
+
s/^ *//
|
|
468
|
+
s/ \\*$//
|
|
469
|
+
s/$/:/
|
|
470
|
+
p
|
|
471
|
+
}' "$tmpdepfile" >> "$depfile"
|
|
377
472
|
else
|
|
378
|
-
|
|
473
|
+
make_dummy_depfile
|
|
379
474
|
fi
|
|
380
475
|
rm -f "$tmpdepfile" "$tmpdepfile2"
|
|
381
476
|
;;
|
|
382
477
|
|
|
383
478
|
tru64)
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
|
|
394
|
-
|
|
395
|
-
|
|
396
|
-
|
|
397
|
-
|
|
398
|
-
|
|
399
|
-
|
|
400
|
-
|
|
401
|
-
|
|
402
|
-
|
|
403
|
-
|
|
404
|
-
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
|
|
421
|
-
|
|
422
|
-
|
|
423
|
-
|
|
424
|
-
exit $stat
|
|
425
|
-
fi
|
|
426
|
-
|
|
427
|
-
for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
|
|
428
|
-
do
|
|
429
|
-
test -f "$tmpdepfile" && break
|
|
430
|
-
done
|
|
431
|
-
if test -f "$tmpdepfile"; then
|
|
432
|
-
sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
|
|
433
|
-
sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
|
|
434
|
-
else
|
|
435
|
-
echo "#dummy" > "$depfile"
|
|
436
|
-
fi
|
|
437
|
-
rm -f "$tmpdepfile"
|
|
438
|
-
;;
|
|
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
|
+
;;
|
|
439
519
|
|
|
440
520
|
msvc7)
|
|
441
521
|
if test "$libtool" = yes; then
|
|
@@ -446,8 +526,7 @@ msvc7)
|
|
|
446
526
|
"$@" $showIncludes > "$tmpdepfile"
|
|
447
527
|
stat=$?
|
|
448
528
|
grep -v '^Note: including file: ' "$tmpdepfile"
|
|
449
|
-
if test
|
|
450
|
-
else
|
|
529
|
+
if test $stat -ne 0; then
|
|
451
530
|
rm -f "$tmpdepfile"
|
|
452
531
|
exit $stat
|
|
453
532
|
fi
|
|
@@ -473,6 +552,7 @@ $ {
|
|
|
473
552
|
G
|
|
474
553
|
p
|
|
475
554
|
}' >> "$depfile"
|
|
555
|
+
echo >> "$depfile" # make sure the fragment doesn't end with a backslash
|
|
476
556
|
rm -f "$tmpdepfile"
|
|
477
557
|
;;
|
|
478
558
|
|
|
@@ -524,13 +604,14 @@ dashmstdout)
|
|
|
524
604
|
# in the target name. This is to cope with DOS-style filenames:
|
|
525
605
|
# a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
|
|
526
606
|
"$@" $dashmflag |
|
|
527
|
-
sed
|
|
607
|
+
sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
|
|
528
608
|
rm -f "$depfile"
|
|
529
609
|
cat < "$tmpdepfile" > "$depfile"
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d'
|
|
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"
|
|
534
615
|
rm -f "$tmpdepfile"
|
|
535
616
|
;;
|
|
536
617
|
|
|
@@ -583,10 +664,12 @@ makedepend)
|
|
|
583
664
|
# makedepend may prepend the VPATH from the source file name to the object.
|
|
584
665
|
# No need to regex-escape $object, excess matching of '.' is harmless.
|
|
585
666
|
sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
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"
|
|
590
673
|
rm -f "$tmpdepfile" "$tmpdepfile".bak
|
|
591
674
|
;;
|
|
592
675
|
|
|
@@ -622,10 +705,10 @@ cpp)
|
|
|
622
705
|
esac
|
|
623
706
|
done
|
|
624
707
|
|
|
625
|
-
"$@" -E
|
|
626
|
-
sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
|
|
627
|
-
|
|
628
|
-
sed '$ s: \\$::' > "$tmpdepfile"
|
|
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"
|
|
629
712
|
rm -f "$depfile"
|
|
630
713
|
echo "$object : \\" > "$depfile"
|
|
631
714
|
cat < "$tmpdepfile" >> "$depfile"
|
|
@@ -657,15 +740,15 @@ msvisualcpp)
|
|
|
657
740
|
shift
|
|
658
741
|
;;
|
|
659
742
|
"-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
743
|
+
set fnord "$@"
|
|
744
|
+
shift
|
|
745
|
+
shift
|
|
746
|
+
;;
|
|
664
747
|
*)
|
|
665
|
-
|
|
666
|
-
|
|
667
|
-
|
|
668
|
-
|
|
748
|
+
set fnord "$@" "$arg"
|
|
749
|
+
shift
|
|
750
|
+
shift
|
|
751
|
+
;;
|
|
669
752
|
esac
|
|
670
753
|
done
|
|
671
754
|
"$@" -E 2>/dev/null |
|