如何编写Makefile引用外部内核源码

内核:
需要编译lib库,但C文件和内核源码不在一个目录下
如何编写Makefile引用内核源码?

我的Makefile如下,提示找不到用到的内核源码
KERNELDIR=/PROJECT/kernel/kernel

CROSS_COMPILE        ?=
AS                = $(CROSS_COMPILE)as
LD                = $(CROSS_COMPILE)ld
CC                = $(CROSS_COMPILE)gcc
CPP                = $(CC) -E
AR                = $(CROSS_COMPILE)ar
NM                = $(CROSS_COMPILE)nm

lib_OBJECTS  = hook_driver.o
lib_SOURCE  =  hook_driver.c

hook_driver.a(lib_OBJECTS)
        $(AR) $(KERNELDIR) M=$(shell pwd) -o $@ $^
       
$(lib_OBJECTS)(lib_SOURCE)
        $(CC) $(KERNELDIR) M=$(shell pwd) -o $@ $^

clean:
        rm -rf *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions *.bak Module.symvers *.order

作者: star990   发布时间: 2011-01-17

指定你的include 路径为你当现内核路径就可以吧

作者: 468904197   发布时间: 2011-01-17

$ make -C ${kernel_src} M=$(pwd)

作者: linyunxian   发布时间: 2011-01-17

$ make -C ${kernel_src} M=$(pwd)

这个是编KO的方法,我要编O
然后再AR成.a

作者: star990   发布时间: 2011-01-17