libusb 0.4.0 → 0.4.1

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 (118) hide show
  1. data/.travis.yml +2 -2
  2. data/Gemfile +0 -8
  3. data/History.md +5 -0
  4. data/README.md +6 -6
  5. data/Rakefile +9 -9
  6. data/ext/extconf.rb +1 -1
  7. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/AUTHORS +10 -0
  8. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/COPYING +0 -0
  9. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/ChangeLog +17 -9
  10. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/INSTALL +0 -0
  11. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/Makefile.am +0 -0
  12. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/Makefile.in +153 -178
  13. data/ext/libusb-1.0.18/NEWS +2 -0
  14. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/PORTING +13 -13
  15. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/README +9 -11
  16. data/ext/libusb-1.0.18/TODO +2 -0
  17. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/Xcode/common.xcconfig +3 -3
  18. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/Xcode/config.h +0 -0
  19. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/Xcode/debug.xcconfig +2 -2
  20. data/ext/{libusbx-1.0.17/Xcode/libusbx.xcconfig → libusb-1.0.18/Xcode/libusb.xcconfig} +2 -2
  21. data/ext/libusb-1.0.18/Xcode/libusb.xcodeproj/project.pbxproj +1 -0
  22. data/ext/{libusbx-1.0.17/Xcode/libusbx_debug.xcconfig → libusb-1.0.18/Xcode/libusb_debug.xcconfig} +3 -3
  23. data/ext/{libusbx-1.0.17/Xcode/libusbx_release.xcconfig → libusb-1.0.18/Xcode/libusb_release.xcconfig} +3 -3
  24. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/Xcode/release.xcconfig +2 -2
  25. data/ext/{libusbx-1.0.17/m4/libtool.m4 → libusb-1.0.18/aclocal.m4} +1731 -27
  26. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/android/README +0 -0
  27. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/android/config.h +1 -10
  28. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/android/jni/Android.mk +0 -0
  29. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/android/jni/Application.mk +6 -1
  30. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/android/jni/examples.mk +0 -0
  31. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/android/jni/libusb.mk +0 -0
  32. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/android/jni/tests.mk +0 -0
  33. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/compile +3 -7
  34. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/config.guess +19 -24
  35. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/config.h.in +0 -0
  36. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/config.sub +30 -47
  37. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/configure +118 -172
  38. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/configure.ac +24 -2
  39. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/depcomp +186 -268
  40. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/doc/Makefile.am +1 -1
  41. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/doc/Makefile.in +36 -73
  42. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/doc/doxygen.cfg.in +1 -1
  43. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/examples/Makefile.am +0 -0
  44. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/examples/Makefile.in +68 -132
  45. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/examples/dpfp.c +1 -1
  46. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/examples/dpfp_threaded.c +1 -1
  47. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/examples/ezusb.c +57 -26
  48. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/examples/ezusb.h +0 -0
  49. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/examples/fxload.c +3 -3
  50. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/examples/getopt/getopt.c +0 -0
  51. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/examples/getopt/getopt.h +0 -0
  52. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/examples/getopt/getopt1.c +0 -0
  53. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/examples/hotplugtest.c +9 -2
  54. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/examples/listdevs.c +1 -1
  55. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/examples/sam3u_benchmark.c +0 -0
  56. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/examples/xusb.c +20 -4
  57. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/install-sh +7 -7
  58. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb-1.0.pc.in +1 -1
  59. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/Makefile.am +1 -1
  60. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/Makefile.in +94 -134
  61. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/core.c +95 -74
  62. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/descriptor.c +2 -2
  63. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/hotplug.c +3 -3
  64. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/hotplug.h +1 -1
  65. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/io.c +127 -116
  66. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/libusb-1.0.def +0 -0
  67. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/libusb-1.0.rc +1 -1
  68. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/libusb.h +42 -39
  69. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/libusbi.h +20 -11
  70. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/os/darwin_usb.c +20 -16
  71. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/os/darwin_usb.h +1 -1
  72. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/os/linux_netlink.c +0 -0
  73. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/os/linux_udev.c +0 -0
  74. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/os/linux_usbfs.c +15 -12
  75. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/os/linux_usbfs.h +0 -0
  76. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/os/netbsd_usb.c +2 -4
  77. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/os/openbsd_usb.c +5 -2
  78. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/os/poll_posix.c +0 -0
  79. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/os/poll_posix.h +0 -0
  80. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/os/poll_windows.c +2 -2
  81. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/os/poll_windows.h +0 -0
  82. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/os/threads_posix.c +1 -1
  83. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/os/threads_posix.h +1 -1
  84. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/os/threads_windows.c +1 -1
  85. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/os/threads_windows.h +1 -1
  86. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/os/wince_usb.c +1 -2
  87. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/os/wince_usb.h +2 -2
  88. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/os/windows_common.h +1 -1
  89. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/os/windows_usb.c +53 -33
  90. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/os/windows_usb.h +6 -1
  91. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/strerror.c +2 -2
  92. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/sync.c +6 -6
  93. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/libusb/version.h +1 -1
  94. data/ext/libusb-1.0.18/libusb/version_nano.h +1 -0
  95. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/ltmain.sh +3 -3
  96. data/ext/libusb-1.0.18/missing +331 -0
  97. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/tests/Makefile.am +1 -1
  98. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/tests/Makefile.in +69 -127
  99. data/ext/{libusbx-1.0.17/tests/libusbx_testlib.h → libusb-1.0.18/tests/libusb_testlib.h} +15 -15
  100. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/tests/stress.c +16 -16
  101. data/ext/{libusbx-1.0.17 → libusb-1.0.18}/tests/testlib.c +21 -20
  102. data/lib/libusb/version_gem.rb +1 -1
  103. data/libusb.gemspec +1 -6
  104. metadata +117 -135
  105. checksums.yaml +0 -7
  106. checksums.yaml.gz.sig +0 -0
  107. data.tar.gz.sig +0 -0
  108. data/ext/libusbx-1.0.17/NEWS +0 -2
  109. data/ext/libusbx-1.0.17/TODO +0 -2
  110. data/ext/libusbx-1.0.17/Xcode/libusbx.xcodeproj/project.pbxproj +0 -864
  111. data/ext/libusbx-1.0.17/aclocal.m4 +0 -1112
  112. data/ext/libusbx-1.0.17/libusb/version_nano.h +0 -1
  113. data/ext/libusbx-1.0.17/m4/ltoptions.m4 +0 -384
  114. data/ext/libusbx-1.0.17/m4/ltsugar.m4 +0 -123
  115. data/ext/libusbx-1.0.17/m4/ltversion.m4 +0 -23
  116. data/ext/libusbx-1.0.17/m4/lt~obsolete.m4 +0 -98
  117. data/ext/libusbx-1.0.17/missing +0 -215
  118. metadata.gz.sig +0 -0
