###############################################################################
# @file Makefile
# @note HangZhou Hikvision Digital Technology Co., Ltd. All Right Reserved.
# @brief Linux Device Driver Generic Makefile
#
# @author liuboyf1
# @data 2012-09-28
# @version V1.0.6
# @note History:
# @note <author> <time> <version> <desc>
# @note liuboyf1 2012-08-30 V1.0.0 创建文件
# @note liuboyf1 2012-09-26 V1.0.1 修改了CFLAGS为EXTRA_CFLAGS
# @note liuboyf1 2012-09-26 V1.0.2 简化了调试宏部分
# @note liuboyf1 2012-09-28 V1.0.3 修改rm为-rm
# @note liuboyf1 2012-10-08 V1.0.4 修改make clean
# @note liuboyf1 2012-10-10 V1.0.5 修改KERNELDIR
# @note liuboyf1 2012-10-15 V1.0.6 修改了调试参数和布局
###############################################################################
# The prefix to be added before the GNU compiler tools (optionally including
# path), i.e. "arm-linux-" or "/opt/bin/arm-linux-".
#TOOL_DIR = /opt/v5t_le-mv401_uc
# 交叉编译工具
#TOOL_PREFIX = $(TOOL_DIR)/bin/arm_v5t_le-
# Comment/uncomment the following line to enable/disable debugging
#DEBUG = y
ifeq ($(DEBUG),y)
DEBFLAGS = -O -g # "-O" is needed to expand inlines
DEBFLAGS += -DDEBUG # 控制是否打印调试和错误信息
else
DEBFLAGS = -O2
endif
EXTRA_CFLAGS += -Wall
EXTRA_CFLAGS += $(DEBFLAGS)
#EXTRA_CFLAGS += -I$(LDDINC)
#tool chain
CC = $(TOOL_PREFIX)gcc
#AR:= $(TOOL_PREFIX)ar -rv
MODULE_NAME = mycdev
ifneq ($(KERNELRELEASE),)
obj-m := $(MODULE_NAME).o
#$(MODULE_NAME)-objs := file_opr.o mem_proc.o main.o
else
# in my Debian6 2.6.32
KERNELVER ?= $(shell uname -r)
KERNELDIR ?= /lib/modules/$(KERNELVER)/build
# in my IPC 2.6.18
#KERNELDIR ?= /home/akagi201/kernel_step
PWD := $(shell pwd)
modules:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
#cp $(MODULE_NAME).ko $(PWD)/..
modules_install:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules_install
endif
clean:
$(MAKE) -C $(KERNELDIR) M=$(PWD) clean
.PHONY: modules modules_install clean
depend .depend dep:
$(CC) $(EXTRA_CFLAGS) -M *.c > .depend
ifeq (.depend,$(wildcard .depend))
include .depend
endif
Akagi201的Linux驱动通用Makefile
最新推荐文章于 2024-05-30 10:04:25 发布