将自定义安装目录选项添加到Autoconf生成的配置脚本

时间:2010-08-21 19:57:41

标签: install 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 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
...

我想要做的是在本节中添加“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]
...

这样用户就可以将--plugindir=...传递给配置脚本。

我该怎么做?

3 个答案:

答案 0 :(得分:3)

将以下行放在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

答案 1 :(得分:0)

如果我是正确的,则在share / autoconf / autoconf / general.m4文件中设置这些路径。该列表是硬编码的,因此很难在列表中插入内容。您可以使用宏AS_HELP_STRING添加额外的帮助信息。 有些示例添加了一个plugindir,例如gstreamergimp,但那些没有可配置的插件目录。

答案 2 :(得分:0)

我认为你在AC_SUBST的正确轨道上。

此外,我认为您可以使用AS_HELP_STRING修改或扩展configure的--help输出。

请参阅:http://www.gnu.org/s/hello/manual/autoconf/Pretty-Help-Strings.html