Linux中Makefile与Kconfig的关系是怎样的?

将TP驱动编辑进内核时遇到以下几种情况(注:宏调用没问题):

1、TP驱动加载失败(一)
(一)TP驱动目录下无Kconfig,所在上级目录Kconfig中直接调用,Kconfig添加代码如下:
路径:input/touchscreen/

config TOUCHSCREEN_GSLx680
         bool "GSL touchpanel gslx680 series"
         depends on I2C
         help
           Say Y here if you have a GSL gslx680 touchscreen.
           GSLx680 controllers are multi touch controllers which can
           report 5 touches at a time.
           If unsure, say N.

TP驱动上级目录Makefile
路径:input/touchscreen/

 obj-$(CONFIG_TOUCHSCREEN_GSLx680)          += gslx680/

TP驱动本级目录Makefile
路径:input/touchscreen/gslx680/

#gsl touchpanel driver
  obj-m += gsl.o
  gsl-objs := gsl_ts_driver.o gsl_point_id.o

以上这样添加的话,TP驱动没有编译进内核,就很奇怪!

我尝试过把上级目录调用tp的Kconfig放到单独的Kconfig文件中,放到tp本级目录下,上级Kconfig中使用
source "drivers/input/touchscreen/gslx680/Kconfig"去调用,但也没有成功。

我就比较迷,感觉调用方法是没有问题,但总不能成功,怀疑是我理解错了他们之间的关系,大家可以一起来讨论讨论。

希望能助我编译成功。

目前这个问题已经解决,最后发现是在客制化的时候将我所用到的宏文件未客制进去导致的,但是他们之间的调用关系还是没有理清楚,大家思路清晰的希望可以帮我理一下,感谢!