Attualmente sto lavorando a un progetto Linux utilizzando gli autotools. Il codice viene inviato in SCM (Perforce) e abbiamo lo script configure, Makefile.am, Makefile.in - il solito boilerplate degli autotools. Recentemente, qualcuno ha cambiato Makefile.am, ma ha dimenticato di rigenerare Makefile.in; quando ho cercato di costruire, ho ottenuto questo errore:versione automake (am__api_version) hardcoded nello script configure
WARNING: `automake-1.11' is missing on your system. You should only need it if
you modified `Makefile.am', `acinclude.m4' or `configure.ac'.
You might want to install the `Automake' and `Perl' packages.
Grab them from any GNU archive site.
cd . && /bin/bash ./config.status Makefile depfiles
vedo la versione di automake è hardcoded nel script di configurazione (e sembra provenire da aclocal.m4):
am__api_version='1.11'
Quindi credo Ho bisogno di automake-1.11 (non 1.10, non di qualcosa di più recente) per rigenerare il file Makefile.in.
Perché è quello? Perché dovremmo essere legati ad una specifica versione di automake? Per lo più stiamo costruendo su Ubuntu 14.04, dove 1.14 è la versione predefinita installata. C'è un modo per dire al sistema di compilazione di usare semplicemente qualsiasi versione di automake installata? O è sicuro rimuovere la definizione am__api_version da aclocal.m4?
che definirei "la solita autotools boilerplate" di essere '' configure.ac' e Makefile.am' .Lo scopo di questi due file è generare lo script 'configure',' Makefile.in', 'Makefile' e vari altri artefatti che supportano la build. I file generati non devono (anzi, non dovrebbero) essere aggiunti a qualsiasi controllo sorgente. – rubicks