google_hash 0.8.1 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- data/ChangeLog.txt +2 -0
- data/VERSION +1 -1
- data/ext/clean.bat +0 -0
- data/ext/clean.sh +4 -0
- data/ext/extconf.rb +4 -5
- data/ext/go.bat +0 -0
- data/ext/sparsehash-2.0.2/AUTHORS +2 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/COPYING +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/ChangeLog +60 -0
- data/ext/sparsehash-2.0.2/INSTALL +365 -0
- data/ext/sparsehash-2.0.2/Makefile +1336 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/Makefile.am +97 -40
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/Makefile.in +538 -256
- data/ext/sparsehash-2.0.2/NEWS +188 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/README +4 -10
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/README_windows.txt +3 -3
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/TODO +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/aclocal.m4 +266 -166
- data/ext/sparsehash-2.0.2/allocator.patch +31 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/config.guess +235 -234
- data/ext/sparsehash-2.0.2/config.status +1238 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/config.sub +198 -64
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/configure +1118 -1000
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/configure.ac +4 -5
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/depcomp +136 -36
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/doc/dense_hash_map.html +182 -67
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/doc/dense_hash_set.html +173 -74
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/doc/designstyle.css +0 -6
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/doc/implementation.html +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/doc/index.html +4 -5
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/doc/performance.html +1 -1
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/doc/sparse_hash_map.html +190 -58
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/doc/sparse_hash_set.html +180 -65
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/doc/sparsetable.html +1 -1
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/experimental/Makefile +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/experimental/README +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/experimental/example.c +1 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/experimental/libchash.c +1 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/experimental/libchash.h +1 -0
- data/ext/sparsehash-2.0.2/install-sh +520 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/m4/acx_pthread.m4 +34 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/m4/google_namespace.m4 +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/m4/namespaces.m4 +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/m4/stl_hash.m4 +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/m4/stl_hash_fun.m4 +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/missing +60 -44
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/packages/deb.sh +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/packages/deb/README +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/packages/deb/changelog +42 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/packages/deb/compat +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/packages/deb/control +1 -1
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/packages/deb/copyright +5 -4
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/packages/deb/docs +0 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/packages/deb/rules +0 -0
- data/ext/sparsehash-2.0.2/packages/deb/sparsehash.dirs +5 -0
- data/ext/sparsehash-2.0.2/packages/deb/sparsehash.install +6 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/packages/rpm.sh +1 -1
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/packages/rpm/rpm.spec +5 -3
- data/ext/{sparsehash-1.8.1/google-sparsehash.sln → sparsehash-2.0.2/sparsehash.sln} +0 -0
- data/ext/sparsehash-2.0.2/src/config.h +132 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/config.h.in +0 -3
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/config.h.include +0 -1
- data/ext/sparsehash-2.0.2/src/google/dense_hash_map +34 -0
- data/ext/sparsehash-2.0.2/src/google/dense_hash_set +34 -0
- data/ext/sparsehash-2.0.2/src/google/sparse_hash_map +34 -0
- data/ext/sparsehash-2.0.2/src/google/sparse_hash_set +34 -0
- data/ext/sparsehash-2.0.2/src/google/sparsehash/densehashtable.h +34 -0
- data/ext/sparsehash-2.0.2/src/google/sparsehash/hashtable-common.h +34 -0
- data/ext/sparsehash-2.0.2/src/google/sparsehash/libc_allocator_with_realloc.h +34 -0
- data/ext/sparsehash-2.0.2/src/google/sparsehash/sparsehashtable.h +34 -0
- data/ext/sparsehash-2.0.2/src/google/sparsetable +34 -0
- data/ext/sparsehash-2.0.2/src/google/template_util.h +34 -0
- data/ext/sparsehash-2.0.2/src/google/type_traits.h +34 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/hash_test_interface.h +64 -37
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/hashtable_test.cc +415 -141
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/libc_allocator_with_realloc_test.cc +16 -23
- data/ext/sparsehash-2.0.2/src/simple_compat_test.cc +106 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/simple_test.cc +8 -5
- data/ext/{sparsehash-1.8.1/src/google → sparsehash-2.0.2/src/sparsehash}/dense_hash_map +80 -37
- data/ext/{sparsehash-1.8.1/src/google → sparsehash-2.0.2/src/sparsehash}/dense_hash_set +64 -34
- data/ext/{sparsehash-1.8.1/src/google/sparsehash → sparsehash-2.0.2/src/sparsehash/internal}/densehashtable.h +247 -173
- data/ext/sparsehash-2.0.2/src/sparsehash/internal/hashtable-common.h +381 -0
- data/ext/{sparsehash-1.8.1/src/google/sparsehash → sparsehash-2.0.2/src/sparsehash/internal}/libc_allocator_with_realloc.h +5 -7
- data/ext/{sparsehash-1.8.1/src/google/sparsehash → sparsehash-2.0.2/src/sparsehash/internal}/sparsehashtable.h +154 -93
- data/ext/{sparsehash-1.8.1/src/google → sparsehash-2.0.2/src/sparsehash}/sparse_hash_map +96 -36
- data/ext/{sparsehash-1.8.1/src/google → sparsehash-2.0.2/src/sparsehash}/sparse_hash_set +85 -32
- data/ext/{sparsehash-1.8.1/src/google → sparsehash-2.0.2/src/sparsehash}/sparsetable +520 -258
- data/ext/sparsehash-2.0.2/src/sparsehash/template_util.h +134 -0
- data/ext/{sparsehash-1.8.1/src/google → sparsehash-2.0.2/src/sparsehash}/type_traits.h +153 -35
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/sparsetable_unittest.cc +108 -22
- data/ext/sparsehash-2.0.2/src/stamp-h1 +1 -0
- data/ext/sparsehash-2.0.2/src/template_util_unittest.cc +134 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/testutil.h +16 -1
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/time_hash_map.cc +259 -94
- data/ext/sparsehash-2.0.2/src/type_traits_unittest.cc +636 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/windows/config.h +4 -4
- data/ext/sparsehash-2.0.2/src/windows/google/sparsehash/sparseconfig.h +49 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/windows/port.cc +1 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/src/windows/port.h +4 -13
- data/ext/sparsehash-2.0.2/src/windows/sparsehash/internal/sparseconfig.h +49 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/vsprojects/hashtable_test/hashtable_test.vcproj +11 -11
- data/ext/sparsehash-2.0.2/vsprojects/libc_allocator_with_realloc_test/libc_allocator_with_realloc_test.vcproj +161 -0
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/vsprojects/simple_test/simple_test.vcproj +10 -10
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/vsprojects/sparsetable_unittest/sparsetable_unittest.vcproj +4 -4
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/vsprojects/time_hash_map/time_hash_map.vcproj +10 -10
- data/ext/{sparsehash-1.8.1 → sparsehash-2.0.2}/vsprojects/type_traits_unittest/type_traits_unittest.vcproj +3 -3
- data/ext/spec.bat +0 -0
- data/ext/template/google_hash.cpp.erb +6 -5
- metadata +106 -86
- data/ext/sparsehash-1.8.1/AUTHORS +0 -2
- data/ext/sparsehash-1.8.1/INSTALL +0 -236
- data/ext/sparsehash-1.8.1/NEWS +0 -71
- data/ext/sparsehash-1.8.1/compile +0 -99
- data/ext/sparsehash-1.8.1/install-sh +0 -323
- data/ext/sparsehash-1.8.1/m4/stl_namespace.m4 +0 -25
- data/ext/sparsehash-1.8.1/mkinstalldirs +0 -158
- data/ext/sparsehash-1.8.1/packages/deb/sparsehash.dirs +0 -2
- data/ext/sparsehash-1.8.1/packages/deb/sparsehash.install +0 -2
- data/ext/sparsehash-1.8.1/src/google/sparsehash/hashtable-common.h +0 -178
- data/ext/sparsehash-1.8.1/src/type_traits_unittest.cc +0 -502
- data/ext/sparsehash-1.8.1/src/windows/google/sparsehash/sparseconfig.h +0 -32
data/ChangeLog.txt
ADDED
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.8.
|
1
|
+
0.8.2
|
data/ext/clean.bat
CHANGED
File without changes
|
data/ext/clean.sh
ADDED
data/ext/extconf.rb
CHANGED
@@ -4,9 +4,8 @@ require 'rubygems'
|
|
4
4
|
require 'sane'
|
5
5
|
|
6
6
|
# re-build google's lib locally...
|
7
|
-
|
8
7
|
dir = Dir.pwd
|
9
|
-
Dir.chdir 'sparsehash-
|
8
|
+
Dir.chdir 'sparsehash-2.0.2' do
|
10
9
|
dir = dir + '/local_installed'
|
11
10
|
# only if haven't already built it...except who installing a gem would ever have it already there? reinstallers?
|
12
11
|
unless File.directory?(dir)
|
@@ -23,7 +22,7 @@ $CFLAGS += " -I./local_installed/include "
|
|
23
22
|
$CPPFLAGS += " -I./local_installed/include "
|
24
23
|
|
25
24
|
if RUBY_VERSION < '1.9'
|
26
|
-
# appears to link using gcc on 1.8 [mingw at least]
|
25
|
+
# appears to need this to link using gcc on 1.8 [mingw at least]
|
27
26
|
$LDFLAGS += " -lstdc++ "
|
28
27
|
end
|
29
28
|
|
@@ -110,8 +109,8 @@ File.write 'main.cpp', template.result(binding)
|
|
110
109
|
Config::CONFIG['CPP'] = "g++ -E" # else cannot check for c++ headers? huh wuh?
|
111
110
|
have_header('tr1/functional')
|
112
111
|
|
113
|
-
if have_header('functional') && OS.x?
|
114
|
-
$CPPFLAGS += " -std=c++11 -stdlib=libc++ " # LLVM, no idea what I'm doing here...
|
112
|
+
if have_header('functional') && OS.x? && !have_header('tr1/functional')
|
113
|
+
$CPPFLAGS += " -std=c++11 -stdlib=libc++ " # LLVM, updated to not have tr1 anymore, no idea what I'm doing here...
|
115
114
|
end
|
116
115
|
|
117
116
|
create_makefile('google_hash')
|
data/ext/go.bat
CHANGED
File without changes
|
File without changes
|
@@ -1,3 +1,63 @@
|
|
1
|
+
Thu Feb 23 23:47:18 2012 Google Inc. <google-sparsehash@googlegroups.com>
|
2
|
+
|
3
|
+
* sparsehash: version 2.0.2
|
4
|
+
* BUGFIX: Fix backwards compatibility for <google> include folders
|
5
|
+
|
6
|
+
Wed Feb 01 02:57:48 2012 Google Inc. <google-sparsehash@googlegroups.com>
|
7
|
+
|
8
|
+
* sparsehash: version 2.0.1
|
9
|
+
* BUGFIX: Fix path to malloc_extension.h in time_hash_map.cc
|
10
|
+
|
11
|
+
Tue Jan 31 11:33:04 2012 Google Inc. <google-sparsehash@googlegroups.com>
|
12
|
+
|
13
|
+
* sparsehash: version 2.0
|
14
|
+
* Renamed include directory from google/ to sparsehash/ (csilvers)
|
15
|
+
* Changed the 'official' sparsehash email in setup.py/etc
|
16
|
+
* Renamed google-sparsehash.sln to sparsehash.sln
|
17
|
+
* Changed copyright text to reflect Google's relinquished ownership
|
18
|
+
|
19
|
+
Tue Dec 20 21:04:04 2011 Google Inc. <opensource@google.com>
|
20
|
+
|
21
|
+
* sparsehash: version 1.12 release
|
22
|
+
* Add support for serializing/unserializing dense_hash_map/set to disk
|
23
|
+
* New simpler and more flexible serialization API
|
24
|
+
* Be more consistent about clearing on unserialize() even if it fails
|
25
|
+
* Quiet some compiler warnings about unused variables
|
26
|
+
* Add a timing test for iterating (suggested by google code issue 77)
|
27
|
+
* Add offset_to_pos, the opposite of pos_to_offset, to sparsetable
|
28
|
+
* PORTING: Add some missing #includes, needed on some systems
|
29
|
+
* Die at configure-time when g++ isn't installed
|
30
|
+
* Successfully make rpm's even when dpkg is missing
|
31
|
+
* Improve deleted key test in util/gtl/{dense,sparse}hashtable
|
32
|
+
* Update automake to 1.10.1, and autoconf to 2.62
|
33
|
+
|
34
|
+
Thu Jun 23 21:12:58 2011 Google Inc. <opensource@google.com>
|
35
|
+
|
36
|
+
* sparsehash: version 1.11 release
|
37
|
+
* Improve performance on pointer keys by ignoring always-0 low bits
|
38
|
+
* Fix missing $(top_srcdir) in Makefile.am, which broke some compiles
|
39
|
+
* BUGFIX: Fix a crashing typo-bug in swap()
|
40
|
+
* PORTING: Remove support for old compilers that do not use 'std'
|
41
|
+
* Add some new benchmarks to test for a place dense_hash_* does badly
|
42
|
+
* Some cosmetic changes due to a switch to a new releasing tool
|
43
|
+
|
44
|
+
Thu Jan 20 16:07:39 2011 Google Inc. <opensource@google.com>
|
45
|
+
|
46
|
+
* sparsehash: version 1.10 release
|
47
|
+
* Follow ExtractKey return type, allowing it to return a reference
|
48
|
+
* PORTING: fix MSVC 10 warnings (constifying result_type, placement-new)
|
49
|
+
* Update from autoconf 2.61 to autoconf 2.65
|
50
|
+
|
51
|
+
Fri Sep 24 11:37:50 2010 Google Inc. <opensource@google.com>
|
52
|
+
|
53
|
+
* sparsehash: version 1.9 release
|
54
|
+
* Add is_enum; make all enums PODs by default (romanp)
|
55
|
+
* Make find_or_insert() usable directly (dawidk)
|
56
|
+
* Use zero-memory trick for allocators to reduce space use (guilin)
|
57
|
+
* Fix some compiler warnings (chandlerc, eraman)
|
58
|
+
* BUGFIX: int -> size_type in one function we missed (csilvers)
|
59
|
+
* Added sparsehash.pc, for pkg-config (csilvers)
|
60
|
+
|
1
61
|
Thu Jul 29 15:01:29 2010 Google Inc. <opensource@google.com>
|
2
62
|
|
3
63
|
* sparsehash: version 1.8.1 release
|
@@ -0,0 +1,365 @@
|
|
1
|
+
Installation Instructions
|
2
|
+
*************************
|
3
|
+
|
4
|
+
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
|
5
|
+
2006, 2007, 2008, 2009 Free Software Foundation, Inc.
|
6
|
+
|
7
|
+
Copying and distribution of this file, with or without modification,
|
8
|
+
are permitted in any medium without royalty provided the copyright
|
9
|
+
notice and this notice are preserved. This file is offered as-is,
|
10
|
+
without warranty of any kind.
|
11
|
+
|
12
|
+
Basic Installation
|
13
|
+
==================
|
14
|
+
|
15
|
+
Briefly, the shell commands `./configure; make; make install' should
|
16
|
+
configure, build, and install this package. The following
|
17
|
+
more-detailed instructions are generic; see the `README' file for
|
18
|
+
instructions specific to this package. Some packages provide this
|
19
|
+
`INSTALL' file but do not implement all of the features documented
|
20
|
+
below. The lack of an optional feature in a given package is not
|
21
|
+
necessarily a bug. More recommendations for GNU packages can be found
|
22
|
+
in *note Makefile Conventions: (standards)Makefile Conventions.
|
23
|
+
|
24
|
+
The `configure' shell script attempts to guess correct values for
|
25
|
+
various system-dependent variables used during compilation. It uses
|
26
|
+
those values to create a `Makefile' in each directory of the package.
|
27
|
+
It may also create one or more `.h' files containing system-dependent
|
28
|
+
definitions. Finally, it creates a shell script `config.status' that
|
29
|
+
you can run in the future to recreate the current configuration, and a
|
30
|
+
file `config.log' containing compiler output (useful mainly for
|
31
|
+
debugging `configure').
|
32
|
+
|
33
|
+
It can also use an optional file (typically called `config.cache'
|
34
|
+
and enabled with `--cache-file=config.cache' or simply `-C') that saves
|
35
|
+
the results of its tests to speed up reconfiguring. Caching is
|
36
|
+
disabled by default to prevent problems with accidental use of stale
|
37
|
+
cache files.
|
38
|
+
|
39
|
+
If you need to do unusual things to compile the package, please try
|
40
|
+
to figure out how `configure' could check whether to do them, and mail
|
41
|
+
diffs or instructions to the address given in the `README' so they can
|
42
|
+
be considered for the next release. If you are using the cache, and at
|
43
|
+
some point `config.cache' contains results you don't want to keep, you
|
44
|
+
may remove or edit it.
|
45
|
+
|
46
|
+
The file `configure.ac' (or `configure.in') is used to create
|
47
|
+
`configure' by a program called `autoconf'. You need `configure.ac' if
|
48
|
+
you want to change it or regenerate `configure' using a newer version
|
49
|
+
of `autoconf'.
|
50
|
+
|
51
|
+
The simplest way to compile this package is:
|
52
|
+
|
53
|
+
1. `cd' to the directory containing the package's source code and type
|
54
|
+
`./configure' to configure the package for your system.
|
55
|
+
|
56
|
+
Running `configure' might take a while. While running, it prints
|
57
|
+
some messages telling which features it is checking for.
|
58
|
+
|
59
|
+
2. Type `make' to compile the package.
|
60
|
+
|
61
|
+
3. Optionally, type `make check' to run any self-tests that come with
|
62
|
+
the package, generally using the just-built uninstalled binaries.
|
63
|
+
|
64
|
+
4. Type `make install' to install the programs and any data files and
|
65
|
+
documentation. When installing into a prefix owned by root, it is
|
66
|
+
recommended that the package be configured and built as a regular
|
67
|
+
user, and only the `make install' phase executed with root
|
68
|
+
privileges.
|
69
|
+
|
70
|
+
5. Optionally, type `make installcheck' to repeat any self-tests, but
|
71
|
+
this time using the binaries in their final installed location.
|
72
|
+
This target does not install anything. Running this target as a
|
73
|
+
regular user, particularly if the prior `make install' required
|
74
|
+
root privileges, verifies that the installation completed
|
75
|
+
correctly.
|
76
|
+
|
77
|
+
6. You can remove the program binaries and object files from the
|
78
|
+
source code directory by typing `make clean'. To also remove the
|
79
|
+
files that `configure' created (so you can compile the package for
|
80
|
+
a different kind of computer), type `make distclean'. There is
|
81
|
+
also a `make maintainer-clean' target, but that is intended mainly
|
82
|
+
for the package's developers. If you use it, you may have to get
|
83
|
+
all sorts of other programs in order to regenerate files that came
|
84
|
+
with the distribution.
|
85
|
+
|
86
|
+
7. Often, you can also type `make uninstall' to remove the installed
|
87
|
+
files again. In practice, not all packages have tested that
|
88
|
+
uninstallation works correctly, even though it is required by the
|
89
|
+
GNU Coding Standards.
|
90
|
+
|
91
|
+
8. Some packages, particularly those that use Automake, provide `make
|
92
|
+
distcheck', which can by used by developers to test that all other
|
93
|
+
targets like `make install' and `make uninstall' work correctly.
|
94
|
+
This target is generally not run by end users.
|
95
|
+
|
96
|
+
Compilers and Options
|
97
|
+
=====================
|
98
|
+
|
99
|
+
Some systems require unusual options for compilation or linking that
|
100
|
+
the `configure' script does not know about. Run `./configure --help'
|
101
|
+
for details on some of the pertinent environment variables.
|
102
|
+
|
103
|
+
You can give `configure' initial values for configuration parameters
|
104
|
+
by setting variables in the command line or in the environment. Here
|
105
|
+
is an example:
|
106
|
+
|
107
|
+
./configure CC=c99 CFLAGS=-g LIBS=-lposix
|
108
|
+
|
109
|
+
*Note Defining Variables::, for more details.
|
110
|
+
|
111
|
+
Compiling For Multiple Architectures
|
112
|
+
====================================
|
113
|
+
|
114
|
+
You can compile the package for more than one kind of computer at the
|
115
|
+
same time, by placing the object files for each architecture in their
|
116
|
+
own directory. To do this, you can use GNU `make'. `cd' to the
|
117
|
+
directory where you want the object files and executables to go and run
|
118
|
+
the `configure' script. `configure' automatically checks for the
|
119
|
+
source code in the directory that `configure' is in and in `..'. This
|
120
|
+
is known as a "VPATH" build.
|
121
|
+
|
122
|
+
With a non-GNU `make', it is safer to compile the package for one
|
123
|
+
architecture at a time in the source code directory. After you have
|
124
|
+
installed the package for one architecture, use `make distclean' before
|
125
|
+
reconfiguring for another architecture.
|
126
|
+
|
127
|
+
On MacOS X 10.5 and later systems, you can create libraries and
|
128
|
+
executables that work on multiple system types--known as "fat" or
|
129
|
+
"universal" binaries--by specifying multiple `-arch' options to the
|
130
|
+
compiler but only a single `-arch' option to the preprocessor. Like
|
131
|
+
this:
|
132
|
+
|
133
|
+
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
134
|
+
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
|
135
|
+
CPP="gcc -E" CXXCPP="g++ -E"
|
136
|
+
|
137
|
+
This is not guaranteed to produce working output in all cases, you
|
138
|
+
may have to build one architecture at a time and combine the results
|
139
|
+
using the `lipo' tool if you have problems.
|
140
|
+
|
141
|
+
Installation Names
|
142
|
+
==================
|
143
|
+
|
144
|
+
By default, `make install' installs the package's commands under
|
145
|
+
`/usr/local/bin', include files under `/usr/local/include', etc. You
|
146
|
+
can specify an installation prefix other than `/usr/local' by giving
|
147
|
+
`configure' the option `--prefix=PREFIX', where PREFIX must be an
|
148
|
+
absolute file name.
|
149
|
+
|
150
|
+
You can specify separate installation prefixes for
|
151
|
+
architecture-specific files and architecture-independent files. If you
|
152
|
+
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
|
153
|
+
PREFIX as the prefix for installing programs and libraries.
|
154
|
+
Documentation and other data files still use the regular prefix.
|
155
|
+
|
156
|
+
In addition, if you use an unusual directory layout you can give
|
157
|
+
options like `--bindir=DIR' to specify different values for particular
|
158
|
+
kinds of files. Run `configure --help' for a list of the directories
|
159
|
+
you can set and what kinds of files go in them. In general, the
|
160
|
+
default for these options is expressed in terms of `${prefix}', so that
|
161
|
+
specifying just `--prefix' will affect all of the other directory
|
162
|
+
specifications that were not explicitly provided.
|
163
|
+
|
164
|
+
The most portable way to affect installation locations is to pass the
|
165
|
+
correct locations to `configure'; however, many packages provide one or
|
166
|
+
both of the following shortcuts of passing variable assignments to the
|
167
|
+
`make install' command line to change installation locations without
|
168
|
+
having to reconfigure or recompile.
|
169
|
+
|
170
|
+
The first method involves providing an override variable for each
|
171
|
+
affected directory. For example, `make install
|
172
|
+
prefix=/alternate/directory' will choose an alternate location for all
|
173
|
+
directory configuration variables that were expressed in terms of
|
174
|
+
`${prefix}'. Any directories that were specified during `configure',
|
175
|
+
but not in terms of `${prefix}', must each be overridden at install
|
176
|
+
time for the entire installation to be relocated. The approach of
|
177
|
+
makefile variable overrides for each directory variable is required by
|
178
|
+
the GNU Coding Standards, and ideally causes no recompilation.
|
179
|
+
However, some platforms have known limitations with the semantics of
|
180
|
+
shared libraries that end up requiring recompilation when using this
|
181
|
+
method, particularly noticeable in packages that use GNU Libtool.
|
182
|
+
|
183
|
+
The second method involves providing the `DESTDIR' variable. For
|
184
|
+
example, `make install DESTDIR=/alternate/directory' will prepend
|
185
|
+
`/alternate/directory' before all installation names. The approach of
|
186
|
+
`DESTDIR' overrides is not required by the GNU Coding Standards, and
|
187
|
+
does not work on platforms that have drive letters. On the other hand,
|
188
|
+
it does better at avoiding recompilation issues, and works well even
|
189
|
+
when some directory options were not specified in terms of `${prefix}'
|
190
|
+
at `configure' time.
|
191
|
+
|
192
|
+
Optional Features
|
193
|
+
=================
|
194
|
+
|
195
|
+
If the package supports it, you can cause programs to be installed
|
196
|
+
with an extra prefix or suffix on their names by giving `configure' the
|
197
|
+
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
|
198
|
+
|
199
|
+
Some packages pay attention to `--enable-FEATURE' options to
|
200
|
+
`configure', where FEATURE indicates an optional part of the package.
|
201
|
+
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
|
202
|
+
is something like `gnu-as' or `x' (for the X Window System). The
|
203
|
+
`README' should mention any `--enable-' and `--with-' options that the
|
204
|
+
package recognizes.
|
205
|
+
|
206
|
+
For packages that use the X Window System, `configure' can usually
|
207
|
+
find the X include and library files automatically, but if it doesn't,
|
208
|
+
you can use the `configure' options `--x-includes=DIR' and
|
209
|
+
`--x-libraries=DIR' to specify their locations.
|
210
|
+
|
211
|
+
Some packages offer the ability to configure how verbose the
|
212
|
+
execution of `make' will be. For these packages, running `./configure
|
213
|
+
--enable-silent-rules' sets the default to minimal output, which can be
|
214
|
+
overridden with `make V=1'; while running `./configure
|
215
|
+
--disable-silent-rules' sets the default to verbose, which can be
|
216
|
+
overridden with `make V=0'.
|
217
|
+
|
218
|
+
Particular systems
|
219
|
+
==================
|
220
|
+
|
221
|
+
On HP-UX, the default C compiler is not ANSI C compatible. If GNU
|
222
|
+
CC is not installed, it is recommended to use the following options in
|
223
|
+
order to use an ANSI C compiler:
|
224
|
+
|
225
|
+
./configure CC="cc -Ae -D_XOPEN_SOURCE=500"
|
226
|
+
|
227
|
+
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
|
228
|
+
|
229
|
+
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
|
230
|
+
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
|
231
|
+
a workaround. If GNU CC is not installed, it is therefore recommended
|
232
|
+
to try
|
233
|
+
|
234
|
+
./configure CC="cc"
|
235
|
+
|
236
|
+
and if that doesn't work, try
|
237
|
+
|
238
|
+
./configure CC="cc -nodtk"
|
239
|
+
|
240
|
+
On Solaris, don't put `/usr/ucb' early in your `PATH'. This
|
241
|
+
directory contains several dysfunctional programs; working variants of
|
242
|
+
these programs are available in `/usr/bin'. So, if you need `/usr/ucb'
|
243
|
+
in your `PATH', put it _after_ `/usr/bin'.
|
244
|
+
|
245
|
+
On Haiku, software installed for all users goes in `/boot/common',
|
246
|
+
not `/usr/local'. It is recommended to use the following options:
|
247
|
+
|
248
|
+
./configure --prefix=/boot/common
|
249
|
+
|
250
|
+
Specifying the System Type
|
251
|
+
==========================
|
252
|
+
|
253
|
+
There may be some features `configure' cannot figure out
|
254
|
+
automatically, but needs to determine by the type of machine the package
|
255
|
+
will run on. Usually, assuming the package is built to be run on the
|
256
|
+
_same_ architectures, `configure' can figure that out, but if it prints
|
257
|
+
a message saying it cannot guess the machine type, give it the
|
258
|
+
`--build=TYPE' option. TYPE can either be a short name for the system
|
259
|
+
type, such as `sun4', or a canonical name which has the form:
|
260
|
+
|
261
|
+
CPU-COMPANY-SYSTEM
|
262
|
+
|
263
|
+
where SYSTEM can have one of these forms:
|
264
|
+
|
265
|
+
OS
|
266
|
+
KERNEL-OS
|
267
|
+
|
268
|
+
See the file `config.sub' for the possible values of each field. If
|
269
|
+
`config.sub' isn't included in this package, then this package doesn't
|
270
|
+
need to know the machine type.
|
271
|
+
|
272
|
+
If you are _building_ compiler tools for cross-compiling, you should
|
273
|
+
use the option `--target=TYPE' to select the type of system they will
|
274
|
+
produce code for.
|
275
|
+
|
276
|
+
If you want to _use_ a cross compiler, that generates code for a
|
277
|
+
platform different from the build platform, you should specify the
|
278
|
+
"host" platform (i.e., that on which the generated programs will
|
279
|
+
eventually be run) with `--host=TYPE'.
|
280
|
+
|
281
|
+
Sharing Defaults
|
282
|
+
================
|
283
|
+
|
284
|
+
If you want to set default values for `configure' scripts to share,
|
285
|
+
you can create a site shell script called `config.site' that gives
|
286
|
+
default values for variables like `CC', `cache_file', and `prefix'.
|
287
|
+
`configure' looks for `PREFIX/share/config.site' if it exists, then
|
288
|
+
`PREFIX/etc/config.site' if it exists. Or, you can set the
|
289
|
+
`CONFIG_SITE' environment variable to the location of the site script.
|
290
|
+
A warning: not all `configure' scripts look for a site script.
|
291
|
+
|
292
|
+
Defining Variables
|
293
|
+
==================
|
294
|
+
|
295
|
+
Variables not defined in a site shell script can be set in the
|
296
|
+
environment passed to `configure'. However, some packages may run
|
297
|
+
configure again during the build, and the customized values of these
|
298
|
+
variables may be lost. In order to avoid this problem, you should set
|
299
|
+
them in the `configure' command line, using `VAR=value'. For example:
|
300
|
+
|
301
|
+
./configure CC=/usr/local2/bin/gcc
|
302
|
+
|
303
|
+
causes the specified `gcc' to be used as the C compiler (unless it is
|
304
|
+
overridden in the site shell script).
|
305
|
+
|
306
|
+
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
|
307
|
+
an Autoconf bug. Until the bug is fixed you can use this workaround:
|
308
|
+
|
309
|
+
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
|
310
|
+
|
311
|
+
`configure' Invocation
|
312
|
+
======================
|
313
|
+
|
314
|
+
`configure' recognizes the following options to control how it
|
315
|
+
operates.
|
316
|
+
|
317
|
+
`--help'
|
318
|
+
`-h'
|
319
|
+
Print a summary of all of the options to `configure', and exit.
|
320
|
+
|
321
|
+
`--help=short'
|
322
|
+
`--help=recursive'
|
323
|
+
Print a summary of the options unique to this package's
|
324
|
+
`configure', and exit. The `short' variant lists options used
|
325
|
+
only in the top level, while the `recursive' variant lists options
|
326
|
+
also present in any nested packages.
|
327
|
+
|
328
|
+
`--version'
|
329
|
+
`-V'
|
330
|
+
Print the version of Autoconf used to generate the `configure'
|
331
|
+
script, and exit.
|
332
|
+
|
333
|
+
`--cache-file=FILE'
|
334
|
+
Enable the cache: use and save the results of the tests in FILE,
|
335
|
+
traditionally `config.cache'. FILE defaults to `/dev/null' to
|
336
|
+
disable caching.
|
337
|
+
|
338
|
+
`--config-cache'
|
339
|
+
`-C'
|
340
|
+
Alias for `--cache-file=config.cache'.
|
341
|
+
|
342
|
+
`--quiet'
|
343
|
+
`--silent'
|
344
|
+
`-q'
|
345
|
+
Do not print messages saying which checks are being made. To
|
346
|
+
suppress all normal output, redirect it to `/dev/null' (any error
|
347
|
+
messages will still be shown).
|
348
|
+
|
349
|
+
`--srcdir=DIR'
|
350
|
+
Look for the package's source code in directory DIR. Usually
|
351
|
+
`configure' can determine that directory automatically.
|
352
|
+
|
353
|
+
`--prefix=DIR'
|
354
|
+
Use DIR as the installation prefix. *note Installation Names::
|
355
|
+
for more details, including other options available for fine-tuning
|
356
|
+
the installation locations.
|
357
|
+
|
358
|
+
`--no-create'
|
359
|
+
`-n'
|
360
|
+
Run the configure checks, but stop before creating any output
|
361
|
+
files.
|
362
|
+
|
363
|
+
`configure' also accepts some other, not widely useful, options. Run
|
364
|
+
`configure --help' for more details.
|
365
|
+
|