aboutsummaryrefslogtreecommitdiff
path: root/drivers/base/kds/sconscript
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/base/kds/sconscript')
-rwxr-xr-xdrivers/base/kds/sconscript72
1 files changed, 72 insertions, 0 deletions
diff --git a/drivers/base/kds/sconscript b/drivers/base/kds/sconscript
new file mode 100755
index 00000000000..23f8eca4cdc
--- /dev/null
+++ b/drivers/base/kds/sconscript
@@ -0,0 +1,72 @@
+#
+# (C) COPYRIGHT 2010-2012 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')
+
+# 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
+
+if env['v'] != '1':
+ env['MAKECOMSTR'] = '[MAKE] ${SOURCE.dir}'
+
+src = [Glob('#kernel/drivers/base/kds/*.c'), Glob('#kernel/include/linux/*.h'), Glob('#kernel/drivers/base/kds/K*')]
+
+env.Append( CPPPATH = '#kernel/include' )
+
+arch = env['arch']
+# translate into something Linux understands
+if arch == 'x86_32':
+ arch = 'x86'
+elif 'arm' in arch:
+ arch = 'arm'
+
+if Glob('tests/sconscript'):
+ SConscript( 'tests/sconscript' )
+
+if env.GetOption('clean') :
+ # Clean KDS module
+ if build_kds:
+ env.Execute(Action("make ARCH=%s clean" % arch, '[CLEAN] kds'))
+ cmd = env.Command('$STATIC_LIB_PATH/kds.ko', src, [])
+ env.ProgTarget('kds', cmd)
+
+ # Clean KDS test module
+ if (int(env['unit']) == 1):
+ cmdTest = env.Command('$STATIC_LIB_PATH/kds_test.ko', src, [])
+ env.ProgTarget('kds', cmdTest)
+else:
+ # Build KDS module
+ if build_kds:
+ makeAction=Action("cd ${SOURCE.dir} && make kds ARCH=%s && cp kds.ko $STATIC_LIB_PATH/" % arch, '$MAKECOMSTR')
+ cmd = env.Command('$STATIC_LIB_PATH/kds.ko', src, [makeAction])
+ env.ProgTarget('kds', cmd)
+
+ # Build KDS test module
+ if int(env['unit']) == 1:
+ makeActionTest=Action("cd ${SOURCE.dir} && make kds_test ARCH=%s && cp kds_test.ko $STATIC_LIB_PATH/" %arch, '$MAKECOMSTR')
+ cmdTest = env.Command('$STATIC_LIB_PATH/kds_test.ko', src, [makeActionTest])
+ env.ProgTarget('kds', cmdTest)
+ if build_kds:
+ Depends(cmdTest, cmd)
+