@@ -15,7 +15,7 @@ LU_DEFINE_VERSION_ATOM([LIBUSB_MINOR])
15
15
  LU_DEFINE_VERSION_ATOM([LIBUSB_MICRO])
16
16
  LU_DEFINE_VERSION_RC_ATOM([LIBUSB_RC])
17
17
 
18
- AC_INIT([libusbx],[LIBUSB_MAJOR[.]LIBUSB_MINOR[.]LIBUSB_MICRO[]LIBUSB_RC],[libusbx-devel@lists.sourceforge.net],[libusbx],[http://libusbx.org])
18
+ AC_INIT([libusb],[LIBUSB_MAJOR[.]LIBUSB_MINOR[.]LIBUSB_MICRO[]LIBUSB_RC],[libusb-devel@lists.sourceforge.net],[libusb],[http://libusb.info])
19
19
 
20
20
  # Library versioning
21
21
  # These numbers should be tweaked on every release. Read carefully:
@@ -46,8 +46,18 @@ LTLDFLAGS="${LTLDFLAGS} -no-undefined"
46
46
 
47
47
  AC_MSG_CHECKING([operating system])
48
48
 
49
+ dnl on linux-android platform, some functions are in different places
49
50
  case $host in
50
- *-linux*)
51
+ *-linux-android*)
52
+ AC_MSG_RESULT([This is a Linux-Android system])
53
+ is_backend_android="yes"
54
+ ;;
55
+ *)
56
+ is_backend_android="no"
57
+ esac
58
+
59
+ case $host in
60
+ *-linux* | *-uclinux*)
51
61
  AC_MSG_RESULT([Linux])
