summaryrefslogtreecommitdiff
path: root/rtemstoolkit/solaris.py
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2016-03-03 16:46:18 +1100
committerChris Johns <chrisj@rtems.org>2016-03-03 16:53:39 +1100
commitb0fa2ae9981b0ccf6a66cb8df2241caa5038eb36 (patch)
treed4f7f225cd35334ff18c3189bf1cdefa0d3335b4 /rtemstoolkit/solaris.py
parent0e5d89d9469fb755402cbabc09280557c7e01fcc (diff)
Update rtems-tool to support Python 2 and 3.
Add solaris and netbsd. Close #2619.
Diffstat (limited to 'rtemstoolkit/solaris.py')
-rw-r--r--rtemstoolkit/solaris.py90
1 files changed, 90 insertions, 0 deletions
diff --git a/rtemstoolkit/solaris.py b/rtemstoolkit/solaris.py
new file mode 100644
index 0000000..397df68
--- /dev/null
+++ b/rtemstoolkit/solaris.py
@@ -0,0 +1,90 @@
+#
+# RTEMS Tools Project (http://www.rtems.org/)
+# Copyright 2010-2016 Chris Johns (chrisj@rtems.org)
+# All rights reserved.
+#
+# This file is part of the RTEMS Tools package in 'rtems-tools'.
+#
+# Permission to use, copy, modify, and/or distribute this software for any
+# purpose with or without fee is hereby granted, provided that the above
+# copyright notice and this permission notice appear in all copies.
+#
+# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
+# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
+# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
+# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
+# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
+# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
+
+#
+# This code is based on what ever doco about spec files I could find and
+# RTEMS project's spec files.
+#
+
+import pprint
+import os
+
+try:
+ from . import check
+ from . import error
+ from . import execute
+except (ValueError, SystemError):
+ import check
+ import error
+ import execute
+
+def load():
+ uname = os.uname()
+ psrinfo = '/sbin/psrinfo|wc -l'
+ e = execute.capture_execution()
+ exit_code, proc, output = e.shell(psrinfo)
+ if exit_code == 0:
+ ncpus = output
+ else:
+ ncpus = '1'
+ if uname[4] == 'i86pc':
+ cpu = 'i386'
+ else:
+ cpu = uname[4]
+ version = uname[2]
+ if version.find('-') > 0:
+ version = version.split('-')[0]
+ defines = {
+ '_ncpus': ('none', 'none', ncpus),
+ '_os': ('none', 'none', 'solaris'),
+ '_host': ('triplet', 'required', cpu + '-pc-solaris2'),
+ '_host_vendor': ('none', 'none', 'pc'),
+ '_host_os': ('none', 'none', 'solaris'),
+ '_host_os_version': ('none', 'none', version),
+ '_host_cpu': ('none', 'none', cpu),
+ '_host_alias': ('none', 'none', '%{nil}'),
+ '_host_arch': ('none', 'none', cpu),
+ '_usr': ('dir', 'required', '/usr'),
+ '_var': ('dir', 'optional', '/var'),
+ '__bash': ('exe', 'optional', '/usr/bin/bash'),
+ '__bison': ('exe', 'required', '/usr/bin/bison'),
+ '__git': ('exe', 'required', '/usr/bin/git'),
+ '__svn': ('exe', 'required', '/usr/bin/svn'),
+ '__cvs': ('exe', 'required', '/usr/bin/cvs'),
+ '__xz': ('exe', 'optional', '/usr/bin/xz'),
+ '__make': ('exe', 'required', 'gmake'),
+ '__patch_opts': ('none', 'none', '-E'),
+ '__chown': ('exe', 'required', '/usr/bin/chown'),
+ '__install': ('exe', 'required', '/usr/bin/ginstall'),
+ '__cc': ('exe', 'required', '/usr/bin/gcc'),
+ '__cxx': ('exe', 'required', '/usr/bin/g++'),
+ 'with_iconv': ('none', 'none', '0')
+ }
+
+ defines['_build'] = defines['_host']
+ defines['_build_vendor'] = defines['_host_vendor']
+ defines['_build_os'] = defines['_host_os']
+ defines['_build_cpu'] = defines['_host_cpu']
+ defines['_build_alias'] = defines['_host_alias']
+ defines['_build_arch'] = defines['_host_arch']
+
+ return defines
+
+if __name__ == '__main__':
+ pprint.pprint(load())