SConscript revision 2152
14202Sbinkertn@umich.edu# -*- mode:python -*- 24202Sbinkertn@umich.edu 34202Sbinkertn@umich.edu# Copyright (c) 2004-2005 The Regents of The University of Michigan 44202Sbinkertn@umich.edu# All rights reserved. 54202Sbinkertn@umich.edu# 64202Sbinkertn@umich.edu# Redistribution and use in source and binary forms, with or without 74202Sbinkertn@umich.edu# modification, are permitted provided that the following conditions are 84202Sbinkertn@umich.edu# met: redistributions of source code must retain the above copyright 94202Sbinkertn@umich.edu# notice, this list of conditions and the following disclaimer; 104202Sbinkertn@umich.edu# redistributions in binary form must reproduce the above copyright 114202Sbinkertn@umich.edu# notice, this list of conditions and the following disclaimer in the 124202Sbinkertn@umich.edu# documentation and/or other materials provided with the distribution; 134202Sbinkertn@umich.edu# neither the name of the copyright holders nor the names of its 144202Sbinkertn@umich.edu# contributors may be used to endorse or promote products derived from 154202Sbinkertn@umich.edu# this software without specific prior written permission. 164202Sbinkertn@umich.edu# 174202Sbinkertn@umich.edu# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 184202Sbinkertn@umich.edu# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 194202Sbinkertn@umich.edu# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 204202Sbinkertn@umich.edu# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 214202Sbinkertn@umich.edu# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 224202Sbinkertn@umich.edu# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 234202Sbinkertn@umich.edu# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 244202Sbinkertn@umich.edu# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 254202Sbinkertn@umich.edu# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 264202Sbinkertn@umich.edu# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 274202Sbinkertn@umich.edu# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 284202Sbinkertn@umich.edu 294202Sbinkertn@umich.eduimport os 304202Sbinkertn@umich.eduimport sys 314202Sbinkertn@umich.edufrom os.path import isdir 324202Sbinkertn@umich.edu 334486Sbinkertn@umich.edu# This file defines how to build a particular configuration of M5 344486Sbinkertn@umich.edu# based on variable settings in the 'env' build environment. 356165Ssanchezd@stanford.edu 366168Snate@binkert.org# Import build environment variable from SConstruct. 374202Sbinkertn@umich.eduImport('env') 384202Sbinkertn@umich.edu 394202Sbinkertn@umich.edu################################################### 404202Sbinkertn@umich.edu# 414202Sbinkertn@umich.edu# Define needed sources. 424202Sbinkertn@umich.edu# 435650Sgblack@eecs.umich.edu################################################### 446168Snate@binkert.org 457768SAli.Saidi@ARM.com# Base sources used by all configurations. 467768SAli.Saidi@ARM.combase_sources = Split(''' 477768SAli.Saidi@ARM.com faults.cc 487768SAli.Saidi@ARM.com isa_traits.cc 497768SAli.Saidi@ARM.com ''') 504202Sbinkertn@umich.edu 514202Sbinkertn@umich.edu# Full-system sources 527768SAli.Saidi@ARM.comfull_system_sources = Split(''' 534202Sbinkertn@umich.edu alpha_memory.cc 544202Sbinkertn@umich.edu arguments.cc 555192Ssaidi@eecs.umich.edu ev5.cc 568335Snate@binkert.org osfpal.cc 578335Snate@binkert.org stacktrace.cc 588335Snate@binkert.org vtophys.cc 598335Snate@binkert.org ''') 608335Snate@binkert.org 618335Snate@binkert.org 627780Snilay@cs.wisc.edu# Syscall emulation (non-full-system) sources 638335Snate@binkert.orgsyscall_emulation_sources = Split(''' 648335Snate@binkert.org alpha_common_syscall_emul.cc 658335Snate@binkert.org alpha_linux_process.cc 668335Snate@binkert.org alpha_tru64_process.cc 678335Snate@binkert.org ''') 688335Snate@binkert.org 698335Snate@binkert.org# Set up complete list of sources based on configuration. 708335Snate@binkert.orgsources = base_sources 718335Snate@binkert.org 728335Snate@binkert.orgif env['FULL_SYSTEM']: 738335Snate@binkert.org sources += full_system_sources 747780Snilay@cs.wisc.eduelse: 757780Snilay@cs.wisc.edu sources += syscall_emulation_sources 767780Snilay@cs.wisc.edu 778161SBrad.Beckmann@amd.com# Convert file names to SCons File objects. This takes care of the 78# path relative to the top of the directory tree. 79sources = [File(s) for s in sources] 80 81# Add in files generated by the ISA description. 82isa_desc_files = env.ISADesc('isa/main.isa') 83# Only non-header files need to be compiled. 84isa_desc_sources = [f for f in isa_desc_files if not f.path.endswith('.hh')] 85sources += isa_desc_sources 86 87Return('sources') 88