配置是如何进行的
每个GNU发布版本都应该还有一个名为
你希望在那种机器和系统上编译程序作为参数告诉这个脚本。
configure
的shell脚本。你需要把
你希望在那种机器和系统上编译程序作为参数告诉这个脚本。
脚本
configure
必须记录配置信息以便它们可以影响编译工作。
这样做的一种方式是把一个诸如
`config.h'的标准名字和为选定的系统匹配的
正确配置文件连接起来。如果你使用了这种技术,发布版本中就 不应该包含名为
`config.h'的文件。这样做是为了保证用户在配置程序之前不能够创建它。
版本中就不能包含名为 `Makefile'的文件。用 `Makefile.in'来代替
它,并且 `Makefile.in'为
这样做是为了保证用户在配置程序之前不能创建它。
正确配置文件连接起来。如果你使用了这种技术,发布版本中就 不应该包含名为
`config.h'的文件。这样做是为了保证用户在配置程序之前不能够创建它。
configure
可以做的另一件事情是编辑Makefile。如果你这样做了,发布
版本中就不能包含名为 `Makefile'的文件。用 `Makefile.in'来代替
它,并且 `Makefile.in'为
configure
的编辑提供了输入。同样,
这样做是为了保证用户在配置程序之前不能创建它。
如果
就应该包含一个名为 `Makefile'的目标,这个目标将重新运行
以与获取上一次配置相同的配置信息。由
依赖性文件而在 `Makefile'中被列出。
configure
生成了
`Makefile',那么
`Makefile'就应该包含一个名为 `Makefile'的目标,这个目标将重新运行
configure
以与获取上一次配置相同的配置信息。由
configure
读取的文件,应该作为
依赖性文件而在 `Makefile'中被列出。
所有由
以说明它们是由
修改它们。
configure
脚本生成的文件在它们的第一行都应该包含一条注释
以说明它们是由
configure
自动生成的。这样做是为了确保用户不会试图手工
修改它们。
脚本
说明了在程序的最后一次配置中给出了那些配置选项。该文件应该是一个shell脚本,如果运行它,
将重新生成相同的配置。
configure
应该写入一个名为
`config.status'的文件,该文件
说明了在程序的最后一次配置中给出了那些配置选项。该文件应该是一个shell脚本,如果运行它,
将重新生成相同的配置。
脚本
的选项以指明在那个目录中可以找到源代码(如果源代码不在当前目录中)。这使得可以在
实际代码目录没有被修改的情况下,在分离的中创建程序成为可能。
configure
应该接受形式为
`--srcdir=dirname'的选项以指明在那个目录中可以找到源代码(如果源代码不在当前目录中)。这使得可以在
实际代码目录没有被修改的情况下,在分离的中创建程序成为可能。
如果用户没有给出
`--srcdir',那么
和 `..'中寻找源文件。如果它在上述地方之一发现源文件,它就应该在那里使用它们。
否则,它应该报告它没有找到源文件,并且以非零状态退出。
configure
将在
`.'和 `..'中寻找源文件。如果它在上述地方之一发现源文件,它就应该在那里使用它们。
否则,它应该报告它没有找到源文件,并且以非零状态退出。
通常,支持
`--srcdir'的简单方式是通过编辑被放到Makefile中的一个
目的,
该变量的值就是给定的目录。
VPATH
的定义。可能有一些规则需要被显式地引用以指明源代码目录。为了达到这个
目的,
configure
可以把一个名为
srcdir
的变量添加到Makefile中,
该变量的值就是给定的目录。
脚本
这个选项看起来应该象:
configure
还应该提供一个可以指明程序是究竟为那种系统而创建的选项。
这个选项看起来应该象:
cpu-company-system
例如,一个Sun 3可能是
`m68k-sun-sunos4.1'。
脚本
`sun3-sunos4.1'应该是有效的别名。 `sun3-bsd4.2'也是如此,
因为SunOS是基于BSD的并且没有其它的BSD系统被用于Sun。对于许多程序来说,
因为Ultrix和BSD之间的区别很少被注意到,所以 `vax-dec-ultrix'将是
`vax-dec-bsd'的一个别名。但少数程序可能需要区分它们。
configure
需要能够解释所有对机器的似是而非的描述方式。因此,
`sun3-sunos4.1'应该是有效的别名。 `sun3-bsd4.2'也是如此,
因为SunOS是基于BSD的并且没有其它的BSD系统被用于Sun。对于许多程序来说,
因为Ultrix和BSD之间的区别很少被注意到,所以 `vax-dec-ultrix'将是
`vax-dec-bsd'的一个别名。但少数程序可能需要区分它们。
这里有一个被称为
`config.sub'的shell脚本,你可以把它作为一个子程序使用
以检查系统类型并且对别名进行规范化。
以检查系统类型并且对别名进行规范化。
允许出现其它选项以指明关于机器的软件或者硬件的更多细节:
-
`--with-package'
-
包
package将被安装,所以把本包配置成与
package一同工作。
package可能的取值包括 `x'、 `gnu-as'(或者
`gas')、 `gnu-ld'、 `gnu-libc'和 `gdb'。
`--nfp'
-
目标机器没有浮点数处理器。
`--gas'
-
目标机器的汇编器是GAS,GNU的汇编器。该选项已经过时了;用
`--with-gnu-as'来代替。
`--x'
-
目标机器已经安装了X Window系统。该选项已经过时了;用
`--with-x' instead来代替。
所有的
包产生影响。特别地,它们应该接受任何以 `--with-'开头的选项。这样做是因为这使得用户
可以用同一组选项配置整个GNU源代码树。
configure
脚本都应该接受所有这些“细节”选项,而不论它们是否会对手头的特定
包产生影响。特别地,它们应该接受任何以 `--with-'开头的选项。这样做是因为这使得用户
可以用同一组选项配置整个GNU源代码树。
作为编译的一部分的包可能支持交叉编译(cross-compliation)。在这种情况下,程序的主机和目标机器
可能是不同的。
的机器类型相同的机器上运行的程序。
可能是不同的。
configure
通常把指明的系统类型当作主机和目标机器,因此将创建与运行它
的机器类型相同的机器上运行的程序。
创建交叉编译器(cross-compiler)、交叉汇编器(cross-assembler)、或者你自己的程序,通过在运行
目标机器的情况下指明了主机名。 hosttype的语法与前面所说的一样。
configure
时给出选项
`--host=hosttype'来完成。它在不影响
目标机器的情况下指明了主机名。 hosttype的语法与前面所说的一样。
因为为互操作(cross-operation)配置整个操作系统是一件没有意义的事,对互操作来说没有意义的程序
就不必接受选项 `--host'。
就不必接受选项 `--host'。
有些程序自动地配置它们自己。如果你的程序被设置成这样,你的
忽略它的大部分参数就行了。
configure
脚本只需要简单地
忽略它的大部分参数就行了。
0
收藏
推荐专栏更多
猜你喜欢
我的友情链接
windows 7 安装vmware
Java线程:线程的调度-休眠
我们不得不面对的中年职场危机
职场终极密籍--记我的职业生涯
用光影魔术手制作一寸照片(8张一寸)
我的IT职场生涯: 毕业4年,月薪过万
Linux关闭休眠和屏保模式
年薪从0到10万-我的IT职场经验总结
Windows7删除休眠文件hiberfil.sys节省大量C盘空间
致IT同仁 — IT人士常犯的17个职场错误
“跳槽加薪”现象,无奈的职场规则
智能合约编程语言-solidity快速入门(下)
Android中适配器的notifyDataSetChanged()为何有时不刷新
如何在Spring Boot中使用Hibernate Natural ID
从hook开始聊聊那些windows内核数据结构
Scala的actor
正则性能调优
windows下kafka+ELK的日志系统
Nginx下,请求本机另外Host很慢
扫一扫,领取大礼包
转载于:https://blog.51cto.com/baigoogledu/154241
Ctrl+Enter 发布
发布
取消