Linux驱动makefile
1.在本地x86linux下跑驱动的makefile
1 ifneq ($(KERNELRELEASE),)
2 $(info "xx")
3 obj-m :=driver.o
4 else
5 KDIR :=/lib/modules/$(shell uname -r)/build
6 PWD :=$(shell pwd)
7 all:
8 $(info "x")
9 make -C $(KDIR) M=$(PWD) modules
10 gcc -o test test.c
11 clean:
12 rm -f *.ko *.o *.mod.o *.symvers *.cmd *.mod.c *.order
13 endif
2.在本地arm平台linux下跑驱动的makefile
ifneq ($(KERNELRELEASE),)
$(info "xx")
obj-m := driver.o
else
KERNELDIR := /home/alientek/mylinux/linux/linux-imx-rel_imx_4.1.15_2.1.0_ga_alientek
CURRENT_PATH := $(shell pwd)
build: kernel_modules
kernel_modules:
$(info "x")
$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) modules
arm-linux-gnueabihf-gcc -o test test.c
clean:
$(MAKE) -C $(KERNELDIR) M=$(CURRENT_PATH) clean
endif
异同:
异:
1.KERNELRELEASE不同(所指的内核路径不同)
2.内核下makefile配置不同,如:ARCH与ARCOSS_COMPILE
同:
进入子makefile一次
进入内核makefile两次