Distribution of m4 macros

View: New views
2 Messages — Rating Filter:   Alert me  

Distribution of m4 macros

by Christian Egli-3 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

Hi all

When integrating gnulib in liblouis a changed a few things with regards
to m4 macro location. In particular I added the following to
configure.ac

AC_CONFIG_MACRO_DIR([m4])

and the following to Makefile.am

ACLOCAL_AMFLAGS = -I m4 -I gnulib/m4

I also create an empty m4 directory. Now, autoreconf (--force --install)
places some libtool m4 macros, like libtool.m4, etc, in there.

When I do make dist the m4 directory is automatically included in the
tarball (without mentioning m4 anywhere in a Makefile.am as a SUBDIRS).
Make distcheck and everybody else is happy.

However, for an other dev, who is using libtool 1.5.22, autoreconf 2.59
and automake 1.9.6, make distcheck is failing because the m4 directory
is not included in the tarball.

Now, I could probably simply add m4 to the SUBDIRS and add an empty
Makefile.am to m4. This might solve the problem, but this doesn't seem
to be standard practice and I'm trying to understand what is going on
here.

How is the m4 directory included in the tarball? How does automake know
that it has to include it? Was this functionality missing in an older
automake? And finally: Is the right way to fix this really to add the m4
directory to SUBDIRS?

Thanks
Christian




Re: Distribution of m4 macros

by Ralf Corsepius :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

On 11/06/2009 10:55 AM, Christian Egli wrote:

> Hi all
>
> When integrating gnulib in liblouis a changed a few things with regards
> to m4 macro location. In particular I added the following to
> configure.ac
>
> AC_CONFIG_MACRO_DIR([m4])
>
> and the following to Makefile.am
>
> ACLOCAL_AMFLAGS = -I m4 -I gnulib/m4
>
> I also create an empty m4 directory. Now, autoreconf (--force --install)
> places some libtool m4 macros, like libtool.m4, etc, in there.
>
> When I do make dist the m4 directory is automatically included in the
> tarball (without mentioning m4 anywhere in a Makefile.am as a SUBDIRS).
> Make distcheck and everybody else is happy.
>
> However, for an other dev, who is using libtool 1.5.22, autoreconf 2.59
> and automake 1.9.6, make distcheck is failing because the m4 directory
> is not included in the tarball.

Correct. The new behavior requires newer auto*tools.

> Now, I could probably simply add m4 to the SUBDIRS and add an empty
> Makefile.am to m4. This might solve the problem, but this doesn't seem
> to be standard practice and I'm trying to understand what is going on
> here.
What you describe had been standard practice when these tools had been
current (many years ago)

> How is the m4 directory included in the tarball? How does automake know
> that it has to include it?
They are being traced.

> Was this functionality missing in an older
> automake?
Yes.

> And finally: Is the right way to fix this really to add the m4
> directory to SUBDIRS?
You can choose
* Require newer auto*tools.
* Apply an approach similar to what you outline above (and stay bug-ward
compatible)

If I'd were you, I'd use the former approach, combined with appropriate
AC_PREREQ and AM_INIT_AUTOMAKE([<automake version>]).

Ralf