SConscript revision 3546
13546Sgblack@eecs.umich.edu# -*- mode:python -*-
23546Sgblack@eecs.umich.edu
33546Sgblack@eecs.umich.edu# Copyright (c) 2006 The Regents of The University of Michigan
43546Sgblack@eecs.umich.edu# All rights reserved.
53546Sgblack@eecs.umich.edu#
63546Sgblack@eecs.umich.edu# Redistribution and use in source and binary forms, with or without
73546Sgblack@eecs.umich.edu# modification, are permitted provided that the following conditions are
83546Sgblack@eecs.umich.edu# met: redistributions of source code must retain the above copyright
93546Sgblack@eecs.umich.edu# notice, this list of conditions and the following disclaimer;
103546Sgblack@eecs.umich.edu# redistributions in binary form must reproduce the above copyright
113546Sgblack@eecs.umich.edu# notice, this list of conditions and the following disclaimer in the
123546Sgblack@eecs.umich.edu# documentation and/or other materials provided with the distribution;
133546Sgblack@eecs.umich.edu# neither the name of the copyright holders nor the names of its
143546Sgblack@eecs.umich.edu# contributors may be used to endorse or promote products derived from
153546Sgblack@eecs.umich.edu# this software without specific prior written permission.
163546Sgblack@eecs.umich.edu#
173546Sgblack@eecs.umich.edu# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
183546Sgblack@eecs.umich.edu# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
193546Sgblack@eecs.umich.edu# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
203546Sgblack@eecs.umich.edu# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
213546Sgblack@eecs.umich.edu# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
223546Sgblack@eecs.umich.edu# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
233546Sgblack@eecs.umich.edu# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
243546Sgblack@eecs.umich.edu# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
253546Sgblack@eecs.umich.edu# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
263546Sgblack@eecs.umich.edu# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
273546Sgblack@eecs.umich.edu# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
283546Sgblack@eecs.umich.edu#
293546Sgblack@eecs.umich.edu# Authors: Steve Reinhardt
303546Sgblack@eecs.umich.edu
313546Sgblack@eecs.umich.eduimport os.path, sys
323546Sgblack@eecs.umich.edu
333546Sgblack@eecs.umich.edu# Import build environment variable from SConstruct.
343546Sgblack@eecs.umich.eduImport('env')
353546Sgblack@eecs.umich.edu
363546Sgblack@eecs.umich.edusources = Split('''
373546Sgblack@eecs.umich.edu	base_kernel_stats.cc
383546Sgblack@eecs.umich.edu	system_events.cc
393546Sgblack@eecs.umich.edu	linux/events.cc
403546Sgblack@eecs.umich.edu	linux/linux_syscalls.cc
413546Sgblack@eecs.umich.edu	linux/printk.cc
423546Sgblack@eecs.umich.edu	''')
433546Sgblack@eecs.umich.edu
443546Sgblack@eecs.umich.edu# Convert file names to SCons File objects.  This takes care of the
453546Sgblack@eecs.umich.edu# path relative to the top of the directory tree.
463546Sgblack@eecs.umich.edusources = [File(s) for s in sources]
473546Sgblack@eecs.umich.edu
483546Sgblack@eecs.umich.edu#################################################################
493546Sgblack@eecs.umich.edu#
503546Sgblack@eecs.umich.edu# ISA "switch header" generation.
513546Sgblack@eecs.umich.edu#
523546Sgblack@eecs.umich.edu# Auto-generate arch headers that include the right ISA-specific
533546Sgblack@eecs.umich.edu# header based on the setting of THE_ISA preprocessor variable.
543546Sgblack@eecs.umich.edu#
553546Sgblack@eecs.umich.edu#################################################################
563546Sgblack@eecs.umich.edu
573546Sgblack@eecs.umich.edu# List of headers to generate
583546Sgblack@eecs.umich.edukern_switch_hdrs = Split('''
593546Sgblack@eecs.umich.edu        kernel_stats.hh
603546Sgblack@eecs.umich.edu        ''')
613546Sgblack@eecs.umich.edu
623546Sgblack@eecs.umich.eduenv.make_switching_dir('kern', kern_switch_hdrs, env)
633546Sgblack@eecs.umich.edu
643546Sgblack@eecs.umich.eduisa = env['TARGET_ISA'] # someday this may be a list of ISAs
653546Sgblack@eecs.umich.edu
663546Sgblack@eecs.umich.edu# Let the target architecture define what additional sources it needs
673546Sgblack@eecs.umich.edusources += SConscript(os.path.join(isa, 'SConscript'), exports = 'env')
683546Sgblack@eecs.umich.edu
693546Sgblack@eecs.umich.eduReturn('sources')
70