当前位置: 技术问答>linux和unix
一个关于Makefile的default目标的问题?
来源: 互联网 发布时间:2017-03-29
本文导语: 最近在看第三版,发现hello的Makefile都没明白,如下: ifneq ($(KERNELRELEASE),) obj-m := hello.o # Otherwise we were called directly from the command # line; invoke the kernel build system. else KERNELDIR ?= /lib/modules/$(shell uname -r)/build PWD :=...
最近在看第三版,发现hello的Makefile都没明白,如下:
ifneq ($(KERNELRELEASE),)
obj-m := hello.o
# Otherwise we were called directly from the command
# line; invoke the kernel build system.
else
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
书上的描述如下:
一旦发现内核源码树, makefile调用default:目标, 来运行第 2 个 make 命令( 在 makefile
里参数化成 $(MAKE))象前面描述过的一样来调用内核建立系统.
我不明白的是,makefile调用的为什么是default目标?? 我的理解应该是all目标的,在我的理解中default好像不是makefile默认规则定义的目标????
ifneq ($(KERNELRELEASE),)
obj-m := hello.o
# Otherwise we were called directly from the command
# line; invoke the kernel build system.
else
KERNELDIR ?= /lib/modules/$(shell uname -r)/build
PWD := $(shell pwd)
default:
$(MAKE) -C $(KERNELDIR) M=$(PWD) modules
endif
书上的描述如下:
一旦发现内核源码树, makefile调用default:目标, 来运行第 2 个 make 命令( 在 makefile
里参数化成 $(MAKE))象前面描述过的一样来调用内核建立系统.
我不明白的是,makefile调用的为什么是default目标?? 我的理解应该是all目标的,在我的理解中default好像不是makefile默认规则定义的目标????
|
Makefile里的第一个目标才是Makefile默认的执行目标
所以,你的default改成别的也没问题,只要是第一个目标,就会默认执行
所以,你的default改成别的也没问题,只要是第一个目标,就会默认执行