52
62
  backend="linux"
53
63
  threads="posix"
@@ -108,8 +118,20 @@ linux)
108
118
  ])
109
119
  fi
110
120
  AC_SUBST(USE_UDEV)
121
+
122
+ case $is_backend_android in
123
+ yes)
124
+ dnl some pthread functions is in libc
125
+ THREAD_CFLAGS="-c"
126
+ LIBS="${LIBS} -c"
127
+ dnl there are gettimeofday function but configure doesn't seem to be able to find it.
128
+ AC_DEFINE([HAVE_GETTIMEOFDAY], [1], [Define if you have gettimeofday])
129
+ ;;
130
+ *)
111
131
  THREAD_CFLAGS="-pthread"
112
132
  LIBS="${LIBS} -pthread"
133
+ esac
134
+
113
135
  AC_CHECK_HEADERS([poll.h])
114
136
  AC_DEFINE([POLL_NFDS_TYPE],[nfds_t],[type of second poll() argument])
115
137
  ;;
@@ -1,9 +1,10 @@
1
1
  #! /bin/sh
2
2
  # depcomp - compile a program generating dependencies as side-effects
3
3
 
4
- scriptversion=2012-10-18.11; # UTC
4
+ scriptversion=2012-03-27.16; # UTC
5
5
 
6
- # Copyright (C) 1999-2013 Free Software Foundation, Inc.
6
+ # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009, 2010,
7
+ # 2011, 2012 Free Software Foundation, Inc.
7
8
 
8
9
  # This program is free software; you can redistribute it and/or modify
9
10
  # it under the terms of the GNU General Public License as published by
@@ -27,9 +28,9 @@ scriptversion=2012-10-18.11; # UTC
27
28
 
28
29
  case $1 in
29
30
  '')
30
- echo "$0: No command. Try '$0 --help' for more information." 1>&2
31
- exit 1;
32
- ;;
31
+ echo "$0: No command. Try '$0 --help' for more information." 1>&2
32
+ exit 1;
33
+ ;;
33
34
  -h | --h*)
34
35
  cat <<\EOF
35
36
  Usage: depcomp [--help] [--version] PROGRAM [ARGS]
@@ -56,65 +57,11 @@ EOF
56
57
  ;;
57
58
  esac
58
59
 
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
60
  # A tabulation character.
108
61
  tab=' '
109
62
  # A newline character.
110
63
  nl='
111
64
  '
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
65
 
119
66
  if test -z "$depmode" || test -z "$source" || test -z "$object"; then
120
67
  echo "depcomp: Variables source, object and depmode must be set" 1>&2
@@ -128,9 +75,6 @@ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
128
75
 
129
76
  rm -f "$tmpdepfile"
130
77
 
131
- # Avoid interferences from the environment.
132
- gccflag= dashmflag=
133
-
134
78
  # Some modes work just like other modes, but use different flags. We
135
79
  # parameterize here, but still list the modes in the big case below,
136
80
  # to make depend.m4 easier to write. Note that we *cannot* use a case
@@ -142,32 +86,32 @@ if test "$depmode" = hp; then
142
86
  fi
143
87
 
144
88
  if test "$depmode" = dashXmstdout; then
145
- # This is just like dashmstdout with a different argument.
146
- dashmflag=-xM
147
- depmode=dashmstdout
89
+ # This is just like dashmstdout with a different argument.
90
+ dashmflag=-xM
91
+ depmode=dashmstdout
148
92
  fi
149
93
 
150
94
  cygpath_u="cygpath -u -f -"
151
95
  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
96
+ # This is just like msvisualcpp but w/o cygpath translation.
97
+ # Just convert the backslash-escaped backslashes to single forward
98
+ # slashes to satisfy depend.m4
99
+ cygpath_u='sed s,\\\\,/,g'
100
+ depmode=msvisualcpp
157
101
  fi
158
102
 
159
103
  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
