1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
|
#
# (C) COPYRIGHT 2008-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.
#
#
ifneq ($(KBUILD_EXTMOD),)
OS=linux
include $(KBUILD_EXTMOD)/Makefile.common
else
include $(VITHAR_ROOT)/$(UMP_PATH)/Makefile.common
endif
ifdef CONFIG_ION
include $(VITHAR_ROOT)/$(UMP_PATH)/imports/ion/Makefile
endif
# default to building for the host
ARCH ?= $(shell uname -m)
# linux build system integration
######################################################################
#******************************************************************###
#TODO: remove OSK references for Linux Kernel mainline release: **###
#***** I.E. for each ifeq ($(MALI_UNIT_TEST),1) leave only the **###
#####* body in the else branch and remove the rest **###
#####**************************************************************###
######################################################################
ifeq ($(MALI_UNIT_TEST),1)
OS=linux
RELATIVE_ROOT=../../..
ROOT = $(PWD)/../../..
OSK_PATH = $(ROOT)/osk
include $(OSK_PATH)/src/$(OS)/Makefile.osk
EXTRA_CFLAGS += -DMALI_UNIT_TEST=$(MALI_UNIT_TEST) -DMALI_DEBUG=$(MALI_DEBUG) -DMALI_LICENSE_IS_GPL=$(MALI_LICENSE_IS_GPL) -DMALI_BASE_TRACK_MEMLEAK=$(MALI_BASE_TRACK_MEMLEAK)
endif
#ifneq ($(KERNELRELEASE),)
ifneq ($(VITHAR_ROOT),)
# Inside the kernel build system
EXTRA_CFLAGS += -I$(KBUILD_EXTMOD) -I$(KBUILD_EXTMOD)/common -I$(KBUILD_EXTMOD)/linux -I$(KBUILD_EXTMOD)/../.. -I$(KBUILD_EXTMOD)/../../.. -DUMP_LICENSE_IS_GPL=$(MALI_LICENSE_IS_GPL)
# For customer releases the Linux Device Drivers will be provided as ARM proprietary and GPL releases:
# The ARM proprietary product will only include the license/proprietary directory
# The GPL product will only include the license/gpl directory
ifeq ($(wildcard $(KBUILD_EXTMOD)/linux/license/gpl/*),)
EXTRA_CFLAGS += -I$(KBUILD_EXTMOD)/linux/license/proprietary
else
EXTRA_CFLAGS += -I$(KBUILD_EXTMOD)/linux/license/gpl
endif
SRC += linux/ump_kernel_linux.c linux/ump_kernel_linux_mem.c
#MODULE:=ump.ko
#obj-m := $(MODULE:.ko=.o)
#$(MODULE:.ko=-y) := $(SRC:.c=.o)
ifeq ($(MALI_UNIT_TEST),1)
$(MODULE:.ko=-objs) := $(SRC:.c=.o) $(RELATIVE_ROOT)/osk/src/linux/lib.a
else
#$(MODULE:.ko=-objs) := $(SRC:.c=.o)
endif
else
# Outside the kernel build system
#
#
# Get any user defined KDIR-<names> or maybe even a hardcoded KDIR
-include KDIR_CONFIGURATION
# Define host system directory
KDIR-$(shell uname -m):=/lib/modules/$(shell uname -r)/build
ifeq ($(ARCH), arm)
# when compiling for ARM we're cross compiling
export CROSS_COMPILE ?= arm-none-linux-gnueabi-
CONFIG ?= arm
else
# Compiling for the host
CONFIG ?= $(shell uname -m)
endif
# default cpu to select
CPU ?= $(shell uname -m)
# look up KDIR based om CPU selection
KDIR ?= $(KDIR-$(CPU))
ifeq ($(KDIR),)
$(error No KDIR found for platform $(CPU))
endif
# Validate selected config
ifneq ($(shell [ -d arch-$(CONFIG) ] && [ -f arch-$(CONFIG)/config.h ] && echo "OK"), OK)
$(warning Current directory is $(shell pwd))
$(error No configuration found for config $(CONFIG). Check that arch-$(CONFIG)/config.h exists)
else
# Link arch to the selected arch-config directory
$(shell [ -L arch ] && rm arch)
$(shell ln -sf arch-$(CONFIG) arch)
$(shell touch arch/config.h)
endif
all:
ifeq ($(MALI_UNIT_TEST),1)
$(MAKE) ARCH=$(ARCH) -C $(KDIR) M=$(CURDIR) KBUILD_EXTRA_SYMBOLS="$(ROOT)/uk/src/ukk/linux/Module.symvers"
else
$(MAKE) ARCH=$(ARCH) -C $(KDIR) M=$(CURDIR)
endif
kernelrelease:
ifeq ($(MALI_UNIT_TEST),1)
$(MAKE) -C $(KDIR) KBUILD_EXTRA_SYMBOLS="$(ROOT)/uk/src/ukk/linux/Module.symvers" kernelrelease
else
$(MAKE) -C $(KDIR) kernelrelease
endif
clean:
$(MAKE) ARCH=$(ARCH) -C $(KDIR) M=$(CURDIR) clean
endif
|