greybus: loopback: drop dependency on internal timestamps
[cascardo/linux.git] / drivers / staging / greybus / Makefile
index 432ad4c..af28053 100644 (file)
@@ -1,17 +1,98 @@
-greybus-y := core.o
+greybus-y :=   core.o          \
+               debugfs.o       \
+               manifest.o      \
+               endo.o          \
+               module.o        \
+               interface.o     \
+               bundle.o        \
+               connection.o    \
+               protocol.o      \
+               control.o       \
+               svc.o           \
+               firmware.o      \
+               operation.o
+
+gb-phy-y :=    gpbridge.o      \
+               sdio.o  \
+               uart.o  \
+               pwm.o   \
+               gpio.o  \
+               hid.o   \
+               i2c.o   \
+               spi.o   \
+               usb.o   \
+               audio.o         \
+               audio-pcm.o     \
+               audio-dai.o     \
+               audio-gb-cmds.o
+
+# Prefix all modules with gb-
+gb-vibrator-y := vibrator.o
+gb-battery-y := battery.o
+gb-loopback-y := loopback.o
+gb-light-y := light.o
+gb-raw-y := raw.o
+gb-es1-y := es1.o
+gb-es2-y := es2.o
 
 obj-m += greybus.o
-obj-m += i2c-gb.o
+obj-m += gb-phy.o
+obj-m += gb-vibrator.o
+obj-m += gb-battery.o
+obj-m += gb-loopback.o
+obj-m += gb-light.o
+obj-m += gb-raw.o
+obj-m += gb-es1.o
+obj-m += gb-es2.o
 
 KERNELVER              ?= $(shell uname -r)
 KERNELDIR              ?= /lib/modules/$(KERNELVER)/build
+INSTALL_MOD_PATH       ?= /..
 PWD                    := $(shell pwd)
 
+# kernel config option that shall be enable
+CONFIG_OPTIONS_ENABLE := SYSFS SPI USB SND_SOC MMC LEDS_CLASS
+
+# kernel config option that shall be disable
+CONFIG_OPTIONS_DISABLE :=
+
+# this only run in kbuild part of the makefile
+ifneq ($(KERNELRELEASE),)
+# This function returns the argument version if current kernel version is minor
+# than the passed version, return 1 if equal or the current kernel version if it
+# is greater than argument version.
+kvers_cmp=$(shell [ "$(KERNELVERSION)" = "$(1)" ] && echo 1 || printf "$(1)\n$(KERNELVERSION)" | sort -V | tail -1)
+
+ifneq ($(call kvers_cmp,"3.19.0"),3.19.0)
+    CONFIG_OPTIONS_ENABLE += LEDS_CLASS_FLASH
+endif
+
+ifneq ($(call kvers_cmp,"4.2.0"),4.2.0)
+    CONFIG_OPTIONS_ENABLE += V4L2_FLASH_LED_CLASS
+endif
+
+$(foreach opt,$(CONFIG_OPTIONS_ENABLE),$(if $(CONFIG_$(opt)),, \
+     $(error CONFIG_$(opt) is disabled in the kernel configuration and must be enable \
+     to continue compilation)))
+$(foreach opt,$(CONFIG_OPTIONS_DISABLE),$(if $(filter m y, $(CONFIG_$(opt))), \
+     $(error CONFIG_$(opt) is enabled in the kernel configuration and must be disable \
+     to continue compilation),))
+endif
+
+# add -Wall to try to catch everything we can.
+ccflags-y := -Wall
+
+# needed for trace events
+ccflags-y += -I$(src)
+
 all: module
 
 module:
        $(MAKE) -C $(KERNELDIR) M=$(PWD)
 
+check:
+       $(MAKE) -C $(KERNELDIR) M=$(PWD) C=2 CF="-D__CHECK_ENDIAN__"
+
 clean:
        rm -f *.o *~ core .depend .*.cmd *.ko *.mod.c
        rm -f Module.markers Module.symvers modules.order
@@ -20,3 +101,7 @@ clean:
 coccicheck:
        $(MAKE) -C $(KERNELDIR) M=$(PWD) coccicheck
 
+install: module
+       mkdir -p $(INSTALL_MOD_PATH)/lib/modules/$(KERNELVER)/kernel/drivers/greybus/
+       cp -f *.ko $(INSTALL_MOD_PATH)/lib/modules/$(KERNELVER)/kernel/drivers/greybus/
+       depmod -b $(INSTALL_MOD_PATH) -a $(KERNELVER)