vinted-memcached 1.8.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (210) hide show
  1. checksums.yaml +7 -0
  2. data/BENCHMARKS +142 -0
  3. data/CHANGELOG +176 -0
  4. data/Gemfile +11 -0
  5. data/Gemfile.lock +45 -0
  6. data/LICENSE +184 -0
  7. data/Manifest +209 -0
  8. data/README.rdoc +124 -0
  9. data/Rakefile +134 -0
  10. data/TODO +1 -0
  11. data/ext/extconf-make.rb +25 -0
  12. data/ext/extconf.rb +78 -0
  13. data/ext/libmemcached-0.32/AUTHORS +7 -0
  14. data/ext/libmemcached-0.32/COPYING +32 -0
  15. data/ext/libmemcached-0.32/ChangeLog +303 -0
  16. data/ext/libmemcached-0.32/INSTALL +302 -0
  17. data/ext/libmemcached-0.32/Makefile.am +36 -0
  18. data/ext/libmemcached-0.32/Makefile.in +911 -0
  19. data/ext/libmemcached-0.32/NEWS +1 -0
  20. data/ext/libmemcached-0.32/README +33 -0
  21. data/ext/libmemcached-0.32/THANKS +14 -0
  22. data/ext/libmemcached-0.32/TODO +11 -0
  23. data/ext/libmemcached-0.32/aclocal.m4 +2108 -0
  24. data/ext/libmemcached-0.32/clients/Makefile.am +80 -0
  25. data/ext/libmemcached-0.32/clients/Makefile.in +773 -0
  26. data/ext/libmemcached-0.32/clients/client_options.h +32 -0
  27. data/ext/libmemcached-0.32/clients/execute.c +64 -0
  28. data/ext/libmemcached-0.32/clients/execute.h +5 -0
  29. data/ext/libmemcached-0.32/clients/generator.c +74 -0
  30. data/ext/libmemcached-0.32/clients/generator.h +20 -0
  31. data/ext/libmemcached-0.32/clients/memcat.c +178 -0
  32. data/ext/libmemcached-0.32/clients/memcp.c +251 -0
  33. data/ext/libmemcached-0.32/clients/memdump.c +170 -0
  34. data/ext/libmemcached-0.32/clients/memerror.c +80 -0
  35. data/ext/libmemcached-0.32/clients/memflush.c +143 -0
  36. data/ext/libmemcached-0.32/clients/memrm.c +160 -0
  37. data/ext/libmemcached-0.32/clients/memslap.c +441 -0
  38. data/ext/libmemcached-0.32/clients/memstat.c +326 -0
  39. data/ext/libmemcached-0.32/clients/utilities.c +207 -0
  40. data/ext/libmemcached-0.32/clients/utilities.h +41 -0
  41. data/ext/libmemcached-0.32/config/compile +143 -0
  42. data/ext/libmemcached-0.32/config/config.guess +1561 -0
  43. data/ext/libmemcached-0.32/config/config.rpath +666 -0
  44. data/ext/libmemcached-0.32/config/config.sub +1686 -0
  45. data/ext/libmemcached-0.32/config/depcomp +630 -0
  46. data/ext/libmemcached-0.32/config/install-sh +520 -0
  47. data/ext/libmemcached-0.32/config/ltmain.sh +9636 -0
  48. data/ext/libmemcached-0.32/config/missing +376 -0
  49. data/ext/libmemcached-0.32/config.h.in +254 -0
  50. data/ext/libmemcached-0.32/configure +23843 -0
  51. data/ext/libmemcached-0.32/configure.ac +120 -0
  52. data/ext/libmemcached-0.32/libmemcached/Makefile.am +111 -0
  53. data/ext/libmemcached-0.32/libmemcached/Makefile.in +1069 -0
  54. data/ext/libmemcached-0.32/libmemcached/byteorder.c +31 -0
  55. data/ext/libmemcached-0.32/libmemcached/common.h +189 -0
  56. data/ext/libmemcached-0.32/libmemcached/crc.c +86 -0
  57. data/ext/libmemcached-0.32/libmemcached/hsieh_hash.c +68 -0
  58. data/ext/libmemcached-0.32/libmemcached/jenkins_hash.c +213 -0
  59. data/ext/libmemcached-0.32/libmemcached/libmemcached.ver +1 -0
  60. data/ext/libmemcached-0.32/libmemcached/libmemcached_probes.d +30 -0
  61. data/ext/libmemcached-0.32/libmemcached/libmemcached_probes.h +82 -0
  62. data/ext/libmemcached-0.32/libmemcached/md5.c +354 -0
  63. data/ext/libmemcached-0.32/libmemcached/memcached/README.txt +7 -0
  64. data/ext/libmemcached-0.32/libmemcached/memcached/protocol_binary.h +385 -0
  65. data/ext/libmemcached-0.32/libmemcached/memcached.c +153 -0
  66. data/ext/libmemcached-0.32/libmemcached/memcached.h +305 -0
  67. data/ext/libmemcached-0.32/libmemcached/memcached.hpp +799 -0
  68. data/ext/libmemcached-0.32/libmemcached/memcached_allocators.c +72 -0
  69. data/ext/libmemcached-0.32/libmemcached/memcached_analyze.c +100 -0
  70. data/ext/libmemcached-0.32/libmemcached/memcached_auto.c +207 -0
  71. data/ext/libmemcached-0.32/libmemcached/memcached_behavior.c +290 -0
  72. data/ext/libmemcached-0.32/libmemcached/memcached_callback.c +175 -0
  73. data/ext/libmemcached-0.32/libmemcached/memcached_configure.h.in +23 -0
  74. data/ext/libmemcached-0.32/libmemcached/memcached_connect.c +371 -0
  75. data/ext/libmemcached-0.32/libmemcached/memcached_constants.h +146 -0
  76. data/ext/libmemcached-0.32/libmemcached/memcached_delete.c +0 -0
  77. data/ext/libmemcached-0.32/libmemcached/memcached_do.c +72 -0
  78. data/ext/libmemcached-0.32/libmemcached/memcached_dump.c +79 -0
  79. data/ext/libmemcached-0.32/libmemcached/memcached_exist.c +114 -0
  80. data/ext/libmemcached-0.32/libmemcached/memcached_exist.h +20 -0
  81. data/ext/libmemcached-0.32/libmemcached/memcached_fetch.c +102 -0
  82. data/ext/libmemcached-0.32/libmemcached/memcached_flush.c +89 -0
  83. data/ext/libmemcached-0.32/libmemcached/memcached_flush_buffers.c +23 -0
  84. data/ext/libmemcached-0.32/libmemcached/memcached_get.c +494 -0
  85. data/ext/libmemcached-0.32/libmemcached/memcached_get.h +87 -0
  86. data/ext/libmemcached-0.32/libmemcached/memcached_hash.c +252 -0
  87. data/ext/libmemcached-0.32/libmemcached/memcached_hosts.c +510 -0
  88. data/ext/libmemcached-0.32/libmemcached/memcached_internal.h +31 -0
  89. data/ext/libmemcached-0.32/libmemcached/memcached_io.c +594 -0
  90. data/ext/libmemcached-0.32/libmemcached/memcached_io.h +72 -0
  91. data/ext/libmemcached-0.32/libmemcached/memcached_key.c +28 -0
  92. data/ext/libmemcached-0.32/libmemcached/memcached_parse.c +74 -0
  93. data/ext/libmemcached-0.32/libmemcached/memcached_pool.h +38 -0
  94. data/ext/libmemcached-0.32/libmemcached/memcached_purge.c +76 -0
  95. data/ext/libmemcached-0.32/libmemcached/memcached_quit.c +75 -0
  96. data/ext/libmemcached-0.32/libmemcached/memcached_response.c +529 -0
  97. data/ext/libmemcached-0.32/libmemcached/memcached_result.c +57 -0
  98. data/ext/libmemcached-0.32/libmemcached/memcached_result.h +59 -0
  99. data/ext/libmemcached-0.32/libmemcached/memcached_sasl.c +225 -0
  100. data/ext/libmemcached-0.32/libmemcached/memcached_sasl.h +44 -0
  101. data/ext/libmemcached-0.32/libmemcached/memcached_server.c +159 -0
  102. data/ext/libmemcached-0.32/libmemcached/memcached_server.h +93 -0
  103. data/ext/libmemcached-0.32/libmemcached/memcached_stats.c +437 -0
  104. data/ext/libmemcached-0.32/libmemcached/memcached_storage.c +514 -0
  105. data/ext/libmemcached-0.32/libmemcached/memcached_storage.h +107 -0
  106. data/ext/libmemcached-0.32/libmemcached/memcached_strerror.c +92 -0
  107. data/ext/libmemcached-0.32/libmemcached/memcached_string.c +138 -0
  108. data/ext/libmemcached-0.32/libmemcached/memcached_string.h +53 -0
  109. data/ext/libmemcached-0.32/libmemcached/memcached_touch.c +60 -0
  110. data/ext/libmemcached-0.32/libmemcached/memcached_touch.h +31 -0
  111. data/ext/libmemcached-0.32/libmemcached/memcached_types.h +44 -0
  112. data/ext/libmemcached-0.32/libmemcached/memcached_util.h +15 -0
  113. data/ext/libmemcached-0.32/libmemcached/memcached_verbosity.c +36 -0
  114. data/ext/libmemcached-0.32/libmemcached/memcached_version.c +112 -0
  115. data/ext/libmemcached-0.32/libmemcached/memcached_watchpoint.h +38 -0
  116. data/ext/libmemcached-0.32/libmemcached/murmur_hash.c +76 -0
  117. data/ext/libmemcached-0.32/libmemcached/visibility.h +51 -0
  118. data/ext/libmemcached-0.32/libmemcachedutil/Makefile.am +11 -0
  119. data/ext/libmemcached-0.32/libmemcachedutil/Makefile.in +604 -0
  120. data/ext/libmemcached-0.32/libmemcachedutil/libmemcachedutil.ver +1 -0
  121. data/ext/libmemcached-0.32/libmemcachedutil/memcached_pool.c +170 -0
  122. data/ext/libmemcached-0.32/m4/ac_cxx_compile_stdcxx_0x.m4 +103 -0
  123. data/ext/libmemcached-0.32/m4/ac_cxx_header_stdcxx_98.m4 +67 -0
  124. data/ext/libmemcached-0.32/m4/acx_pthread.m4 +276 -0
  125. data/ext/libmemcached-0.32/m4/byteorder.m4 +40 -0
  126. data/ext/libmemcached-0.32/m4/deprecated.m4 +17 -0
  127. data/ext/libmemcached-0.32/m4/enable_utillib.m4 +16 -0
  128. data/ext/libmemcached-0.32/m4/extensions.m4 +94 -0
  129. data/ext/libmemcached-0.32/m4/hsieh.m4 +18 -0
  130. data/ext/libmemcached-0.32/m4/lib-prefix.m4 +221 -0
  131. data/ext/libmemcached-0.32/m4/libtool.m4 +7831 -0
  132. data/ext/libmemcached-0.32/m4/ltoptions.m4 +369 -0
  133. data/ext/libmemcached-0.32/m4/ltsugar.m4 +123 -0
  134. data/ext/libmemcached-0.32/m4/ltversion.m4 +23 -0
  135. data/ext/libmemcached-0.32/m4/lt~obsolete.m4 +98 -0
  136. data/ext/libmemcached-0.32/m4/memcached.m4 +30 -0
  137. data/ext/libmemcached-0.32/m4/pandora_64bit.m4 +55 -0
  138. data/ext/libmemcached-0.32/m4/pandora_canonical.m4 +151 -0
  139. data/ext/libmemcached-0.32/m4/pandora_check_compiler_version.m4 +37 -0
  140. data/ext/libmemcached-0.32/m4/pandora_check_cxx_standard.m4 +16 -0
  141. data/ext/libmemcached-0.32/m4/pandora_enable_dtrace.m4 +41 -0
  142. data/ext/libmemcached-0.32/m4/pandora_ensure_gcc_version.m4 +36 -0
  143. data/ext/libmemcached-0.32/m4/pandora_have_better_malloc.m4 +54 -0
  144. data/ext/libmemcached-0.32/m4/pandora_have_sasl.m4 +133 -0
  145. data/ext/libmemcached-0.32/m4/pandora_header_assert.m4 +23 -0
  146. data/ext/libmemcached-0.32/m4/pandora_libtool.m4 +15 -0
  147. data/ext/libmemcached-0.32/m4/pandora_optimize.m4 +79 -0
  148. data/ext/libmemcached-0.32/m4/pandora_shared_ptr.m4 +56 -0
  149. data/ext/libmemcached-0.32/m4/pandora_vc_build.m4 +32 -0
  150. data/ext/libmemcached-0.32/m4/pandora_warnings.m4 +262 -0
  151. data/ext/libmemcached-0.32/m4/pod2man.m4 +7 -0
  152. data/ext/libmemcached-0.32/m4/protocol_binary.m4 +23 -0
  153. data/ext/libmemcached-0.32/m4/setsockopt.m4 +57 -0
  154. data/ext/libmemcached-0.32/m4/visibility.m4 +52 -0
  155. data/ext/libmemcached-0.32/support/Makefile.am +4 -0
  156. data/ext/libmemcached-0.32/support/Makefile.in +487 -0
  157. data/ext/libmemcached-0.32/support/libmemcached-fc.spec.in +105 -0
  158. data/ext/libmemcached-0.32/support/libmemcached.pc.in +10 -0
  159. data/ext/libmemcached-0.32/support/libmemcached.spec +105 -0
  160. data/ext/libmemcached-0.32/support/libmemcached.spec.in +105 -0
  161. data/ext/libmemcached-0.32/support/set_benchmark.sh +5 -0
  162. data/ext/libmemcached-0.32/tests/Makefile.am +113 -0
  163. data/ext/libmemcached-0.32/tests/Makefile.in +762 -0
  164. data/ext/libmemcached-0.32/tests/atomsmasher.c +245 -0
  165. data/ext/libmemcached-0.32/tests/function.c +4904 -0
  166. data/ext/libmemcached-0.32/tests/ketama_test_cases.h +108 -0
  167. data/ext/libmemcached-0.32/tests/output.cmp +7 -0
  168. data/ext/libmemcached-0.32/tests/output.res +7 -0
  169. data/ext/libmemcached-0.32/tests/output2.res +46 -0
  170. data/ext/libmemcached-0.32/tests/plus.cpp +293 -0
  171. data/ext/libmemcached-0.32/tests/r/memcat.res +19 -0
  172. data/ext/libmemcached-0.32/tests/r/memcp.res +27 -0
  173. data/ext/libmemcached-0.32/tests/r/memrm.res +19 -0
  174. data/ext/libmemcached-0.32/tests/r/memslap.res +33 -0
  175. data/ext/libmemcached-0.32/tests/r/memstat.res +33 -0
  176. data/ext/libmemcached-0.32/tests/server.c +118 -0
  177. data/ext/libmemcached-0.32/tests/server.h +25 -0
  178. data/ext/libmemcached-0.32/tests/start.c +16 -0
  179. data/ext/libmemcached-0.32/tests/t/memcat.test +4 -0
  180. data/ext/libmemcached-0.32/tests/t/memcp.test +3 -0
  181. data/ext/libmemcached-0.32/tests/t/memrm.test +3 -0
  182. data/ext/libmemcached-0.32/tests/t/memslap.test +5 -0
  183. data/ext/libmemcached-0.32/tests/t/memstat.test +3 -0
  184. data/ext/libmemcached-0.32/tests/test.c +137 -0
  185. data/ext/libmemcached-0.32/tests/test.h +46 -0
  186. data/ext/libmemcached-0.32/tests/udp.c +76 -0
  187. data/ext/rlibmemcached.i +258 -0
  188. data/ext/rlibmemcached_wrap.c +13917 -0
  189. data/lib/memcached/auth.rb +16 -0
  190. data/lib/memcached/behaviors.rb +78 -0
  191. data/lib/memcached/exceptions.rb +84 -0
  192. data/lib/memcached/experimental.rb +48 -0
  193. data/lib/memcached/marshal_codec.rb +10 -0
  194. data/lib/memcached/memcached.rb +732 -0
  195. data/lib/memcached/rails.rb +250 -0
  196. data/lib/memcached.rb +33 -0
  197. data/memcached.gemspec +0 -0
  198. data/test/profile/benchmark.rb +280 -0
  199. data/test/profile/c_profiler.rb +14 -0
  200. data/test/profile/exercise.rb +185 -0
  201. data/test/profile/rb_profiler.rb +21 -0
  202. data/test/profile/valgrind.rb +10 -0
  203. data/test/setup.rb +30 -0
  204. data/test/teardown.rb +0 -0
  205. data/test/test_helper.rb +18 -0
  206. data/test/unit/binding_test.rb +8 -0
  207. data/test/unit/memcached_experimental_test.rb +272 -0
  208. data/test/unit/memcached_test.rb +1487 -0
  209. data/test/unit/rails_test.rb +330 -0
  210. metadata +336 -0
