主题 : 请教Makefile文件编写中的一个问题 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 10967
精华: 0
发帖: 27
金钱: 140 两
威望: 28 点
综合积分: 54 分
注册时间: 2009-11-23
最后登录: 2011-03-23
楼主  发表于: 2010-02-23 15:50

 请教Makefile文件编写中的一个问题

#
# V0.0.0.3 Ver.Make

# default to build for the running kernel
ifeq ("x", "x$(KERNEL_SRC)")
    KERNEL_SRC=/lib/modules/$(shell uname -r)/build
endif

# use KERNEL_SRC if not called by our driver disk maker
ifeq ("x", "x$(KERNEL_SOURCE_DIR)")
        KERNEL_SRC_DIR=$(KERNEL_SRC)
else
    KERNEL_SRC_DIR=$(KERNEL_SOURCE_DIR)
endif

ifeq ("x", "x$(KERNEL_BUILD_DIR)")
    KERNEL_BLD_DIR=$(KERNEL_SRC_DIR)
else
        KERNEL_BLD_DIR=$(KERNEL_BUILD_DIR)
endif

ifneq ($(KERNELRELEASE),)
    include $(SUBDIRS)/mv_conf.mk
else
    include mv_conf.mk
endif

ifeq ("xy", "x$(RAID_MODULE)")
    USE_RAID=y
    LIB_TYPE=_raid_
else
    USE_RAID=n
    LIB_TYPE=_nonraid_
endif

# we may build for 32bit kernel on a 64bit system
CONFIG_64BIT=$(shell [ -f $(KERNEL_BLD_DIR)/.config ] && cat $(KERNEL_BLD_DIR)/.config | grep -m 1 CONFIG_64BIT | awk -F= '{print $$2}')
CONFIG_REGPARM=$(shell [ -f $(KERNEL_BLD_DIR)/.config ] && cat $(KERNEL_BLD_DIR)/.config | grep -m 1 CONFIG_REGPARM | awk -F= '{print $$2}')
CONFIG_SUSE_KERNEL=$(shell [ -f $(KERNEL_BLD_DIR)/.config ] && cat $(KERNEL_BLD_DIR)/.config | grep -m 1 CONFIG_SUSE_KERNEL | awk -F= '{print $$2}')


上文中
ifeq ("x", "x$(KERNEL_SRC)")
    KERNEL_SRC=/lib/modules/$(shell uname -r)/build
endif
"x” 要和"x$(KERNEL_SRC)"做比较 但是这个x没有定义,要是是输入参数的话为什么是"x"?不是x呢?没想明白。
Terminal里面直接输入make就可以编译成功,但是这样不加入参数写的话是不是就没有意义了呢?没看明白,还请高手解答一下。谢谢。