summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric S. Raymond <esr@thyrsus.com>2012-01-11 03:44:15 -0500
committerEric S. Raymond <esr@thyrsus.com>2012-01-11 03:44:15 -0500
commit0eaa8be8522b88353e949124fde870d76c26afc7 (patch)
tree6d2d3def324db4daab6aca14b351ecf46b6391e9
parente77e8d55373cb639c8ffd6f3d1119c76e8b6f7a7 (diff)
downloadgpsd-0eaa8be8522b88353e949124fde870d76c26afc7.tar.gz
Update the build instructions.
-rw-r--r--build.txt41
1 files changed, 31 insertions, 10 deletions
diff --git a/build.txt b/build.txt
index 1fc05ea9..88531612 100644
--- a/build.txt
+++ b/build.txt
@@ -16,6 +16,8 @@ Necessary components for any build:
|chrpath | needed with scons for RPATH setting
|==============================================================================
+=== C compiler ===
+
C99 conformance is required in the compiler. The C code depends on one
non-C99 feature: anonymous unions. We could eliminate these, but the
cost would be source-level interface breakage if we have to move
@@ -28,24 +30,43 @@ passes all regression tests. If -Wmissing-field-initializers or
its non-gcc equivalent is set you will get a lot of warnings;
this is due to generated code and cannot be fixed.
-You will need scons version 2.0.1 or later to build the code. The
-autotools build from 2.96 and earlier versions has been dropped.
+Older versions of gcc don't recognize Wno-missing-field-initializers;
+this has been reported from GCC 3.4.6. We don't recommend building
+with GCC versions prior to 4.1.1, as these had some floating-point
+non-conformances that confused our regression testing and might have
+real-world consequences.
+
+=== Python ===
+
+You will need Python 2.5 or later for the build.
While Python is required to build GPSD from source (the build uses
some code generators in Python), it is not required to run the service
daemon. In particular, you can cross-compile onto an embedded system
-without having to take Python with you.
+without having to take Python with you.
+
+=== Scons ===
+
+You will need scons version 2.0.1 or later to build the code. The
+autotools build from 2.96 and earlier versions has been dropped.
+
+=== chrpath ===
+
+chrpath is a tool for editing RPATH in object files.
+
+libtool is a messy pile of crocks, and throwing it out of our build
+chain was a good thing, but it had consguences. Whatever its other
+flawes, libtool successfully hid some tricky problems related to
+dynamic-linkage paths; to address these in the scons build, you need
+chrpath present to edit those paths.
+
+Ubuntu users can do 'apt-get install chrpath'
+CentOS users can do 'yum install chrpath' from extras.
-Yes, you will need chrpath. libtool is a messy pile of crocks, and
-throwing it out of our build chain was a good thing, but it had
-consguences. Whatever its other flawes, libtool successfully hid some
-tricky problems related to dynamic-linkage paths; to address these
-in the scons build, you need chrpath present to edit those paths.
If you do not have chrpath available, GPSD binaries will be built
statically.
-(We previously tried to make chrpath optional. This turned out to be
-too tricky to get right to be worth it. So install chrpath. Now.)
+=== Optional build components ===
Having the following optional components on your system will enable
various additional capabilities and extensions: