Installation 向Autoconf生成的配置脚本添加自定义安装目录选项
Installation 向Autoconf生成的配置脚本添加自定义安装目录选项,installation,autoconf,configure,automake,make-install,Installation,Autoconf,Configure,Automake,Make Install,configure脚本在帮助消息中始终包含以下内容: ... By default, `make install' will install all the files in `/usr/local/bin', `/usr/local/lib' etc. You can specify an installation prefix other than `/usr/local' using `--prefix', for instance `--prefix=$HOME'. For bett
configure
脚本在帮助消息中始终包含以下内容:
...
By default, `make install' will install all the files in
`/usr/local/bin', `/usr/local/lib' etc. You can specify
an installation prefix other than `/usr/local' using `--prefix',
for instance `--prefix=$HOME'.
For better control, use the options below.
Fine tuning of the installation directories:
--bindir=DIR user executables [EPREFIX/bin]
--sbindir=DIR system admin executables [EPREFIX/sbin]
--libexecdir=DIR program executables [EPREFIX/libexec]
--sysconfdir=DIR read-only single-machine data [PREFIX/etc]
--sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]
--localstatedir=DIR modifiable single-machine data [PREFIX/var]
--libdir=DIR object code libraries [EPREFIX/lib]
--includedir=DIR C header files [PREFIX/include]
--oldincludedir=DIR C header files for non-gcc [/usr/include]
--datarootdir=DIR read-only arch.-independent data root [PREFIX/share]
--datadir=DIR read-only architecture-independent data [DATAROOTDIR]
--infodir=DIR info documentation [DATAROOTDIR/info]
--localedir=DIR locale-dependent data [DATAROOTDIR/locale]
--mandir=DIR man documentation [DATAROOTDIR/man]
--docdir=DIR documentation root
[DATAROOTDIR/doc/gedit-line-ending-style-plugin]
--htmldir=DIR html documentation [DOCDIR]
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
Program names:
--program-prefix=PREFIX prepend PREFIX to installed program names
...
...
默认情况下,“make install”将安装中的所有文件
`/usr/local/bin'、`/usr/local/lib'等。您可以指定
除使用“---prefix”的“/usr/local”之外的安装前缀,
例如“--prefix=$HOME”。
为了更好地控制,请使用以下选项。
安装目录的微调:
--bindir=DIR用户可执行文件[EPREFIX/bin]
--sbindir=DIR系统管理可执行文件[EPREFIX/sbin]
--libexecdir=DIR程序可执行文件[EPREFIX/libexec]
--sysconfdir=DIR只读单机数据[前缀/etc]
--sharedstatedir=DIR可修改体系结构独立数据[PREFIX/com]
--localstatedir=DIR可修改的单机数据[前缀/var]
--libdir=DIR对象代码库[EPREFIX/lib]
--includedir=DIR C头文件[前缀/包含]
--oldincludedir=DIR非gcc的C头文件[/usr/include]
--datarootdir=DIR只读arch.-独立数据根[前缀/共享]
--datadir=DIR只读架构独立数据[DATAROOTDIR]
--infodir=DIR信息文档[DATAROOTDIR/info]
--localedir=DIR依赖于区域设置的数据[DATAROOTDIR/locale]
--mandir=DIR-man文档[DATAROOTDIR/man]
--docdir=DIR文档根目录
[DATAROOTDIR/doc/gedit行结束样式插件]
--htmldir=DIR html文档[DOCDIR]
--dvidir=DIR dvi文档[DOCDIR]
--pdfdir=DIR pdf文档[DOCDIR]
--psdir=DIR ps文档[DOCDIR]
程序名称:
--program prefix=为已安装的程序名添加前缀前缀
...
我想做的是在本节中添加“plugindir”,如下所示:
...
--dvidir=DIR dvi documentation [DOCDIR]
--pdfdir=DIR pdf documentation [DOCDIR]
--psdir=DIR ps documentation [DOCDIR]
--plugindir=DIR Gedit plugin files [LIBDIR/gedit-2/plugins]
...
...
--dvidir=DIR dvi文档[DOCDIR]
--pdfdir=DIR pdf文档[DOCDIR]
--psdir=DIR ps文档[DOCDIR]
--plugindir=DIR-Gedit插件文件[LIBDIR/Gedit-2/plugins]
...
这样用户就可以将--plugindir=…
传递到配置脚本
如何执行此操作?如果我正确,则在share/autoconf/autoconf/general.m4文件中设置了这些路径。列表是硬编码的,因此很难在列表中插入内容。可以使用宏添加额外的帮助信息。
有一些示例添加了plugindir,例如在中,但这些示例没有可配置的插件目录 我认为你使用AC_SUBST的方法是正确的 此外,我认为您可以修改或扩展configure with AS_help_字符串的--help输出
请参阅:在
configure.ac
的开头附近放置以下行:
AC_ARG_WITH([pkgconfigdir],
[AS_HELP_STRING([--with-pkgconfigdir=DIR], [pkgconfig files])],
[pkgconfigdir=$withval],
[pkgconfigdir="\${libdir}/pkgconfig"])
AC_SUBST([pkgconfigdir], [$pkgconfigdir])
然后,在Makefile.am
中,您可以像这样引用目录:
pkgconfigdir = @pkgconfigdir@
pkgconfig_DATA = mylibrary.pc
有趣。我的
/usr/share/autoconf/autoconf/general.m4
文件的第1058行负责“安装目录的微调:”行。但是,我似乎无法轻松添加到configure
脚本帮助文本的“安装目录”部分,而无需修改general.m4
。但是,至少我现在知道了。我不确定你指的是gstreamer和xine的哪种方法。但是,我做的是修改了general.m4
中的一行,将AC_SUBST([plugindir],“${libdir}/gedit-2/plugins]”)添加到我的configure.AC
。然后,在Makefile.am
中的plugin\u DATA
变量中指定要安装到“plugindir”的目标。它不像我最初想要的那样是用户可配置的,但是它工作得很好:gstreamer和xine都没有按照OP的要求来做。两者都设置了插件路径,用户无法指定。我能看到的允许用户在配置时指定插件路径的唯一方法是滥用AC_ARG_WITH,它将文档放在“可选包”下,而不是“安装目录的微调”。general.m4是autoconf的内部文件,不要弄乱它。链接已断开。但在我看来,每个人都使用AC\u ARG\u和。如果不修改Autoconf,则无法添加不带“with”或“enable”的参数。不需要第二个参数pkgconfigdir=@pkgconfigdir@
不需要。最好在帮助中指定默认值。您可以使用单引号而不是转义$
。的可能重复项