| # |
| # (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) |