summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2005-11-19 20:13:46 (GMT)
committerSteven Knight <knight@baldmt.com>2005-11-19 20:13:46 (GMT)
commitf7972a26d12d280362feea9fd62eb692039e9a4f (patch)
tree18aa8e602341e1a1e1eb1bd13f0b039be63c4c9b
parente8650ad022a000744e6d676020559e5911accd7d (diff)
downloadSCons-f7972a26d12d280362feea9fd62eb692039e9a4f.zip
SCons-f7972a26d12d280362feea9fd62eb692039e9a4f.tar.gz
SCons-f7972a26d12d280362feea9fd62eb692039e9a4f.tar.bz2
Add $PKGCHK and $PKGINFO variables for use on Solaris, and make the default $PKGCHECK = /usr/sbin/pkgcheck.
-rw-r--r--src/CHANGES.txt5
-rw-r--r--src/engine/MANIFEST-xml.in1
-rw-r--r--src/engine/SCons/Platform/sunos.py2
-rw-r--r--src/engine/SCons/Platform/sunos.xml30
-rw-r--r--src/engine/SCons/Tool/sunc++.py9
5 files changed, 44 insertions, 3 deletions
diff --git a/src/CHANGES.txt b/src/CHANGES.txt
index 7ae0725..eead5e9 100644
--- a/src/CHANGES.txt
+++ b/src/CHANGES.txt
@@ -395,6 +395,11 @@ RELEASE 0.97 - XXX
- Add /usr/ccs/bin to the end of the the default external execution
PATH on Solaris.
+ - Add $PKGCHK and $PKGINFO variables for use on Solaris when searching
+ for the SunPRO C++ compiler. Make the default value for $PKGCHK
+ be /usr/sbin/pgkchk (since /usr/sbin isn't usually on the external
+ execution $PATH).
+
From Chen Lee:
- Handle Visual Studio project and solution files in Unicode.
diff --git a/src/engine/MANIFEST-xml.in b/src/engine/MANIFEST-xml.in
index d8082c7..e360a1a 100644
--- a/src/engine/MANIFEST-xml.in
+++ b/src/engine/MANIFEST-xml.in
@@ -3,6 +3,7 @@ SCons/Defaults.xml
SCons/Environment.xml
SCons/Platform/__init__.xml
SCons/Platform/posix.xml
+SCons/Platform/sunos.xml
SCons/Platform/win32.xml
SCons/Tool/386asm.xml
SCons/Tool/aixcc.xml
diff --git a/src/engine/SCons/Platform/sunos.py b/src/engine/SCons/Platform/sunos.py
index 5f4f5ab..ed9521e 100644
--- a/src/engine/SCons/Platform/sunos.py
+++ b/src/engine/SCons/Platform/sunos.py
@@ -39,4 +39,6 @@ def generate(env):
# Based on sunSparc 8:32bit
# ARG_MAX=1048320 - 3000 for environment expansion
env['MAXLINELENGTH'] = 1045320
+ env['PKGINFO'] = 'pkginfo'
+ env['PKGCHK'] = '/usr/sbin/pkgchk'
env['ENV']['PATH'] = env['ENV']['PATH'] + ':/usr/ccs/bin'
diff --git a/src/engine/SCons/Platform/sunos.xml b/src/engine/SCons/Platform/sunos.xml
new file mode 100644
index 0000000..d380d48
--- /dev/null
+++ b/src/engine/SCons/Platform/sunos.xml
@@ -0,0 +1,30 @@
+<!--
+__COPYRIGHT__
+
+This file is processed by the bin/SConsDoc.py module.
+See its __doc__ string for a discussion of the format.
+-->
+
+<cvar name="PKGCHK">
+<summary>
+On Solaris systems,
+the package-checking program that will
+be used (along with &cv-PKGINFO;)
+to look for installed versions of
+the Sun PRO C++ compiler.
+The default is
+<filename>/usr/sbin/pgkchk</filename>.
+</summary>
+</cvar>
+
+<cvar name="PKGINFO">
+<summary>
+On Solaris systems,
+the package information program that will
+be used (along with &cv-PKGCHK;)
+to look for installed versions of
+the Sun PRO C++ compiler.
+The default is
+<filename>pkginfo</filename>.
+</summary>
+</cvar>
diff --git a/src/engine/SCons/Tool/sunc++.py b/src/engine/SCons/Tool/sunc++.py
index 91c0f6c..a6ac10a 100644
--- a/src/engine/SCons/Tool/sunc++.py
+++ b/src/engine/SCons/Tool/sunc++.py
@@ -45,19 +45,22 @@ def get_cppc(env):
cppcPath = env.get('CXX', None)
cppcVersion = None
+ pkginfo = env.subst('$PKGINFO')
+ pkgchk = env.subst('$PKGCHK')
+
for package in ['SPROcpl']:
- cmd = "pkginfo -l " + package + " 2>/dev/null | grep '^ *VERSION:'"
+ cmd = "%s -l %s 2>/dev/null | grep '^ *VERSION:'" % (pkginfo, package)
line = os.popen(cmd).readline()
if line:
cppcVersion = line.split()[-1]
- cmd = "pkgchk -l " + package + " | grep '^Pathname:.*/bin/CC$' | grep -v '/SC[0-9]*\.[0-9]*/'"
+ cmd = "%s -l %s | grep '^Pathname:.*/bin/CC$' | grep -v '/SC[0-9]*\.[0-9]*/'" % (pkgchk, package)
line = os.popen(cmd).readline()
cppcPath = os.path.dirname(line.split()[-1])
break
return (cppcPath, 'CC', 'CC', cppcVersion)
def generate(env):
- """Add Builders and construction variables for SUN PRO C++ to an Environment."""
+ """Add Builders and construction variables for SunPRO C++."""
path, cxx, shcxx, version = get_cppc(env)
if path:
cxx = os.path.join(path, cxx)