2010-08-21 36 views
6

configure scripts comprennent toujours quelque chose comme ce qui suit dans le message d'aide:Ajout d'une option de répertoire d'installation personnalisé aux scripts configure générés par autoconf

 
... 
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 
... 

Ce que je voudrais faire est d'ajouter « plugindir », cette section , comme dans:

 
... 
    --dvidir=DIR   dvi documentation [DOCDIR] 
    --pdfdir=DIR   pdf documentation [DOCDIR] 
    --psdir=DIR    ps documentation [DOCDIR] 
    --plugindir=DIR   Gedit plugin files [LIBDIR/gedit-2/plugins] 
... 

afin que les utilisateurs seraient en mesure de passer --plugindir=... au script de configuration.

Comment est-ce que je peux faire ceci?

+0

possible dupliquer de [Faire l'installation, mais pas pour les répertoires par défaut?] (https://stackoverflow.com/questions/3239343/make-install-but-not-to-default-directories) – jww

Répondre

0

Si je me trompe, ces chemins sont définis dans le fichier share/autoconf/autoconf/general.m4. La liste est codée en dur, il est donc difficile d'insérer des éléments dans la liste. Vous pouvez ajouter des informations d'aide supplémentaires à l'aide de la macro AS_HELP_STRING. Il y a quelques exemples qui ajoutent un plugindir, par exemple dans gstreamer, gimp, mais ceux-ci n'ont pas de répertoire plugin configurable.

+0

Intéressant. La ligne 1058 de mon fichier '/ usr/share/autoconf/autoconf/general.m4' est responsable de la ligne" Réglage fin des répertoires d'installation: ". Il ne semble pas, cependant, que je puisse facilement ajouter à la section "répertoires d'installation" du texte d'aide de script "configure" sans modifier "general.m4". Mais, au moins, je sais maintenant. –

+0

L'approche gstreamer ou xine ne vous convient-elle pas? – SiggyF

+0

Je ne suis pas sûr de l'approche de gstreamer et xine à laquelle vous faites référence. Mais, ce que j'ai fait a été adapté une ligne de 'general.m4', en ajoutant' AC_SUBST ([plugindir], ['$ {libdir}/gedit-2/plugins']) 'à mon' configure.ac'. Ensuite, je spécifie les cibles que je veux installer dans le "plugindir" dans la variable 'plugin_DATA' dans un' Makefile.am'. Ce n'est pas aussi configurable que je le pensais, mais ça marche bien: http://code.google.com/p/gedit-line-ending-style-plugin/source/browse/trunk/src/Makefile. am –

3

Mettez les lignes suivantes dans configure.ac, près du début:

AC_ARG_WITH([pkgconfigdir], 
    [AS_HELP_STRING([--with-pkgconfigdir=DIR], [pkgconfig files])], 
    [pkgconfigdir=$withval], 
    [pkgconfigdir="\${libdir}/pkgconfig"]) 
AC_SUBST([pkgconfigdir], [$pkgconfigdir]) 

Puis, en Makefile.am, vous pouvez consulter le répertoire comme ceci:

pkgconfigdir = @[email protected] 
pkgconfig_DATA = mylibrary.pc 
+1

Le deuxième argument n'est pas nécessaire. 'pkgconfigdir = @ pkgconfigdir @' n'est pas nécessaire. C'est bien de spécifier la valeur par défaut dans l'aide. Vous pouvez utiliser des guillemets simples au lieu d'échapper '$'. – proski