| # |
| # (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') |
| |
| #Android uses sync_pt to accomplish KDS functionality. |
| #Midgard KDS is not used by Android |
| if env['os'] == 'android': |
| Return() |
| |
| # If KDS is built into the kernel already we skip building the module ourselves |
| linux_config_file = os.path.normpath(os.environ['KDIR']) + '/.config' |
| search_term = '^[\ ]*CONFIG_KDS[\ ]*=[\ ]*y' |
| build_kds = 1 |
| for line in open(linux_config_file, 'r'): |
| if re.search(search_term, line): |
| # KDS in kernel. Do not build KDS kernel module but |
| # still allow for building kds_test module. |
| build_kds = 0 |
| |
| src = [Glob('#kernel/drivers/base/kds/*.c'), Glob('#kernel/include/linux/*.h'), Glob('#kernel/drivers/base/kds/K*')] |
| |
| env.Append( CPPPATH = '#kernel/include' ) |
| |
| if Glob('tests/sconscript'): |
| SConscript( 'tests/sconscript' ) |
| |
| if env.GetOption('clean') : |
| # Clean KDS module |
| if build_kds or (int(env['unit']) == 1): |
| env.Execute(Action("make clean", '[CLEAN] kds')) |
| cmd = env.Command('$STATIC_LIB_PATH/kds.ko', src, []) |
| env.KernelObjTarget('kds', cmd) |
| else: |
| # Build KDS module |
| if build_kds: |
| makeAction=Action("cd ${SOURCE.dir} && make kds && cp kds.ko $STATIC_LIB_PATH/", '$MAKECOMSTR') |
| cmd = env.Command('$STATIC_LIB_PATH/kds.ko', src, [makeAction]) |
| env.KernelObjTarget('kds', cmd) |
| |
| # Build KDS test module |
| if int(env['unit']) == 1: |
| makeActionTest=Action("cd ${SOURCE.dir} && make kds_test && cp kds_test.ko $STATIC_LIB_PATH/", '$MAKECOMSTR') |
| cmdTest = env.Command('$STATIC_LIB_PATH/kds_test.ko', src, [makeActionTest]) |
| env.KernelObjTarget('kds', cmdTest) |
| if build_kds: |
| env.Depends(cmdTest, cmd) |
| |