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