@@ -0,0 +1,630 @@
1
+ #! /bin/sh
2
+ # depcomp - compile a program generating dependencies as side-effects
3
+
4
+ scriptversion=2009-04-28.21; # UTC
5
+
6
+ # Copyright (C) 1999, 2000, 2003, 2004, 2005, 2006, 2007, 2009 Free
7
+ # Software Foundation, Inc.
8
+
9
+ # This program is free software; you can redistribute it and/or modify
10
+ # it under the terms of the GNU General Public License as published by
11
+ # the Free Software Foundation; either version 2, or (at your option)
12
+ # any later version.
13
+
14
+ # This program is distributed in the hope that it will be useful,
15
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
17
+ # GNU General Public License for more details.
18
+
19
+ # You should have received a copy of the GNU General Public License
20
+ # along with this program. If not, see <http://www.gnu.org/licenses/>.
21
+
22
+ # As a special exception to the GNU General Public License, if you
23
+ # distribute this file as part of a program that contains a
24
+ # configuration script generated by Autoconf, you may include it under
25
+ # the same distribution terms that you use for the rest of that program.
26
+
27
+ # Originally written by Alexandre Oliva <oliva@dcc.unicamp.br>.
28
+
29
+ case $1 in
30
+ '')
31
+ echo "$0: No command. Try \`$0 --help' for more information." 1>&2
32
+ exit 1;
33
+ ;;
34
+ -h | --h*)
35
+ cat <<\EOF
36
+ Usage: depcomp [--help] [--version] PROGRAM [ARGS]
37
+
38
+ Run PROGRAMS ARGS to compile a file, generating dependencies
39
+ as side-effects.
40
+
41
+ Environment variables:
42
+ depmode Dependency tracking mode.
43
+ source Source file read by `PROGRAMS ARGS'.
44
+ object Object file output by `PROGRAMS ARGS'.
45
+ DEPDIR directory where to store dependencies.
46
+ depfile Dependency file to output.
47
+ tmpdepfile Temporary file to use when outputing dependencies.
48
+ libtool Whether libtool is used (yes/no).
49
+
50
+ Report bugs to <bug-automake@gnu.org>.
51
+ EOF
52
+ exit $?
53
+ ;;
54
+ -v | --v*)
55
+ echo "depcomp $scriptversion"
56
+ exit $?
57
+ ;;
58
+ esac
59
+
60
+ if test -z "$depmode" || test -z "$source" || test -z "$object"; then
61
+ echo "depcomp: Variables source, object and depmode must be set" 1>&2
62
+ exit 1
63
+ fi
64
+
65
+ # Dependencies for sub/bar.o or sub/bar.obj go into sub/.deps/bar.Po.
66
+ depfile=${depfile-`echo "$object" |
67
+ sed 's|[^\\/]*$|'${DEPDIR-.deps}'/&|;s|\.\([^.]*\)$|.P\1|;s|Pobj$|Po|'`}
68
+ tmpdepfile=${tmpdepfile-`echo "$depfile" | sed 's/\.\([^.]*\)$/.T\1/'`}
69
+
70
+ rm -f "$tmpdepfile"
71
+
72
+ # Some modes work just like other modes, but use different flags. We
73
+ # parameterize here, but still list the modes in the big case below,
74
+ # to make depend.m4 easier to write. Note that we *cannot* use a case
75
+ # here, because this file can only contain one case statement.
76
+ if test "$depmode" = hp; then
77
+ # HP compiler uses -M and no extra arg.
78
+ gccflag=-M
79
+ depmode=gcc
80
+ fi
81
+
82
+ if test "$depmode" = dashXmstdout; then
83
+ # This is just like dashmstdout with a different argument.
84
+ dashmflag=-xM
85
+ depmode=dashmstdout
86
+ fi
87
+
88
+ cygpath_u="cygpath -u -f -"
89
+ if test "$depmode" = msvcmsys; then
90
+ # This is just like msvisualcpp but w/o cygpath translation.
91
+ # Just convert the backslash-escaped backslashes to single forward
92
+ # slashes to satisfy depend.m4
93
+ cygpath_u="sed s,\\\\\\\\,/,g"
94
+ depmode=msvisualcpp
95
+ fi
96
+
97
+ case "$depmode" in
98
+ gcc3)
99
+ ## gcc 3 implements dependency tracking that does exactly what
100
+ ## we want. Yay! Note: for some reason libtool 1.4 doesn't like
101
+ ## it if -MD -MP comes after the -MF stuff. Hmm.
102
+ ## Unfortunately, FreeBSD c89 acceptance of flags depends upon
103
+ ## the command line argument order; so add the flags where they
104
+ ## appear in depend2.am. Note that the slowdown incurred here
105
+ ## affects only configure: in makefiles, %FASTDEP% shortcuts this.
106
+ for arg
107
+ do
108
+ case $arg in
109
+ -c) set fnord "$@" -MT "$object" -MD -MP -MF "$tmpdepfile" "$arg" ;;
110
+ *) set fnord "$@" "$arg" ;;
111
+ esac
112
+ shift # fnord
113
+ shift # $arg
114
+ done
115
+ "$@"
116
+ stat=$?
117
+ if test $stat -eq 0; then :
118
+ else
119
+ rm -f "$tmpdepfile"
120
+ exit $stat
121
+ fi
122
+ mv "$tmpdepfile" "$depfile"
123
+ ;;
124
+
125
+ gcc)
126
+ ## There are various ways to get dependency output from gcc. Here's
127
+ ## why we pick this rather obscure method:
128
+ ## - Don't want to use -MD because we'd like the dependencies to end
129
+ ## up in a subdir. Having to rename by hand is ugly.
130
+ ## (We might end up doing this anyway to support other compilers.)
131
+ ## - The DEPENDENCIES_OUTPUT environment variable makes gcc act like
132
+ ## -MM, not -M (despite what the docs say).
133
+ ## - Using -M directly means running the compiler twice (even worse
134
+ ## than renaming).
135
+ if test -z "$gccflag"; then
136
+ gccflag=-MD,
137
+ fi
138
+ "$@" -Wp,"$gccflag$tmpdepfile"
139
+ stat=$?
140
+ if test $stat -eq 0; then :
141
+ else
142
+ rm -f "$tmpdepfile"
143
+ exit $stat
144
+ fi
145
+ rm -f "$depfile"
146
+ echo "$object : \\" > "$depfile"
147
+ alpha=ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz
148
+ ## The second -e expression handles DOS-style file names with drive letters.
149
+ sed -e 's/^[^:]*: / /' \
150
+ -e 's/^['$alpha']:\/[^:]*: / /' < "$tmpdepfile" >> "$depfile"
151
+ ## This next piece of magic avoids the `deleted header file' problem.
152
+ ## The problem is that when a header file which appears in a .P file
153
+ ## is deleted, the dependency causes make to die (because there is
154
+ ## typically no way to rebuild the header). We avoid this by adding
155
+ ## dummy dependencies for each header file. Too bad gcc doesn't do
156
+ ## this for us directly.
157
+ tr ' ' '
158
+ ' < "$tmpdepfile" |
159
+ ## Some versions of gcc put a space before the `:'. On the theory
160
+ ## that the space means something, we add a space to the output as
161
+ ## well.
162
+ ## Some versions of the HPUX 10.20 sed can't process this invocation
163
+ ## correctly. Breaking it into two sed invocations is a workaround.
164
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
165
+ rm -f "$tmpdepfile"
166
+ ;;
167
+
168
+ hp)
169
+ # This case exists only to let depend.m4 do its work. It works by
170
+ # looking at the text of this script. This case will never be run,
171
+ # since it is checked for above.
172
+ exit 1
173
+ ;;
174
+
175
+ sgi)
176
+ if test "$libtool" = yes; then
177
+ "$@" "-Wp,-MDupdate,$tmpdepfile"
178
+ else
179
+ "$@" -MDupdate "$tmpdepfile"
180
+ fi
181
+ stat=$?
182
+ if test $stat -eq 0; then :
183
+ else
184
+ rm -f "$tmpdepfile"
185
+ exit $stat
186
+ fi
187
+ rm -f "$depfile"
188
+
189
+ if test -f "$tmpdepfile"; then # yes, the sourcefile depend on other files
190
+ echo "$object : \\" > "$depfile"
191
+
192
+ # Clip off the initial element (the dependent). Don't try to be
193
+ # clever and replace this with sed code, as IRIX sed won't handle
194
+ # lines with more than a fixed number of characters (4096 in
195
+ # IRIX 6.2 sed, 8192 in IRIX 6.5). We also remove comment lines;
196
+ # the IRIX cc adds comments like `#:fec' to the end of the
197
+ # dependency line.
198
+ tr ' ' '
199
+ ' < "$tmpdepfile" \
200
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' | \
201
+ tr '
202
+ ' ' ' >> "$depfile"
203
+ echo >> "$depfile"
204
+
205
+ # The second pass generates a dummy entry for each header file.
206
+ tr ' ' '
207
+ ' < "$tmpdepfile" \
208
+ | sed -e 's/^.*\.o://' -e 's/#.*$//' -e '/^$/ d' -e 's/$/:/' \
209
+ >> "$depfile"
210
+ else
211
+ # The sourcefile does not contain any dependencies, so just
212
+ # store a dummy comment line, to avoid errors with the Makefile
213
+ # "include basename.Plo" scheme.
214
+ echo "#dummy" > "$depfile"
215
+ fi
216
+ rm -f "$tmpdepfile"
217
+ ;;
218
+
219
+ aix)
220
+ # The C for AIX Compiler uses -M and outputs the dependencies
221
+ # in a .u file. In older versions, this file always lives in the
222
+ # current directory. Also, the AIX compiler puts `$object:' at the
223
+ # start of each line; $object doesn't have directory information.
224
+ # Version 6 uses the directory in both cases.
225
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
226
+ test "x$dir" = "x$object" && dir=
227
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
228
+ if test "$libtool" = yes; then
229
+ tmpdepfile1=$dir$base.u
230
+ tmpdepfile2=$base.u
231
+ tmpdepfile3=$dir.libs/$base.u
232
+ "$@" -Wc,-M
233
+ else
234
+ tmpdepfile1=$dir$base.u
235
+ tmpdepfile2=$dir$base.u
236
+ tmpdepfile3=$dir$base.u
237
+ "$@" -M
238
+ fi
239
+ stat=$?
240
+
241
+ if test $stat -eq 0; then :
242
+ else
243
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
244
+ exit $stat
245
+ fi
246
+
247
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3"
248
+ do
249
+ test -f "$tmpdepfile" && break
250
+ done
251
+ if test -f "$tmpdepfile"; then
252
+ # Each line is of the form `foo.o: dependent.h'.
253
+ # Do two passes, one to just change these to
254
+ # `$object: dependent.h' and one to simply `dependent.h:'.
255
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
256
+ # That's a tab and a space in the [].
257
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
258
+ else
259
+ # The sourcefile does not contain any dependencies, so just
260
+ # store a dummy comment line, to avoid errors with the Makefile
261
+ # "include basename.Plo" scheme.
262
+ echo "#dummy" > "$depfile"
263
+ fi
264
+ rm -f "$tmpdepfile"
265
+ ;;
266
+
267
+ icc)
268
+ # Intel's C compiler understands `-MD -MF file'. However on
269
+ # icc -MD -MF foo.d -c -o sub/foo.o sub/foo.c
270
+ # ICC 7.0 will fill foo.d with something like
271
+ # foo.o: sub/foo.c
272
+ # foo.o: sub/foo.h
273
+ # which is wrong. We want:
274
+ # sub/foo.o: sub/foo.c
275
+ # sub/foo.o: sub/foo.h
276
+ # sub/foo.c:
277
+ # sub/foo.h:
278
+ # ICC 7.1 will output
279
+ # foo.o: sub/foo.c sub/foo.h
280
+ # and will wrap long lines using \ :
281
+ # foo.o: sub/foo.c ... \
282
+ # sub/foo.h ... \
283
+ # ...
284
+
285
+ "$@" -MD -MF "$tmpdepfile"
286
+ stat=$?
287
+ if test $stat -eq 0; then :
288
+ else
289
+ rm -f "$tmpdepfile"
290
+ exit $stat
291
+ fi
292
+ rm -f "$depfile"
293
+ # Each line is of the form `foo.o: dependent.h',
294
+ # or `foo.o: dep1.h dep2.h \', or ` dep3.h dep4.h \'.
295
+ # Do two passes, one to just change these to
296
+ # `$object: dependent.h' and one to simply `dependent.h:'.
297
+ sed "s,^[^:]*:,$object :," < "$tmpdepfile" > "$depfile"
298
+ # Some versions of the HPUX 10.20 sed can't process this invocation
299
+ # correctly. Breaking it into two sed invocations is a workaround.
300
+ sed 's,^[^:]*: \(.*\)$,\1,;s/^\\$//;/^$/d;/:$/d' < "$tmpdepfile" |
301
+ sed -e 's/$/ :/' >> "$depfile"
302
+ rm -f "$tmpdepfile"
303
+ ;;
304
+
305
+ hp2)
306
+ # The "hp" stanza above does not work with aCC (C++) and HP's ia64
307
+ # compilers, which have integrated preprocessors. The correct option
308
+ # to use with these is +Maked; it writes dependencies to a file named
309
+ # 'foo.d', which lands next to the object file, wherever that
310
+ # happens to be.
311
+ # Much of this is similar to the tru64 case; see comments there.
312
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
313
+ test "x$dir" = "x$object" && dir=
314
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
315
+ if test "$libtool" = yes; then
316
+ tmpdepfile1=$dir$base.d
317
+ tmpdepfile2=$dir.libs/$base.d
318
+ "$@" -Wc,+Maked
319
+ else
320
+ tmpdepfile1=$dir$base.d
321
+ tmpdepfile2=$dir$base.d
322
+ "$@" +Maked
323
+ fi
324
+ stat=$?
325
+ if test $stat -eq 0; then :
326
+ else
327
+ rm -f "$tmpdepfile1" "$tmpdepfile2"
328
+ exit $stat
329
+ fi
330
+
331
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2"
332
+ do
333
+ test -f "$tmpdepfile" && break
334
+ done
335
+ if test -f "$tmpdepfile"; then
336
+ sed -e "s,^.*\.[a-z]*:,$object:," "$tmpdepfile" > "$depfile"
337
+ # Add `dependent.h:' lines.
338
+ sed -ne '2,${
339
+ s/^ *//
340
+ s/ \\*$//
341
+ s/$/:/
342
+ p
343
+ }' "$tmpdepfile" >> "$depfile"
344
+ else
345
+ echo "#dummy" > "$depfile"
346
+ fi
347
+ rm -f "$tmpdepfile" "$tmpdepfile2"
348
+ ;;
349
+
350
+ tru64)
351
+ # The Tru64 compiler uses -MD to generate dependencies as a side
352
+ # effect. `cc -MD -o foo.o ...' puts the dependencies into `foo.o.d'.
353
+ # At least on Alpha/Redhat 6.1, Compaq CCC V6.2-504 seems to put
354
+ # dependencies in `foo.d' instead, so we check for that too.
355
+ # Subdirectories are respected.
356
+ dir=`echo "$object" | sed -e 's|/[^/]*$|/|'`
357
+ test "x$dir" = "x$object" && dir=
358
+ base=`echo "$object" | sed -e 's|^.*/||' -e 's/\.o$//' -e 's/\.lo$//'`
359
+
360
+ if test "$libtool" = yes; then
361
+ # With Tru64 cc, shared objects can also be used to make a
362
+ # static library. This mechanism is used in libtool 1.4 series to
363
+ # handle both shared and static libraries in a single compilation.
364
+ # With libtool 1.4, dependencies were output in $dir.libs/$base.lo.d.
365
+ #
366
+ # With libtool 1.5 this exception was removed, and libtool now
367
+ # generates 2 separate objects for the 2 libraries. These two
368
+ # compilations output dependencies in $dir.libs/$base.o.d and
369
+ # in $dir$base.o.d. We have to check for both files, because
370
+ # one of the two compilations can be disabled. We should prefer
371
+ # $dir$base.o.d over $dir.libs/$base.o.d because the latter is
372
+ # automatically cleaned when .libs/ is deleted, while ignoring
373
+ # the former would cause a distcleancheck panic.
374
+ tmpdepfile1=$dir.libs/$base.lo.d # libtool 1.4
375
+ tmpdepfile2=$dir$base.o.d # libtool 1.5
376
+ tmpdepfile3=$dir.libs/$base.o.d # libtool 1.5
377
+ tmpdepfile4=$dir.libs/$base.d # Compaq CCC V6.2-504
378
+ "$@" -Wc,-MD
379
+ else
380
+ tmpdepfile1=$dir$base.o.d
381
+ tmpdepfile2=$dir$base.d
382
+ tmpdepfile3=$dir$base.d
383
+ tmpdepfile4=$dir$base.d
384
+ "$@" -MD
385
+ fi
386
+
387
+ stat=$?
388
+ if test $stat -eq 0; then :
389
+ else
390
+ rm -f "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
391
+ exit $stat
392
+ fi
393
+
394
+ for tmpdepfile in "$tmpdepfile1" "$tmpdepfile2" "$tmpdepfile3" "$tmpdepfile4"
395
+ do
396
+ test -f "$tmpdepfile" && break
397
+ done
398
+ if test -f "$tmpdepfile"; then
399
+ sed -e "s,^.*\.[a-z]*:,$object:," < "$tmpdepfile" > "$depfile"
400
+ # That's a tab and a space in the [].
401
+ sed -e 's,^.*\.[a-z]*:[ ]*,,' -e 's,$,:,' < "$tmpdepfile" >> "$depfile"
402
+ else
403
+ echo "#dummy" > "$depfile"
404
+ fi
405
+ rm -f "$tmpdepfile"
406
+ ;;
407
+
408
+ #nosideeffect)
409
+ # This comment above is used by automake to tell side-effect
410
+ # dependency tracking mechanisms from slower ones.
411
+
412
+ dashmstdout)
413
+ # Important note: in order to support this mode, a compiler *must*
414
+ # always write the preprocessed file to stdout, regardless of -o.
415
+ "$@" || exit $?
416
+
417
+ # Remove the call to Libtool.
418
+ if test "$libtool" = yes; then
419
+ while test "X$1" != 'X--mode=compile'; do
420
+ shift
421
+ done
422
+ shift
423
+ fi
424
+
425
+ # Remove `-o $object'.
426
+ IFS=" "
427
+ for arg
428
+ do
429
+ case $arg in
430
+ -o)
431
+ shift
432
+ ;;
433
+ $object)
434
+ shift
435
+ ;;
436
+ *)
437
+ set fnord "$@" "$arg"
438
+ shift # fnord
439
+ shift # $arg
440
+ ;;
441
+ esac
442
+ done
443
+
444
+ test -z "$dashmflag" && dashmflag=-M
445
+ # Require at least two characters before searching for `:'
446
+ # in the target name. This is to cope with DOS-style filenames:
447
+ # a dependency such as `c:/foo/bar' could be seen as target `c' otherwise.
448
+ "$@" $dashmflag |
449
+ sed 's:^[ ]*[^: ][^:][^:]*\:[ ]*:'"$object"'\: :' > "$tmpdepfile"
450
+ rm -f "$depfile"
451
+ cat < "$tmpdepfile" > "$depfile"
452
+ tr ' ' '
453
+ ' < "$tmpdepfile" | \
454
+ ## Some versions of the HPUX 10.20 sed can't process this invocation
455
+ ## correctly. Breaking it into two sed invocations is a workaround.
456
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
457
+ rm -f "$tmpdepfile"
458
+ ;;
459
+
460
+ dashXmstdout)
461
+ # This case only exists to satisfy depend.m4. It is never actually
462
+ # run, as this mode is specially recognized in the preamble.
463
+ exit 1
464
+ ;;
465
+
466
+ makedepend)
467
+ "$@" || exit $?
468
+ # Remove any Libtool call
469
+ if test "$libtool" = yes; then
470
+ while test "X$1" != 'X--mode=compile'; do
471
+ shift
472
+ done
473
+ shift
474
+ fi
475
+ # X makedepend
476
+ shift
477
+ cleared=no eat=no
478
+ for arg
479
+ do
480
+ case $cleared in
481
+ no)
482
+ set ""; shift
483
+ cleared=yes ;;
484
+ esac
485
+ if test $eat = yes; then
486
+ eat=no
487
+ continue
488
+ fi
489
+ case "$arg" in
490
+ -D*|-I*)
491
+ set fnord "$@" "$arg"; shift ;;
492
+ # Strip any option that makedepend may not understand. Remove
493
+ # the object too, otherwise makedepend will parse it as a source file.
494
+ -arch)
495
+ eat=yes ;;
496
+ -*|$object)
497
+ ;;
498
+ *)
499
+ set fnord "$@" "$arg"; shift ;;
500
+ esac
501
+ done
502
+ obj_suffix=`echo "$object" | sed 's/^.*\././'`
503
+ touch "$tmpdepfile"
504
+ ${MAKEDEPEND-makedepend} -o"$obj_suffix" -f"$tmpdepfile" "$@"
505
+ rm -f "$depfile"
506
+ cat < "$tmpdepfile" > "$depfile"
507
+ sed '1,2d' "$tmpdepfile" | tr ' ' '
508
+ ' | \
509
+ ## Some versions of the HPUX 10.20 sed can't process this invocation
510
+ ## correctly. Breaking it into two sed invocations is a workaround.
511
+ sed -e 's/^\\$//' -e '/^$/d' -e '/:$/d' | sed -e 's/$/ :/' >> "$depfile"
512
+ rm -f "$tmpdepfile" "$tmpdepfile".bak
513
+ ;;
514
+
515
+ cpp)
516
+ # Important note: in order to support this mode, a compiler *must*
517
+ # always write the preprocessed file to stdout.
518
+ "$@" || exit $?
519
+
520
+ # Remove the call to Libtool.
521
+ if test "$libtool" = yes; then
522
+ while test "X$1" != 'X--mode=compile'; do
523
+ shift
524
+ done
525
+ shift
526
+ fi
527
+
528
+ # Remove `-o $object'.
529
+ IFS=" "
530
+ for arg
531
+ do
532
+ case $arg in
533
+ -o)
534
+ shift
535
+ ;;
536
+ $object)
537
+ shift
538
+ ;;
539
+ *)
540
+ set fnord "$@" "$arg"
541
+ shift # fnord
542
+ shift # $arg
543
+ ;;
544
+ esac
545
+ done
546
+
547
+ "$@" -E |
548
+ sed -n -e '/^# [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' \
549
+ -e '/^#line [0-9][0-9]* "\([^"]*\)".*/ s:: \1 \\:p' |
550
+ sed '$ s: \\$::' > "$tmpdepfile"
551
+ rm -f "$depfile"
552
+ echo "$object : \\" > "$depfile"
553
+ cat < "$tmpdepfile" >> "$depfile"
554
+ sed < "$tmpdepfile" '/^$/d;s/^ //;s/ \\$//;s/$/ :/' >> "$depfile"
555
+ rm -f "$tmpdepfile"
556
+ ;;
557
+
558
+ msvisualcpp)
559
+ # Important note: in order to support this mode, a compiler *must*
560
+ # always write the preprocessed file to stdout.
561
+ "$@" || exit $?
562
+
563
+ # Remove the call to Libtool.
564
+ if test "$libtool" = yes; then
565
+ while test "X$1" != 'X--mode=compile'; do
566
+ shift
567
+ done
568
+ shift
569
+ fi
570
+
571
+ IFS=" "
572
+ for arg
573
+ do
574
+ case "$arg" in
575
+ -o)
576
+ shift
577
+ ;;
578
+ $object)
579
+ shift
580
+ ;;
581
+ "-Gm"|"/Gm"|"-Gi"|"/Gi"|"-ZI"|"/ZI")
582
+ set fnord "$@"
583
+ shift
584
+ shift
585
+ ;;
586
+ *)
587
+ set fnord "$@" "$arg"
588
+ shift
589
+ shift
590
+ ;;
591
+ esac
592
+ done
593
+ "$@" -E 2>/dev/null |
594
+ sed -n '/^#line [0-9][0-9]* "\([^"]*\)"/ s::\1:p' | $cygpath_u | sort -u > "$tmpdepfile"
595
+ rm -f "$depfile"
596
+ echo "$object : \\" > "$depfile"
597
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s:: \1 \\:p' >> "$depfile"
598
+ echo " " >> "$depfile"
599
+ sed < "$tmpdepfile" -n -e 's% %\\ %g' -e '/^\(.*\)$/ s::\1\::p' >> "$depfile"
600
+ rm -f "$tmpdepfile"
601
+ ;;
602
+
603
+ msvcmsys)
604
+ # This case exists only to let depend.m4 do its work. It works by
605
+ # looking at the text of this script. This case will never be run,
606
+ # since it is checked for above.
607
+ exit 1
608
+ ;;
609
+
610
+ none)
611
+ exec "$@"
612
+ ;;
613
+
614
+ *)
615
+ echo "Unknown depmode $depmode" 1>&2
616
+ exit 1
617
+ ;;
618
+ esac
619
+
620
+ exit 0
621
+
622
+ # Local Variables:
623
+ # mode: shell-script
624
+ # sh-indentation: 2
625
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
626
+ # time-stamp-start: "scriptversion="
627
+ # time-stamp-format: "%:y-%02m-%02d.%02H"
628
+ # time-stamp-time-zone: "UTC"
629
+ # time-stamp-end: "; # UTC"
630
+ # End: