summaryrefslogtreecommitdiff
path: root/SConstruct
diff options
context:
space:
mode:
authorFred Wright <fw@fwright.net>2017-10-07 19:54:55 -0700
committerFred Wright <fw@fwright.net>2017-10-07 19:54:55 -0700
commited205512dd05a7dd4b0dab8af760d13e9efbbb25 (patch)
tree2895f70c5a9dfe02df13aa0155101ecfa1f71c8d /SConstruct
parentdc247f7147fe344987895950d6ccdf9dd3eba4f1 (diff)
downloadgpsd-ed205512dd05a7dd4b0dab8af760d13e9efbbb25.tar.gz
Fixes SConstruct for SCons 3.0.0.
SCons 3.0.0 introduced a bug where the print_funtion future import is inflicted on the SConstruct script, making 'print' as a statement illegal. This is expected to be fixed in SCons 3.0.1, but in the meantime it's necessary to switch to the print_function mode for compatibility. Fortunately, there were only three print statements in the whole file. This is not a complete Python 3 fix; it simply restores correct operation when running SCons under Python 2. TESTED: Arraged to test all three print() instances under OSX. Tested "scons build-all check" under OSX, Ubuntu, CentOS, Fedora, FreeBSD, OpenBSD, and NetBSD.
Diffstat (limited to 'SConstruct')
-rw-r--r--SConstruct15
1 files changed, 11 insertions, 4 deletions
diff --git a/SConstruct b/SConstruct
index 4923ad8c..040103cf 100644
--- a/SConstruct
+++ b/SConstruct
@@ -23,6 +23,13 @@
# * Out-of-directory builds: see http://www.scons.org/wiki/UsingBuildDir
# * Coveraging mode: gcc "-coverage" flag requires a hack
# for building the python bindings
+# * Python 3 compatibility in this recipe
+
+# Since SCons 3.0.0 forces print_function on us, it needs to be unconditional.
+# This is recognized to be a bug in SCons, but we need to live with it for now,
+# and we'll need this for eventual Python 3 compatibility, anyway.
+# Python requires this to precede any non-comment code.
+from __future__ import print_function
# Release identification begins here
gpsd_version = "3.18~dev"
@@ -375,7 +382,7 @@ if env.GetOption("silent"):
def announce(msg):
if not env.GetOption("silent"):
- print msg
+ print(msg)
# DESTDIR environment variable means user prefix the installation root.
DESTDIR = os.environ.get('DESTDIR', '')
@@ -1546,8 +1553,8 @@ def substituter(target, source, env):
content = content.replace(s, t)
m = re.search("@[A-Z]+@", content)
if m and m.group(0) not in map(lambda x: x[0], substmap):
- print >>sys.stderr, "Unknown subst token %s in %s." \
- % (m.group(0), sfp.name)
+ print("Unknown subst token %s in %s." % (m.group(0), sfp.name),
+ file=sys.stderr)
tfp = open(str(target[0]), "w")
tfp.write(content)
tfp.close()
@@ -2191,7 +2198,7 @@ def validation_list(target, source, env):
if '-head' not in page:
fp = open(page)
if "Valid HTML" in fp.read():
- print os.path.join(website, os.path.basename(page))
+ print(os.path.join(website, os.path.basename(page)))
fp.close()
Utility("validation-list", [www], validation_list)