makefiel 中默认规则-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 752879
  • 博文数量: 144
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1150
  • 用 户 组: 普通用户
  • 注册时间: 2014-03-17 14:32
个人简介

小公司研发总监,既当司令也当兵!

文章分类

全部博文(144)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: linux

2018-09-11 20:03:59


之前在某项目中看到一个编译openwrt的包裹makefile,其中有段定义如下:

点击(此处)折叠或打开

  1. packages_prep :
  2.     @do-something

  3. public_pre:@others
  4.     @do-something

  5. private_pre:
  6.     @do-smoething

  7. menuconfig:packages_prep public_pre private_pre

  8. kernel_menuconfig:packages_prep public_pre private_pre

  9. %::
  10.         @echo "[xxx] $@"
  11.         @$(make) -c $(private_openwrt_dir)/ $@
其中packages_prep public_pre private_pre 这几个目标是做一些对openwrt 的.config文件以及一些包的定制。主要有一句
%::
定义
一个默认目标,之前没见过该使用方法,于是做了几个实验,记录一下:
1, 在该makefile中,该默认目标的的作用是:“除了本makefile定义的目标外,其余传入的目标都转入private_openwrt_dir中makefile处理”。 比如输入"make hello", 那么会输出 “[xxx] hello", 并且private_openwrt_dir会输出该目标的编译信息(或错误信息)。
2,
输入“make menuconfig”时,也会输出“[xxx] menuconfig”。原因是menuconfig目标没有动作。

所以总结起来,该默认目标的功能就是:当输入的目标在当前makefile中没有定义,或者当前目标没有任何行为时,交由默认目标执行动作。
以上是通过简单试验出来的,不一定准确,有详细介绍的请回复。

阅读(3697) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图