blob: d706e1e5e4ac32736e1ec90970dbcf2a6375bfd3 [file] [log] [blame]
#
# (C) COPYRIGHT 2010-2016 ARM Limited. All rights reserved.
#
# This program is free software and is provided to you under the terms of the
# GNU General Public License version 2 as published by the Free Software
# Foundation, and any use by you of this program is subject to the terms
# of such GNU licence.
#
# A copy of the licence is included with the program, and can also be obtained
# from Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
# Boston, MA 02110-1301, USA.
#
#
import os
import re
Import('env')
# Clone the environment so changes don't affect other build files
env_ump = env.Clone()
# Source files required for UMP.
ump_src = [Glob('#kernel/drivers/base/ump/src/linux/*.c'), Glob('#kernel/drivers/base/ump/src/common/*.c'), Glob('#kernel/drivers/base/ump/src/imports/*/*.c')]
env_ump.Append( CPPPATH='#kernel/drivers/base/ump/src/' )
if env_ump.GetOption('clean') :
env_ump.Execute(Action("make clean", '[clean] ump'))
cmd = env_ump.Command('$STATIC_LIB_PATH/ump.ko', ump_src, [])
else:
if env['unit'] == '1':
makeAction=Action("cd ${SOURCE.dir}/.. && make MALI_UNIT_TEST=${unit} PLATFORM=${platform} %s && cp ump.ko $STATIC_LIB_PATH/ump.ko" % env.kernel_get_config_defines(), '$MAKECOMSTR')
else:
# The target is ump.ko, built from the source in ump_src, via the action makeAction
# ump.ko will be copied to $STATIC_LIB_PATH after being built by the standard Linux
# kernel build system, after which it can be installed to the directory specified if
# "libs_install" is set; this is done by LibTarget.
makeAction=Action("cd ${SOURCE.dir}/.. && make PLATFORM=${platform} %s && cp ump.ko $STATIC_LIB_PATH/ump.ko" % env.kernel_get_config_defines(), '$MAKECOMSTR')
cmd = env_ump.Command('$STATIC_LIB_PATH/ump.ko', ump_src, [makeAction])
# Add a dependency on kds.ko only when the build is not Android
# Android uses sync_pt instead of Midgard KDS to achieve KDS functionality
# Only necessary when KDS is not built into the kernel.
#
if env['os'] != 'android':
linux_config_file = os.path.normpath(os.environ['KDIR']) + '/.config'
search_term = '^[\ ]*CONFIG_KDS[\ ]*=[\ ]*y'
kds_in_kernel = 0
for line in open(linux_config_file, 'r'):
if re.search(search_term, line):
# KDS in kernel.
kds_in_kernel = 1
if not kds_in_kernel:
env.Depends('$STATIC_LIB_PATH/ump.ko', '$STATIC_LIB_PATH/kds.ko')
env_ump.KernelObjTarget('ump', cmd)
SConscript( 'imports/sconscript' )