104
+ # This is just like msvc7 but w/o cygpath translation.
105
+ # Just convert the backslash-escaped backslashes to single forward
106
+ # slashes to satisfy depend.m4
107
+ cygpath_u='sed s,\\\\,/,g'
108
+ depmode=msvc7
165
109
  fi
166
110
 
167
111
  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
112
+ # IBM C/C++ Compilers xlc/xlC can output gcc-like dependency informations.
113
+ gccflag=-qmakedep=gcc,-MF
114
+ depmode=gcc
171
115
  fi
172
116
 
173
117
  case "$depmode" in
@@ -190,7 +134,8 @@ gcc3)
190
134
  done
191
135
  "$@"
192
136
  stat=$?
193
- if test $stat -ne 0; then
137
+ if test $stat -eq 0; then :
138
+ else
194
139
  rm -f "$tmpdepfile"
195
140
  exit $stat
196
141
  fi
@@ -198,17 +143,13 @@ gcc3)
198
143
  ;;
199
144
 
200
145
  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
146
  ## There are various ways to get dependency output from gcc. Here's
205
147
  ## why we pick this rather obscure method:
206
148
  ## - Don't want to use -MD because we'd like the dependencies to end
207
149
  ## up in a subdir. Having to rename by hand is ugly.
208
150
  ## (We might end up doing this anyway to support other compilers.)
209
151
  ## - 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.
152
+ ## -MM, not -M (despite what the docs say).
212
153
  ## - Using -M directly means running the compiler twice (even worse
213
154
  ## than renaming).
214
155
  if test -z "$gccflag"; then
@@ -216,14 +157,15 @@ gcc)
216
157
  fi
217
158
  "$@" -Wp,"$gccflag$tmpdepfile"
218
159
  stat=$?
219
- if test $stat -ne 0; then
160
+ if test $stat -eq 0; then :
161
+ else
220
162
  rm -f "$tmpdepfile"
221
163
  exit $stat
222
164
  fi
223
165
  rm -f "$depfile"
224
166
  echo "$object : \\" > "$depfile"
225
- # The second -e expression handles DOS-style file names with drive
226
- # letters.
167
+ alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
168
+ ## The second -e expression handles DOS-style file names with drive letters.
227
169
  sed -e 's/^[^:]*: / /' \
228
170
  -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
229
171
  ## This next piece of magic avoids the "deleted header file" problem.
@@ -232,15 +174,15 @@ gcc)
232
174
  ## typically no way to rebuild the header). We avoid this by adding
233
175
  ## dummy dependencies for each header file. Too bad gcc doesn't do
234
176
  ## this for us directly.
177
+ tr ' ' "$nl" < "$tmpdepfile" |
235
178
  ## Some versions of gcc put a space before the ':'. On the theory
236
179
  ## that the space means something, we add a space to the output as
237
180
  ## well. hp depmode also adds that space, but also prefixes the VPATH
238
181
  ## to the object. Take care to not repeat it in the output.
239
182
  ## Some versions of the HPUX 10.20 sed can't process this invocation
240
183
  ## 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"
184
+ sed -e 's/^\\$//' -e '/^$/d' -e "s|.*$object$||" -e '/:$/d' \
185
+ | sed -e 's/$/ :/' >> "$depfile"
244
186
  rm -f "$tmpdepfile"
245
187
  ;;
246
188
 
@@ -258,7 +200,8 @@ sgi)
258
200
  "$@" -MDupdate "$tmpdepfile"
259
201
  fi
260
202
  stat=$?
261
- if test $stat -ne 0; then
203
+ if test $stat -eq 0; then :
204
+ else
262
205
  rm -f "$tmpdepfile"
263
206
  exit $stat
264
207
  fi
@@ -266,6 +209,7 @@ sgi)
266
209
 
267
210
  if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
268
211
  echo "$object : \\" > "$depfile"
212
+
269
213
  # Clip off the initial element (the dependent). Don't try to be
270
214
  # clever and replace this with sed code, as IRIX sed won't handle
271
215
  # lines with more than a fixed number of characters (4096 in
@@ -273,15 +217,19 @@ sgi)
273
217
  # the IRIX cc adds comments like '#:fec' to the end of the
