环境变量等可以放在makefile.config配置文件中
#ifeq ($(CROSS_TOOLCHAIN_PREFIX),)
#include ../makefile.config
#endif
也可直接定义
KERNELDIR=
CROSS_TOOLCHAIN_PREFIX=
ifeq ($(KERNELRELEASE),)
PWD := $(shell pwd)
CFLAGS +=-fno-common
modules:
$(MAKE) CFLAGS+=-DDEBUG ARCH=powerpc CROSS_COMPILE=$(CROSS_TOOLCHAIN_PREFIX) -C $(KERNELDIR) M=$(PWD) modules
modules_install:
$(MAKE) CFLAGS+=-DDEBUG ARCH=powerpc CROSS_COMPILE=$(CROSS_TOOLCHAIN_PREFIX) -C $(KERNELDIR) M=$(PWD) modules_install
clean:
rm -rf modules.* *.o *~ core .depend .*.cmd *.ko *.mod.c .tmp_versions Module*
.PHONY:modules modules_install clean
else
obj-m :=driver.o
endif
如果一个模块包含多个.c文件,(如file1.c file2.c),应该以如下方式编写Makefile
obj-m := modulename.o
modulename-objs := file1.o file2.o