xref: /linux-6.15/drivers/staging/greybus/Makefile (revision 970dc85b)
1greybus-y :=	core.o		\
2		debugfs.o	\
3		hd.o		\
4		manifest.o	\
5		module.o	\
6		interface.o	\
7		bundle.o	\
8		connection.o	\
9		control.o	\
10		svc.o		\
11		svc_watchdog.o	\
12		bootrom.o	\
13		operation.o	\
14		timesync.o	\
15		timesync_platform.o
16
17gb-gbphy-y := gbphy.o
18
19# Prefix all modules with gb-
20gb-vibrator-y := vibrator.o
21gb-power-supply-y := power_supply.o
22gb-loopback-y := loopback.o
23gb-light-y := light.o
24gb-raw-y := raw.o
25gb-hid-y := hid.o
26gb-es2-y := es2.o
27gb-arche-y := arche-platform.o arche-apb-ctrl.o
28gb-audio-module-y := audio_module.o audio_topology.o
29gb-audio-codec-y := audio_codec.o
30gb-audio-gb-y := audio_gb.o
31gb-audio-apbridgea-y := audio_apbridgea.o
32gb-audio-manager-y += audio_manager.o
33gb-audio-manager-y += audio_manager_module.o
34gb-camera-y := camera.o
35gb-firmware-y := fw-core.o fw-download.o fw-management.o
36gb-spilib-y := spilib.o
37gb-sdio-y := sdio.o
38gb-uart-y := uart.o
39gb-pwm-y := pwm.o
40gb-gpio-y := gpio.o
41gb-i2c-y := i2c.o
42gb-usb-y := usb.o
43gb-spi-y := spi.o
44
45obj-m += greybus.o
46obj-m += gb-gbphy.o
47obj-m += gb-vibrator.o
48obj-m += gb-power-supply.o
49obj-m += gb-loopback.o
50obj-m += gb-light.o
51obj-m += gb-hid.o
52obj-m += gb-raw.o
53obj-m += gb-es2.o
54ifeq ($(CONFIG_USB_HSIC_USB3613),y)
55 obj-m += gb-arche.o
56endif
57ifeq ($(CONFIG_ARCH_MSM8994),y)
58 obj-m += gb-audio-codec.o
59 obj-m += gb-audio-module.o
60 obj-m += gb-camera.o
61endif
62obj-m += gb-audio-gb.o
63obj-m += gb-audio-apbridgea.o
64obj-m += gb-audio-manager.o
65obj-m += gb-firmware.o
66obj-m += gb-spilib.o
67obj-m += gb-sdio.o
68obj-m += gb-uart.o
69obj-m += gb-pwm.o
70obj-m += gb-gpio.o
71obj-m += gb-i2c.o
72obj-m += gb-usb.o
73obj-m += gb-spi.o
74
75KERNELVER		?= $(shell uname -r)
76KERNELDIR 		?= /lib/modules/$(KERNELVER)/build
77INSTALL_MOD_PATH	?= /..
78PWD			:= $(shell pwd)
79
80# kernel config option that shall be enable
81CONFIG_OPTIONS_ENABLE := POWER_SUPPLY PWM SYSFS SPI USB SND_SOC MMC LEDS_CLASS INPUT
82
83# kernel config option that shall be disable
84CONFIG_OPTIONS_DISABLE :=
85
86# this only run in kbuild part of the makefile
87ifneq ($(KERNELRELEASE),)
88# This function returns the argument version if current kernel version is minor
89# than the passed version, return 1 if equal or the current kernel version if it
90# is greater than argument version.
91kvers_cmp=$(shell [ "$(KERNELVERSION)" = "$(1)" ] && echo 1 || printf "$(1)\n$(KERNELVERSION)" | sort -V | tail -1)
92
93ifneq ($(call kvers_cmp,"3.19.0"),3.19.0)
94    CONFIG_OPTIONS_ENABLE += LEDS_CLASS_FLASH
95endif
96
97ifneq ($(call kvers_cmp,"4.2.0"),4.2.0)
98    CONFIG_OPTIONS_ENABLE += V4L2_FLASH_LED_CLASS
99endif
100
101$(foreach opt,$(CONFIG_OPTIONS_ENABLE),$(if $(CONFIG_$(opt)),, \
102     $(error CONFIG_$(opt) is disabled in the kernel configuration and must be enable \
103     to continue compilation)))
104$(foreach opt,$(CONFIG_OPTIONS_DISABLE),$(if $(filter m y, $(CONFIG_$(opt))), \
105     $(error CONFIG_$(opt) is enabled in the kernel configuration and must be disable \
106     to continue compilation),))
107endif
108
109# add -Wall to try to catch everything we can.
110ccflags-y := -Wall
111
112# needed for trace events
113ccflags-y += -I$(src)
114
115GB_AUDIO_MANAGER_SYSFS ?= true
116ifeq ($(GB_AUDIO_MANAGER_SYSFS),true)
117gb-audio-manager-y += audio_manager_sysfs.o
118ccflags-y += -DGB_AUDIO_MANAGER_SYSFS
119endif
120
121all: module
122
123tools::
124	$(MAKE) -C tools KERNELDIR=$(realpath $(KERNELDIR))
125
126module:
127	$(MAKE) -C $(KERNELDIR) M=$(PWD)
128
129check:
130	$(MAKE) -C $(KERNELDIR) M=$(PWD) C=2 CF="-D__CHECK_ENDIAN__"
131
132clean:
133	rm -f *.o *~ core .depend .*.cmd *.ko *.mod.c
134	rm -f Module.markers Module.symvers modules.order
135	rm -rf .tmp_versions Modules.symvers
136	$(MAKE) -C tools clean
137
138coccicheck:
139	$(MAKE) -C $(KERNELDIR) M=$(PWD) coccicheck
140
141install: module
142	mkdir -p $(INSTALL_MOD_PATH)/lib/modules/$(KERNELVER)/kernel/drivers/greybus/
143	cp -f *.ko $(INSTALL_MOD_PATH)/lib/modules/$(KERNELVER)/kernel/drivers/greybus/
144	depmod -b $(INSTALL_MOD_PATH) -a $(KERNELVER)
145