snappy_ext 0.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. data/ext/snappy/extconf.rb +36 -0
  2. data/ext/snappy/snappy_ext.cc +131 -0
  3. data/ext/snappy/vendor/snappy-1.0.0/AUTHORS +1 -0
  4. data/ext/snappy/vendor/snappy-1.0.0/COPYING +28 -0
  5. data/ext/snappy/vendor/snappy-1.0.0/ChangeLog +3 -0
  6. data/ext/snappy/vendor/snappy-1.0.0/INSTALL +230 -0
  7. data/ext/snappy/vendor/snappy-1.0.0/Makefile.am +24 -0
  8. data/ext/snappy/vendor/snappy-1.0.0/Makefile.in +926 -0
  9. data/ext/snappy/vendor/snappy-1.0.0/NEWS +3 -0
  10. data/ext/snappy/vendor/snappy-1.0.0/README +132 -0
  11. data/ext/snappy/vendor/snappy-1.0.0/aclocal.m4 +9076 -0
  12. data/ext/snappy/vendor/snappy-1.0.0/autogen.sh +8 -0
  13. data/ext/snappy/vendor/snappy-1.0.0/compile +99 -0
  14. data/ext/snappy/vendor/snappy-1.0.0/config.guess +1466 -0
  15. data/ext/snappy/vendor/snappy-1.0.0/config.h.in +107 -0
  16. data/ext/snappy/vendor/snappy-1.0.0/config.sub +1579 -0
  17. data/ext/snappy/vendor/snappy-1.0.0/configure +17962 -0
  18. data/ext/snappy/vendor/snappy-1.0.0/configure.ac +99 -0
  19. data/ext/snappy/vendor/snappy-1.0.0/depcomp +530 -0
  20. data/ext/snappy/vendor/snappy-1.0.0/install-sh +323 -0
  21. data/ext/snappy/vendor/snappy-1.0.0/ltmain.sh +8413 -0
  22. data/ext/snappy/vendor/snappy-1.0.0/m4/gtest.m4 +74 -0
  23. data/ext/snappy/vendor/snappy-1.0.0/missing +360 -0
  24. data/ext/snappy/vendor/snappy-1.0.0/mkinstalldirs +158 -0
  25. data/ext/snappy/vendor/snappy-1.0.0/snappy-internal.h +136 -0
  26. data/ext/snappy/vendor/snappy-1.0.0/snappy-sinksource.cc +46 -0
  27. data/ext/snappy/vendor/snappy-1.0.0/snappy-sinksource.h +110 -0
  28. data/ext/snappy/vendor/snappy-1.0.0/snappy-stubs-internal.cc +28 -0
  29. data/ext/snappy/vendor/snappy-1.0.0/snappy-stubs-internal.h +457 -0
  30. data/ext/snappy/vendor/snappy-1.0.0/snappy-stubs-public.h +59 -0
  31. data/ext/snappy/vendor/snappy-1.0.0/snappy-stubs-public.h.in +59 -0
  32. data/ext/snappy/vendor/snappy-1.0.0/snappy-test.cc +523 -0
  33. data/ext/snappy/vendor/snappy-1.0.0/snappy-test.h +458 -0
  34. data/ext/snappy/vendor/snappy-1.0.0/snappy.cc +1001 -0
  35. data/ext/snappy/vendor/snappy-1.0.0/snappy.h +141 -0
  36. data/ext/snappy/vendor/snappy-1.0.0/snappy_unittest.cc +1073 -0
  37. data/ext/snappy/version.h +4 -0
  38. data/snappy_ext.gemspec +58 -0
  39. metadata +99 -0
@@ -0,0 +1,74 @@
1
+ dnl GTEST_LIB_CHECK([minimum version [,
2
+ dnl action if found [,action if not found]]])
3
+ dnl
4
+ dnl Check for the presence of the Google Test library, optionally at a minimum
5
+ dnl version, and indicate a viable version with the HAVE_GTEST flag. It defines
6
+ dnl standard variables for substitution including GTEST_CPPFLAGS,
7
+ dnl GTEST_CXXFLAGS, GTEST_LDFLAGS, and GTEST_LIBS. It also defines
8
+ dnl GTEST_VERSION as the version of Google Test found. Finally, it provides
9
+ dnl optional custom action slots in the event GTEST is found or not.
10
+ AC_DEFUN([GTEST_LIB_CHECK],
11
+ [
12
+ dnl Provide a flag to enable or disable Google Test usage.
13
+ AC_ARG_ENABLE([gtest],
14
+ [AS_HELP_STRING([--enable-gtest],
15
+ [Enable tests using the Google C++ Testing Framework.
16
+ (Default is enabled.)])],
17
+ [],
18
+ [enable_gtest=])
19
+ AC_ARG_VAR([GTEST_CONFIG],
20
+ [The exact path of Google Test's 'gtest-config' script.])
21
+ AC_ARG_VAR([GTEST_CPPFLAGS],
22
+ [C-like preprocessor flags for Google Test.])
23
+ AC_ARG_VAR([GTEST_CXXFLAGS],
24
+ [C++ compile flags for Google Test.])
25
+ AC_ARG_VAR([GTEST_LDFLAGS],
26
+ [Linker path and option flags for Google Test.])
27
+ AC_ARG_VAR([GTEST_LIBS],
28
+ [Library linking flags for Google Test.])
29
+ AC_ARG_VAR([GTEST_VERSION],
30
+ [The version of Google Test available.])
31
+ HAVE_GTEST="no"
32
+ AS_IF([test "x${enable_gtest}" != "xno"],
33
+ [AC_MSG_CHECKING([for 'gtest-config'])
34
+ AS_IF([test "x${enable_gtest}" = "xyes"],
35
+ [AS_IF([test -x "${enable_gtest}/scripts/gtest-config"],
36
+ [GTEST_CONFIG="${enable_gtest}/scripts/gtest-config"],
37
+ [GTEST_CONFIG="${enable_gtest}/bin/gtest-config"])
38
+ AS_IF([test -x "${GTEST_CONFIG}"], [],
39
+ [AC_MSG_RESULT([no])
40
+ AC_MSG_ERROR([dnl
41
+ Unable to locate either a built or installed Google Test.
42
+ The specific location '${enable_gtest}' was provided for a built or installed
43
+ Google Test, but no 'gtest-config' script could be found at this location.])
44
+ ])],
45
+ [AC_PATH_PROG([GTEST_CONFIG], [gtest-config])])
46
+ AS_IF([test -x "${GTEST_CONFIG}"],
47
+ [AC_MSG_RESULT([${GTEST_CONFIG}])
48
+ m4_ifval([$1],
49
+ [_gtest_min_version="--min-version=$1"
50
+ AC_MSG_CHECKING([for Google Test at least version >= $1])],
51
+ [_gtest_min_version="--min-version=0"
52
+ AC_MSG_CHECKING([for Google Test])])
53
+ AS_IF([${GTEST_CONFIG} ${_gtest_min_version}],
54
+ [AC_MSG_RESULT([yes])
55
+ HAVE_GTEST='yes'],
56
+ [AC_MSG_RESULT([no])])],
57
+ [AC_MSG_RESULT([no])])
58
+ AS_IF([test "x${HAVE_GTEST}" = "xyes"],
59
+ [GTEST_CPPFLAGS=`${GTEST_CONFIG} --cppflags`
60
+ GTEST_CXXFLAGS=`${GTEST_CONFIG} --cxxflags`
61
+ GTEST_LDFLAGS=`${GTEST_CONFIG} --ldflags`
62
+ GTEST_LIBS=`${GTEST_CONFIG} --libs`
63
+ GTEST_VERSION=`${GTEST_CONFIG} --version`
64
+ AC_DEFINE([HAVE_GTEST],[1],[Defined when Google Test is available.])],
65
+ [AS_IF([test "x${enable_gtest}" = "xyes"],
66
+ [AC_MSG_ERROR([dnl
67
+ Google Test was enabled, but no viable version could be found.])
68
+ ])])])
69
+ AC_SUBST([HAVE_GTEST])
70
+ AM_CONDITIONAL([HAVE_GTEST],[test "x$HAVE_GTEST" = "xyes"])
71
+ AS_IF([test "x$HAVE_GTEST" = "xyes"],
72
+ [m4_ifval([$2], [$2])],
73
+ [m4_ifval([$3], [$3])])
74
+ ])
@@ -0,0 +1,360 @@
1
+ #! /bin/sh
2
+ # Common stub for a few missing GNU programs while installing.
3
+
4
+ scriptversion=2005-06-08.21
5
+
6
+ # Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005
7
+ # Free Software Foundation, Inc.
8
+ # Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996.
9
+
10
+ # This program is free software; you can redistribute it and/or modify
11
+ # it under the terms of the GNU General Public License as published by
12
+ # the Free Software Foundation; either version 2, or (at your option)
13
+ # any later version.
14
+
15
+ # This program is distributed in the hope that it will be useful,
16
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
17
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
18
+ # GNU General Public License for more details.
19
+
20
+ # You should have received a copy of the GNU General Public License
21
+ # along with this program; if not, write to the Free Software
22
+ # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
23
+ # 02110-1301, USA.
24
+
25
+ # As a special exception to the GNU General Public License, if you
26
+ # distribute this file as part of a program that contains a
27
+ # configuration script generated by Autoconf, you may include it under
28
+ # the same distribution terms that you use for the rest of that program.
29
+
30
+ if test $# -eq 0; then
31
+ echo 1>&2 "Try \`$0 --help' for more information"
32
+ exit 1
33
+ fi
34
+
35
+ run=:
36
+
37
+ # In the cases where this matters, `missing' is being run in the
38
+ # srcdir already.
39
+ if test -f configure.ac; then
40
+ configure_ac=configure.ac
41
+ else
42
+ configure_ac=configure.in
43
+ fi
44
+
45
+ msg="missing on your system"
46
+
47
+ case "$1" in
48
+ --run)
49
+ # Try to run requested program, and just exit if it succeeds.
50
+ run=
51
+ shift
52
+ "$@" && exit 0
53
+ # Exit code 63 means version mismatch. This often happens
54
+ # when the user try to use an ancient version of a tool on
55
+ # a file that requires a minimum version. In this case we
56
+ # we should proceed has if the program had been absent, or
57
+ # if --run hadn't been passed.
58
+ if test $? = 63; then
59
+ run=:
60
+ msg="probably too old"
61
+ fi
62
+ ;;
63
+
64
+ -h|--h|--he|--hel|--help)
65
+ echo "\
66
+ $0 [OPTION]... PROGRAM [ARGUMENT]...
67
+
68
+ Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an
69
+ error status if there is no known handling for PROGRAM.
70
+
71
+ Options:
72
+ -h, --help display this help and exit
73
+ -v, --version output version information and exit
74
+ --run try to run the given command, and emulate it if it fails
75
+
76
+ Supported PROGRAM values:
77
+ aclocal touch file \`aclocal.m4'
78
+ autoconf touch file \`configure'
79
+ autoheader touch file \`config.h.in'
80
+ automake touch all \`Makefile.in' files
81
+ bison create \`y.tab.[ch]', if possible, from existing .[ch]
82
+ flex create \`lex.yy.c', if possible, from existing .c
83
+ help2man touch the output file
84
+ lex create \`lex.yy.c', if possible, from existing .c
85
+ makeinfo touch the output file
86
+ tar try tar, gnutar, gtar, then tar without non-portable flags
87
+ yacc create \`y.tab.[ch]', if possible, from existing .[ch]
88
+
89
+ Send bug reports to <bug-automake@gnu.org>."
90
+ exit $?
91
+ ;;
92
+
93
+ -v|--v|--ve|--ver|--vers|--versi|--versio|--version)
94
+ echo "missing $scriptversion (GNU Automake)"
95
+ exit $?
96
+ ;;
97
+
98
+ -*)
99
+ echo 1>&2 "$0: Unknown \`$1' option"
100
+ echo 1>&2 "Try \`$0 --help' for more information"
101
+ exit 1
102
+ ;;
103
+
104
+ esac
105
+
106
+ # Now exit if we have it, but it failed. Also exit now if we
107
+ # don't have it and --version was passed (most likely to detect
108
+ # the program).
109
+ case "$1" in
110
+ lex|yacc)
111
+ # Not GNU programs, they don't have --version.
112
+ ;;
113
+
114
+ tar)
115
+ if test -n "$run"; then
116
+ echo 1>&2 "ERROR: \`tar' requires --run"
117
+ exit 1
118
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
119
+ exit 1
120
+ fi
121
+ ;;
122
+
123
+ *)
124
+ if test -z "$run" && ($1 --version) > /dev/null 2>&1; then
125
+ # We have it, but it failed.
126
+ exit 1
127
+ elif test "x$2" = "x--version" || test "x$2" = "x--help"; then
128
+ # Could not run --version or --help. This is probably someone
129
+ # running `$TOOL --version' or `$TOOL --help' to check whether
130
+ # $TOOL exists and not knowing $TOOL uses missing.
131
+ exit 1
132
+ fi
133
+ ;;
134
+ esac
135
+
136
+ # If it does not exist, or fails to run (possibly an outdated version),
137
+ # try to emulate it.
138
+ case "$1" in
139
+ aclocal*)
140
+ echo 1>&2 "\
141
+ WARNING: \`$1' is $msg. You should only need it if
142
+ you modified \`acinclude.m4' or \`${configure_ac}'. You might want
143
+ to install the \`Automake' and \`Perl' packages. Grab them from
144
+ any GNU archive site."
145
+ touch aclocal.m4
146
+ ;;
147
+
148
+ autoconf)
149
+ echo 1>&2 "\
150
+ WARNING: \`$1' is $msg. You should only need it if
151
+ you modified \`${configure_ac}'. You might want to install the
152
+ \`Autoconf' and \`GNU m4' packages. Grab them from any GNU
153
+ archive site."
154
+ touch configure
155
+ ;;
156
+
157
+ autoheader)
158
+ echo 1>&2 "\
159
+ WARNING: \`$1' is $msg. You should only need it if
160
+ you modified \`acconfig.h' or \`${configure_ac}'. You might want
161
+ to install the \`Autoconf' and \`GNU m4' packages. Grab them
162
+ from any GNU archive site."
163
+ files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}`
164
+ test -z "$files" && files="config.h"
165
+ touch_files=
166
+ for f in $files; do
167
+ case "$f" in
168
+ *:*) touch_files="$touch_files "`echo "$f" |
169
+ sed -e 's/^[^:]*://' -e 's/:.*//'`;;
170
+ *) touch_files="$touch_files $f.in";;
171
+ esac
172
+ done
173
+ touch $touch_files
174
+ ;;
175
+
176
+ automake*)
177
+ echo 1>&2 "\
178
+ WARNING: \`$1' is $msg. You should only need it if
179
+ you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'.
180
+ You might want to install the \`Automake' and \`Perl' packages.
181
+ Grab them from any GNU archive site."
182
+ find . -type f -name Makefile.am -print |
183
+ sed 's/\.am$/.in/' |
184
+ while read f; do touch "$f"; done
185
+ ;;
186
+
187
+ autom4te)
188
+ echo 1>&2 "\
189
+ WARNING: \`$1' is needed, but is $msg.
190
+ You might have modified some files without having the
191
+ proper tools for further handling them.
192
+ You can get \`$1' as part of \`Autoconf' from any GNU
193
+ archive site."
194
+
195
+ file=`echo "$*" | sed -n 's/.*--output[ =]*\([^ ]*\).*/\1/p'`
196
+ test -z "$file" && file=`echo "$*" | sed -n 's/.*-o[ ]*\([^ ]*\).*/\1/p'`
197
+ if test -f "$file"; then
198
+ touch $file
199
+ else
200
+ test -z "$file" || exec >$file
201
+ echo "#! /bin/sh"
202
+ echo "# Created by GNU Automake missing as a replacement of"
203
+ echo "# $ $@"
204
+ echo "exit 0"
205
+ chmod +x $file
206
+ exit 1
207
+ fi
208
+ ;;
209
+
210
+ bison|yacc)
211
+ echo 1>&2 "\
212
+ WARNING: \`$1' $msg. You should only need it if
213
+ you modified a \`.y' file. You may need the \`Bison' package
214
+ in order for those modifications to take effect. You can get
215
+ \`Bison' from any GNU archive site."
216
+ rm -f y.tab.c y.tab.h
217
+ if [ $# -ne 1 ]; then
218
+ eval LASTARG="\${$#}"
219
+ case "$LASTARG" in
220
+ *.y)
221
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'`
222
+ if [ -f "$SRCFILE" ]; then
223
+ cp "$SRCFILE" y.tab.c
224
+ fi
225
+ SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'`
226
+ if [ -f "$SRCFILE" ]; then
227
+ cp "$SRCFILE" y.tab.h
228
+ fi
229
+ ;;
230
+ esac
231
+ fi
232
+ if [ ! -f y.tab.h ]; then
233
+ echo >y.tab.h
234
+ fi
235
+ if [ ! -f y.tab.c ]; then
236
+ echo 'main() { return 0; }' >y.tab.c
237
+ fi
238
+ ;;
239
+
240
+ lex|flex)
241
+ echo 1>&2 "\
242
+ WARNING: \`$1' is $msg. You should only need it if
243
+ you modified a \`.l' file. You may need the \`Flex' package
244
+ in order for those modifications to take effect. You can get
245
+ \`Flex' from any GNU archive site."
246
+ rm -f lex.yy.c
247
+ if [ $# -ne 1 ]; then
248
+ eval LASTARG="\${$#}"
249
+ case "$LASTARG" in
250
+ *.l)
251
+ SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'`
252
+ if [ -f "$SRCFILE" ]; then
253
+ cp "$SRCFILE" lex.yy.c
254
+ fi
255
+ ;;
256
+ esac
257
+ fi
258
+ if [ ! -f lex.yy.c ]; then
259
+ echo 'main() { return 0; }' >lex.yy.c
260
+ fi
261
+ ;;
262
+
263
+ help2man)
264
+ echo 1>&2 "\
265
+ WARNING: \`$1' is $msg. You should only need it if
266
+ you modified a dependency of a manual page. You may need the
267
+ \`Help2man' package in order for those modifications to take
268
+ effect. You can get \`Help2man' from any GNU archive site."
269
+
270
+ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
271
+ if test -z "$file"; then
272
+ file=`echo "$*" | sed -n 's/.*--output=\([^ ]*\).*/\1/p'`
273
+ fi
274
+ if [ -f "$file" ]; then
275
+ touch $file
276
+ else
277
+ test -z "$file" || exec >$file
278
+ echo ".ab help2man is required to generate this page"
279
+ exit 1
280
+ fi
281
+ ;;
282
+
283
+ makeinfo)
284
+ echo 1>&2 "\
285
+ WARNING: \`$1' is $msg. You should only need it if
286
+ you modified a \`.texi' or \`.texinfo' file, or any other file
287
+ indirectly affecting the aspect of the manual. The spurious
288
+ call might also be the consequence of using a buggy \`make' (AIX,
289
+ DU, IRIX). You might want to install the \`Texinfo' package or
290
+ the \`GNU make' package. Grab either from any GNU archive site."
291
+ # The file to touch is that specified with -o ...
292
+ file=`echo "$*" | sed -n 's/.*-o \([^ ]*\).*/\1/p'`
293
+ if test -z "$file"; then
294
+ # ... or it is the one specified with @setfilename ...
295
+ infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'`
296
+ file=`sed -n '/^@setfilename/ { s/.* \([^ ]*\) *$/\1/; p; q; }' $infile`
297
+ # ... or it is derived from the source name (dir/f.texi becomes f.info)
298
+ test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info
299
+ fi
300
+ # If the file does not exist, the user really needs makeinfo;
301
+ # let's fail without touching anything.
302
+ test -f $file || exit 1
303
+ touch $file
304
+ ;;
305
+
306
+ tar)
307
+ shift
308
+
309
+ # We have already tried tar in the generic part.
310
+ # Look for gnutar/gtar before invocation to avoid ugly error
311
+ # messages.
312
+ if (gnutar --version > /dev/null 2>&1); then
313
+ gnutar "$@" && exit 0
314
+ fi
315
+ if (gtar --version > /dev/null 2>&1); then
316
+ gtar "$@" && exit 0
317
+ fi
318
+ firstarg="$1"
319
+ if shift; then
320
+ case "$firstarg" in
321
+ *o*)
322
+ firstarg=`echo "$firstarg" | sed s/o//`
323
+ tar "$firstarg" "$@" && exit 0
324
+ ;;
325
+ esac
326
+ case "$firstarg" in
327
+ *h*)
328
+ firstarg=`echo "$firstarg" | sed s/h//`
329
+ tar "$firstarg" "$@" && exit 0
330
+ ;;
331
+ esac
332
+ fi
333
+
334
+ echo 1>&2 "\
335
+ WARNING: I can't seem to be able to run \`tar' with the given arguments.
336
+ You may want to install GNU tar or Free paxutils, or check the
337
+ command line arguments."
338
+ exit 1
339
+ ;;
340
+
341
+ *)
342
+ echo 1>&2 "\
343
+ WARNING: \`$1' is needed, and is $msg.
344
+ You might have modified some files without having the
345
+ proper tools for further handling them. Check the \`README' file,
346
+ it often tells you about the needed prerequisites for installing
347
+ this package. You may also peek at any GNU archive site, in case
348
+ some other package would contain this missing \`$1' program."
349
+ exit 1
350
+ ;;
351
+ esac
352
+
353
+ exit 0
354
+
355
+ # Local variables:
356
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
357
+ # time-stamp-start: "scriptversion="
358
+ # time-stamp-format: "%:y-%02m-%02d.%02H"
359
+ # time-stamp-end: "$"
360
+ # End:
@@ -0,0 +1,158 @@
1
+ #! /bin/sh
2
+ # mkinstalldirs --- make directory hierarchy
3
+
4
+ scriptversion=2005-06-29.22
5
+
6
+ # Original author: Noah Friedman <friedman@prep.ai.mit.edu>
7
+ # Created: 1993-05-16
8
+ # Public domain.
9
+ #
10
+ # This file is maintained in Automake, please report
11
+ # bugs to <bug-automake@gnu.org> or send patches to
12
+ # <automake-patches@gnu.org>.
13
+
14
+ errstatus=0
15
+ dirmode=
16
+
17
+ usage="\
18
+ Usage: mkinstalldirs [-h] [--help] [--version] [-m MODE] DIR ...
19
+
20
+ Create each directory DIR (with mode MODE, if specified), including all
21
+ leading file name components.
22
+
23
+ Report bugs to <bug-automake@gnu.org>."
24
+
25
+ # process command line arguments
26
+ while test $# -gt 0 ; do
27
+ case $1 in
28
+ -h | --help | --h*) # -h for help
29
+ echo "$usage"
30
+ exit $?
31
+ ;;
32
+ -m) # -m PERM arg
33
+ shift
34
+ test $# -eq 0 && { echo "$usage" 1>&2; exit 1; }
35
+ dirmode=$1
36
+ shift
37
+ ;;
38
+ --version)
39
+ echo "$0 $scriptversion"
40
+ exit $?
41
+ ;;
42
+ --) # stop option processing
43
+ shift
44
+ break
45
+ ;;
46
+ -*) # unknown option
47
+ echo "$usage" 1>&2
48
+ exit 1
49
+ ;;
50
+ *) # first non-opt arg
51
+ break
52
+ ;;
53
+ esac
54
+ done
55
+
56
+ for file
57
+ do
58
+ if test -d "$file"; then
59
+ shift
60
+ else
61
+ break
62
+ fi
63
+ done
64
+
65
+ case $# in
66
+ 0) exit 0 ;;
67
+ esac
68
+
69
+ # Solaris 8's mkdir -p isn't thread-safe. If you mkdir -p a/b and
70
+ # mkdir -p a/c at the same time, both will detect that a is missing,
71
+ # one will create a, then the other will try to create a and die with
72
+ # a "File exists" error. This is a problem when calling mkinstalldirs
73
+ # from a parallel make. We use --version in the probe to restrict
74
+ # ourselves to GNU mkdir, which is thread-safe.
75
+ case $dirmode in
76
+ '')
77
+ if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
78
+ echo "mkdir -p -- $*"
79
+ exec mkdir -p -- "$@"
80
+ else
81
+ # On NextStep and OpenStep, the `mkdir' command does not
82
+ # recognize any option. It will interpret all options as
83
+ # directories to create, and then abort because `.' already
84
+ # exists.
85
+ test -d ./-p && rmdir ./-p
86
+ test -d ./--version && rmdir ./--version
87
+ fi
88
+ ;;
89
+ *)
90
+ if mkdir -m "$dirmode" -p --version . >/dev/null 2>&1 &&
91
+ test ! -d ./--version; then
92
+ echo "mkdir -m $dirmode -p -- $*"
93
+ exec mkdir -m "$dirmode" -p -- "$@"
94
+ else
95
+ # Clean up after NextStep and OpenStep mkdir.
96
+ for d in ./-m ./-p ./--version "./$dirmode";
97
+ do
98
+ test -d $d && rmdir $d
99
+ done
100
+ fi
101
+ ;;
102
+ esac
103
+
104
+ for file
105
+ do
106
+ case $file in
107
+ /*) pathcomp=/ ;;
108
+ *) pathcomp= ;;
109
+ esac
110
+ oIFS=$IFS
111
+ IFS=/
112
+ set fnord $file
113
+ shift
114
+ IFS=$oIFS
115
+
116
+ for d
117
+ do
118
+ test "x$d" = x && continue
119
+
120
+ pathcomp=$pathcomp$d
121
+ case $pathcomp in
122
+ -*) pathcomp=./$pathcomp ;;
123
+ esac
124
+
125
+ if test ! -d "$pathcomp"; then
126
+ echo "mkdir $pathcomp"
127
+
128
+ mkdir "$pathcomp" || lasterr=$?
129
+
130
+ if test ! -d "$pathcomp"; then
131
+ errstatus=$lasterr
132
+ else
133
+ if test ! -z "$dirmode"; then
134
+ echo "chmod $dirmode $pathcomp"
135
+ lasterr=
136
+ chmod "$dirmode" "$pathcomp" || lasterr=$?
137
+
138
+ if test ! -z "$lasterr"; then
139
+ errstatus=$lasterr
140
+ fi
141
+ fi
142
+ fi
143
+ fi
144
+
145
+ pathcomp=$pathcomp/
146
+ done
147
+ done
148
+
149
+ exit $errstatus
150
+
151
+ # Local Variables:
152
+ # mode: shell-script
153
+ # sh-indentation: 2
154
+ # eval: (add-hook 'write-file-hooks 'time-stamp)
155
+ # time-stamp-start: "scriptversion="
156
+ # time-stamp-format: "%:y-%02m-%02d.%02H"
157
+ # time-stamp-end: "$"
158
+ # End: