LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1686|回复: 2

The Goat Book 中文版 (4.2)

[复制链接]
发表于 2003-12-20 21:16:10 | 显示全部楼层 |阅读模式
//*************************************************************

译序

初学linux系统,感觉linux底下的编译,链接程序真的很麻烦。
因此想到了用Autoconf等工具。找到了Autobook这本好书。
也不知道有没有人翻译过这本书。
该书由女友Ellen翻译,在此对她表示感谢。
该书原文请参考 http://sources.redhat.com/autobook/...tobook_toc.html
如果翻译时有什么错误请
Ellengut2002@yahoo.com或者jasongut2002@126.com

转载请保留译序,3x.

//--------------------------------
4.2
   Makefile有一套令初用者十分头疼的特殊语法。语法中包括很多make的应用,其中有不可移植的扩展名。以下将对makefile语法作一个简单描述。就可移植性而言,它可能比你已习惯的语法更严格。
   解释以“#”开头直到该行结束。它们可以在除命令序列之外的任何地方出现,因为如果解释出现在命令序列中,它们会被运行命令的shell打断。下面的Makefile'表示三个各自带依赖关系的独立目标。
//*******************
arget1: dep1-  dep2 ... depN
<tab> cmd1
<tab> cmd1
<tab> ..
<tab> cmdn
target2:  dep4 dep5
<tab  cmd1
<tab  cmd2
dep4 dep5:
<tab> cmd1
//********************
   目标规则处于一行的开头并以冒号结尾。冒号后面是由空格键分隔的依赖关系列表。紧接着是一系列包含shell命令的行。这些shell命令将由子shell运行(缺省是Bourne shell)。每一行都必须由字符tab开头。这是初用者常犯的错误。
    这些命令也可以由字符@开头来防止make在执行命令前显示它们。它们也可以有选择性的以字符“-”开头,这样当命令以非零退出码回归时规则仍可继续。这两个字符的结合使用也是允许的。
发表于 2003-12-21 14:38:50 | 显示全部楼层
ding
好东西
译完后,打包吧!
thank you very much
 楼主| 发表于 2003-12-30 22:01:01 | 显示全部楼层

The Goat Book (4.3) 宏

//***************************
译序

初学linux系统,感觉linux底下的编译,链接程序真的很麻烦。
因此想到了用Autoconf等工具。找到了Autobook这本好书。
也不知道有没有人翻译过这本书。
该书由女友Ellen翻译,在此对她表示感谢。
该书原文请参考
:ask[url]http://sources.redhat.com/autobook/autobook/autobook_21.html#SEC21[url]
如果翻译时有什么错误请
Ellengut2002@yahoo.com或者jasongut2002@126.com
//**************************
4.3 宏

   一些有用的宏可以在`Makefile'的任何地方使用。像shell的变量一样,宏以符号“$”开头。我们的第一个`Makefile'使用了一些“$”,例如:
  
        $(CC) $(CFLAGS) -c $< -o $@

这里的语法标志`$(..)'是make变量的扩展名。可以用`var=value'规定make变量。

         CC = ec++

在`Makefile中由`ec++'代替'$(CC) 。make有一些内建的参数和缺省值。$(CC)的缺省值为cc。

    其他的内建宏有自己的固定意义。其中最常见的两个宏是$@和$<。它们代表目标名和它们所在规则的第一层依赖关系。$@可以在任何规则中使用,但是在make的一些版本中,$<只能后缀规则中使用。以下是个简单的Makefile'文件:

all:    dummy
        @echo "$@ depends on dummy"
dummy:
        touch $@

以下是make在处理上述的Makefile文件时将输出的内容:
//+++++++++++'
$ make
touch dummy
all depends on dummy
//+++++++++++++++++++++
GNU Make manual使用手册对这些宏有更详细的叙述


:comp4.4 后缀规则

  有一类特殊的后缀规则(suffix rule)可以简化`Makefile文件。通配符形式可以与目标相匹配。我们的第一个`Makefile文件使用了一些通配符形式。例如:
//+++++++++++++++++
c.o:
        $(CC) $(CFLAGS) -c $< -o $@
//+++++++++++++++++
除非有更特殊的规则与目标相匹配,否则上述规则将与任何以`.o'结尾的目标相匹配。这些文件就说成是总依赖`.c'。有了这些背景资料后,现在我们来看一下如何使用这些工具。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表