274
218
  # dependency line.
275
219
  tr ' ' "$nl" < "$tmpdepfile" \
276
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' \
277
- | tr "$nl" ' ' >> "$depfile"
220
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
221
+ tr "$nl" ' ' >> "$depfile"
278
222
  echo >> "$depfile"
223
+
279
224
  # The second pass generates a dummy entry for each header file.
280
225
  tr ' ' "$nl" < "$tmpdepfile" \
281
- | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
282
- >> "$depfile"
226
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
227
+ >> "$depfile"
283
228
  else
284
- make_dummy_depfile
229
+ # The sourcefile does not contain any dependencies, so just
230
+ # store a dummy comment line, to avoid errors with the Makefile
231
+ # "include basename.Plo" scheme.
232
+ echo "#dummy" > "$depfile"
285
233
  fi
286
234
  rm -f "$tmpdepfile"
287
235
  ;;
@@ -299,8 +247,9 @@ aix)
299
247
  # current directory. Also, the AIX compiler puts '$object:' at the
300
248
  # start of each line; $object doesn't have directory information.
301
249
  # Version 6 uses the directory in both cases.
302
- set_dir_from "$object"
303
- set_base_from "$object"
250
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
251
+ test "x$dir" = "x$object" && dir=
252
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
304
253
  if test "$libtool" = yes; then
305
254
  tmpdepfile1=$dir$base.u
306
255
  tmpdepfile2=$base.u
@@ -313,7 +262,9 @@ aix)
313
262
  "$@" -M
314
263
  fi
315
264
  stat=$?
316
- if test $stat -ne 0; then
265
+
266
+ if test $stat -eq 0; then :
267
+ else
317
268
  rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
318
269
  exit $stat
319
270
  fi
@@ -322,113 +273,65 @@ aix)
322
273
  do
323
274
  test -f "$tmpdepfile" && break
324
275
  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
276
+ if test -f "$tmpdepfile"; then
277
+ # Each line is of the form 'foo.o: dependent.h'.
278
+ # Do two passes, one to just change these to
279
+ # '$object: dependent.h' and one to simply 'dependent.h:'.
280
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
281
+ sed -e 's,^.*\.[a-z]*:['"$tab"' ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
282
+ else
283
+ # The sourcefile does not contain any dependencies, so just
284
+ # store a dummy comment line, to avoid errors with the Makefile
285
+ # "include basename.Plo" scheme.
286
+ echo "#dummy" > "$depfile"
348
287
  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
288
  rm -f "$tmpdepfile"
357
289
  ;;
358
290
 
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
291
+ icc)
292
+ # Intel's C compiler anf tcc (Tiny C Compiler) understand '-MD -MF file'.
293
+ # However on
294
+ # $CC -MD -MF foo.d -c -o sub/foo.o sub/foo.c
295
+ # ICC 7.0 will fill foo.d with something like
296
+ # foo.o: sub/foo.c
297
+ # foo.o: sub/foo.h
298
+ # which is wrong. We want
299
+ # sub/foo.o: sub/foo.c
300
+ # sub/foo.o: sub/foo.h
301
+ # sub/foo.c:
302
+ # sub/foo.h:
303
+ # ICC 7.1 will output
369
304
  # foo.o: sub/foo.c sub/foo.h
370
- # and will wrap long lines using '\' :
305
+ # and will wrap long lines using '\':
371
306
  # foo.o: sub/foo.c ... \
372
307
  # sub/foo.h ... \
373
308
  # ...
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
309
+ # tcc 0.9.26 (FIXME still under development at the moment of writing)
310
+ # will emit a similar output, but also prepend the continuation lines
311
+ # with horizontal tabulation characters.
312
+ "$@" -MD -MF "$tmpdepfile"
313
+ stat=$?
314
+ if test $stat -eq 0; then :
315
+ else
419
316
  rm -f "$tmpdepfile"
420
317
  exit $stat
421
318
  fi
422
319
  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 \'.
320
+ # Each line is of the form 'foo.o: dependent.h',
321
+ # or 'foo.o: dep1.h dep2.h \', or ' dep3.h dep4.h \'.
425
322
  # 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"
