blob: ac913744a3360bc42bd3756b850c9546b1feb262 [file] [log] [blame]
Kristofer Jonsson116a6352020-08-20 17:25:23 +02001#
2# (C) COPYRIGHT 2020 ARM Limited. All rights reserved.
3#
4# This program is free software and is provided to you under the terms of the
5# GNU General Public License version 2 as published by the Free Software
6# Foundation, and any use by you of this program is subject to the terms
7# of such GNU licence.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12# GNU General Public License for more details.
13#
14# You should have received a copy of the GNU General Public License
15# along with this program; if not, you can access it online at
16# http://www.gnu.org/licenses/gpl-2.0.html.
17#
18# SPDX-License-Identifier: GPL-2.0-only
19#
20
21cmake_minimum_required(VERSION 3.0.2)
22
23# Set the project name and version
24project("mhu-mailbox" VERSION 1.0)
25
26# Make sure KDIR is set
27set(KDIR "" CACHE PATH "Path to Linux kernel sources")
28if (NOT EXISTS ${KDIR})
29 message(FATAL_ERROR "Can't build kernel module without KDIR.")
30endif()
31
32# Depend on all h and c files
33file(GLOB_RECURSE SOURCES RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.c" "*.h")
34
Per Åstrandbb4089d2020-10-05 11:00:23 +020035file(GLOB_RECURSE OBJ RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} "*.c")
36list(TRANSFORM OBJ REPLACE "^(.*)[.]c" "\\1.o")
37list(TRANSFORM OBJ PREPEND ${CMAKE_CURRENT_SOURCE_DIR}/)
38
Kristofer Jonsson116a6352020-08-20 17:25:23 +020039# Build the kernel module
40add_custom_target(mailbox-module ALL
Per Åstrandbb4089d2020-10-05 11:00:23 +020041 COMMAND ${CMAKE_MAKE_PROGRAM} -C ${KDIR}
42 M=${CMAKE_CURRENT_SOURCE_DIR} CONFIG_ARM_MHU_V2=m CONFIG_ARM_MHU=m
Kristofer Jonsson116a6352020-08-20 17:25:23 +020043 CROSS_COMPILE=aarch64-linux-gnu- ARCH=arm64 modules
Per Åstrandbb4089d2020-10-05 11:00:23 +020044 BYPRODUCTS
45 ${CMAKE_CURRENT_SOURCE_DIR}/arm_mhu.ko
46 ${CMAKE_CURRENT_SOURCE_DIR}/arm_mhu.o
47 ${CMAKE_CURRENT_SOURCE_DIR}/arm_mhu.mod.o
48 ${CMAKE_CURRENT_SOURCE_DIR}/arm_mhu.mod.c
49 ${CMAKE_CURRENT_SOURCE_DIR}/arm_mhu_v2.ko
50 ${CMAKE_CURRENT_SOURCE_DIR}/arm_mhu_v2.o
51 ${CMAKE_CURRENT_SOURCE_DIR}/arm_mhu_v2.mod.o
52 ${CMAKE_CURRENT_SOURCE_DIR}/arm_mhu_v2.mod.c
53 ${CMAKE_CURRENT_SOURCE_DIR}/modules.order
54 ${CMAKE_CURRENT_SOURCE_DIR}/Module.symvers
55 ${OBJ}
Kristofer Jonsson116a6352020-08-20 17:25:23 +020056 DEPENDS ${SOURCES} Kbuild Kconfig
Per Åstrandbb4089d2020-10-05 11:00:23 +020057 COMMENT "Building arm_mhu.ko arm_mhu_v2.ko"
Kristofer Jonsson116a6352020-08-20 17:25:23 +020058 VERBATIM)
Per Åstrandbb4089d2020-10-05 11:00:23 +020059