[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: autotools & prayertime



On Thu, 18 Dec 2003, Nadim Shaikli wrote:

> Thamer, to preface my questions and comments let me say that I know
> close to nothing about autotools/libtoolize beyond simply using 'em
> (I've never had the pleasure (or whatever you want to call it :-) in
> developing 'em).  I do have a few issues with the autotools on the
> itl-prayertime lib specifically.
>
> I'm on a SUN machine using solaris, so I'm not sure if this is a
> portability issue or what, but here is a minimal description.
>
>   $ make -f Makefile.cvs
>   set -x
>   aclocal
>   aclocal: configure.in: 9: macro `AM_PROG_LIBTOOL' not found in library
>   make: *** [all] Error 1

Do you have libtool installed??  Do "locate libtool.m4".  Put
libtool.m4 somewhere accessable.

> once I comment-out the variable above (just for grins) I see this,

Well, you should not ;).

>   set -x
>   aclocal
>   libtoolize --force --copy
>   Remember to add `AC_PROG_LIBTOOL' to `configure.in'.
>   You should update your `aclocal.m4' by running aclocal.
>   autoheader
>   automake --add-missing --copy
>   configure.in: installing `./install-sh'
>   configure.in: installing `./mkinstalldirs'
>   configure.in: installing `./missing'
>   Makefile.am:12: Libtool library used but `LIBTOOL' is undefined
>   Makefile.am:12:
>   Makefile.am:12: The usual way to define `LIBTOOL' is to add `AC_PROG_LIBTOOL'
>   Makefile.am:12: to `configure.in' and run `aclocal' and `autoconf' again.
>   Makefile.am: installing `./compile'
>   Makefile.am: installing `./depcomp'
>   make: *** [all] Error 1
>
> I then tried to create my own configure.in by running 'autoscan' and
> that resulted in a completely different set of problems.  As noted,
> I'm not familiar enough to know how to debug and correct these problems,
> but I know I need to know more (chances are, I'll have to do the same
> for the 'hijri' itl lib, etc).  Do you have a short HOWTO or primer (not
> looking to read books and 26 chapters on the topic :-)

You may wanna look at fribidi's.  When I need more autotools in
fribidi, I look in glib's.

> In passing, I believe the following suggestions might be of interest
> (Elzubeir, this might of interest to you too since it affects the examples
> in the developer guide),
>
>  1. In Makefile.cvs make 'all' appear first instead of 'configure' - this
>     will then simply run the autotools to create their output instead of
>     forcing the user to run configure as well (he/she might not have
>     intended to do that as well).

Forcing a configure is Gnome's habbit.  I don't like that.
Moreover, using Makefile.cvs is KDE's habbit.  I don't like that
too. ;-).  As simple bootstrap.sh or autogen.sh does the job.

>  2. Add a 'clean' option to the Makefile.cvs so that it goes back to the
>     pristine condition things were in before running 'make -f Makefile.cvs'.

When you have your Makefile out of configure, you can do
make maintainer-clean.

>     In other words, rm all the intermediate files (autom4te.cache/, *.m4,
>     compile, config-h.in, config.guess, config.sub, configure, depcomp,
>     install-sh, ltmain.sh, missing, mkinstalldirs, etc) if one were to
>     have compiled everything and wanted to revert back to the very
>     beginning.
>
>     a. Not sure if this is worth it, but try to remove things once they
>        are done in the normal auto-generation process.
>
>  3. All projects that incorporate autotools (and all are going in that
>     direction), then the projects should put all its source files in
>     a ./src directory and the documentations in ./doc, etc.

Are you talking politically, ideally, ..? ;)

> Using -- autoconf-2.57, automake-1.7.9, libtool-1.5
>
> BTW: on linux I have no issues; the above 3 points would be nice to see.
>      I also don't see 'fribidi' for instance using "libtoolize", is our
>      process over-complicated compared to their 'bootstrap' ?

libtoolize is something like autoscan.  It should be run just
once at the very beginning.

> Just trying to learn...

We all do.

> Salam.
>
>  - Nadim

behdad