[Linuxtrent] autotool howto (was: Resoconto Assemblea)

  • From: Marco Cova <marco.cova@xxxxxxxxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Mon, 13 Sep 2004 13:17:08 +0200

Scrive Luca Manini <manini.luca@xxxxxxxxxx>:

>     Interessante! Come prerequisito per provare gettext, ho appena
>     provato a seguire le istruzioni di
> 
>       www.linuxtrent.it/documentazione/wikilinux/AutotoolBootstrapHowto
> 
>     ed ho qualche problema ... del tipo:
> 
>     1) automake pare non gradire -ac (ma -a -c lo accetta);

Credo sia un problema di versione. Quella che uso in questo momento permette di
accorpare le opzioni e mi dice:
[cova@malick hello]$ automake --version
automake (GNU automake) 1.6.3
Written by Tom Tromey <tromey@xxxxxxxxxx>.

Per autoconf ho:
[cova@malick hello]$ autoconf --version
autoconf (GNU Autoconf) 2.57
Written by David J. MacKenzie and Akim Demaille.

>     2) 
> 
> hello> automake -a -c --foreign
> configure.ac: 10: `automake requires `AM_CONFIG_HEADER', not
> `AC_CONFIG_HEADER'
> automake: configure.ac: installing `./install-sh'
> automake: configure.ac: installing `./mkinstalldirs'
> automake: configure.ac: installing `./missing'
> automake: no `Makefile.am' found or specified

Mi pare di capire che versioni diverse degli autotool preferiscano
AM_CONFIG_HEADER a AC_CONFIG_HEADER. Basta cambiare la macro da invocare nel
file configure.ac o configure.in
L'ultima riga segnala che non c'è un Makefile.am nella dir corrente.

>     3) se seguo le sue indicazioni ...
> 
> hello> automake -a -c --foreign
> automake: no `Makefile.am' found or specified
> paperino:~/programming/autotools/hello> automake -a -c --foreign Makefile   
> automake: configure.ac: installing `./config.guess'
> automake: configure.ac: installing `./config.sub'
> configure.ac: 10: required file `./[config.h].in' not found
> hello> ls config*
> config.guess  config.h.in   config.sub 
> 
>    I sorgenti su cui sto facendo le prove sono quelli del solito
>    stupido hello world (allego)

Ok, riprovando così funziona:
[cova@malick hello]$ rm src/makefile 
   ... non serve e anzi fa casino ...
[cova@malick hello]$ echo "SUBDIRS = src" > Makefile.am
[cova@malick hello]$ echo "bin_PROGRAMS = hello" > src/Makefile.am
[cova@malick hello]$ echo "hello_SOURCES = hello.c hi.c" >> src/Makefile.am
[cova@malick hello]$ autoscan
[cova@malick hello]$ vim configure.scan 
 ... apporto le modifiche segnalate nell'howto, in particolare aggiungo
AM_INIT_AUTOMAKE dopo AC_CONFIG_HEADER([config.h]) ...
[cova@malick hello]$ mv configure.scan configure.ac
[cova@malick hello]$ aclocal
[cova@malick hello]$ autoheader
[cova@malick hello]$ automake -ac --foreign
 ... eventualmente sostituendo AC_CONFIG_HEADER con AM_CONFIG_HEADER ...
[cova@malick hello]$ autoconf
[[cova@malick hello]$ ./configure && make

In sostanza, si devono creare i Makefile.am _prima_ di lanciare autoscan
altrimenti nel configure.scan che viene generato non contiene la macro
AC_CONFIG_FILES.

HTH,
Marco






-- 
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: