google_hash 0.0.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.
Files changed (85) hide show
  1. data/README +21 -0
  2. data/Rakefile +11 -0
  3. data/VERSION +1 -0
  4. data/ext/extconf.rb +15 -0
  5. data/ext/go.cpp +109 -0
  6. data/ext/sparsehash-1.5.2/AUTHORS +2 -0
  7. data/ext/sparsehash-1.5.2/COPYING +28 -0
  8. data/ext/sparsehash-1.5.2/ChangeLog +167 -0
  9. data/ext/sparsehash-1.5.2/INSTALL +236 -0
  10. data/ext/sparsehash-1.5.2/Makefile.am +157 -0
  11. data/ext/sparsehash-1.5.2/Makefile.in +1019 -0
  12. data/ext/sparsehash-1.5.2/NEWS +0 -0
  13. data/ext/sparsehash-1.5.2/README +149 -0
  14. data/ext/sparsehash-1.5.2/README.windows +25 -0
  15. data/ext/sparsehash-1.5.2/TODO +28 -0
  16. data/ext/sparsehash-1.5.2/aclocal.m4 +868 -0
  17. data/ext/sparsehash-1.5.2/compile +99 -0
  18. data/ext/sparsehash-1.5.2/config.guess +1516 -0
  19. data/ext/sparsehash-1.5.2/config.sub +1626 -0
  20. data/ext/sparsehash-1.5.2/configure +8054 -0
  21. data/ext/sparsehash-1.5.2/configure.ac +74 -0
  22. data/ext/sparsehash-1.5.2/depcomp +530 -0
  23. data/ext/sparsehash-1.5.2/doc/dense_hash_map.html +1591 -0
  24. data/ext/sparsehash-1.5.2/doc/dense_hash_set.html +1445 -0
  25. data/ext/sparsehash-1.5.2/doc/designstyle.css +115 -0
  26. data/ext/sparsehash-1.5.2/doc/implementation.html +365 -0
  27. data/ext/sparsehash-1.5.2/doc/index.html +69 -0
  28. data/ext/sparsehash-1.5.2/doc/performance.html +96 -0
  29. data/ext/sparsehash-1.5.2/doc/sparse_hash_map.html +1527 -0
  30. data/ext/sparsehash-1.5.2/doc/sparse_hash_set.html +1376 -0
  31. data/ext/sparsehash-1.5.2/doc/sparsetable.html +1393 -0
  32. data/ext/sparsehash-1.5.2/experimental/Makefile +9 -0
  33. data/ext/sparsehash-1.5.2/experimental/README +14 -0
  34. data/ext/sparsehash-1.5.2/experimental/example.c +54 -0
  35. data/ext/sparsehash-1.5.2/experimental/libchash.c +1537 -0
  36. data/ext/sparsehash-1.5.2/experimental/libchash.h +252 -0
  37. data/ext/sparsehash-1.5.2/google-sparsehash.sln +47 -0
  38. data/ext/sparsehash-1.5.2/install-sh +323 -0
  39. data/ext/sparsehash-1.5.2/m4/acx_pthread.m4 +363 -0
  40. data/ext/sparsehash-1.5.2/m4/google_namespace.m4 +42 -0
  41. data/ext/sparsehash-1.5.2/m4/namespaces.m4 +15 -0
  42. data/ext/sparsehash-1.5.2/m4/stl_hash.m4 +70 -0
  43. data/ext/sparsehash-1.5.2/m4/stl_hash_fun.m4 +36 -0
  44. data/ext/sparsehash-1.5.2/m4/stl_namespace.m4 +25 -0
  45. data/ext/sparsehash-1.5.2/missing +360 -0
  46. data/ext/sparsehash-1.5.2/mkinstalldirs +158 -0
  47. data/ext/sparsehash-1.5.2/packages/deb.sh +74 -0
  48. data/ext/sparsehash-1.5.2/packages/deb/README +7 -0
  49. data/ext/sparsehash-1.5.2/packages/deb/changelog +107 -0
  50. data/ext/sparsehash-1.5.2/packages/deb/compat +1 -0
  51. data/ext/sparsehash-1.5.2/packages/deb/control +17 -0
  52. data/ext/sparsehash-1.5.2/packages/deb/copyright +35 -0
  53. data/ext/sparsehash-1.5.2/packages/deb/docs +16 -0
  54. data/ext/sparsehash-1.5.2/packages/deb/rules +117 -0
  55. data/ext/sparsehash-1.5.2/packages/deb/sparsehash.dirs +2 -0
  56. data/ext/sparsehash-1.5.2/packages/deb/sparsehash.install +2 -0
  57. data/ext/sparsehash-1.5.2/packages/rpm.sh +86 -0
  58. data/ext/sparsehash-1.5.2/packages/rpm/rpm.spec +61 -0
  59. data/ext/sparsehash-1.5.2/src/config.h.in +131 -0
  60. data/ext/sparsehash-1.5.2/src/config.h.include +23 -0
  61. data/ext/sparsehash-1.5.2/src/google/dense_hash_map +310 -0
  62. data/ext/sparsehash-1.5.2/src/google/dense_hash_set +287 -0
  63. data/ext/sparsehash-1.5.2/src/google/sparse_hash_map +294 -0
  64. data/ext/sparsehash-1.5.2/src/google/sparse_hash_set +275 -0
  65. data/ext/sparsehash-1.5.2/src/google/sparsehash/densehashtable.h +1062 -0
  66. data/ext/sparsehash-1.5.2/src/google/sparsehash/sparsehashtable.h +1015 -0
  67. data/ext/sparsehash-1.5.2/src/google/sparsetable +1468 -0
  68. data/ext/sparsehash-1.5.2/src/google/type_traits.h +250 -0
  69. data/ext/sparsehash-1.5.2/src/hashtable_unittest.cc +1375 -0
  70. data/ext/sparsehash-1.5.2/src/simple_test.cc +103 -0
  71. data/ext/sparsehash-1.5.2/src/sparsetable_unittest.cc +696 -0
  72. data/ext/sparsehash-1.5.2/src/time_hash_map.cc +488 -0
  73. data/ext/sparsehash-1.5.2/src/type_traits_unittest.cc +492 -0
  74. data/ext/sparsehash-1.5.2/src/windows/config.h +149 -0
  75. data/ext/sparsehash-1.5.2/src/windows/google/sparsehash/sparseconfig.h +32 -0
  76. data/ext/sparsehash-1.5.2/src/windows/port.cc +63 -0
  77. data/ext/sparsehash-1.5.2/src/windows/port.h +81 -0
  78. data/ext/sparsehash-1.5.2/src/words +8944 -0
  79. data/ext/sparsehash-1.5.2/vsprojects/hashtable_unittest/hashtable_unittest.vcproj +187 -0
  80. data/ext/sparsehash-1.5.2/vsprojects/sparsetable_unittest/sparsetable_unittest.vcproj +172 -0
  81. data/ext/sparsehash-1.5.2/vsprojects/time_hash_map/time_hash_map.vcproj +187 -0
  82. data/ext/sparsehash-1.5.2/vsprojects/type_traits_unittest/type_traits_unittest.vcproj +169 -0
  83. data/ext/test.rb +10 -0
  84. data/test/spec.go +70 -0
  85. metadata +147 -0
File without changes
@@ -0,0 +1,149 @@
1
+ This directory contains several hash-map implementations, similar in
2
+ API to SGI's hash_map class, but with different performance
3
+ characteristics. sparse_hash_map uses very little space overhead, 1-2
4
+ bits per entry. dense_hash_map is very fast, particulary on lookup.
5
+ (sparse_hash_set and dense_hash_set are the set versions of these
6
+ routines.) On the other hand, these classes have requirements that
7
+ may not make them appropriate for all applications.
8
+
9
+ All these implementation use a hashtable with internal quadratic
10
+ probing. This method is space-efficient -- there is no pointer
11
+ overhead -- and time-efficient for good hash functions.
12
+
13
+ COMPILING
14
+ ---------
15
+ To compile test applications with these classes, run ./configure
16
+ followed by make. To install these header files on your system, run
17
+ 'make install'. (On Windows, the instructions are different; see
18
+ README.windows.) See INSTALL for more details.
19
+
20
+ This code should work on any modern C++ system. It has been tested on
21
+ Linux (Ubuntu, Fedora, RedHat, Debian), Solaris 10 x86, FreeBSD 6.0,
22
+ OS X 10.3 and 10.4, and Windows under both VC++7 and VC++8.
23
+
24
+ USING
25
+ -----
26
+ See the html files in the doc directory for small example programs
27
+ that use these classes. It's enough to just include the header file:
28
+
29
+ #include <google/sparse_hash_map> // or sparse_hash_set, dense_hash_map, ...
30
+ google::sparse_hash_set<int, int> number_mapper;
31
+
32
+ and use the class the way you would other hash-map implementations.
33
+ (Though see "API" below for caveats.)
34
+
35
+ By default (you can change it via a flag to ./configure), these hash
36
+ implementations are defined in the google namespace.
37
+
38
+ API
39
+ ---
40
+ The API for sparse_hash_map, dense_hash_map, sparse_hash_set, and
41
+ dense_hash_set, are a superset of the API of SGI's hash_map class.
42
+ See doc/sparse_hash_map.html, et al., for more information about the
43
+ API.
44
+
45
+ The usage of these classes differ from SGI's hash_map, and other
46
+ hashtable implementations, in the following major ways:
47
+
48
+ 1) dense_hash_map requires you to set aside one key value as the
49
+ 'empty bucket' value, set via the set_empty_key() method. This
50
+ *MUST* be called before you can use the dense_hash_map. It is
51
+ illegal to insert any elements into a dense_hash_map whose key is
52
+ equal to the empty-key.
53
+
54
+ 2) For both dense_hash_map and sparse_hash_map, if you wish to delete
55
+ elements from the hashtable, you must set aside a key value as the
56
+ 'deleted bucket' value, set via the set_deleted_key() method. If
57
+ your hash-map is insert-only, there is no need to call this
58
+ method. If you call set_deleted_key(), it is illegal to insert any
59
+ elements into a dense_hash_map or sparse_hash_map whose key is
60
+ equal to the deleted-key.
61
+
62
+ 3) These hash-map implementation support I/O. See below.
63
+
64
+ There are also some smaller differences:
65
+
66
+ 1) The constructor takes an optional argument that specifies the
67
+ number of elements you expect to insert into the hashtable. This
68
+ differs from SGI's hash_map implementation, which takes an optional
69
+ number of buckets.
70
+
71
+ 2) erase() does not immediately reclaim memory. As a consequence,
72
+ erase() does not invalidate any iterators, making loops like this
73
+ correct:
74
+ for (it = ht.begin(); it != ht.end(); ++it)
75
+ if (...) ht.erase(it);
76
+ As another consequence, a series of erase() calls can leave your
77
+ hashtable using more memory than it needs to. The hashtable will
78
+ automatically compact() at the next call to insert(), but to
79
+ manually compact a hashtable, you can call
80
+ ht.resize(0)
81
+
82
+ 3) While sparse_hash_map et al. accept an Allocator template argument,
83
+ they ignore it. They use malloc() and free() for all memory
84
+ allocations.
85
+
86
+ 4) sparse_hash_map et al. do not use exceptions.
87
+
88
+ I/O
89
+ ---
90
+ In addition to the normal hash-map operations, sparse_hash_map can
91
+ read and write hashtables to disk. (dense_hash_map also has the API,
92
+ but it has not yet been implemented, and writes will always fail.)
93
+
94
+ In the simplest case, writing a hashtable is as easy as calling two
95
+ methods on the hashtable:
96
+ ht.write_metadata(fp);
97
+ ht.write_nopointer_data(fp);
98
+
99
+ Reading in this data is equally simple:
100
+ google::sparse_hash_map<...> ht;
101
+ ht.read_metadata(fp);
102
+ ht.read_nopointer_data(fp);
103
+
104
+ The above is sufficient if the key and value do not contain any
105
+ pointers: they are basic C types or agglomorations of basic C types.
106
+ If the key and/or value do contain pointers, you can still store the
107
+ hashtable by replacing write_nopointer_data() with a custom writing
108
+ routine. See sparse_hash_map.html et al. for more information.
109
+
110
+ SPARSETABLE
111
+ -----------
112
+ In addition to the hash-map and hash-set classes, this package also
113
+ provides sparsetable.h, an array implementation that uses space
114
+ proportional to the number of elements in the array, rather than the
115
+ maximum element index. It uses very little space overhead: 1 bit per
116
+ entry. See doc/sparsetable.html for the API.
117
+
118
+ RESOURCE USAGE
119
+ --------------
120
+ * sparse_hash_map has memory overhead of about 2 bits per hash-map
121
+ entry.
122
+ * dense_hash_map has a factor of 2-3 memory overhead: if your
123
+ hashtable data takes X bytes, dense_hash_map will use 3X-4X memory
124
+ total.
125
+
126
+ Hashtables tend to double in size when resizing, creating an
127
+ additional 50% space overhead. dense_hash_map does in fact have a
128
+ significant "high water mark" memory use requirement.
129
+ sparse_hash_map, however, is written to need very little space
130
+ overhead when resizing: only a few bits per hashtable entry.
131
+
132
+ PERFORMANCE
133
+ -----------
134
+ You can compile and run the included file time_hash_map.cc to examine
135
+ the performance of sparse_hash_map, dense_hash_map, and your native
136
+ hash_map implementation on your system. One test against the
137
+ SGI hash_map implementation gave the following timing information for
138
+ a simple find() call:
139
+ SGI hash_map: 22 ns
140
+ dense_hash_map: 13 ns
141
+ sparse_hash_map: 117 ns
142
+ SGI map: 113 ns
143
+
144
+ See doc/performance.html for more detailed charts on resource usage
145
+ and performance data.
146
+
147
+ ---
148
+ 16 March 2005
149
+ (Last updated: 20 March 2007)
@@ -0,0 +1,25 @@
1
+ This project has been ported to Windows. A working solution file
2
+ exists in this directory:
3
+ google-sparsehash.sln
4
+
5
+ You can load this solution file into either VC++ 7.1 (Visual Studio
6
+ 2003) or VC++ 8.0 (Visual Studio 2005) -- in the latter case, it will
7
+ automatically convert the files to the latest format for you.
8
+
9
+ When you build the solution, it will create a number of
10
+ unittests,which you can run by hand (or, more easily, under the Visual
11
+ Studio debugger) to make sure everything is working properly on your
12
+ system. The binaries will end up in a directory called "debug" or
13
+ "release" in the top-level directory (next to the .sln file).
14
+
15
+ Note that these systems are set to build in Debug mode by default.
16
+ You may want to change them to Release mode.
17
+
18
+ I have little experience with Windows programming, so there may be
19
+ better ways to set this up than I've done! If you run across any
20
+ problems, please post to the google-sparsehash Google Group, or report
21
+ them on the google-sparsehash Google Code site:
22
+ http://groups.google.com/group/google-sparsehash
23
+ http://code.google.com/p/google-sparsehash/issues/list
24
+
25
+ -- craig
@@ -0,0 +1,28 @@
1
+ 1) TODO: I/O implementation in densehashtable.h
2
+
3
+ 2) TODO: document SPARSEHASH_STAT_UPDATE macro, and also macros that
4
+ tweak performance. Perhaps add support to these to the API?
5
+
6
+ 3) TODO: support exceptions?
7
+
8
+ 4) BUG: sparsetable's operator[] doesn't work well with printf: you
9
+ need to explicitly cast the result to value_type to print it. (It
10
+ works fine with streams.)
11
+
12
+ 5) TODO: consider rewriting dense_hash_map to use a 'groups' scheme,
13
+ like sparsetable, but without the sparse-allocation within a
14
+ group. This makes resizing have better memory-use properties. The
15
+ downside is that probes across groups might take longer since
16
+ groups are not contiguous in memory. Making groups the same size
17
+ as a cache-line, and ensuring they're loaded on cache-line
18
+ boundaries, might help. Needs careful testing to make sure it
19
+ doesn't hurt performance.
20
+
21
+ 6) TODO: Get the C-only version of sparsehash in experimental/ ready
22
+ for prime-time.
23
+
24
+ 7) TODO: use cmake (www.cmake.org) to make it easy to isntall this on
25
+ a windows system.
26
+
27
+ ---
28
+ 28 February 2007
@@ -0,0 +1,868 @@
1
+ # generated automatically by aclocal 1.9.6 -*- Autoconf -*-
2
+
3
+ # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
4
+ # 2005 Free Software Foundation, Inc.
5
+ # This file is free software; the Free Software Foundation
6
+ # gives unlimited permission to copy and/or distribute it,
7
+ # with or without modifications, as long as this notice is preserved.
8
+
9
+ # This program is distributed in the hope that it will be useful,
10
+ # but WITHOUT ANY WARRANTY, to the extent permitted by law; without
11
+ # even the implied warranty of MERCHANTABILITY or FITNESS FOR A
12
+ # PARTICULAR PURPOSE.
13
+
14
+ # Copyright (C) 2002, 2003, 2005 Free Software Foundation, Inc.
15
+ #
16
+ # This file is free software; the Free Software Foundation
17
+ # gives unlimited permission to copy and/or distribute it,
18
+ # with or without modifications, as long as this notice is preserved.
19
+
20
+ # AM_AUTOMAKE_VERSION(VERSION)
21
+ # ----------------------------
22
+ # Automake X.Y traces this macro to ensure aclocal.m4 has been
23
+ # generated from the m4 files accompanying Automake X.Y.
24
+ AC_DEFUN([AM_AUTOMAKE_VERSION], [am__api_version="1.9"])
25
+
26
+ # AM_SET_CURRENT_AUTOMAKE_VERSION
27
+ # -------------------------------
28
+ # Call AM_AUTOMAKE_VERSION so it can be traced.
29
+ # This function is AC_REQUIREd by AC_INIT_AUTOMAKE.
30
+ AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION],
31
+ [AM_AUTOMAKE_VERSION([1.9.6])])
32
+
33
+ # AM_AUX_DIR_EXPAND -*- Autoconf -*-
34
+
35
+ # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
36
+ #
37
+ # This file is free software; the Free Software Foundation
38
+ # gives unlimited permission to copy and/or distribute it,
39
+ # with or without modifications, as long as this notice is preserved.
40
+
41
+ # For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets
42
+ # $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to
43
+ # `$srcdir', `$srcdir/..', or `$srcdir/../..'.
44
+ #
45
+ # Of course, Automake must honor this variable whenever it calls a
46
+ # tool from the auxiliary directory. The problem is that $srcdir (and
47
+ # therefore $ac_aux_dir as well) can be either absolute or relative,
48
+ # depending on how configure is run. This is pretty annoying, since
49
+ # it makes $ac_aux_dir quite unusable in subdirectories: in the top
50
+ # source directory, any form will work fine, but in subdirectories a
51
+ # relative path needs to be adjusted first.
52
+ #
53
+ # $ac_aux_dir/missing
54
+ # fails when called from a subdirectory if $ac_aux_dir is relative
55
+ # $top_srcdir/$ac_aux_dir/missing
56
+ # fails if $ac_aux_dir is absolute,
57
+ # fails when called from a subdirectory in a VPATH build with
58
+ # a relative $ac_aux_dir
59
+ #
60
+ # The reason of the latter failure is that $top_srcdir and $ac_aux_dir
61
+ # are both prefixed by $srcdir. In an in-source build this is usually
62
+ # harmless because $srcdir is `.', but things will broke when you
63
+ # start a VPATH build or use an absolute $srcdir.
64
+ #
65
+ # So we could use something similar to $top_srcdir/$ac_aux_dir/missing,
66
+ # iff we strip the leading $srcdir from $ac_aux_dir. That would be:
67
+ # am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"`
68
+ # and then we would define $MISSING as
69
+ # MISSING="\${SHELL} $am_aux_dir/missing"
70
+ # This will work as long as MISSING is not called from configure, because
71
+ # unfortunately $(top_srcdir) has no meaning in configure.
72
+ # However there are other variables, like CC, which are often used in
73
+ # configure, and could therefore not use this "fixed" $ac_aux_dir.
74
+ #
75
+ # Another solution, used here, is to always expand $ac_aux_dir to an
76
+ # absolute PATH. The drawback is that using absolute paths prevent a
77
+ # configured tree to be moved without reconfiguration.
78
+
79
+ AC_DEFUN([AM_AUX_DIR_EXPAND],
80
+ [dnl Rely on autoconf to set up CDPATH properly.
81
+ AC_PREREQ([2.50])dnl
82
+ # expand $ac_aux_dir to an absolute path
83
+ am_aux_dir=`cd $ac_aux_dir && pwd`
84
+ ])
85
+
86
+ # AM_CONDITIONAL -*- Autoconf -*-
87
+
88
+ # Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005
89
+ # Free Software Foundation, Inc.
90
+ #
91
+ # This file is free software; the Free Software Foundation
92
+ # gives unlimited permission to copy and/or distribute it,
93
+ # with or without modifications, as long as this notice is preserved.
94
+
95
+ # serial 7
96
+
97
+ # AM_CONDITIONAL(NAME, SHELL-CONDITION)
98
+ # -------------------------------------
99
+ # Define a conditional.
100
+ AC_DEFUN([AM_CONDITIONAL],
101
+ [AC_PREREQ(2.52)dnl
102
+ ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])],
103
+ [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl
104
+ AC_SUBST([$1_TRUE])
105
+ AC_SUBST([$1_FALSE])
106
+ if $2; then
107
+ $1_TRUE=
108
+ $1_FALSE='#'
109
+ else
110
+ $1_TRUE='#'
111
+ $1_FALSE=
112
+ fi
113
+ AC_CONFIG_COMMANDS_PRE(
114
+ [if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then
115
+ AC_MSG_ERROR([[conditional "$1" was never defined.
116
+ Usually this means the macro was only invoked conditionally.]])
117
+ fi])])
118
+
119
+
120
+ # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
121
+ # Free Software Foundation, Inc.
122
+ #
123
+ # This file is free software; the Free Software Foundation
124
+ # gives unlimited permission to copy and/or distribute it,
125
+ # with or without modifications, as long as this notice is preserved.
126
+
127
+ # serial 8
128
+
129
+ # There are a few dirty hacks below to avoid letting `AC_PROG_CC' be
130
+ # written in clear, in which case automake, when reading aclocal.m4,
131
+ # will think it sees a *use*, and therefore will trigger all it's
132
+ # C support machinery. Also note that it means that autoscan, seeing
133
+ # CC etc. in the Makefile, will ask for an AC_PROG_CC use...
134
+
135
+
136
+ # _AM_DEPENDENCIES(NAME)
137
+ # ----------------------
138
+ # See how the compiler implements dependency checking.
139
+ # NAME is "CC", "CXX", "GCJ", or "OBJC".
140
+ # We try a few techniques and use that to set a single cache variable.
141
+ #
142
+ # We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was
143
+ # modified to invoke _AM_DEPENDENCIES(CC); we would have a circular
144
+ # dependency, and given that the user is not expected to run this macro,
145
+ # just rely on AC_PROG_CC.
146
+ AC_DEFUN([_AM_DEPENDENCIES],
147
+ [AC_REQUIRE([AM_SET_DEPDIR])dnl
148
+ AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl
149
+ AC_REQUIRE([AM_MAKE_INCLUDE])dnl
150
+ AC_REQUIRE([AM_DEP_TRACK])dnl
151
+
152
+ ifelse([$1], CC, [depcc="$CC" am_compiler_list=],
153
+ [$1], CXX, [depcc="$CXX" am_compiler_list=],
154
+ [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'],
155
+ [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'],
156
+ [depcc="$$1" am_compiler_list=])
157
+
158
+ AC_CACHE_CHECK([dependency style of $depcc],
159
+ [am_cv_$1_dependencies_compiler_type],
160
+ [if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then
161
+ # We make a subdir and do the tests there. Otherwise we can end up
162
+ # making bogus files that we don't know about and never remove. For
163
+ # instance it was reported that on HP-UX the gcc test will end up
164
+ # making a dummy file named `D' -- because `-MD' means `put the output
165
+ # in D'.
166
+ mkdir conftest.dir
167
+ # Copy depcomp to subdir because otherwise we won't find it if we're
168
+ # using a relative directory.
169
+ cp "$am_depcomp" conftest.dir
170
+ cd conftest.dir
171
+ # We will build objects and dependencies in a subdirectory because
172
+ # it helps to detect inapplicable dependency modes. For instance
173
+ # both Tru64's cc and ICC support -MD to output dependencies as a
174
+ # side effect of compilation, but ICC will put the dependencies in
175
+ # the current directory while Tru64 will put them in the object
176
+ # directory.
177
+ mkdir sub
178
+
179
+ am_cv_$1_dependencies_compiler_type=none
180
+ if test "$am_compiler_list" = ""; then
181
+ am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp`
182
+ fi
183
+ for depmode in $am_compiler_list; do
184
+ # Setup a source with many dependencies, because some compilers
185
+ # like to wrap large dependency lists on column 80 (with \), and
186
+ # we should not choose a depcomp mode which is confused by this.
187
+ #
188
+ # We need to recreate these files for each test, as the compiler may
189
+ # overwrite some of them when testing with obscure command lines.
190
+ # This happens at least with the AIX C compiler.
191
+ : > sub/conftest.c
192
+ for i in 1 2 3 4 5 6; do
193
+ echo '#include "conftst'$i'.h"' >> sub/conftest.c
194
+ # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with
195
+ # Solaris 8's {/usr,}/bin/sh.
196
+ touch sub/conftst$i.h
197
+ done
198
+ echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf
199
+
200
+ case $depmode in
201
+ nosideeffect)
202
+ # after this tag, mechanisms are not by side-effect, so they'll
203
+ # only be used when explicitly requested
204
+ if test "x$enable_dependency_tracking" = xyes; then
205
+ continue
206
+ else
207
+ break
208
+ fi
209
+ ;;
210
+ none) break ;;
211
+ esac
212
+ # We check with `-c' and `-o' for the sake of the "dashmstdout"
213
+ # mode. It turns out that the SunPro C++ compiler does not properly
214
+ # handle `-M -o', and we need to detect this.
215
+ if depmode=$depmode \
216
+ source=sub/conftest.c object=sub/conftest.${OBJEXT-o} \
217
+ depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \
218
+ $SHELL ./depcomp $depcc -c -o sub/conftest.${OBJEXT-o} sub/conftest.c \
219
+ >/dev/null 2>conftest.err &&
220
+ grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 &&
221
+ grep sub/conftest.${OBJEXT-o} sub/conftest.Po > /dev/null 2>&1 &&
222
+ ${MAKE-make} -s -f confmf > /dev/null 2>&1; then
223
+ # icc doesn't choke on unknown options, it will just issue warnings
224
+ # or remarks (even with -Werror). So we grep stderr for any message
225
+ # that says an option was ignored or not supported.
226
+ # When given -MP, icc 7.0 and 7.1 complain thusly:
227
+ # icc: Command line warning: ignoring option '-M'; no argument required
228
+ # The diagnosis changed in icc 8.0:
229
+ # icc: Command line remark: option '-MP' not supported
230
+ if (grep 'ignoring option' conftest.err ||
231
+ grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else
232
+ am_cv_$1_dependencies_compiler_type=$depmode
233
+ break
234
+ fi
235
+ fi
236
+ done
237
+
238
+ cd ..
239
+ rm -rf conftest.dir
240
+ else
241
+ am_cv_$1_dependencies_compiler_type=none
242
+ fi
243
+ ])
244
+ AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type])
245
+ AM_CONDITIONAL([am__fastdep$1], [
246
+ test "x$enable_dependency_tracking" != xno \
247
+ && test "$am_cv_$1_dependencies_compiler_type" = gcc3])
248
+ ])
249
+
250
+
251
+ # AM_SET_DEPDIR
252
+ # -------------
253
+ # Choose a directory name for dependency files.
254
+ # This macro is AC_REQUIREd in _AM_DEPENDENCIES
255
+ AC_DEFUN([AM_SET_DEPDIR],
256
+ [AC_REQUIRE([AM_SET_LEADING_DOT])dnl
257
+ AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl
258
+ ])
259
+
260
+
261
+ # AM_DEP_TRACK
262
+ # ------------
263
+ AC_DEFUN([AM_DEP_TRACK],
264
+ [AC_ARG_ENABLE(dependency-tracking,
265
+ [ --disable-dependency-tracking speeds up one-time build
266
+ --enable-dependency-tracking do not reject slow dependency extractors])
267
+ if test "x$enable_dependency_tracking" != xno; then
268
+ am_depcomp="$ac_aux_dir/depcomp"
269
+ AMDEPBACKSLASH='\'
270
+ fi
271
+ AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno])
272
+ AC_SUBST([AMDEPBACKSLASH])
273
+ ])
274
+
275
+ # Generate code to set up dependency tracking. -*- Autoconf -*-
276
+
277
+ # Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005
278
+ # Free Software Foundation, Inc.
279
+ #
280
+ # This file is free software; the Free Software Foundation
281
+ # gives unlimited permission to copy and/or distribute it,
282
+ # with or without modifications, as long as this notice is preserved.
283
+
284
+ #serial 3
285
+
286
+ # _AM_OUTPUT_DEPENDENCY_COMMANDS
287
+ # ------------------------------
288
+ AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS],
289
+ [for mf in $CONFIG_FILES; do
290
+ # Strip MF so we end up with the name of the file.
291
+ mf=`echo "$mf" | sed -e 's/:.*$//'`
292
+ # Check whether this is an Automake generated Makefile or not.
293
+ # We used to match only the files named `Makefile.in', but
294
+ # some people rename them; so instead we look at the file content.
295
+ # Grep'ing the first line is not enough: some people post-process
296
+ # each Makefile.in and add a new line on top of each file to say so.
297
+ # So let's grep whole file.
298
+ if grep '^#.*generated by automake' $mf > /dev/null 2>&1; then
299
+ dirpart=`AS_DIRNAME("$mf")`
300
+ else
301
+ continue
302
+ fi
303
+ # Extract the definition of DEPDIR, am__include, and am__quote
304
+ # from the Makefile without running `make'.
305
+ DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"`
306
+ test -z "$DEPDIR" && continue
307
+ am__include=`sed -n 's/^am__include = //p' < "$mf"`
308
+ test -z "am__include" && continue
309
+ am__quote=`sed -n 's/^am__quote = //p' < "$mf"`
310
+ # When using ansi2knr, U may be empty or an underscore; expand it
311
+ U=`sed -n 's/^U = //p' < "$mf"`
312
+ # Find all dependency output files, they are included files with
313
+ # $(DEPDIR) in their names. We invoke sed twice because it is the
314
+ # simplest approach to changing $(DEPDIR) to its actual value in the
315
+ # expansion.
316
+ for file in `sed -n "
317
+ s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \
318
+ sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do
319
+ # Make sure the directory exists.
320
+ test -f "$dirpart/$file" && continue
321
+ fdir=`AS_DIRNAME(["$file"])`
322
+ AS_MKDIR_P([$dirpart/$fdir])
323
+ # echo "creating $dirpart/$file"
324
+ echo '# dummy' > "$dirpart/$file"
325
+ done
326
+ done
327
+ ])# _AM_OUTPUT_DEPENDENCY_COMMANDS
328
+
329
+
330
+ # AM_OUTPUT_DEPENDENCY_COMMANDS
331
+ # -----------------------------
332
+ # This macro should only be invoked once -- use via AC_REQUIRE.
333
+ #
334
+ # This code is only required when automatic dependency tracking
335
+ # is enabled. FIXME. This creates each `.P' file that we will
336
+ # need in order to bootstrap the dependency handling code.
337
+ AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS],
338
+ [AC_CONFIG_COMMANDS([depfiles],
339
+ [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS],
340
+ [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"])
341
+ ])
342
+
343
+ # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
344
+ # Free Software Foundation, Inc.
345
+ #
346
+ # This file is free software; the Free Software Foundation
347
+ # gives unlimited permission to copy and/or distribute it,
348
+ # with or without modifications, as long as this notice is preserved.
349
+
350
+ # serial 8
351
+
352
+ # AM_CONFIG_HEADER is obsolete. It has been replaced by AC_CONFIG_HEADERS.
353
+ AU_DEFUN([AM_CONFIG_HEADER], [AC_CONFIG_HEADERS($@)])
354
+
355
+ # Do all the work for Automake. -*- Autoconf -*-
356
+
357
+ # Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
358
+ # Free Software Foundation, Inc.
359
+ #
360
+ # This file is free software; the Free Software Foundation
361
+ # gives unlimited permission to copy and/or distribute it,
362
+ # with or without modifications, as long as this notice is preserved.
363
+
364
+ # serial 12
365
+
366
+ # This macro actually does too much. Some checks are only needed if
367
+ # your package does certain things. But this isn't really a big deal.
368
+
369
+ # AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE])
370
+ # AM_INIT_AUTOMAKE([OPTIONS])
371
+ # -----------------------------------------------
372
+ # The call with PACKAGE and VERSION arguments is the old style
373
+ # call (pre autoconf-2.50), which is being phased out. PACKAGE
374
+ # and VERSION should now be passed to AC_INIT and removed from
375
+ # the call to AM_INIT_AUTOMAKE.
376
+ # We support both call styles for the transition. After
377
+ # the next Automake release, Autoconf can make the AC_INIT
378
+ # arguments mandatory, and then we can depend on a new Autoconf
379
+ # release and drop the old call support.
380
+ AC_DEFUN([AM_INIT_AUTOMAKE],
381
+ [AC_PREREQ([2.58])dnl
382
+ dnl Autoconf wants to disallow AM_ names. We explicitly allow
383
+ dnl the ones we care about.
384
+ m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl
385
+ AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl
386
+ AC_REQUIRE([AC_PROG_INSTALL])dnl
387
+ # test to see if srcdir already configured
388
+ if test "`cd $srcdir && pwd`" != "`pwd`" &&
389
+ test -f $srcdir/config.status; then
390
+ AC_MSG_ERROR([source directory already configured; run "make distclean" there first])
391
+ fi
392
+
393
+ # test whether we have cygpath
394
+ if test -z "$CYGPATH_W"; then
395
+ if (cygpath --version) >/dev/null 2>/dev/null; then
396
+ CYGPATH_W='cygpath -w'
397
+ else
398
+ CYGPATH_W=echo
399
+ fi
400
+ fi
401
+ AC_SUBST([CYGPATH_W])
402
+
403
+ # Define the identity of the package.
404
+ dnl Distinguish between old-style and new-style calls.
405
+ m4_ifval([$2],
406
+ [m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl
407
+ AC_SUBST([PACKAGE], [$1])dnl
408
+ AC_SUBST([VERSION], [$2])],
409
+ [_AM_SET_OPTIONS([$1])dnl
410
+ AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl
411
+ AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl
412
+
413
+ _AM_IF_OPTION([no-define],,
414
+ [AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package])
415
+ AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl
416
+
417
+ # Some tools Automake needs.
418
+ AC_REQUIRE([AM_SANITY_CHECK])dnl
419
+ AC_REQUIRE([AC_ARG_PROGRAM])dnl
420
+ AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version})
421
+ AM_MISSING_PROG(AUTOCONF, autoconf)
422
+ AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version})
423
+ AM_MISSING_PROG(AUTOHEADER, autoheader)
424
+ AM_MISSING_PROG(MAKEINFO, makeinfo)
425
+ AM_PROG_INSTALL_SH
426
+ AM_PROG_INSTALL_STRIP
427
+ AC_REQUIRE([AM_PROG_MKDIR_P])dnl
428
+ # We need awk for the "check" target. The system "awk" is bad on
429
+ # some platforms.
430
+ AC_REQUIRE([AC_PROG_AWK])dnl
431
+ AC_REQUIRE([AC_PROG_MAKE_SET])dnl
432
+ AC_REQUIRE([AM_SET_LEADING_DOT])dnl
433
+ _AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])],
434
+ [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])],
435
+ [_AM_PROG_TAR([v7])])])
436
+ _AM_IF_OPTION([no-dependencies],,
437
+ [AC_PROVIDE_IFELSE([AC_PROG_CC],
438
+ [_AM_DEPENDENCIES(CC)],
439
+ [define([AC_PROG_CC],
440
+ defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl
441
+ AC_PROVIDE_IFELSE([AC_PROG_CXX],
442
+ [_AM_DEPENDENCIES(CXX)],
443
+ [define([AC_PROG_CXX],
444
+ defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl
445
+ ])
446
+ ])
447
+
448
+
449
+ # When config.status generates a header, we must update the stamp-h file.
450
+ # This file resides in the same directory as the config header
451
+ # that is generated. The stamp files are numbered to have different names.
452
+
453
+ # Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the
454
+ # loop where config.status creates the headers, so we can generate
455
+ # our stamp files there.
456
+ AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
457
+ [# Compute $1's index in $config_headers.
458
+ _am_stamp_count=1
459
+ for _am_header in $config_headers :; do
460
+ case $_am_header in
461
+ $1 | $1:* )
462
+ break ;;
463
+ * )
464
+ _am_stamp_count=`expr $_am_stamp_count + 1` ;;
465
+ esac
466
+ done
467
+ echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
468
+
469
+ # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
470
+ #
471
+ # This file is free software; the Free Software Foundation
472
+ # gives unlimited permission to copy and/or distribute it,
473
+ # with or without modifications, as long as this notice is preserved.
474
+
475
+ # AM_PROG_INSTALL_SH
476
+ # ------------------
477
+ # Define $install_sh.
478
+ AC_DEFUN([AM_PROG_INSTALL_SH],
479
+ [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
480
+ install_sh=${install_sh-"$am_aux_dir/install-sh"}
481
+ AC_SUBST(install_sh)])
482
+
483
+ # Copyright (C) 2003, 2005 Free Software Foundation, Inc.
484
+ #
485
+ # This file is free software; the Free Software Foundation
486
+ # gives unlimited permission to copy and/or distribute it,
487
+ # with or without modifications, as long as this notice is preserved.
488
+
489
+ # serial 2
490
+
491
+ # Check whether the underlying file-system supports filenames
492
+ # with a leading dot. For instance MS-DOS doesn't.
493
+ AC_DEFUN([AM_SET_LEADING_DOT],
494
+ [rm -rf .tst 2>/dev/null
495
+ mkdir .tst 2>/dev/null
496
+ if test -d .tst; then
497
+ am__leading_dot=.
498
+ else
499
+ am__leading_dot=_
500
+ fi
501
+ rmdir .tst 2>/dev/null
502
+ AC_SUBST([am__leading_dot])])
503
+
504
+ # Check to see how 'make' treats includes. -*- Autoconf -*-
505
+
506
+ # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
507
+ #
508
+ # This file is free software; the Free Software Foundation
509
+ # gives unlimited permission to copy and/or distribute it,
510
+ # with or without modifications, as long as this notice is preserved.
511
+
512
+ # serial 3
513
+
514
+ # AM_MAKE_INCLUDE()
515
+ # -----------------
516
+ # Check to see how make treats includes.
517
+ AC_DEFUN([AM_MAKE_INCLUDE],
518
+ [am_make=${MAKE-make}
519
+ cat > confinc << 'END'
520
+ am__doit:
521
+ @echo done
522
+ .PHONY: am__doit
523
+ END
524
+ # If we don't find an include directive, just comment out the code.
525
+ AC_MSG_CHECKING([for style of include used by $am_make])
526
+ am__include="#"
527
+ am__quote=
528
+ _am_result=none
529
+ # First try GNU make style include.
530
+ echo "include confinc" > confmf
531
+ # We grep out `Entering directory' and `Leaving directory'
532
+ # messages which can occur if `w' ends up in MAKEFLAGS.
533
+ # In particular we don't look at `^make:' because GNU make might
534
+ # be invoked under some other name (usually "gmake"), in which
535
+ # case it prints its new name instead of `make'.
536
+ if test "`$am_make -s -f confmf 2> /dev/null | grep -v 'ing directory'`" = "done"; then
537
+ am__include=include
538
+ am__quote=
539
+ _am_result=GNU
540
+ fi
541
+ # Now try BSD make style include.
542
+ if test "$am__include" = "#"; then
543
+ echo '.include "confinc"' > confmf
544
+ if test "`$am_make -s -f confmf 2> /dev/null`" = "done"; then
545
+ am__include=.include
546
+ am__quote="\""
547
+ _am_result=BSD
548
+ fi
549
+ fi
550
+ AC_SUBST([am__include])
551
+ AC_SUBST([am__quote])
552
+ AC_MSG_RESULT([$_am_result])
553
+ rm -f confinc confmf
554
+ ])
555
+
556
+ # Fake the existence of programs that GNU maintainers use. -*- Autoconf -*-
557
+
558
+ # Copyright (C) 1997, 1999, 2000, 2001, 2003, 2005
559
+ # Free Software Foundation, Inc.
560
+ #
561
+ # This file is free software; the Free Software Foundation
562
+ # gives unlimited permission to copy and/or distribute it,
563
+ # with or without modifications, as long as this notice is preserved.
564
+
565
+ # serial 4
566
+
567
+ # AM_MISSING_PROG(NAME, PROGRAM)
568
+ # ------------------------------
569
+ AC_DEFUN([AM_MISSING_PROG],
570
+ [AC_REQUIRE([AM_MISSING_HAS_RUN])
571
+ $1=${$1-"${am_missing_run}$2"}
572
+ AC_SUBST($1)])
573
+
574
+
575
+ # AM_MISSING_HAS_RUN
576
+ # ------------------
577
+ # Define MISSING if not defined so far and test if it supports --run.
578
+ # If it does, set am_missing_run to use it, otherwise, to nothing.
579
+ AC_DEFUN([AM_MISSING_HAS_RUN],
580
+ [AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl
581
+ test x"${MISSING+set}" = xset || MISSING="\${SHELL} $am_aux_dir/missing"
582
+ # Use eval to expand $SHELL
583
+ if eval "$MISSING --run true"; then
584
+ am_missing_run="$MISSING --run "
585
+ else
586
+ am_missing_run=
587
+ AC_MSG_WARN([`missing' script is too old or missing])
588
+ fi
589
+ ])
590
+
591
+ # Copyright (C) 2003, 2004, 2005 Free Software Foundation, Inc.
592
+ #
593
+ # This file is free software; the Free Software Foundation
594
+ # gives unlimited permission to copy and/or distribute it,
595
+ # with or without modifications, as long as this notice is preserved.
596
+
597
+ # AM_PROG_MKDIR_P
598
+ # ---------------
599
+ # Check whether `mkdir -p' is supported, fallback to mkinstalldirs otherwise.
600
+ #
601
+ # Automake 1.8 used `mkdir -m 0755 -p --' to ensure that directories
602
+ # created by `make install' are always world readable, even if the
603
+ # installer happens to have an overly restrictive umask (e.g. 077).
604
+ # This was a mistake. There are at least two reasons why we must not
605
+ # use `-m 0755':
606
+ # - it causes special bits like SGID to be ignored,
607
+ # - it may be too restrictive (some setups expect 775 directories).
608
+ #
609
+ # Do not use -m 0755 and let people choose whatever they expect by
610
+ # setting umask.
611
+ #
612
+ # We cannot accept any implementation of `mkdir' that recognizes `-p'.
613
+ # Some implementations (such as Solaris 8's) are not thread-safe: if a
614
+ # parallel make tries to run `mkdir -p a/b' and `mkdir -p a/c'
615
+ # concurrently, both version can detect that a/ is missing, but only
616
+ # one can create it and the other will error out. Consequently we
617
+ # restrict ourselves to GNU make (using the --version option ensures
618
+ # this.)
619
+ AC_DEFUN([AM_PROG_MKDIR_P],
620
+ [if mkdir -p --version . >/dev/null 2>&1 && test ! -d ./--version; then
621
+ # We used to keeping the `.' as first argument, in order to
622
+ # allow $(mkdir_p) to be used without argument. As in
623
+ # $(mkdir_p) $(somedir)
624
+ # where $(somedir) is conditionally defined. However this is wrong
625
+ # for two reasons:
626
+ # 1. if the package is installed by a user who cannot write `.'
627
+ # make install will fail,
628
+ # 2. the above comment should most certainly read
629
+ # $(mkdir_p) $(DESTDIR)$(somedir)
630
+ # so it does not work when $(somedir) is undefined and
631
+ # $(DESTDIR) is not.
632
+ # To support the latter case, we have to write
633
+ # test -z "$(somedir)" || $(mkdir_p) $(DESTDIR)$(somedir),
634
+ # so the `.' trick is pointless.
635
+ mkdir_p='mkdir -p --'
636
+ else
637
+ # On NextStep and OpenStep, the `mkdir' command does not
638
+ # recognize any option. It will interpret all options as
639
+ # directories to create, and then abort because `.' already
640
+ # exists.
641
+ for d in ./-p ./--version;
642
+ do
643
+ test -d $d && rmdir $d
644
+ done
645
+ # $(mkinstalldirs) is defined by Automake if mkinstalldirs exists.
646
+ if test -f "$ac_aux_dir/mkinstalldirs"; then
647
+ mkdir_p='$(mkinstalldirs)'
648
+ else
649
+ mkdir_p='$(install_sh) -d'
650
+ fi
651
+ fi
652
+ AC_SUBST([mkdir_p])])
653
+
654
+ # Helper functions for option handling. -*- Autoconf -*-
655
+
656
+ # Copyright (C) 2001, 2002, 2003, 2005 Free Software Foundation, Inc.
657
+ #
658
+ # This file is free software; the Free Software Foundation
659
+ # gives unlimited permission to copy and/or distribute it,
660
+ # with or without modifications, as long as this notice is preserved.
661
+
662
+ # serial 3
663
+
664
+ # _AM_MANGLE_OPTION(NAME)
665
+ # -----------------------
666
+ AC_DEFUN([_AM_MANGLE_OPTION],
667
+ [[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])])
668
+
669
+ # _AM_SET_OPTION(NAME)
670
+ # ------------------------------
671
+ # Set option NAME. Presently that only means defining a flag for this option.
672
+ AC_DEFUN([_AM_SET_OPTION],
673
+ [m4_define(_AM_MANGLE_OPTION([$1]), 1)])
674
+
675
+ # _AM_SET_OPTIONS(OPTIONS)
676
+ # ----------------------------------
677
+ # OPTIONS is a space-separated list of Automake options.
678
+ AC_DEFUN([_AM_SET_OPTIONS],
679
+ [AC_FOREACH([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])])
680
+
681
+ # _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET])
682
+ # -------------------------------------------
683
+ # Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
684
+ AC_DEFUN([_AM_IF_OPTION],
685
+ [m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])])
686
+
687
+ # Check to make sure that the build environment is sane. -*- Autoconf -*-
688
+
689
+ # Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005
690
+ # Free Software Foundation, Inc.
691
+ #
692
+ # This file is free software; the Free Software Foundation
693
+ # gives unlimited permission to copy and/or distribute it,
694
+ # with or without modifications, as long as this notice is preserved.
695
+
696
+ # serial 4
697
+
698
+ # AM_SANITY_CHECK
699
+ # ---------------
700
+ AC_DEFUN([AM_SANITY_CHECK],
701
+ [AC_MSG_CHECKING([whether build environment is sane])
702
+ # Just in case
703
+ sleep 1
704
+ echo timestamp > conftest.file
705
+ # Do `set' in a subshell so we don't clobber the current shell's
706
+ # arguments. Must try -L first in case configure is actually a
707
+ # symlink; some systems play weird games with the mod time of symlinks
708
+ # (eg FreeBSD returns the mod time of the symlink's containing
709
+ # directory).
710
+ if (
711
+ set X `ls -Lt $srcdir/configure conftest.file 2> /dev/null`
712
+ if test "$[*]" = "X"; then
713
+ # -L didn't work.
714
+ set X `ls -t $srcdir/configure conftest.file`
715
+ fi
716
+ rm -f conftest.file
717
+ if test "$[*]" != "X $srcdir/configure conftest.file" \
718
+ && test "$[*]" != "X conftest.file $srcdir/configure"; then
719
+
720
+ # If neither matched, then we have a broken ls. This can happen
721
+ # if, for instance, CONFIG_SHELL is bash and it inherits a
722
+ # broken ls alias from the environment. This has actually
723
+ # happened. Such a system could not be considered "sane".
724
+ AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken
725
+ alias in your environment])
726
+ fi
727
+
728
+ test "$[2]" = conftest.file
729
+ )
730
+ then
731
+ # Ok.
732
+ :
733
+ else
734
+ AC_MSG_ERROR([newly created file is older than distributed files!
735
+ Check your system clock])
736
+ fi
737
+ AC_MSG_RESULT(yes)])
738
+
739
+ # Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc.
740
+ #
741
+ # This file is free software; the Free Software Foundation
742
+ # gives unlimited permission to copy and/or distribute it,
743
+ # with or without modifications, as long as this notice is preserved.
744
+
745
+ # AM_PROG_INSTALL_STRIP
746
+ # ---------------------
747
+ # One issue with vendor `install' (even GNU) is that you can't
748
+ # specify the program used to strip binaries. This is especially
749
+ # annoying in cross-compiling environments, where the build's strip
750
+ # is unlikely to handle the host's binaries.
751
+ # Fortunately install-sh will honor a STRIPPROG variable, so we
752
+ # always use install-sh in `make install-strip', and initialize
753
+ # STRIPPROG with the value of the STRIP variable (set by the user).
754
+ AC_DEFUN([AM_PROG_INSTALL_STRIP],
755
+ [AC_REQUIRE([AM_PROG_INSTALL_SH])dnl
756
+ # Installed binaries are usually stripped using `strip' when the user
757
+ # run `make install-strip'. However `strip' might not be the right
758
+ # tool to use in cross-compilation environments, therefore Automake
759
+ # will honor the `STRIP' environment variable to overrule this program.
760
+ dnl Don't test for $cross_compiling = yes, because it might be `maybe'.
761
+ if test "$cross_compiling" != no; then
762
+ AC_CHECK_TOOL([STRIP], [strip], :)
763
+ fi
764
+ INSTALL_STRIP_PROGRAM="\${SHELL} \$(install_sh) -c -s"
765
+ AC_SUBST([INSTALL_STRIP_PROGRAM])])
766
+
767
+ # Check how to create a tarball. -*- Autoconf -*-
768
+
769
+ # Copyright (C) 2004, 2005 Free Software Foundation, Inc.
770
+ #
771
+ # This file is free software; the Free Software Foundation
772
+ # gives unlimited permission to copy and/or distribute it,
773
+ # with or without modifications, as long as this notice is preserved.
774
+
775
+ # serial 2
776
+
777
+ # _AM_PROG_TAR(FORMAT)
778
+ # --------------------
779
+ # Check how to create a tarball in format FORMAT.
780
+ # FORMAT should be one of `v7', `ustar', or `pax'.
781
+ #
782
+ # Substitute a variable $(am__tar) that is a command
783
+ # writing to stdout a FORMAT-tarball containing the directory
784
+ # $tardir.
785
+ # tardir=directory && $(am__tar) > result.tar
786
+ #
787
+ # Substitute a variable $(am__untar) that extract such
788
+ # a tarball read from stdin.
789
+ # $(am__untar) < result.tar
790
+ AC_DEFUN([_AM_PROG_TAR],
791
+ [# Always define AMTAR for backward compatibility.
792
+ AM_MISSING_PROG([AMTAR], [tar])
793
+ m4_if([$1], [v7],
794
+ [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'],
795
+ [m4_case([$1], [ustar],, [pax],,
796
+ [m4_fatal([Unknown tar format])])
797
+ AC_MSG_CHECKING([how to create a $1 tar archive])
798
+ # Loop over all known methods to create a tar archive until one works.
799
+ _am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none'
800
+ _am_tools=${am_cv_prog_tar_$1-$_am_tools}
801
+ # Do not fold the above two line into one, because Tru64 sh and
802
+ # Solaris sh will not grok spaces in the rhs of `-'.
803
+ for _am_tool in $_am_tools
804
+ do
805
+ case $_am_tool in
806
+ gnutar)
807
+ for _am_tar in tar gnutar gtar;
808
+ do
809
+ AM_RUN_LOG([$_am_tar --version]) && break
810
+ done
811
+ am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"'
812
+ am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"'
813
+ am__untar="$_am_tar -xf -"
814
+ ;;
815
+ plaintar)
816
+ # Must skip GNU tar: if it does not support --format= it doesn't create
817
+ # ustar tarball either.
818
+ (tar --version) >/dev/null 2>&1 && continue
819
+ am__tar='tar chf - "$$tardir"'
820
+ am__tar_='tar chf - "$tardir"'
821
+ am__untar='tar xf -'
822
+ ;;
823
+ pax)
824
+ am__tar='pax -L -x $1 -w "$$tardir"'
825
+ am__tar_='pax -L -x $1 -w "$tardir"'
826
+ am__untar='pax -r'
827
+ ;;
828
+ cpio)
829
+ am__tar='find "$$tardir" -print | cpio -o -H $1 -L'
830
+ am__tar_='find "$tardir" -print | cpio -o -H $1 -L'
831
+ am__untar='cpio -i -H $1 -d'
832
+ ;;
833
+ none)
834
+ am__tar=false
835
+ am__tar_=false
836
+ am__untar=false
837
+ ;;
838
+ esac
839
+
840
+ # If the value was cached, stop now. We just wanted to have am__tar
841
+ # and am__untar set.
842
+ test -n "${am_cv_prog_tar_$1}" && break
843
+
844
+ # tar/untar a dummy directory, and stop if the command works
845
+ rm -rf conftest.dir
846
+ mkdir conftest.dir
847
+ echo GrepMe > conftest.dir/file
848
+ AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar])
849
+ rm -rf conftest.dir
850
+ if test -s conftest.tar; then
851
+ AM_RUN_LOG([$am__untar <conftest.tar])
852
+ grep GrepMe conftest.dir/file >/dev/null 2>&1 && break
853
+ fi
854
+ done
855
+ rm -rf conftest.dir
856
+
857
+ AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool])
858
+ AC_MSG_RESULT([$am_cv_prog_tar_$1])])
859
+ AC_SUBST([am__tar])
860
+ AC_SUBST([am__untar])
861
+ ]) # _AM_PROG_TAR
862
+
863
+ m4_include([m4/acx_pthread.m4])
864
+ m4_include([m4/google_namespace.m4])
865
+ m4_include([m4/namespaces.m4])
866
+ m4_include([m4/stl_hash.m4])
867
+ m4_include([m4/stl_hash_fun.m4])
868
+ m4_include([m4/stl_namespace.m4])