323
+ # '$object: dependent.h' and one to simply 'dependent.h:'.
324
+ sed -e "s/^[ $tab][ $tab]*/ /" -e "s,^[^:]*:,$object :," \
325
+ < "$tmpdepfile" > "$depfile"
326
+ sed '
327
+ s/[ '"$tab"'][ '"$tab"']*/ /g
328
+ s/^ *//
329
+ s/ *\\*$//
330
+ s/^[^:]*: *//
331
+ /^$/d
332
+ /:$/d
333
+ s/$/ :/
334
+ ' < "$tmpdepfile" >> "$depfile"
432
335
  rm -f "$tmpdepfile"
433
336
  ;;
434
337
 
@@ -439,8 +342,9 @@ hp2)
439
342
  # 'foo.d', which lands next to the object file, wherever that
440
343
  # happens to be.
441
344
  # Much of this is similar to the tru64 case; see comments there.
442
- set_dir_from "$object"
443
- set_base_from "$object"
345
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
346
+ test "x$dir" = "x$object" && dir=
347
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
444
348
  if test "$libtool" = yes; then
445
349
  tmpdepfile1=$dir$base.d
446
350
  tmpdepfile2=$dir.libs/$base.d
@@ -451,7 +355,8 @@ hp2)
451
355
  "$@" +Maked
452
356
  fi
453
357
  stat=$?
454
- if test $stat -ne 0; then
358
+ if test $stat -eq 0; then :
359
+ else
455
360
  rm -f "$tmpdepfile1" "$tmpdepfile2"
456
361
  exit $stat
457
362
  fi
@@ -461,61 +366,76 @@ hp2)
461
366
  test -f "$tmpdepfile" && break
462
367
  done
463
368
  if test -f "$tmpdepfile"; then
464
- sed -e "s,^.*\.[$lower]*:,$object:," "$tmpdepfile" > "$depfile"
369
+ sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
465
370
  # Add 'dependent.h:' lines.
466
371
  sed -ne '2,${
467
- s/^ *//
468
- s/ \\*$//
469
- s/$/:/
470
- p
471
- }' "$tmpdepfile" >> "$depfile"
372
+ s/^ *//
373
+ s/ \\*$//
374
+ s/$/:/
375
+ p
376
+ }' "$tmpdepfile" >> "$depfile"
472
377
  else
473
- make_dummy_depfile
378
+ echo "#dummy" > "$depfile"
474
379
  fi
475
380
  rm -f "$tmpdepfile" "$tmpdepfile2"
476
381
  ;;
477
382
 
478
383
  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
- ;;
384
+ # The Tru64 compiler uses -MD to generate dependencies as a side
385
+ # effect. 'cc -MD -o foo.o ...' puts the dependencies into 'foo.o.d'.
386
+ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
387
+ # dependencies in 'foo.d' instead, so we check for that too.
388
+ # Subdirectories are respected.
389
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
390
+ test "x$dir" = "x$object" && dir=
391
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
392
+
393
+ if test "$libtool" = yes; then
394
+ # With Tru64 cc, shared objects can also be used to make a
395
+ # static library. This mechanism is used in libtool 1.4 series to
396
+ # handle both shared and static libraries in a single compilation.
397
+ # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
398
+ #
399
+ # With libtool 1.5 this exception was removed, and libtool now
400
+ # generates 2 separate objects for the 2 libraries. These two
401
+ # compilations output dependencies in $dir.libs/$base.o.d and
402
+ # in $dir$base.o.d. We have to check for both files, because
403
+ # one of the two compilations can be disabled. We should prefer
404
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
405
+ # automatically cleaned when .libs/ is deleted, while ignoring
406
+ # the former would cause a distcleancheck panic.
407
+ tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
408
+ tmpdepfile2=$dir$base.o.d # libtool 1.5
409
+ tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
410
+ tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
411
+ "$@" -Wc,-MD
412
+ else
413
+ tmpdepfile1=$dir$base.o.d
414
+ tmpdepfile2=$dir$base.d
415
+ tmpdepfile3=$dir$base.d
416
+ tmpdepfile4=$dir$base.d
417
+ "$@" -MD
418
+ fi
419
+
420
+ stat=$?
421
+ if test $stat -eq 0; then :
422
+ else
423
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
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
+ ;;
519
439
 
520
440
  msvc7)
521
441
  if test "$libtool" = yes; then
@@ -526,7 +446,8 @@ msvc7)
526
446
  "$@" $showIncludes > "$tmpdepfile"
527
447
  stat=$?
528
448
  grep -v '^Note: including file: ' "$tmpdepfile"
529
- if test $stat -ne 0; then
449
+ if test "$stat" = 0; then :
450
+ else
530
451
  rm -f "$tmpdepfile"
531
452
  exit $stat
532
453
  fi
@@ -603,14 +524,13 @@ dashmstdout)
603
524
  # in the target name. This is to cope with DOS-style filenames:
604
525
  # a dependency such as 'c:/foo/bar' could be seen as target 'c' otherwise.
605
526
  "$@" $dashmflag |
606
- sed "s|^[$tab ]*[^:$tab ][^:][^:]*:[$tab ]*|$object: |" > "$tmpdepfile"
527
+ sed 's:^['"$tab"' ]*[^:'"$tab"' ][^:][^:]*\:['"$tab"' ]*:'"$object"'\: :' > "$tmpdepfile"
607
528
  rm -f "$depfile"
608
529
  cat < "$tmpdepfile" > "$depfile"
609
- # Some versions of the HPUX 10.20 sed can't process this sed invocation
610
- # correctly. Breaking it into two sed invocations is a workaround.
611
- tr ' ' "$nl" < "$tmpdepfile" \
612
- | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
613
- | sed -e 's/$/ :/' >> "$depfile"
530
+ tr ' ' "$nl" < "$tmpdepfile" | \
531
+ ## Some versions of the HPUX 10.20 sed can't process this invocation
532
+ ## correctly. Breaking it into two sed invocations is a workaround.
533
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
614
534
  rm -f "$tmpdepfile"
615
535
  ;;
616
536
 
@@ -663,12 +583,10 @@ makedepend)
663
583
  # makedepend may prepend the VPATH from the source file name to the object.
664
584
  # No need to regex-escape $object, excess matching of '.' is harmless.
665
585
  sed "s|^.*\($object *:\)|\1|" "$tmpdepfile" > "$depfile"
666
- # Some versions of the HPUX 10.20 sed can't process the last invocation
667
- # correctly. Breaking it into two sed invocations is a workaround.
668
- sed '1,2d' "$tmpdepfile" \
669
- | tr ' ' "$nl" \
670
- | sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' \
671
- | sed -e 's/$/ :/' >> "$depfile"
586
+ sed '1,2d' "$tmpdepfile" | tr ' ' "$nl" | \
587
+ ## Some versions of the HPUX 10.20 sed can't process this invocation
588
+ ## correctly. Breaking it into two sed invocations is a workaround.
589
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
672
590
  rm -f "$tmpdepfile" "$tmpdepfile".bak
673
591
  ;;
674
592
 
@@ -704,10 +622,10 @@ cpp)
704
622
  esac
705
623
  done
706
624
 
707
- "$@" -E \
708
- | sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
709
- -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
710
- | sed '$ s: \\$::' > "$tmpdepfile"
625
+ "$@" -E |
626
+ sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
627
+ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
628
+ sed '$ s: \\$::' > "$tmpdepfile"
711
629
  rm -f "$depfile"
712
630
  echo "$object : \\" > "$depfile"
713
631
  cat < "$tmpdepfile" >> "$depfile"
@@ -739,15 +657,15 @@ msvisualcpp)
739
657
  shift
740
658
  ;;
741
659
  "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
742
- set fnord "$@"
743
- shift
744
- shift
745
- ;;
660
+ set fnord "$@"
661
+ shift
662
+ shift
663
+ ;;
746
664
  *)
747
- set fnord "$@" "$arg"
748
- shift
749
- shift
750
- ;;
665
+ set fnord "$@" "$arg"
666
+ shift
667
+ shift
668
+ ;;
751
669
  esac
752
670
  done
753
671
  "$@" -E 2>/dev/null |