#
# (C) COPYRIGHT 2012-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 re
Import('env')

src = [Glob('#kernel/drivers/base/dma_buf_lock/src/*.c'), Glob('#kernel/drivers/base/dma_buf_lock/src/*.h'), Glob('#kernel/drivers/base/dma_buf_lock/src/K*')]

if env.GetOption('clean') :
	# Clean module
	env.Execute(Action("make clean", '[CLEAN] dma_buf_lock'))
	cmd = env.Command('$STATIC_LIB_PATH/dma_buf_lock.ko', src, [])
	env.KernelObjTarget('dma_buf_lock', cmd)

else:
	# Build module
	makeAction=Action("cd ${SOURCE.dir} && make dma_buf_lock && cp dma_buf_lock.ko $STATIC_LIB_PATH/", '$MAKECOMSTR')
	cmd = env.Command('$STATIC_LIB_PATH/dma_buf_lock.ko', src, [makeAction])
	env.KernelObjTarget('dma_buf_lock', cmd)

