¿Cómo creo un script de configuración?


79

Esto puede parecer una pregunta muy genérica, pero aquí va.

Tengo un requisito para crear un script de configuración para mi aplicación, el resultado de esta configure sería un generada makefile(básico configure, make, make install). Mi pregunta es, ¿por dónde empiezo a construir esto? ¿Hay algún ejemplo que pueda seguir?



6
¿Te refieres a Autoconf ?
Chrisaycock

Así es como comencé con autotools -> autobook .
Shawn Chin

tal vez consulte la introducción del video dwheeler.com/autotools y el libro freesoftwaremagazine.com/books/…
Jichao

Respuestas:


79

Para crear el script de "configuración" estándar, necesita GNU autoconf. Es posible que también necesite GNU automake y libtool.

Hay toneladas de documentación y howtos. Google para algo como "autoconf automake howto". La buena documentación está en las páginas oficiales del manual:

Autoconf creará su script de configuración a partir del archivo "configure.ac". El archivo "Makefile.am" le indicará a automake cómo crear su archivo Make mediante la cadena de configuración. Se necesita Libtool para simplificar el manejo de bibliotecas alrededor de su código.

Puede comenzar a crear un archivo configure.ac a mano o puede usar el ayudante "autoscan" que puede ayudarlo a crear algo semiautomático para usted.

Luego, cuando estés listo, este hará la magia:

autoreconf -i


Los documentos GNU implican que podría haber otras herramientas de script de configuración: gnu.org/prep/standards/html_node/Makefile-Conventions.html , ¿existen otras herramientas de este tipo (aparte del manual, por supuesto)?
Evan Benn


4

A veces, un producto de software se envía sin un script de configuración. Busque un script autogen.sh. probablemente se ejecutará:

aclocal || die "aclocal failed"
automake --add-missing --force-missing --copy --foreign || die "automake failed"
autoreconf || die "autoreconf failed"
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.