是否可以在不指定 --prefix 的情况下重新 运行 配置,但仍保留之前 运行 中指定的前缀?
Is it possible to re-run configure without specifying --prefix, but yet keeping the prefix specified on an earlier run?
假设我正在使用 autotools 为某个项目创建 Makefile,并且我经常更改 configure.ac
文件。之后,我必须更新构建文件:
/path/to/project/dir$ autoreconf -vfi
...
/path/to/project/dir$ ./configure --prefix=/home/user/.local
...
/path/to/project/dir$
我可以避免在每次 运行 autoreconf
时指定 --prefix
参数吗?如果我在下次 运行 ./configure
时简单地省略它,安装前缀将重置为 /usr/local
,但我希望它保留我在第一个指定的值 /home/user/.local
运行 个 ./configure
。
注意: 当然,我可以在我的 .bashrc
文件中创建一个别名:
alias configure="./configure --prefix=/home/user/.local
但是,那样的话,每次我想更改项目的前缀路径时,我都必须编辑 .bashrc
文件。
注释 2: 我观察到跳过重新 运行ning ./configure
使 make
运行 一些 config.status
脚本,所以这应该是可能的!
I am frequently changing the configure.ac
file. After that, I have to update the build files
嗯,不,不一定。至少,不是手动的。如果您已经至少配置了一次项目,并且仍然有生成的 Makefile 和其他配置结果,那么每次您 make
,构建系统都会自动重建自身并在需要时重新配置项目。
I observed that skipping re-running ./configure
makes make
run some config.status
script, so this should be possible !
的确,config.status
是configure
写的。它记录了 configure
参数及其测试结果,它是实际构建输出文件(例如 makefile)的组件。它包括对重新 运行ning configure
的支持,其参数与之前 configure
运行 所用的参数相同(当 config.status
本身已构建时)。
如果您满足于在进行更改后重新配置时使用所有相同的 configure
参数(包括宝贵的环境变量),那么最简单的事情就是让 make
处理它。在许多情况下,这将涵盖您。但是,如果您删除了 Makefile
,尤其是 config.status
,则所需信息将不再可用。除了手动删除这些文件外,如果 make distclean
或 make maintainer-clean
.
,您也将删除它们
当然,如果您需要添加、删除或修改任何 configure
参数,或者您直接 运行 configure
,这无济于事。如果您想涵盖此类情况,那么除了您建议的别名替代方案的一般路线之外,我看不到其他方法。我会在那个 class 选项中包括在项目中创建包装器或环境配置脚本,或者手动使用 alias
命令添加一个别名,该别名的范围限定为当前 shell 执行仅上下文。
假设我正在使用 autotools 为某个项目创建 Makefile,并且我经常更改 configure.ac
文件。之后,我必须更新构建文件:
/path/to/project/dir$ autoreconf -vfi
...
/path/to/project/dir$ ./configure --prefix=/home/user/.local
...
/path/to/project/dir$
我可以避免在每次 运行 autoreconf
时指定 --prefix
参数吗?如果我在下次 运行 ./configure
时简单地省略它,安装前缀将重置为 /usr/local
,但我希望它保留我在第一个指定的值 /home/user/.local
运行 个 ./configure
。
注意: 当然,我可以在我的 .bashrc
文件中创建一个别名:
alias configure="./configure --prefix=/home/user/.local
但是,那样的话,每次我想更改项目的前缀路径时,我都必须编辑 .bashrc
文件。
注释 2: 我观察到跳过重新 运行ning ./configure
使 make
运行 一些 config.status
脚本,所以这应该是可能的!
I am frequently changing the
configure.ac
file. After that, I have to update the build files
嗯,不,不一定。至少,不是手动的。如果您已经至少配置了一次项目,并且仍然有生成的 Makefile 和其他配置结果,那么每次您 make
,构建系统都会自动重建自身并在需要时重新配置项目。
I observed that skipping re-running
./configure
makesmake
run someconfig.status
script, so this should be possible !
的确,config.status
是configure
写的。它记录了 configure
参数及其测试结果,它是实际构建输出文件(例如 makefile)的组件。它包括对重新 运行ning configure
的支持,其参数与之前 configure
运行 所用的参数相同(当 config.status
本身已构建时)。
如果您满足于在进行更改后重新配置时使用所有相同的 configure
参数(包括宝贵的环境变量),那么最简单的事情就是让 make
处理它。在许多情况下,这将涵盖您。但是,如果您删除了 Makefile
,尤其是 config.status
,则所需信息将不再可用。除了手动删除这些文件外,如果 make distclean
或 make maintainer-clean
.
当然,如果您需要添加、删除或修改任何 configure
参数,或者您直接 运行 configure
,这无济于事。如果您想涵盖此类情况,那么除了您建议的别名替代方案的一般路线之外,我看不到其他方法。我会在那个 class 选项中包括在项目中创建包装器或环境配置脚本,或者手动使用 alias
命令添加一个别名,该别名的范围限定为当前 shell 执行仅上下文。