2017-06-20 67 views
0

下面是我正在使用kyasu msm8974项目(https://github.com/kyasu/android_kernel_samsung_msm8974)为Android编译的Linux内核中的cyttsp4的Makefile。cyttsp4错误(linux内核)Makefile

### CYTTSP 
#obj-m += cyttsp4.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_core.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_i2c.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_platform.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_devtree.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_mt_common.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_mtb.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_btn.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_debug.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_device_access.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_loader.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_samsung_sysfs.o 

CY_CFLAG_ADD =\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_DEVICETREE_SUPPORT\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_BUTTON\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_DEVICE_ACCESS\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_LOADER\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_PLATFORM_FW_UPGRADE\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_BINARY_FW_UPGRADE 

CY_CFLAG_REMOVE =\ 
    -DCYTTSP4_PDATA_IN_PLATFORM_C\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_PROXIMITY\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_PLATFORM_TTCONFIG_UPGRADE\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_DEVICE_ACCESS_API\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_DEBUG\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_MANUAL_TTCONFIG_UPGRADE 

CFLAGS_cyttsp4_core.o   += $(CY_CFLAG_ADD) -DDEBUG 
CFLAGS_cyttsp4_i2c.o   += $(CY_CFLAG_ADD) -DDEBUG 
CFLAGS_cyttsp4_spi.o   += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_mta.o   += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_mtb.o   += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_mt_a.o   += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_mt_b.o   += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_mt_common.o  += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_btn.o   += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_proximity.o  += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_samsung_sysfs.o += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_device_access.o += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_test_device_access_api.o += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_loader.o   += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_debug.o   += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_devtree.o  += $(CY_CFLAG_ADD) -DDEBUG 
CFLAGS_cyttsp4_platform.o  += $(CY_CFLAG_ADD) -DDEBUG 

CFLAGS_cyttsp4_core.o   -= $(CY_CFLAG_REMOVE) 
CFLAGS_cyttsp4_i2c.o   -= $(CY_CFLAG_REMOVE) 
CFLAGS_cyttsp4_spi.o   -= $(CY_CFLAG_REMOVE) 
CFLAGS_cyttsp4_mta.o   -= $(CY_CFLAG_REMOVE) 
CFLAGS_cyttsp4_mtb.o   -= $(CY_CFLAG_REMOVE) 
CFLAGS_cyttsp4_mt_a.o   -= $(CY_CFLAG_REMOVE) 
CFLAGS_cyttsp4_mt_b.o   -= $(CY_CFLAG_REMOVE) 
CFLAGS_cyttsp4_mt_common.o  -= $(CY_CFLAG_REMOVE) 
CFLAGS_cyttsp4_btn.o   -= $(CY_CFLAG_REMOVE) 
CFLAGS_cyttsp4_proximity.o  -= $(CY_CFLAG_REMOVE) 
CFLAGS_cyttsp4_samsung_sysfs.o -= $(CY_CFLAG_REMOVE) 
CFLAGS_cyttsp4_device_access.o -= $(CY_CFLAG_REMOVE) 
CFLAGS_cyttsp4_test_device_access_api.o -= $(CY_CFLAG_REMOVE) 
CFLAGS_cyttsp4_loader.o   -= $(CY_CFLAG_REMOVE) 
CFLAGS_cyttsp4_debug.o   -= $(CY_CFLAG_REMOVE) 
CFLAGS_cyttsp4_devtree.o  -= $(CY_CFLAG_REMOVE) 
CFLAGS_cyttsp4_platform.o  -= $(CY_CFLAG_REMOVE) 

我得到的错误是:

/home/USER/Projects/OS/android_kernel_samsung_msm8974/drivers/gpu/gpu_sysfs/Kbuild:29: **** Make sure target file is defined. Check the TARGET and GPU configs in Makefile and Kernel Config. Module won't work without target file. **** 
/home/USER/Projects/OS/android_kernel_samsung_msm8974/drivers/input/touchscreen/cyttsp4/Makefile:50: *** missing separator. Stop. 
scripts/Makefile.clean:94: recipe for target 'drivers/input/touchscreen/cyttsp4' failed 
make[3]: *** [drivers/input/touchscreen/cyttsp4] Error 2 
scripts/Makefile.clean:94: recipe for target 'drivers/input/touchscreen' failed 
make[2]: *** [drivers/input/touchscreen] Error 2 
scripts/Makefile.clean:94: recipe for target 'drivers/input' failed 
make[1]: *** [drivers/input] Error 2 
Makefile:1201: recipe for target '_clean_drivers' failed 
make: *** [_clean_drivers] Error 2 
+1

第一次听说Make中有' - ='运算符。并找不到任何证据证明它是支持的。 – Tsyvarev

+1

我不是很习惯Makefile,我通常使用CMake来生成它们,而不是手动编辑它们,所以看到+ =让我觉得 - =也存在,但是你是对的,我也找不到它。我通过用$(filter-out,$(CY_CFLAG_REMOVE),$(CFLAGS_cyttsp_thing.o))替换所有的= =条目来修复它,现在似乎正常工作,很奇怪,制作Cyttsp4驱动程序的人甚至可能会出错那...... –

+0

由于您的解决方案有效,您可以考虑提供答案。如果有人找到更好的解决方案(比如'make'的修补版本),那将只是另一个答案。 – Tsyvarev

回答

0

这是(部分)用我的S4 I9506键盘写的,如果你想在S4 Nethunter评论的兴趣和虐待上手在一个指导自己移植它。无论如何,我会很快做出来的,但如果人们有兴趣,我会更加努力地制定一个更快移植Nethunter的指南。

基本上,如@Tsyvarev所述,Makefiles中没有 - =命令。基本上,为Cyttsp4制作Makefile的人(至少在我的内核源码中)并没有做得很好,经过一番研究后,他们可能认为和我一样,分隔符丢失错误是由于某个地方丢失了标签建议您何时搜索此问题。用@ Tsyvarev关于 - =不存在的信息进行快速搜索,我找到了正确的方法来做他们想做的事。这里是完整的Makefile的正确更改。您可以使用$(过滤掉,VARS_TO_REMOVE,RESULT)来删除标志。

错误是如此愚蠢我不明白它是如何制造的,考虑到它是在内核的源代码中发现的,而制造内核的人通常不是这种不熟练的,否则他们不会制作内核。

等一下......我犯错误,我哦......

总之,这里的代码!

### CYTTSP 
#obj-m += cyttsp4.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_core.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_i2c.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_platform.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_devtree.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_mt_common.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_mtb.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_btn.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_debug.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_device_access.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_loader.o 
obj-$(CONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4) += cyttsp4_samsung_sysfs.o 

CY_CFLAG_ADD =\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_DEVICETREE_SUPPORT\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_BUTTON\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_DEVICE_ACCESS\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_LOADER\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_PLATFORM_FW_UPGRADE\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_BINARY_FW_UPGRADE 

CY_CFLAG_REMOVE =\ 
    -DCYTTSP4_PDATA_IN_PLATFORM_C\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_PROXIMITY\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_PLATFORM_TTCONFIG_UPGRADE\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_DEVICE_ACCESS_API\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_DEBUG\ 
    -DCONFIG_TOUCHSCREEN_CYPRESS_CYTTSP4_MANUAL_TTCONFIG_UPGRADE 

CFLAGS_cyttsp4_core.o   += $(CY_CFLAG_ADD) -DDEBUG 
CFLAGS_cyttsp4_i2c.o   += $(CY_CFLAG_ADD) -DDEBUG 
CFLAGS_cyttsp4_spi.o   += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_mta.o   += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_mtb.o   += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_mt_a.o   += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_mt_b.o   += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_mt_common.o  += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_btn.o   += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_proximity.o  += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_samsung_sysfs.o += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_device_access.o += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_test_device_access_api.o += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_loader.o   += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_debug.o   += $(CY_CFLAG_ADD) 
CFLAGS_cyttsp4_devtree.o  += $(CY_CFLAG_ADD) -DDEBUG 
CFLAGS_cyttsp4_platform.o  += $(CY_CFLAG_ADD) -DDEBUG 

CFLAGS_cyttsp4_core.o   := $(filter-out $(CY_CFLAG_REMOVE),$(CFLAGS_cyttsp4_core.o)) 
CFLAGS_cyttsp4_i2c.o   := $(filter-out $(CY_CFLAG_REMOVE),$(CFLAGS_cyttsp4_i2c.o)) 
CFLAGS_cyttsp4_spi.o   := $(filter-out $(CY_CFLAG_REMOVE),$(CFLAGS_cyttsp4_spi.o)) 
CFLAGS_cyttsp4_mta.o   := $(filter-out $(CY_CFLAG_REMOVE),$(CFLAGS_cyttsp4_mta.o)) 
CFLAGS_cyttsp4_mtb.o   := $(filter-out $(CY_CFLAG_REMOVE),$(CFLAGS_cyttsp4_mtb.o)) 
CFLAGS_cyttsp4_mt_a.o   := $(filter-out $(CY_CFLAG_REMOVE),$(CFLAGS_cyttsp4_mt_a.o)) 
CFLAGS_cyttsp4_mt_b.o   := $(filter-out $(CY_CFLAG_REMOVE),$(CFLAGS_cyttsp4_mt_b.o)) 
CFLAGS_cyttsp4_mt_common.o  := $(filter-out $(CY_CFLAG_REMOVE),$(CFLAGS_cyttsp4_mt_common.o)) 
CFLAGS_cyttsp4_btn.o   := $(filter-out $(CY_CFLAG_REMOVE),$(CFLAGS_cyttsp4_btn.o)) 
CFLAGS_cyttsp4_proximity.o  := $(filter-out $(CY_CFLAG_REMOVE),$(CFLAGS_cyttsp4_proximity.o)) 
CFLAGS_cyttsp4_samsung_sysfs.o  := $(filter-out $(CY_CFLAG_REMOVE),$(CFLAGS_cyttsp4_samsung_sysfs.o)) 
CFLAGS_cyttsp4_device_access.o  := $(filter-out $(CY_CFLAG_REMOVE),$(CFLAGS_cyttsp4_device_access.o)) 
CFLAGS_cyttsp4_test_device_access_api.o  := $(filter-out $(CY_CFLAG_REMOVE),$(CFLAGS_cyttsp4_test_device_access_api.o)) 
CFLAGS_cyttsp4_loader.o   := $(filter-out $(CY_CFLAG_REMOVE),$(CFLAGS_cyttsp4_loader.o)) 
CFLAGS_cyttsp4_debug.o   := $(filter-out $(CY_CFLAG_REMOVE),$(CFLAGS_cyttsp4_debug.o)) 
CFLAGS_cyttsp4_devtree.o  := $(filter-out $(CY_CFLAG_REMOVE),$(CFLAGS_cyttsp4_devtree.o)) 
CFLAGS_cyttsp4_platform.o  := $(filter-out $(CY_CFLAG_REMOVE),$(CFLAGS_cyttsp4_platform.o))