Obtuve la última versión inédita deletiquetascódigo fuente del repositorio svn usando
svn co https://ctags.svn.sourceforge.net/svnroot/ctags
Ejecuté ./configure
, que falló con el siguiente error:
config.status: creating Makefile
config.status: WARNING: 'Makefile.in' seems to ignore the --datarootdir setting
config.status: error: cannot find input file: config.h.in
[mirror@home ctags-5.7]$ echo $?
1
Luego creé un archivo vacío llamado config.h.in
y ahora ./configure
tuve éxito.
configure: creating ./config.status
config.status: creating Makefile
config.status: WARNING: 'Makefile.in' seems to ignore the --datarootdir setting
config.status: creating config.h
[mirror@home ctags-5.7]$ echo $?
0
La ejecución make
aún falló.
[mirror@home ctags-5.7]$ make
gcc -I. -I. -DHAVE_CONFIG_H -g -O2 -c args.c
In file included from args.c:17:
/usr/include/stdio.h:88: error: two or more data types in declaration specifiers
make: *** [args.o] Error 1
- ¿Por qué esto no funcionó?
- ¿Cómo creo ctags desde el repositorio svn?
Respuesta1
Falla porque (a diferencia de los archivos comprimidos fuente preparados) el repositorio svn no contiene archivos intermedios utilizados porherramientas automáticas.
No estoy muy familiarizado con AT o ctags, pero intente ejecutar automake
y autoconf
antes de ./configure
volver a ejecutar. El procedimiento probablemente esté ubicado en algún lugar de un INSTALL
archivo o carpeta de documentación; es posible que desee buscarlo.
Apéndice:
Según un (no oficial)Construcción electrónica de Gentoo, correr autoreconf
debería ser suficiente.
Anexo 2:
Como dije, no soy un gurú de AT, me han dicho que solo hay un número de dos dígitos en el mundo.
config.h
no está incluido en el repositorio svn porque no está escrito por un humano y solo depende de los demás archivos del repositorio. De todos modos, los desarrolladores tienen que volver a hacerlo con frecuencia a medida que cambian cosas, por lo que sería solo un archivo adicional para descargar y luego eliminar inmediatamente al verificar los cambios.
Por otra parte,esincluidos en los archivos comprimidos para que la creación del software sea menos complicada. Creo que también evita algunos problemas cuando las personas tienen versiones de AT diferentes a las de los desarrolladores. En este caso, no hay ningún inconveniente real, ya que no depende del sistema o la arquitectura para la que se construye y los otros archivos "normalmente no se" modifican cuando se construye desde el tarball. Es decir, a menos que tenga algunos parches que deba aplicar. Entonces es posible que necesites regenerar algo de todos modos.
Mi enfoque hacia la AT es probar diferentes cosas hasta que funcione o lo abandone. Diferentes archivos surgen de diferentes comandos y algunos de los comandos inician otros comandos mágicamente. En la página de Wikipedia hay un diagrama de flujo. No lo encuentro útil, pero quizás a ti sí.
Sugiero mantenerse alejado de él. Si crees que necesitas usarlo para tu propio proyecto, úsalocmakeobolloso cualquier otra cosa que funcione bien y sea sencilla en ese momento.
Respuesta2
Tuve un problema similar en mi sistema Linux, que resolví ejecutando "autoheader" y "autoconf" (del subdirectorio "trunk" del tarball descomprimido)antesejecutando "./configure". Las operaciones posteriores "make" y "make install" se ejecutaron sin problemas.
Parece que autoconf sabe cómo configurar desde configure.at (que estaba en el tarball), pero primero debe ejecutar autoheader para crear los archivos .in que utiliza el configurador para generar los archivos de encabezado que luego se usan cuando en realidad ejecutas ./configure.
Respuesta3
¿Por qué no lo haces $ sudo apt-get install exuberant-ctags
o lo que sea que se adapte a tu estilo de Linux?