¿Cómo crear un archivo específico a partir de un paquete GNU Automake?

¿Cómo crear un archivo específico a partir de un paquete GNU Automake?

Dado un paquete fuente que utiliza GNU Automake, la compilación típica es la siguiente:

cd ${srcdir}
./congigure
./make

Para crear un único archivo en lugar de todo, makenormalmente se aceptaría esto:

$ make path/to/file

Sin embargo, eso devuelve un error:

make: *** No rule to make target 'path/to/file'. Stop.

El archivo requerido está en un subdirectorio que contiene su propio archivo MAKE. Es posible ir a ese subdirectorio y hacer ./configure && make fileallí, resolver las dependencias que faltan cada vez que makefalla, hacer algo similar para proporcionar esas dependencias y repetir el proceso hasta que makese genere exitosamente el archivo requerido.

¿Pero seguramente debe haber una manera más fácil...?

Entonces, asumiendo un paquete típico de Linux que se compila limpiamente con GNU Automake, ¿es posible decirle que cree un solo archivo (específicamente, un ejecutable binario)?

Respuesta1

Si hay un archivo MAKE en el subdirectorio, probablemente necesites invocar ese archivo MAKE.

make -C path/to file

Respuesta2

Lo mejor que se me ocurrió es usar un forbucle para crear subdirectorios dependientes y luego crear el archivo desde su directorio:

for lib in dependency1 dependency2 dependency3
do
  cd ${srcdir}/libs/${lib}
  ./configure --prefix=/usr
  make LDFLAGS+=-lstdc++
done

cd ${srcdir}/libs/directory

./configure --prefix=/usr
  --localstatedir=/var \
  --mandir=/usr/share/man
make LDFLAGS+=-lstdc++ file

Esto no responde la pregunta, pero me temo que es lo mejor que parece...

información relacionada