码迷,mamicode.com
首页 > 其他好文 > 详细

Makefile学习(02)

时间:2016-06-24 09:22:22      阅读:150      评论:0      收藏:0      [点我收藏+]

标签:

1.Makefile的文件名

你可以使用别的文件名来书写Makefile,比如make.linux,如果要指定特定的Makefile,你可以使用make的“-f”和“--file”参数,如

make -f make.linux    或 make --file make.linux

 

2.在Makefile使用include关键字可以把别的Makefile包含进来,

  include  <filename>   //filename可以是当前操作系统Shell的文件模式(可以保含路径和通配符)

在include前面可以有一些空字符,但绝对不能是Tap键开始。include和<filename>可以用一个和多个空格隔开

例:举个例子,你有这样几个Makefile:a.mk、b.mk、c.mk,还有一个文件叫foo.make,以及一个变量$(bar),其包含了e.mk和f.mk

  include foo.make *.mk $(bar)
  等价于:
  include foo.make a.mk b.mk c.mk e.mk f.mk

3.lpr与lp来产生打印作业

  lpr [-p printer队列] [-# 打印份数] -U [username] file

指定 hp_p2015 这部打印机来打印 /etc/passwd 这个档案

[root@www ~]# lpr -P hp_p2015 /etc/passwd

 4.Makefile中多目标

  “$@”自动化变量,表示目前规则中多有的目标的集合

    bigoutput littleoutput : text.g
        generate text.g -$(subst output,,$@) > $@

   -$(subst output,,$@)中的"$"表示执行一个Makefile的函数,函数名为subst,后面的为参数。

  "$@"表示目标的集合,就像一个数组,"$@"依次取出目标,并执行命令

5.subst这是一个替换函数,有三个参数,第一个参数是被替换字串,第二个参数是替换字串,第三个参数是替换操作作用的字串。

  comma:= ,
  empty:=
  space:= $(empty) $(empty)
  foo:= a b c
  bar:= $(subst $(space),$(comma),$(foo))

$(subst $(space),$(comma),$(foo))   //这个函数也就是把$(foo)中的空格替换成逗号,

Makefile学习(02)

标签:

原文地址:http://www.cnblogs.com/Caden-liu8888/p/5613049.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!