SConsopts revision 13737:78c21fae6047
13914Ssaidi@eecs.umich.edu# Copyright 2018 Google, Inc.
23914Ssaidi@eecs.umich.edu#
33914Ssaidi@eecs.umich.edu# Redistribution and use in source and binary forms, with or without
43914Ssaidi@eecs.umich.edu# modification, are permitted provided that the following conditions are
53914Ssaidi@eecs.umich.edu# met: redistributions of source code must retain the above copyright
63914Ssaidi@eecs.umich.edu# notice, this list of conditions and the following disclaimer;
73914Ssaidi@eecs.umich.edu# redistributions in binary form must reproduce the above copyright
83914Ssaidi@eecs.umich.edu# notice, this list of conditions and the following disclaimer in the
93914Ssaidi@eecs.umich.edu# documentation and/or other materials provided with the distribution;
103914Ssaidi@eecs.umich.edu# neither the name of the copyright holders nor the names of its
113914Ssaidi@eecs.umich.edu# contributors may be used to endorse or promote products derived from
123914Ssaidi@eecs.umich.edu# this software without specific prior written permission.
133914Ssaidi@eecs.umich.edu#
143914Ssaidi@eecs.umich.edu# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
153914Ssaidi@eecs.umich.edu# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
163914Ssaidi@eecs.umich.edu# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
173914Ssaidi@eecs.umich.edu# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
183914Ssaidi@eecs.umich.edu# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
193914Ssaidi@eecs.umich.edu# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
203914Ssaidi@eecs.umich.edu# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
213914Ssaidi@eecs.umich.edu# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
223914Ssaidi@eecs.umich.edu# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
233914Ssaidi@eecs.umich.edu# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
243914Ssaidi@eecs.umich.edu# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
253914Ssaidi@eecs.umich.edu#
263914Ssaidi@eecs.umich.edu# Authors: Gabe Black
273914Ssaidi@eecs.umich.edu
283914Ssaidi@eecs.umich.eduImport('*')
293914Ssaidi@eecs.umich.edu
303914Ssaidi@eecs.umich.edufrom m5.util import compareVersions
313914Ssaidi@eecs.umich.edufrom m5.util.terminal import termcap
323914Ssaidi@eecs.umich.edu
333914Ssaidi@eecs.umich.edudef use_systemc_check(env, warn=False):
3411793Sbrandon.potter@amd.com    if ('GCC_VERSION' in env and
3511793Sbrandon.potter@amd.com            compareVersions(env['GCC_VERSION'], '5.0') < 0):
363914Ssaidi@eecs.umich.edu        if warn:
373914Ssaidi@eecs.umich.edu            print(termcap.Yellow + termcap.Bold +
383914Ssaidi@eecs.umich.edu                  'Warning: Systemc may not work on gcc versions less '
393914Ssaidi@eecs.umich.edu                  'than 5.0.' + termcap.Normal)
403914Ssaidi@eecs.umich.edu        return False
413914Ssaidi@eecs.umich.edu    elif env['PLATFORM'] == 'darwin':
424762Snate@binkert.org        if warn:
433914Ssaidi@eecs.umich.edu            print(termcap.Yellow + termcap.Bold +
446658Snate@binkert.org                  'Warning: Systemc may not work on Mac OS.' + termcap.Normal)
453914Ssaidi@eecs.umich.edu        return False
463914Ssaidi@eecs.umich.edu    return True
473914Ssaidi@eecs.umich.edu
483914Ssaidi@eecs.umich.edumain.AddMethod(use_systemc_check, 'UseSystemcCheck')
493914Ssaidi@eecs.umich.edu
503914Ssaidi@eecs.umich.edusticky_vars.AddVariables(
513914Ssaidi@eecs.umich.edu    BoolVariable('USE_SYSTEMC', 'Enable SystemC API support',
523914Ssaidi@eecs.umich.edu                 main.UseSystemcCheck())
534762Snate@binkert.org    )
549808Sstever@gmail.com
553914Ssaidi@eecs.umich.eduexport_vars.append('USE_SYSTEMC')
564762Snate@binkert.org