blob: cff24c8ec14163bd51353782258d5aecf0a8cc2b [file] [log] [blame]
#
# (C) COPYRIGHT 2010-2013, 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('env')
# Clone the environment so changes don't affect other build files
env_ion = env.Clone()
if env_ion['ump_ion'] != '1':
Return()
# Source files required for UMP.
ion_src = [Glob('#kernel/drivers/base/ump/src/imports/ion/*.c')]
# Note: cleaning via the Linux kernel build system does not yet work
if env_ion.GetOption('clean') :
makeAction=Action("cd ${SOURCE.dir} && make clean", '$MAKECOMSTR')
else:
makeAction=Action("cd ${SOURCE.dir} && make PLATFORM=${platform} && cp ump_ion_import.ko $STATIC_LIB_PATH/ump_ion_import.ko", '$MAKECOMSTR')
# The target is ump_import_ion.ko, built from the source in ion_src, via the action makeAction
# ump_import_ion.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.
cmd = env_ion.Command('$STATIC_LIB_PATH/ump_ion_import.ko', ion_src, [makeAction])
# Until we fathom out how the invoke the Linux build system to clean, we can use Clean
# to remove generated files.
patterns = ['*.mod.c', '*.o', '*.ko', '*.a', '.*.cmd', 'modules.order', '.tmp_versions', 'Module.symvers']
for p in patterns:
Clean(cmd, Glob('#kernel/drivers/base/ump/src/imports/ion/%s' % p))
env_ion.Depends('$STATIC_LIB_PATH/ump_ion_import.ko', '$STATIC_LIB_PATH/ump.ko')
env_ion.KernelObjTarget('ump', cmd)