Добавление пользовательского параметра каталога установки в сценарии настройки, созданные Autoconf - PullRequest
6 голосов
/ 21 августа 2010

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 ]

3 голосов
/ 08 февраля 2015

Поместите следующие строки в 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
0 голосов
/ 28 сентября 2011

Я думаю, что вы на правильном пути с AC_SUBST.

Кроме того, я думаю, что вы можете изменить или расширить вывод --help конфигурации с помощью AS_HELP_STRING.

См .: http://www.gnu.org/s/hello/manual/autoconf/Pretty-Help-Strings.html

0 голосов
/ 22 августа 2010

Если я прав, эти пути задаются в файле share / autoconf / autoconf / general.m4.Список жестко закодирован, поэтому в него сложно что-то вставить.Вы можете добавить дополнительную справочную информацию, используя макрос AS_HELP_STRING.Есть несколько примеров, которые добавляют plugindir, например, в gstreamer , gimp , но у них нет настраиваемого каталога плагинов.

...