openwrt下的makefile文件,不同于普通linux下的makfile文件。
现整理一份在openwrt下写过的makefile,供以后参考。
一、Makefile文件
项目名称为ccon_ap。
1.1 代码
# Kernel module ccon_ap include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=ccon_ap PKG_RELEASE:=1 include $(INCLUDE_DIR)/package.mk define KernelPackage/ccon_ap SUBMENU:=Other modules NDS:=@TARGET_octeon TITLE:=Support Module for ccon_ap AUTOLOAD:=$(call AutoLoad,81,ccon_ap) FILES:=$(PKG_BUILD_DIR)/ccon_ap/ccon_ap.$(LINUX_KMOD_SUFFIX) endef define Build/Prepare mkdir -p $(PKG_BUILD_DIR) $(CP) -R ./src/* $(PKG_BUILD_DIR)/ endef define Build/Compile $(MAKE) -C "$(LINUX_DIR)" \ CROSS_COMPILE="$(TARGET_CROSS)" \ ARCH="$(LINUX_KARCH)" \ SUBDIRS="$(PKG_BUILD_DIR)/ccon_ap" \ EXTRA_CFLAGS="-g $(BUILDFLAGS)" \ modules endef $(eval $(call KernelPackage,ccon_ap))
1.2 对应的目录结构
ccon_ap目录 -> src目录、Makefile(上面的) -> ccon_ap目录 -> *.h *.c Makefile(见下面)
目录结构需按上面结构存放,否则需要修改上面的Makefile。
后面的Makefile,只需要列出要生产的.o文件名,如下:
obj-m := ccon_ap.o ccon_ap-objs := ap_main.o other.o
二、编译
2.1 配置
在指定目录下,执行make menuconfig:
Kernel modules -> Other modules -> kmod-ccon_ap -> 选中(S)
2.2 编译
编译:make (如果编译出错,make V=s查看调试信息; 参数 make -j4,是使用4个CPU编译)
清除:make clean