Re: Per-object *FLAGS or workaround?

2002-10-31 Thread Alexandre Duret-Lutz
>>> "Lars" == Lars Hecking <[EMAIL PROTECTED]> writes:

[...]

 Lars> Does anyone have any better suggestions?

Maybe you could group these objects in a convenience library in
order to use per-target flags.
-- 
Alexandre Duret-Lutz






Re: How to specify 2 stage build in Makefile.am

2002-10-31 Thread Alexandre Duret-Lutz
>>> "Duncan" == Duncan Gibson <[EMAIL PROTECTED]> writes:

[...]

About "multiple" implicit rules such as

.a.b .c.d:
...

 Duncan> It's not obvious (or necessarily documented) that some
 Duncan> common 'make' constructions don't convert directly to
 Duncan> 'automake'.

I've filled two PR for this:

PR/371: to fix Automake so it understand this construct
PR/372: to warn about this construct, because it's disallowed by POSIX

[...]
-- 
Alexandre Duret-Lutz






Re: Conditionals in Makefile.am

2002-10-31 Thread Alexandre Duret-Lutz
>>> "Pekka" == Pekka Riikonen <[EMAIL PROTECTED]> writes:

[...]

 Pekka> I don't think changing this would be hard (haven't
 Pekka> looked at code though), and it doesn't cause
 Pekka> compatibility problems, and would make the conditionals
 Pekka> a lot more flexible.  Ideas?

I think this would be nice; however it's probably more difficult
than you might think...
-- 
Alexandre Duret-Lutz






Re: Conditionals in Makefile.am

2002-10-31 Thread Alexandre Duret-Lutz
>>> "Pekka" == Pekka Riikonen <[EMAIL PROTECTED]> writes:

[...]

 Pekka> FILES = \
 Pekka> somefile.c  \
 Pekka> if HAVE_SOMETHING
 Pekka> someotherfile.c \
 Pekka> endif
 Pekka> if HAVE_SOMETHING_ELSE
 Pekka> somethingelse.c \
 Pekka> endif
 Pekka> something.c

 Pekka> This sort of thing is not possible now and makes it
 Pekka> really ugly to use the conditionals in makefiles, imo.
 Pekka> Currently only way to do this is to conditionalize the
 Pekka> entire FILES variable.  Alternatively it could just
 Pekka> remove the lines not to be included.

Sorry, I forgot to reply to this.  A simpler solution is to use
a sub-variable.

FILES = somefile.c $(FILES_IF_SOMETHING) $(FILES_IF_SOMETHING_ELSE) something.c
if HAVE_SOMETHING
FILES_IF_SOMETHING = someotherfile.c
endif
if HAVE_SOMETHING_ELSE
FILES_IF_SOMETHING_ELSE = somethingelse.c
endif


[...]
-- 
Alexandre Duret-Lutz






Re: automake/374: Problems with ansi2knr

2002-10-31 Thread Alexandre Duret-Lutz
>>> "pds" == Paul Smith <[EMAIL PROTECTED]> writes:

[...]

 Paul> loadavg.c: $(srcdir)/getloadavg.c
 Paul> cp $(srcdir)/getloadavg.c loadavg.c

[...]

 pds> OK, I tried automake 1.7.1 where this is fixed.  It does fix this
 pds> problem but unfortunately there are other problems lurking.

Thanks for the detailed analysis.  I've submitted this is PR/374
because it doesn't look easy to fix.

As a workaround I think you could use `cpp' instead of `cp' in
the above rule.

[...]

-- 
Alexandre Duret-Lutz






Re: Problems executing ./configure on Solaris

2002-10-31 Thread Alexandre Duret-Lutz
>>> "Lorrie" == Lorrie Wood <[EMAIL PROTECTED]> writes:

 Lorrie> On Wed, Oct 23, 2002 at 11:26:15AM -0700, Lorrie Wood wrote:
 >> Hello, I'm having trouble using scripts generated by autoconf
 >> on Solaris 8. No matter what package is involved (I've tried mutt,
 >> ncurses, and slocate so far), the ./configure process hangs when attempting
 >> to create config.status. It was suggested to me that I try changing all
 >> instances of /bin/sh to one of the existing bash instances on my
 >> system, but this did not fix anything. Trussing the process shows it has
 >> gone to sleep, config.log shows nothing out of the ordinary -- there just
 >> aren't any error messages to be found!

Hi Lorrie,

You are not talking to the right list.

If you still think its a portability issue in ./configure,
please trace this script with `sh -x ./configure --your-flags...' 
and send the output to [EMAIL PROTECTED]
-- 
Alexandre Duret-Lutz






Re: Help with @some_configure_var@ variables in automake files.

2002-10-31 Thread Alexandre Duret-Lutz
>>> "Jerry" == Iseri, Jerry <[EMAIL PROTECTED]> writes:

 Jerry> Is there documentation on where configuration variables are 
 Jerry> allowed in automake files?

Not in a single place.

You can use them almost anywhere.

Using them is tricky in a few places where they hide useful
information to Automake.  E.g., Automake needs to know all
sources that will be compiled, but cannot guess the possible
values of @MUMBLE@.  In such cases you have to list the hidden
values using an EXTRA_ variable (for instance grep the manual
for EXTRA_hello_SOURCES or EXTRA_PROGRAMS).

 Jerry> Here's a small example:

 Jerry> #Is this supported?
 Jerry> AM_CPPFLAGS = @MY_EXTRA_FLAGS@ 

Automake doesn't care about the content of AM_CPPFLAGS, so you
can set it as you wish.

 Jerry> noinst_PROGRAMS = foo
 Jerry> # This is documented as not allowed.
 Jerry> foo_SOURCES = @MY_SOURCES@

You can do this if you list the possible values of @MY_SOURCES@ in

EXTRA_foo_SOURCES = foo.c foo.h ...

 Jerry> foo_LDADD = @HOW_ABOUT_THIS@

If @HOW_ABOUT_THIS@ contains object or libraries, you'll also
want to redefine foo_DEPENDENCIES (grep the manual for
maude_DEPENDENCIES).
-- 
Alexandre Duret-Lutz






Re: automake/44: conditional redefinitions (Was: Re: Automake 1.6.3issue)

2002-10-31 Thread Alexandre Duret-Lutz
>>> "Akim" == Akim Demaille <[EMAIL PROTECTED]> writes:

[...]

 Akim> Nevertheless, I agree a means to install defaults would
 Akim> be most welcome.

 Akim> I suggest introducing

 Akim> foo ?= bar

 Akim> Which is always valid, but with a clear semantics.

Assuming your semantic is that of BSD make: "assign unless set" [*],
I can see how this help in

  if COND1
foo = mumble
  endif
  if COND2
foo = blurgle
  endif
  foo ?= else

But I fail to see how you'd use this to override a default
value whose definition has been included from elsewhere.

(Unless inclusions of fragments defining default variables are
done at the end of Makefile.am -- but this raises a few other
issues.)

[...]

[*] IIRC someone once sent a patch against Automake to introduce
`?=' as "assign and allow future redefinitions".
-- 
Alexandre Duret-Lutz






Re: making a package install in a nonconventional dir

2002-11-07 Thread Alexandre Duret-Lutz
>>> "miki" == miki shapiro <[EMAIL PROTECTED]> writes:

[...]

 miki> How do I kindly ask automake (in Makefile.am) to install
 miki> mypackage_PROGRAMS, mypackage_LIBRARIES, et cetra - into one directory -
 miki> /opt/mypackage for instance

mypackagedir = /opt/mypackage


It's probably best that you use bin_PROGRAMS, lib_PROGRAMS, or
similar standard directories, and let the user relocate these
directory where (s)he wants using 
  ./configure --bindir=/opt/mypackage --libdir=/opt/mypackage ...

Not everybody has/wants `/opt' on his system.


Here is the doc about the custom *dir variables:

|Sometimes the standard directories--even as augmented by Automake--
| are not enough.  In particular it is sometimes useful, for clarity, to
| install objects in a subdirectory of some predefined directory.  To this
| end, Automake allows you to extend the list of possible installation
| directories.  A given prefix (e.g. `zar') is valid if a variable of the
| same name with `dir' appended is defined (e.g. `zardir').
| 
|For instance, until HTML support is part of Automake, you could use
| this to install raw HTML documentation:
| 
|  htmldir = $(prefix)/html
|  html_DATA = automake.html
-- 
Alexandre Duret-Lutz






Re: weird flags set by configure

2002-11-07 Thread Alexandre Duret-Lutz
>>> "Tim" == Tim Van Holder <[EMAIL PROTECTED]> writes:

 Tim> On Wed, 2002-11-06 at 11:11, [EMAIL PROTECTED] wrote:
 >> DEFAULT_INCLUDES =  -I. -I$(srcdir) -I.
 >> 
 >> This raises 2 questions in itself:
 >> a. what's wrong with "DEFAULT_INCLUDES =  -I. -I$(srcdir)"

 Tim> Don't know that,

The third -I gives the search path for config.h.

[...]

 Tim> There's no harm in -I . -I . -I . as far as I know.

FWIW, spaces between `-I' and `.' are not portable.  For instance
in this case OSF's cc will handle `.' as a source file.

[...]

-- 
Alexandre Duret-Lutz






Re: cxx + cpp

2002-11-07 Thread Alexandre Duret-Lutz
>>> "Jean-Eric" == Jean-Eric Cuendet <[EMAIL PROTECTED]> writes:

[...]

 Jean-Eric> Thus the question how to tell automake not to doubly define that.

I think upgrading the Automake 1.7.1 should be enough.  The last
time this issue was reported the conclusion was it was fixed in
Automake 1.7 (If you have www access you can find this thread by
searching the list archive for your error message).
-- 
Alexandre Duret-Lutz






Re: docbook support

2002-11-07 Thread Alexandre Duret-Lutz
>>> "Siegfried" == Siegfried Keusch <[EMAIL PROTECTED]> writes:

[...]

 Siegfried> another point is that i had to change the clear.am to this
 Siegfried> ...
 Siegfried> clean-generic:
 Siegfried> CLEAN   -test -z "$(CLEANFILES)" || rm -f $(CLEANFILES)
 Siegfried> MAINTAINERCLEAN -test -z "@MCFILES@" || rm -f @MFILES@
 Siegfried> $(RM) -f $(SGMLFILES:.sgml=.pdf) $(SGMLFILES:.sgml=.ps)
 Siegfried> ...

It's easier to define a `clean-local' target.  This will be
called by `make clean'.  Just add something like this to your
docbook.am:

clean-local:
$(RM) -f $(SGMLFILES:.sgml=.pdf) $(SGMLFILES:.sgml=.ps)

 Siegfried> the thing i wanted was to simply add
 Siegfried> SGMLFILES=architecture.sgml glossary.sgml
 Siegfried> to any makefile.am and then the proper documentation
 Siegfried> is created.

Someone would have to add DocBook support to Automake.  Would
you be the guy? http://sources.redhat.com/automake/contribute.html
-- 
Alexandre Duret-Lutz






Re: problem with variables

2002-11-07 Thread Alexandre Duret-Lutz
>>> "Roger" == Roger D Vargas <[EMAIL PROTECTED]> writes:

 Roger> I have created my Makefiles using other projects as
 Roger> examples. But always I got Invalid unused variable, no
 Roger> matter what name i use for the sources/headers list. It
 Roger> worked perfectly when my project was in a single dir,
 Roger> but when i try to separate sources from headers i cant
 Roger> find a way to make scripts work.
 Roger> What I doing wrong?

Something you could try is to upgrade to Automake 1.7.1.
The 1.7.x series is a bit more helpful in its diagnostics.

If that doesn't help please send details about what you do; it's
hard to guess what could be wrong...  (If you have no idea what
kind of details we'd like to see, read 
  http://www.chiark.greenend.org.uk/~sgtatham/bugs.html)
-- 
Alexandre Duret-Lutz






Re: Disabling dependency tracking - how?

2002-11-14 Thread Alexandre Duret-Lutz
>>> "miki" == miki shapiro <[EMAIL PROTECTED]> writes:

[...]

 miki> Also, I looked inside this autogenerated rule (in
 miki> .deps/cppfilename.Po) , for some reason automake sticks
 miki> all 40 header files in the rule. Why?

So that cppfilename.o gets recompiled if any of these files change.
That's the purpose of dependency tracking.

 miki> AFAIK, it's not mandatory to mention them during compilation

Huh?  We don't do this.   dependencies != sources

[...]

-- 
Alexandre Duret-Lutz






Re: bootstrap prob

2002-11-14 Thread Alexandre Duret-Lutz
>>> "Patrick" == Patrick Welche <[EMAIL PROTECTED]> writes:

[...]

 Patrick> Bareword "am__installdirs" not allowed while "strict
 Patrick> subs" in use at ./automake.tmp line 4742.  BEGIN not
 Patrick> safe after errors--compilation aborted at
 Patrick> ./automake.tmp line 7682.

 >> Which version of Perl is this?

 Patrick> v5.6.0, and you guessed right: everything passes/works
 Patrick> happily on a perl v5.8.0rc2 machine.

Thanks!  Here is what I've found in the Perl 5.6.1 changelog:

[  7283] By: gsar  on 2000/10/16  03:52:14
Log: integrate change#5977 from mainline
 
 autoquote barewords followed by newline and arrow properly
 (variant of fix suggested by Rick Delaney and M.J.T. Guy)
 Branch: maint-5.6/perl
  !> t/pragma/warn/toke toke.c


So the bug is that Perl 5.6.0's "=>" operator doesn't quote the previous
word if separated by a new line.

I'm installing the following change.

2002-11-14  Alexandre Duret-Lutz  <[EMAIL PROTECTED]>

* automake.in (handle_installdirs): Reindent to workaround a
parsing bug in Perl 5.6.0.
Reported by Patrick Welche.

Index: automake.in
===
RCS file: /cvs/automake/automake/automake.in,v
retrieving revision 1.1386
diff -u -r1.1386 automake.in
--- automake.in 14 Nov 2002 16:11:55 -  1.1386
+++ automake.in 14 Nov 2002 16:31:25 -
@@ -4736,14 +4736,12 @@
 # Deal with installdirs target.
 sub handle_installdirs ()
 {
-$output_rules .=
-  &file_contents ('install',
- new Automake::Location,
- am__installdirs
-   => variable_value ('am__installdirs') || '',
- 'installdirs-local'
-   => (target_defined ('installdirs-local')
-   ? ' installdirs-local' : ''));
+  $output_rules .= &file_contents
+('install',
+ new Automake::Location,
+ am__installdirs => variable_value ('am__installdirs') || '',
+ 'installdirs-local' => (target_defined ('installdirs-local')
+? ' installdirs-local' : ''));
 }
 
 
-- 
Alexandre Duret-Lutz






Re: LEX & YACC support

2002-11-14 Thread Alexandre Duret-Lutz
>>> "Alexandros" == Alexandros Karypidis <[EMAIL PROTECTED]> writes:

 Alexandros> Hi all,

 Alexandros> I am unsatisfied with the "Makefile.am" I have
 Alexandros> built, due to the fact that whenever I change my
 Alexandros> bison file to add a %token, I have to run make
 Alexandros> TWICE to get a correct build.  This is because the
 Alexandros> header file with token declarations which is
 Alexandros> generated when yacc is run, also affects the
 Alexandros> lexical scanner -- therfore it needs to be rebuilt
 Alexandros> as well. However, this is only detected after the
 Alexandros> fist "make" command.

Generated headers are almost always an issue for dependency
tracking.

Try adding the following and see if that helps.

BUILT_SOURCES = parser.h

[...]

-- 
Alexandre Duret-Lutz






Re: Linking in C++ mode

2002-11-14 Thread Alexandre Duret-Lutz
>>> "Ralf" == Ralf Corsepius <[EMAIL PROTECTED]> writes:

[...]

 Ralf> 2. Finding a way to convince automake to using "g++" to link a you
 Ralf> program. 

 Ralf> Automake guesses upon the linker by using file name extensions. Your
 Ralf> "main" is called "*.c", so it tries to use "gcc" instead of "g++".

 Ralf> One way to work around this problem is renaming your "main" a c++ file
 Ralf> name. Another way is to dive into automake internals and to override the
 Ralf> linker (CXXLINK and CXXLD vs CCLINK and CCLD).

You can override the LINK command on a per-program basis:

bin_PROGRAMS = foo
foo_SOURCES = foo.c
foo_LINK = $(CXX) $(AM_CFLAGS) $(CFLAGS) $(AM_LDFLAGS) $(LDFLAGS) -o $@

-- 
Alexandre Duret-Lutz






Re: problem with variables

2002-11-14 Thread Alexandre Duret-Lutz
>>> "Roger" == Roger D Vargas <[EMAIL PROTECTED]> writes:

[...]

 Roger> The problem with details is that i have asked here a
 Roger> couple of times, the first time i included my scripts
 Roger> and my message is still awaiting for approval.

Nobody has the time to moderate the list.  
If your mail was blocked, it's lost.

[...]

-- 
Alexandre Duret-Lutz






Re: bootstrap prob

2002-11-14 Thread Alexandre Duret-Lutz
>>> "Patrick" == Patrick Welche <[EMAIL PROTECTED]> writes:

[...]

 Patrick> That was quick! Now it has gone past am__include, but is failing at:

 Patrick> % ./automake
 Patrick> Can't locate object method "TIEHASH" via package "Tie::RefHash::Nestable" at 
./automake line 512.

[Nestable is new in 5.6.1]

 Patrick> Is this beginning to sound like an argument for "we
 Patrick> don't support 5.6.0"?

No.  This Nestable stuff is only temporary, until further work
on the way variables and targets are stored is done.

See the following if you want an explanation why we need
Netstable at the moment.
http://mail.gnu.org/pipermail/automake-patches/2002-October/001239.html

I don't know what you use CVS Automake for.  Wouldn't tracking
branch-1-7 be more appropriate?
-- 
Alexandre Duret-Lutz






Re: bootstrap prob

2002-11-14 Thread Alexandre Duret-Lutz
>>> "Patrick" == Patrick Welche <[EMAIL PROTECTED]> writes:

 Patrick> With cvs code from now:
 Patrick> % sh bootstrap
 Patrick> Bareword "am__installdirs" not allowed while "strict subs" in use at 
./automake.tmp line 4742.
 Patrick> BEGIN not safe after errors--compilation aborted at ./automake.tmp line 7682.

Hi Patrick,

Which version of Perl is this?

[...]

 Patrick> am__installdirs
 Patrick> => variable_value ('am__installdirs') || '',

[...]

 Patrick> I don't see how that should work...
 Patrick> &variable_value('MAKEFILE-AM-INSTALLDIRS'), then
 Patrick> 'MAKEFILE-AM-INSTALLDIRS' => variable_value('am__installdirs').. ?

 Patrick> ?

I don't understand what you mean.

I think Perl is just asking for quote around am__installdirs,
although I don't know why.
-- 
Alexandre Duret-Lutz






Re: getting a locally built library

2002-11-14 Thread Alexandre Duret-Lutz
>>> "Bruce" == Bruce Korb <[EMAIL PROTECTED]> writes:

 Bruce> David Bacher wrote:

[...]

 >> /bin/sh ../libtool --mode=link gcc  -g -O2  -L/sw/lib -o autogen \
 >> -export-dynamic -lguile *.o  -L/sw/lib -lguile -lm \
 >> -L../autoopts/.libs -lopts -ldl
 >> ld: Undefined symbols:
 >> _aopts_alloc
 >> _aopts_realloc
 >> _aopts_strdup
 >> make[1]: *** [autogen] Error 1

Where does this command comes from?  This doesn't look like an
Automake-generated call to libtool.  First, Automake should not
generate something like `*.o'; second, it should not output
`-L../autoopts/.libs -lopts' but `../autoopts/libopts.la' 
since Bruce said `autogen_LDADD = $(top_builddir)/autoopts/libopts.la'.

I'm tempted to think that the link rule was hand-edited (either in the
Makefile(|.in|.am), or in the output).

[...]

-- 
Alexandre Duret-Lutz






Re: getting a locally built library

2002-11-14 Thread Alexandre Duret-Lutz
>>> "Bruce" == Bruce Korb <[EMAIL PROTECTED]> writes:

 Bruce> Alexandre Duret-Lutz wrote:
 >> >> /bin/sh ../libtool --mode=link gcc  -g -O2  -L/sw/lib -o autogen \
 >> >> -export-dynamic -lguile *.o  -L/sw/lib -lguile -lm \
 >> >> -L../autoopts/.libs -lopts -ldl
 >> >> ld: Undefined symbols:
 >> >> _aopts_alloc
 >> >> _aopts_realloc
 >> >> _aopts_strdup
 >> >> make[1]: *** [autogen] Error 1

[...]

 >> it should not output
 >> `-L../autoopts/.libs -lopts' but `../autoopts/libopts.la'
 >> since Bruce said `autogen_LDADD = $(top_builddir)/autoopts/libopts.la'.

[...]

 Bruce> That part I did not change from David's email.

David, could you explain where `-L../autoopts/.libs -lopts' comes
from?

[...]
-- 
Alexandre Duret-Lutz






Re: ccache and autotools

2002-11-14 Thread Alexandre Duret-Lutz
>>> "Jean-Eric" == Jean-Eric Cuendet <[EMAIL PROTECTED]> writes:

[...]

 Jean-Eric> In fact, ccache tells in logfile that -MT is not supported.
 Jean-Eric> What does -MT do?

Dependency tracking, see the GCC 3.x manual.

 Jean-Eric> And why dows autoconf use it? Can we not use it safely?

Automake uses -MT for dependency tracking.   But Automake knows many
way to track dependencies, including some that don't use -MT; so I'm 
surprized that it choose this mode (called "gcc3") if ccache doesn't
support it.

How do you configure your project to use ccache?  Do you tell
./configure that you want to use ccache as the compiler?  (you should).
-- 
Alexandre Duret-Lutz






Re: SWIG and Python support of Automake

2002-11-15 Thread Alexandre Duret-Lutz
>>> "Sebastian" == Sebastian Huber <[EMAIL PROTECTED]> writes:

 Sebastian> Hello,

 Sebastian> SWIG generates a Python module for me. This works
 Sebastian> fine with Automake 1.7 except that a 'make
 Sebastian> distcheck' fails:

 Sebastian> No files given to ../config/py-compile
 Sebastian> make[2]: *** [install-nodist_pythonPYTHON] Error 1

This as fixed in Automake 1.7.1.  (See PR/369 for details.)

[...]

-- 
Alexandre Duret-Lutz






Re: AUTOMAKE: version numbering scheme?

2002-11-22 Thread Alexandre Duret-Lutz
>>> "Alexei" == Alexei Lioubimov <[EMAIL PROTECTED]> writes:

 Alexei> Hello,

 Alexei> Is there any document describing AUTOMAKE version numbering scheme?

http://sources.redhat.com/ml/automake/2002-08/msg6.html
-- 
Alexandre Duret-Lutz






Re: automake/376: Controlling the order of installation

2002-11-26 Thread Alexandre Duret-Lutz
>>> "Philip" == Philip Willoughby <[EMAIL PROTECTED]> writes:

 Philip> I have:
 Philip> lib_LTLIBRARIES=libaptttest.la
 Philip> libaptttest_la_SOURCES=aptt/test/test.c
 Philip> libaptttest_la_LIBADD=libapttlog.la @LTLIBINTL@

 Philip> pkglib_LTLIBRARIES=libapttlog.la
 Philip> libapttlog_la_SOURCES=aptt/log/log.c
 Philip> libapttlog_la_LIBADD=@LIBLTDL@

 Philip> in a Makefile.am.  Unfortunately, automake does not recognise that
 Philip> libapttlog.la must be installed prior to the installation of
 Philip> libaptttest.la.

 Philip> Is there a way to hint to automake that the order is
 Philip> important without moving to recursive make?

Maybe you could try using the same dir-prefix for both libraries.

Something like

 nobase_lib_LTLIBRARIES = yourpkg/libapttlog.la libaptttest.la
 libaptttest_la_SOURCES = aptt/test/test.c
 libaptttest_la_LIBADD = libapttlog.la @LTLIBINTL@
 yourpkg_libapttlog_la_SOURCES = aptt/log/log.c
 yourpkg_libapttlog_la_LIBADD = @LIBLTDL@

then libraries should be installed in the order they appear in
nobase_lib_LTLIBRARIES.

 Philip> Alternatively, does anyone have a patch to
 Philip> automagically do the right thing?

Right now this seems hard.  I've submitted this as PR/376, so we
don't forget about it eventually.  Fortunatelly it's more
frequent that dependent libraries get installed in the same
directory.
-- 
Alexandre Duret-Lutz






Re: Patch: Too many files in AC_OUTPUT cause M4 error

2002-11-26 Thread Alexandre Duret-Lutz
[M-F-T: [EMAIL PROTECTED]]

>>> "Martin" == Martin Frydl <[EMAIL PROTECTED]> writes:

[...]

 Martin> I've created a patch which is aware of M4 problem and
 Martin> separates the task into two expressions - first removes the
 Martin> terminating space, then strips the leading one and puts brackets
 Martin> around.

[...]

 Martin> +  [at_patsubst(at_patsubst(at_patsubst(at_patsubst($1, [\\\n]),
 Martin> +   [[\n\t ]+], [ ]),
 Martin> +   [ *\(.\)$],[\1]),
 Martin> +   [^ *\(.*\)], [[\1]])])

This doesn't seem to do what you want.  `[ *\(.\)$],[\1]' will leave the
last trailing space, or strip non trailing whitespaces.

How about something like

[at_patsubst(at_patsubst(at_patsubst(at_patsubst($1, [\\\n]),
 [[\n\t ]+], [ ]),
     [ *$]),
 [^ *\(.*\)], [[\1]])])

-- 
Alexandre Duret-Lutz






Re: error 'traces.m4' running automake-1.7

2002-11-30 Thread Alexandre Duret-Lutz
>>> "Martin" == Martin Frydl <[EMAIL PROTECTED]> writes:

 Martin> Hello Dave,
 Martin> I've created a patch file for Autoconf fixing this problem. I've
 Martin> posted it to Autoconf but noone responded yet. Can you try it and let
 Martin> me know?

 Martin> Martin

 Martin> http://mail.gnu.org/pipermail/automake/2002-November/012234.html

I've found other similar reports while reading my backlog of
mail today.  Until an Autoconf maintainer processes your patch,
another solution (apparently) is to use the development version
of GNU M4.  See
  http://sources.redhat.com/ml/bug-automake/2002/msg02090.html
-- 
Alexandre Duret-Lutz






Re: Problem with Makefile.am

2002-11-30 Thread Alexandre Duret-Lutz
Hi!

>>> "Roger" == Roger D Vargas <[EMAIL PROTECTED]> writes:

[...]

 Roger> It worked fine until a couple of hour ago. Now one of
 Roger> the developers added some files and removed

Is this still an issue?  If so, could you show us the problem
you have?  Your mail stops at this point in the middle of a sentence.
-- 
Alexandre Duret-Lutz






Automake 1.7.1b prerelease available (beta for Automake 1.7.2)

2002-12-01 Thread Alexandre Duret-Lutz
Hi people!

Here is a snapshot of the 1.7.x branch of Automake.

  ftp://sources.redhat.com/pub/automake/automake-1.7.1b.tar.bz2
  ftp://sources.redhat.com/pub/automake/automake-1.7.1b.tar.gz

This should be reasonably close to what 1.7.2 will be.
Please test it and report any problem you have,
so we can release 1.7.2 soon.

There have been a couple of ansi2knr changes, so it would be nice to
hear from people that are (still) using this.

Please send bug reports to <[EMAIL PROTECTED]>, or using the 
Gnats interface at 
  http://sources.redhat.com/cgi-bin/gnatsweb.pl?database=automake

Bugs fixed in 1.7.1b:
* Fix ansi2knr rules for LIBOBJS sources.
* Clean all known Texinfo index files, not only those which appear to
  be used, because we cannot know wich indexes are used in included files.
  (PR/375, Debian Bug #168671)
* Honor only the first @setfilename seen in a Texinfo file.
* Treat "required file X not found" diagnostics as errors (exit status 1).
* Don't complain that a required file is not found when it is a Makefile
  target. (PR/357)
* Don't use single suffix inference rules when building `.info'-less
  Info files, for the sake of Solaris make.
* The `check' target now depends on `$(BUILT_SOURCES)'. (PR/359)
* Recognize multiple inference rules such as `.a.b .c.d:'. (PR/371)
* Warn about multiple inference rules when -Wportability is used. (PR/372)
* Fix building of deansified files from subdirectories. (PR/370)
* Add missing `fi' in the .c->.obj rules.
* Improve install-sh to work even when names contain spaces or certain
  (but not all) shell metachars.
* Fix the following spurious failures in the test suite:
  gnits2.test, gnits3.test, python3.test, texinfo13.test






Re: Automake 1.7.1b prerelease available (beta for Automake 1.7.2)

2002-12-02 Thread Alexandre Duret-Lutz
>>> "chuck" == Charles Wilson <[EMAIL PROTECTED]> writes:

[...]

 chuck> 1.7.1b fixes the gnits2 failure on cygwin, but not the gnits3 failure
 chuck> (it's possible that gnits3 exhibited two problems on cygwin, and the
 chuck> recent patch only fixed one of them?)

[...]

Yep.  Thanks!  I'm installing the following patch on HEAD and branch-1-7.

2002-12-02  Alexandre Duret-Lutz  <[EMAIL PROTECTED]>

* automake.texi (Options): Programs listed in
AM_INSTALLCHECK_STD_OPTIONS_EXEMPT should have $(EXEEXT) appended.
* tests/gnits3.test (AM_INSTALLCHECK_STD_OPTIONS_EXEMPT):
Append $(EXEEXT).
Reported by Charles Wilson.

Index: automake.texi
===
RCS file: /cvs/automake/automake/automake.texi,v
retrieving revision 1.305.2.4
diff -u -r1.305.2.4 automake.texi
--- automake.texi   29 Nov 2002 22:07:33 -  1.305.2.4
+++ automake.texi   2 Dec 2002 08:03:58 -
@@ -4509,6 +4509,17 @@
 test.  For instance @command{false} (from GNU sh-utils) is never
 successful, even for @code{--help} or @code{--version}.  You can
 list such programs in the variable @code{AM_INSTALLCHECK_STD_OPTIONS_EXEMPT}.
+Programs (not scripts) listed in this variable should be suffixed by
+@code{$(EXEEXT)} for the sake of Win32 or OS/2.  For instance suppose we
+build @code{false} as a program, @code{true.sh} as a script, and that
+none of them support @code{--help} and @code{--version}:
+
+@example
+AUTOMAKE_OPTIONS = std-options
+bin_PROGRAMS = false ...
+bin_SCRIPTS = true.sh ...
+AM_INSTALLCHECK_STD_OPTIONS_EXEMPT = false$(EXEEXT) true.sh
+@end example
 
 @item @code{subdir-objects}
 If this option is specified, then objects are placed into the
Index: tests/gnits3.test
===
RCS file: /cvs/automake/automake/tests/gnits3.test,v
retrieving revision 1.3.2.1
diff -u -r1.3.2.1 gnits3.test
--- tests/gnits3.test   30 Nov 2002 20:41:39 -  1.3.2.1
+++ tests/gnits3.test   2 Dec 2002 08:03:59 -
@@ -40,7 +40,7 @@
 
 nobase_bin_SCRIPTS = nok.sh sub/nok.sh
 
-AM_INSTALLCHECK_STD_OPTIONS_EXEMPT = nok nok.sh
+AM_INSTALLCHECK_STD_OPTIONS_EXEMPT = nok$(EXEEXT) nok.sh
 
 grep-stderr:
grep 'sub/pnok$(EXEEXT) does not support' stderr

-- 
Alexandre Duret-Lutz






Re: Automake 1.7.1b prerelease available (beta for Automake 1.7.2)

2002-12-02 Thread Alexandre Duret-Lutz
| 2002-12-02  Charles Wilson  <[EMAIL PROTECTED]>
| 
| * tests/gnits3.test (AM_INSTALLCHECK_STD_OPTIONS_EXEMPT):
| Append $(EXEEXT) again.

Thank you.  It's committed.
-- 
Alexandre Duret-Lutz






Re: automake 1.7

2002-12-02 Thread Alexandre Duret-Lutz
Hi!

>>> "DB" == DB Troll <[EMAIL PROTECTED]> writes:

 DB> Can someone please help me. I am trying to install automake-1.7
 DB> because another app says that it cannot use 1.5. Whentrying to
 DB> configure I get the reply no te and autoconf 2.5> not found. I
 DB> downloaded and installed autoconf2.57, rebooted but still the same
 DB> msgs. I am new at linux and runnong SuSE 8.0 Pro.

Is the new autoconf in your PATH?  
What does `autoconf --version' print?
-- 
Alexandre Duret-Lutz






Re: automake 1.7.1 hangs while processing Makefile.am

2002-12-03 Thread Alexandre Duret-Lutz
>>> "Jason" == Jason Jordan <[EMAIL PROTECTED]> writes:

[...]

 Jason> One thing I noticed is that if I remove either all of
 Jason> the 'if MODE_*' OR all of the 'if FORMAT_*' clauses,
 Jason> then automake doesn't hang.  I'm not sure whether that's
 Jason> helpful, but it was interesting.  :)

 Jason> Can anyone tell me if I am doing something wrong?  

Nothing, unfortunately.

Many of the Automake functions that deal with conditionals in
Automake rely on an aglorithm that compute all possible
combinations of conditionals involved in a variable definition
(a conditionals can be either TRUE or FALSE).  Each time you add
a conditional, Automake gets twice slower.  At some point it
gets too slow to be of any use.

Here Automake is just computing all the 2^17 combinations of
your MODE_* and FORMAT_* conditionals...

Recently there have been some work to improve the way
Conditionals are handled (in what will become Automake 1.8, do
not expect this in the 1.7.x branch).  This explosive algorithm
is still used in two places, but we have all the machinery to
get rid of it.  I hope this will improve things.


As a workaround I suggest you use _LDADD substitutions as
suggested in the `Conditional Sources' section of the manual.

Basically instead of playing with conditionals, you should just
fill an AC_SUBSTed variable with the objects you want.

test "x$needs_mode_cat" = xyes && condobjs="$condobj mod_cat.$(OBJEXT)"
test "x$needs_mode_cmp" = xyes && condobjs="$condobj mod_cmp.$(OBJEXT)"
test "x$needs_mode_fix" = xyes && condobjs="$condobj mod_fix.$(OBJEXT)"
...
AC_SUBST([condobjs])

Then use $(condobjs) to fill shntool_LDADD and
shntool_DEPENDENCIES in Makefile.am.
-- 
Alexandre Duret-Lutz






Automake 1.7.2 released

2002-12-05 Thread Alexandre Duret-Lutz
We're pleased to announce the release of Automake 1.7.2
This is a bug fix release.  The list of bug fixes is appended.

You can find the new release here:

ftp://ftp.gnu.org/gnu/automake/automake-1.7.2.tar.bz2
ftp://ftp.gnu.org/gnu/automake/automake-1.7.2.tar.gz
ftp://sources.redhat.com/pub/automake/automake-1.7.2.tar.bz2
ftp://sources.redhat.com/pub/automake/automake-1.7.2.tar.gz

Soon it will also appear on the sources and GNU mirrors listed here:

http://www.gnu.org/order/ftp.html
http://sources.redhat.com/mirrors.html

Here are the MD5 checksums:

8cfa661dca69271b862bee4f841fcd80  automake-1.7.2.tar.bz2
753647afe9db0ec52c69c6b9bb7dd106  automake-1.7.2.tar.gz

Please report bugs to <[EMAIL PROTECTED]>.

 - Akim, Alexandre, and Tom

Bugs fixed in 1.7.2:
* Fix installation and uninstallation of Info files built in subdirectories.
* Do not run `./configure --with-included-gettext' during `make distcheck'
  if AM_GNU_GETTEXT([external]) is used.
* Correctly uninstall renamed man pages.
* Do not strip escaped newline in variables defined in one condition
  and augmented in another condition.
* Fix ansi2knr rules for LIBOBJS sources.
* Clean all known Texinfo index files, not only those which appear to
  be used, because we cannot know wich indexes are used in included files.
  (PR/375, Debian Bug #168671)
* Honor only the first @setfilename seen in a Texinfo file.
* Treat "required file X not found" diagnostics as errors (exit status 1).
* Don't complain that a required file is not found when it is a Makefile
  target. (PR/357)
* Don't use single suffix inference rules when building `.info'-less
  Info files, for the sake of Solaris make.
* The `check' target now depends on `$(BUILT_SOURCES)'. (PR/359)
* Recognize multiple inference rules such as `.a.b .c.d:'. (PR/371)
* Warn about multiple inference rules when -Wportability is used. (PR/372)
* Fix building of deansified files from subdirectories. (PR/370)
* Add missing `fi' in the .c->.obj rules.
* Improve install-sh to work even when names contain spaces or certain
  (but not all) shell metachars.
* Fix the following spurious failures in the test suite:
  depcomp2.test, gnits2.test, gnits3.test, python3.test, texinfo13.test
* Noteworthy manual updates:
  - Augment the section about BUILT_SOURCES.
  - Mention that AM_PROG_CC_STDC is a relic that is beter avoided today.






Re: make distcheck fails: permission denied

2002-12-12 Thread Alexandre Duret-Lutz
>>> "Dan" == Dan Christian <[EMAIL PROTECTED]> writes:

[...]

 Dan> First, why is it trying to re-create the config stuff?

It *copies* these files because it's trying to build a distribution.

 Dan> Second, why didn't it fix the permissions?

No idea, Automake 1.5 is old.  
Does it still fail with Automake 1.7.2?

[...]

-- 
Alexandre Duret-Lutz






Re: Specifying include directories for groups of source files

2002-12-12 Thread Alexandre Duret-Lutz
>>> "William" == William S Fulton <[EMAIL PROTECTED]> writes:

 William> A question about groups of files in subdirectories. I
 William> would like Automake's generated Makefiles to compile
 William> groups of files using different include directories,
 William> that is, different INCLUDES (AM_CFLAGS) for each
 William> group. Each group is in a different subdirectory. Is
 William> this possible without using the _LIBRARIES or
 William> _LTLIBRARIES primary?

Can't think of any other way.

 William> Motivation: We don't want to use libtool and having a
 William> separate Makefile.am each with its own _LIBRARIES does
 William> not work on all platforms, notably using native
 William> Windows compilers. 

(This doesn't necessarily require separate Makefile.ams: you can
build the subdir libraries from the parent directory.)

What's wrong with Windows compilers?  Is there anything we could
fix in Automake to make generated Makefiles more portable?

[...]

-- 
Alexandre Duret-Lutz






Re: automake 1.7.1 hangs while processing Makefile.am

2002-12-12 Thread Alexandre Duret-Lutz
>>> "Jason" == Jason Jordan <[EMAIL PROTECTED]> writes:

[...]

 Jason> Thank you, this worked like a charm.  I also had to add all possible
 Jason> format source files to EXTRA_DIST so they would be included in the
 Jason> distribution.  :)

Generally it's better to list these files in
EXTRA_shntool_SOURCES.  This will help Automake to generate
compilation rules and setup automatic dependency tracking for
these files, or chose the right linker to use for shntool.

[...]

-- 
Alexandre Duret-Lutz






automake/380: User produced dependency files - possible to usethem?

2002-12-12 Thread Alexandre Duret-Lutz
>>> "Alex" == Alex Hornby <[EMAIL PROTECTED]> writes:

 Alex> Hi,
 Alex> As part of my project I have some suffix rules to produce built sources
 Alex> from which I can produce automatic dependency information.

 Alex> My question is - is it possible to get automake to take these user
 Alex> defined auto dependencies into consideration?

No.  This sounds like something Automake ought to support --
I've submitted a PR for this.

Right now I believe you have to do yourself what Automake does:
 * fill Makefile.am with a series of 
   @AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/foo.Po@am__quote@
 * create empty dependency files from config.status

[...]

-- 
Alexandre Duret-Lutz






Re: make distcheck fails: permission denied

2002-12-12 Thread Alexandre Duret-Lutz
>>> "Dan" == Dan Christian <[EMAIL PROTECTED]> writes:

[...]

 Dan> I tried 1.6.3.  That worked OK.

Great.

 Dan> However, when I do a "make check" on 1.6.3 it fails test "lex5.test".  
 Dan> Any ideas what is going wrong?

No.  There has been a lex5 failure reported against 1.7.2
recently, but it's pending details.  Maybe this is the same.

Could you send the output of the following command?

make TESTS=lex5.test VERBOSE=x check 

-- 
Alexandre Duret-Lutz






Re: Passing configure options to make distcheck

2002-12-13 Thread Alexandre Duret-Lutz
>>> "John" == John Levon <[EMAIL PROTECTED]> writes:

[...]

 John> make distcheck fails by default, but if I could pass in a configure
 John> option, it would work. Can I do this ?

Starting with Automake 1.6 you can set DISTCHECK_CONFIGURE_FLAGS.

[...]

-- 
Alexandre Duret-Lutz






Re: Modifying installed script names ?

2002-12-13 Thread Alexandre Duret-Lutz
>>> "John" == John Levon <[EMAIL PROTECTED]> writes:

[...]

 John> If a condition is set, then op_start_25,op_dump_25,op_stop_25 need to
 John> be installed as op_start,op_dump,op_stop, otherwise we can just install
 John> the existing op_start/dump/stop in the source tree.

You could declare everybody using `noinst_SCRIPTS', and install
them using a custom `install-exec-local' rule.

[...]

-- 
Alexandre Duret-Lutz






Re: version7.test

2002-12-13 Thread Alexandre Duret-Lutz
>>> "Patrick" == Patrick Welche <[EMAIL PROTECTED]> writes:

 Patrick> Just got (fresh cvs):
 Patrick> ERROR: files left in build directory after distclean:
 Patrick> ./version7-3.141.tar.gz

Thank you.  I'm checking this in.

2002-12-13  Alexandre Duret-Lutz  <[EMAIL PROTECTED]>

* tests/version7.test: Require GNU make.
Reported by Patrick Welche.

--- tests/version7.test 10 Oct 2002 17:37:38 -  1.1
+++ tests/version7.test 13 Dec 2002 21:55:40 -
@@ -19,9 +19,11 @@
 # Boston, MA 02111-1307, USA.
 
 # Test for a special setup where the package's version isn't defined
-# in configure.in.
+# in configure.in.  We want GNU Make for this test (part of the test
+# is to make sure Makefile.ins get rebuilt when a m4_included file
+# changes -- we don't support this feature on non-GNU Makes).
 
-required='makeinfo tex'
+required='makeinfo tex GNUmake'
 . ./defs || exit 1
 
 set -e

-- 
Alexandre Duret-Lutz






Re: configure and intel's C++: inappropriate flags -MT -MD -MP -MF

2002-12-20 Thread Alexandre Duret-Lutz
>>> "Markus" == Markus Werle <[EMAIL PROTECTED]> writes:

 Markus> Hi!
 Markus> I have a problem with the latest autotools:

 Markus> From somewhere behind the scenes automake/autoconf
 Markus> decides to insert the following options to the compiler
 Markus> flags; -MT -MD -MP -MF

depcomp adds these options, and ./configure makes the decision
based on the compiler found (or that you specified).

./configure prints something like `checking dependency style of XXX'
at this point.

 Markus> these are not recognized, say ignored ith annoying warnings by
 Markus> intel's C++ 7.0. Any idea how to remove these via
 Markus> configure.in or Makefile.am?

Maybe your are not setting the compiler early enough?  Since
./configure decides which flags to use it must know the
compiler.  Therefore you should run

  ./configure CC=mycc; make

not

  ./configure; make CC=mycc

-- 
Alexandre Duret-Lutz






Re: automake 1.6 on solaris

2002-12-20 Thread Alexandre Duret-Lutz
>>> "Thomas" == Thomas Vander Stichele <[EMAIL PROTECTED]> writes:

 Thomas> Hello,
 Thomas> I'm trying to get GStreamer to autogen properly on
 Thomas> Solaris, but automake fails.

 Thomas> I get a lot these warnings:

 Thomas> configure.ac:425: invalid unused variable name: `GST_PLUGIN_LDFLAGS'

Hi Thomas, 
This was fixed in Automake 1.6.1.

[...]
-- 
Alexandre Duret-Lutz






Re: per-file compiler flags?

2002-12-24 Thread Alexandre Duret-Lutz
>>> "gd" == Guido Draheim <[EMAIL PROTECTED]> writes:

[...]

 gd> (a) per file compile flags:
 gd> - it's an faq and later automake supports it natively

This has yet to be implemented (any taker?).  What Automake
supports presently is per-target flags.  The usual way
to emulate per-object flags is to compile the file in
a static library and use per-libary flags.

[...]

-- 
Alexandre Duret-Lutz






Re: Change in dejagnu generated rules?

2002-12-24 Thread Alexandre Duret-Lutz
>>> "Phil" == Phil Edwards <[EMAIL PROTECTED]> writes:

 Phil> When AUTOMAKE_OPTIONS contains dejagnu, one of the generated rules is

 Phil> check-am:
 Phil> $(MAKE) $(AM_MAKEFLAGS) check-DEJAGNU

 Phil> I could have sworn that at some time in the not-too-distant past, the -k
 Phil> flag would also be automatically passed to the sub-make,

 Phil> $(MAKE) -k $(AM_MAKEFLAGS) check-DEJAGNU

 Phil> due to dejagnu's annoyung habit regarding exit codes.

 Phil> Am I smoking something?  Did this change recently?

Looking at Automake 1.4's code, it seems it would not output -k
either.  I don't think it should.  Some make implementation will
always terminate with exit code 0 when `-k' is used, hiding any
failure.
-- 
Alexandre Duret-Lutz






Re: automake not seeing AM_INIT_AUTOMAKE

2002-12-24 Thread Alexandre Duret-Lutz
>>> "jlm" == jlm  <[EMAIL PROTECTED]> writes:

[...]

 jlm> automake-1.5: configure.ac: `AM_INIT_AUTOMAKE' must be used

[...]

 jlm> AM_INIT_AUTOMAKE([no-define])

You need Automake 1.6 or greater to use this syntax.

If for some reason you want to stick to 1.5, use

AM_INIT_AUTOMAKE([libgtkbonus], [0.1], [non-empty-argument--see-manual])

[...]

-- 
Alexandre Duret-Lutz






Re: configure and intel's C++: inappropriate flags -MT -MD -MP -MF

2002-12-24 Thread Alexandre Duret-Lutz
[...]

| The problem is that Intel's C++ _accepts_ these flags and
| only emits a warning. This might confuse the autotools here:

Yep.

| make[1]: Entering directory `/work/tresca/markus/DORIS/doris-0.0.1'
| if icpc -DHAVE_CONFIG_H -I. -I. -I.  -I. -I./src  -I/opt/boost-1.29.0 -I/work/tr
| esca/markus/DIET   -ansi -MT TestPDEs.o -MD -MP -MF ".deps/TestPDEs.Tpo" \
|   -c -o TestPDEs.o `test -f 'src/test/TestPDEs.C' || echo './'`src/test/TestPDEs
| .C; \
| then mv ".deps/TestPDEs.Tpo" ".deps/TestPDEs.Po"; \
| else rm -f ".deps/TestPDEs.Tpo"; exit 1; \
| fi
| icpc: Command line warning: ignoring option '-M'; no argument required
| icpc: Command line warning: ignoring option '-M'; no argument required
| icpc: Command line warning: no action performed for specified object file(s)
| icpc  -ansi   -o euler  TestPDEs.o SimpleRectangularStructured.o
| make[1]: Leaving directory `/work/tresca/markus/DORIS/doris-0.0.1'

What does .deps/TestPDEs.Po contains after this?  Do you
understand which -Mx options this diagnotic is referring to
(there is only two warnings, but four -Mx options).  How does
icpc's -M option work?  Are these warnings output to stdout or
stderr?  Is there any icpc-specific environment variable that can
be set to turn warnings into errors?
-- 
Alexandre Duret-Lutz






FYI: Re: aclocal in tests/defs.in

2003-01-05 Thread Alexandre Duret-Lutz
>>> "imacat" == imacat  <[EMAIL PROTECTED]> writes:

Sorry for the delay.

[...]
 imacat> I was building automake 1.7.2 on a minimal-installed
 imacat> Debian Linux 3.0r0, which had no automake yet.  When I
 imacat> did a "make check", I noticed that a part of tests were
 imacat> skipped.  But most of them would be performed after I
 imacat> did a "make install".
[...]
 imacat> After tracing into the test process, I found that some
 imacat> tests were depending on an aclocal that has no path
 imacat> specified, in tests/defs (tests/defs.in).  This will
 imacat> run the aclocal in $PATH, usually the
 imacat> currently-installed aclocal, but not the newly-built
 imacat> one.
[...]

Thanks for the report and the patch.  I've installed the
following on HEAD and branch-1-7.  This gets rid of
the aclocal call entirely.

Index: ChangeLog
===
RCS file: /cvs/automake/automake/ChangeLog,v
retrieving revision 1.2024.2.69
diff -u -r1.2024.2.69 ChangeLog
--- ChangeLog   31 Dec 2002 21:25:34 -  1.2024.2.69
+++ ChangeLog   5 Jan 2003 21:51:02 -
@@ -1,3 +1,12 @@
+2003-01-05  Alexandre Duret-Lutz  <[EMAIL PROTECTED]>
+
+   * tests/defs.in: Substitute aclocaldir instead of running
+   the installed aclocal.  Otherwise Libtool and Gettext
+   tests get skipped when aclocal doesn't preexist.
+   Reported by Imacat.
+   * tests/listval.test, tests/suffix2.test: Remove pointless -I
+   argument to aclocal.
+
 2002-12-31  Alexandre Duret-Lutz  <[EMAIL PROTECTED]>
 
* automake.in (err): Rename as ...
@@ -2929,7 +2938,7 @@
 
 -
 
-Copyright (C) 2002 Free Software Foundation, Inc.
+Copyright (C) 2002, 2003  Free Software Foundation, Inc.
 
 This file is part of GNU Automake.
 
Index: ChangeLog.2001
===
RCS file: /cvs/automake/automake/ChangeLog.2001,v
retrieving revision 1.1
diff -u -r1.1 ChangeLog.2001
--- ChangeLog.2001  10 Apr 2002 07:54:30 -  1.1
+++ ChangeLog.2001  5 Jan 2003 21:51:15 -
@@ -832,12 +832,12 @@
 
 2001-10-21  Akim Demaille  <[EMAIL PROTECTED]>
 
-   * tests/defs (ACLOCAL): Point to the installed aclocaldir is
+   * tests/defs (ACLOCAL): Point to the installed aclocaldir if
libtool is required.
* tests/lex.test: Run AC_INIT once.
* tests/ldflags.test, tests/listval.test, tests/suffix2.test:
Libtool is required.
-   * tests/header.test: Built a correct configure.in.
+   * tests/header.test: Build a correct configure.in.
* tests/defun2.test (configure.in): Be a bit respectful with
Autoconf, close the macro invocations.
* tests/confdeps.test: Even when not using aclocal, aclocal.m4
@@ -4931,7 +4931,7 @@
 
 -
 
-Copyright 2001 Free Software Foundation, Inc.
+Copyright (C) 2001, 2003  Free Software Foundation, Inc.
 
 This file is part of GNU Automake.
 
Index: THANKS
===
RCS file: /cvs/automake/automake/THANKS,v
retrieving revision 1.186.2.12
diff -u -r1.186.2.12 THANKS
--- THANKS  31 Dec 2002 21:25:35 -  1.186.2.12
+++ THANKS  5 Jan 2003 21:51:16 -
@@ -75,6 +75,7 @@
 Harlan Stenn   [EMAIL PROTECTED]
 Henrik Frystyk Nielsen [EMAIL PROTECTED]
 Ian Lance Taylor   [EMAIL PROTECTED]
+Imacat [EMAIL PROTECTED]
 Inoue  [EMAIL PROTECTED]
 James Henstridge   [EMAIL PROTECTED]
 James Youngman [EMAIL PROTECTED]
Index: tests/defs.in
===
RCS file: /cvs/automake/automake/tests/defs.in,v
retrieving revision 1.4.2.3
diff -u -r1.4.2.3 defs.in
--- tests/defs.in   21 Nov 2002 13:27:43 -  1.4.2.3
+++ tests/defs.in   5 Jan 2003 21:51:42 -
@@ -1,5 +1,5 @@
 # -*- shell-script -*-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
 # Free Software Foundation, Inc.
 #
 # This file is part of GNU Automake.
@@ -200,10 +200,10 @@
 
 # We might need extra macros, e.g., from Libtool or Gettext.
 # Find them on the system.
-# Use `-I $srcdir/../m4' in addition to `--acdir', because the
+# Use `-I $srcdir/../m4' in addition to `--acdir=$srcdir/../m4', because the
 # other `-I' directories added for libtool and gettext might contain
 # files from an old version of Automake that we don't want to use.
-aclocaldir=`(aclocal --print-ac-dir) 2>/dev/null`
+aclocaldir='@prefix@/share/aclocal'
 extra_includes=""
 if [ -f $aclocaldir/dirlist ] ; then
extra_includes=`(tmp_inc=""
Index: tests/listval.test
===
RCS file: /cvs/automake/automake/tests/listval.test,v
retr

Re: Absolute directories for tests.

2003-01-08 Thread Alexandre Duret-Lutz
>>> "David" == David Kirkby <[EMAIL PROTECTED]> writes:

[...]

 David> The problem is that if run from the 'tests' directory, this runs okay,
 David> as the paths given in the test '../tools/src/mycksum' and
 David> '../examples/cop1.bmp' are correct relative to that 'tests' directory.
 David> However, if 'make distcheck' is run from the top directory of the
 David> package, the tests fails as those paths are wrong. 

To account for VPATH-builds, you should consider that sources files
lie in `$srcdir', not `.'.  Only built files are in the current directory.

The above two paths are probably better written
`$srcdir/../tools/src/mycksum' and '$srcdir/../examples/cop1.bmp'.

$(srcdir) is defined as a Make variable in each Makefile.  It is
also exported as an environment variable to each test run as
part of an Automake-style testsuite.

 David> Am I doing something fundamentally flawed? If not, is there a way of
 David> referring to the top level directory, so that for example $TOP/tests
 David> and $TOP/examples always point to the same directory, no matter where
 David> they are run from?

Makefiles define $(top_srcdir), but this isn't exported to
tests.  Probably because nobody needed that yet.

To answer your subject, there is no garanty that either
$(srcdir) or $(top_srcdir) are absolute or relative, they can be
either.  Autoconf has recently started to substitute
@abs_srcdir@ and @abs_top_srcdir@ (they do not get defined as
Makefile variables, but you could do this yourself), however
generally it's better to avoid using absolute paths.
-- 
Alexandre Duret-Lutz






Re: help in installing binaries in both /bin and /usr/bin

2003-01-08 Thread Alexandre Duret-Lutz
>>> "Aneesh" == Aneesh Kumar K V <[EMAIL PROTECTED]> writes:

 Aneesh> Hello,

 Aneesh> I want to write Makefile.am that need to install
 Aneesh> binaries in both /bin and /usr/bin.

`bin_PROGRAMS = foo' installs foo in `${bindir}'.
`barexec_PROGRAMS = baz' installs baz in `${barexecdir}'.

If you need more directories you can invent them, just defines
as many *dir variables as you need (in Makefile.am or using
AC_SUBST in configure.ac).

[...]

 Aneesh> As of now i have 

 Aneesh> bin_PROGRAMS=abc 
 Aneesh> bin_PROGRAMS=xyz  ==> What do i assign this to in order to 
 Aneesh>   install it in /usr/bin 

One possibility among many variations:

bin_PROGRAMS = abc
usrbinexecdir = $(exec_prefix)/usr/bin
usrbinexec_PROGRAMS = xyz

This is assuming $(exec_prefix) gets empty in some way, so abc
installs in /bin as it seems you want.

Using $(exec_prefix) to defines $(usrbinexecdir) makes sure the
user still gets the expected result with `make prefix=/tmpdir
install'.   Using `exec' in the name of the `usrbinexecdir' variable
ensures `xyz' will be installed by `install-exec', not `install-data'.
-- 
Alexandre Duret-Lutz






Re: Extending VPATH

2003-01-08 Thread Alexandre Duret-Lutz
>>> "Harlan" == Harlan Stenn <[EMAIL PROTECTED]> writes:

 Harlan> I find that automake-1.7* (at least) complains about lines like:
 Harlan> if COND_FOO
 Harlan> VPATH=$(srcdir):$(srcdir)/../foo
 Harlan> endif

 Harlan> in Makefile.am's (VPATH was already defined in
 Harlan> condition TRUE, which implies COND_FOO).

 Harlan> Bug or feature?

Maybe both.

http://mail.gnu.org/archive/html/automake/2002-09/msg00054.html
http://mail.gnu.org/archive/html/automake/2002-10/msg00018.html

Comments welcome!
-- 
Alexandre Duret-Lutz






Re: Bug byte-compiling lisp, automake 1.7.2

2003-01-08 Thread Alexandre Duret-Lutz
Hi Ryan,

Thanks for your report and the patch.

>>> "Ryan" == Ryan T Sammartino <[EMAIL PROTECTED]> writes:

[...]

 Ryan> doxymacs.el requires xml-parse.el.  Unfortunately the
 Ryan> rule that automake generates:
[...]
 Ryan> byte compiles each file one at a time, whereas elisp-comp
 Ryan> is expecting ALL .el files to be passed in.  Thus I get
 
 Ryan> While compiling toplevel forms in file
 Ryan> /home/ryants/projects/doxymacs/lisp/elc.14611/doxymacs.el:
 Ryan> !! File error (("Cannot open load file" "xml-parse"))
 Ryan> Done

[...]

 Ryan> +2003-01-05  Ryan T. Sammartino  <[EMAIL PROTECTED]>
 Ryan> +
 Ryan> +* lib/elisp-comp: add .. to load-path.
 Ryan> +

As far as I can tell the other sources files are not necessarily
in `..'.  For instance during a VPATH-build we'd have to search
them in `../$srcdir' (in case `$srcdir' is a relative path) or
in `$srcdir' (if it's absolute).  Elisp files could also comes
from subdirectories.

I see this issue was already reported in 2000, without answers.
http://sources.redhat.com/ml/automake/2000-05/msg00016.html

Wouldn't it be better to teach Automake to byte-compile all
files at once rather than one at a time?  I'm willing to do this
if people agree.  My impression is that the reason why Automake
byte-compile files one at a time is that it's easier to write
Makefile rules this way.  (Make's semantics make it tricky to
write rules with multiple outputs.)

[...]
-- 
Alexandre Duret-Lutz






Re: Bug byte-compiling lisp, automake 1.7.2

2003-01-08 Thread Alexandre Duret-Lutz
>>> "Ryan" == Ryan T Sammartino <[EMAIL PROTECTED]> writes:

[...]

 Ryan> I guess what I should have said was "this patch solves
 Ryan> the problem in my particular instance" :)

 Ryan> I see now a little more is needed.

 >> Wouldn't it be better to teach Automake to byte-compile all
 >> files at once rather than one at a time?

 Ryan> Yes.

Here is a proposal.  Could you check whether this solves the
problem in your particular instance ? :)   The patch is against 
CVS HEAD, I'll backport it to branch-1-7 if that's ok.

Aside from compiling all elisp sources at once, this also
updates elisp-comp to resist to ^C and propagate emacs's exit
code (this is needed so the elc-stamp rule doesn't create
elc-stamp on errors.)

I'd also appreciate if someone could review the elisp bits I've
written in the test case.  This looks fine to me, but as I don't
really know emacs-lisp I can't tell for sure.

2003-01-08  Alexandre Duret-Lutz  <[EMAIL PROTECTED]>

Build elisp files all at once instead of one by one.
* automake.in (handle_emacs_lisp): Define am__ELFILES.  Add
elc-stamp to all's dependencies.
* lib/am/lisp.am (elc-stamp): New rule.
(.el.elc): Rewrite to call elc-stamp.
(clean-lisp): Clean elc-stamp.
* lib/elisp-comp: Reindent.  Erase the temporatry directory
from a trap.  Propagate Emacs's exit status.
* tests/lisp3.test: New file.
* tests/Makefile.am (TESTS): Add lisp3.test.
Reported by Ryan T. Sammartino.

Index: NEWS
===
RCS file: /cvs/automake/automake/NEWS,v
retrieving revision 1.199
diff -u -r1.199 NEWS
--- NEWS5 Dec 2002 09:02:30 -   1.199
+++ NEWS8 Jan 2003 20:37:10 -
@@ -1,4 +1,6 @@
 New in 1.7a:
+* elisp sources are compiled all at once, instead of one by one.
+  This allows interdependencies and speed up compilation.
 * AM_PROG_CC_STDC is now empty.  The content of this macro was
   merged in AC_PROG_CC.  If your code uses $am_cv_prog_cc_stdc,
   you should adjust it to use $ac_cv_prog_cc_stdc instead.
@@ -288,8 +290,8 @@
 
 -
 
-Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001 Free Software
-Foundation, Inc.
+Copyright 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003
+Free Software Foundation, Inc.
 
 This file is part of GNU Automake.
 
Index: automake.in
===
RCS file: /cvs/automake/automake/automake.in,v
retrieving revision 1.1414
diff -u -r1.1414 automake.in
--- automake.in 5 Jan 2003 22:51:10 -   1.1414
+++ automake.in 8 Jan 2003 20:37:35 -
@@ -4969,8 +4969,14 @@
   # Generate .elc files.
   my @elcfiles = map { $_->[1] . 'c' } @elfiles;
   define_pretty_variable ('ELCFILES', TRUE, INTERNAL, @elcfiles);
+  define_pretty_variable ('am__ELFILES', TRUE, INTERNAL,
+ map { $_->[1] } @elfiles);
 
-  push (@all, '$(ELCFILES)');
+  # It's important that all depends on elc-stamp so that
+  # all .elc files get recompiled whenever a .el changes.
+  # It's important that all depends on $(ELCFILES) so that
+  # we can recover if any of them is deleted.
+  push (@all, 'elc-stamp', '$(ELCFILES)');
 
   require_variables ($elfiles[0][0], "Emacs Lisp sources seen", TRUE,
 'EMACS', 'lispdir');
Index: lib/elisp-comp
===
RCS file: /cvs/automake/automake/lib/elisp-comp,v
retrieving revision 1.5
diff -u -r1.5 elisp-comp
--- lib/elisp-comp  17 Jul 2001 06:00:37 -  1.5
+++ lib/elisp-comp  8 Jan 2003 20:37:36 -
@@ -1,5 +1,5 @@
 #!/bin/sh
-# Copyright 1995 Free Software Foundation, Inc.
+# Copyright (C) 1995, 2000, 2003  Free Software Foundation, Inc.
 # François Pinard <[EMAIL PROTECTED]>, 1995.
 #
 # This program is free software; you can redistribute it and/or modify
@@ -31,24 +31,30 @@
 # they require or load-library one another.
 
 if test $# = 0; then
-   echo 1>&2 "No files given to $0"
-   exit 1
-else
-   if test -z "$EMACS" || test "$EMACS" = "t"; then
-  # Value of "t" means we are running in a shell under Emacs.
-  # Just assume Emacs is called "emacs".
-  EMACS=emacs
-   fi
-
-   tempdir=elc.$$
-   mkdir $tempdir
-   cp $* $tempdir
-   cd $tempdir
-
-   echo "(setq load-path (cons nil load-path))" > script
-   $EMACS -batch -q -l script -f batch-byte-compile *.el
-   mv *.elc ..
+  echo 1>&2 "No files given to $0"
+  exit 1
+fi
 
-   cd ..
-   rm -fr $tempdir
+if test -z "$EMACS" || test "$EMACS" = "t"; then
+  # Value of "t" means we are runnin

Re: help needed "make check"

2003-01-14 Thread Alexandre Duret-Lutz
>>> "Harald" == Harald Mitterhofer <[EMAIL PROTECTED]> writes:

[...]

 Harald> when I change test-progs or some corresponding, tested source-files,
 Harald> only some of the check_PROGRAMS are rebuild on "make check", which is
 Harald> what I expect; nevertheless ALL TESTS (also those, not rebuilt) are
 Harald> executed, which is a runtime-problem and slows down my "test first"
 Harald> development strategy; I only want to run rebuilt tests;

 Harald> I searched for another make-target than "check" in the generated
 Harald> Makefile, but could not find any;
 Harald> I have no idea how to define one myself;

Something like this?

check-new: $(TESTS)
$(MAKE) $(AM_MAKEFLAGS) TESTS='$?' check-TESTS
: > $@
CLEANFILES = check-new

-- 
Alexandre Duret-Lutz






Re: CXXFLAGS and linking

2003-01-24 Thread Alexandre Duret-Lutz
>>> "William" == William S Fulton <[EMAIL PROTECTED]> writes:

 William> I see that CXXFLAGS and AM_CXXFLAGS gets passed to the linker
 William> ($CXXLINK). 

CXXLINK calls the compiler, so we ought to pass these flags as they
may affect the way the compiler calls the linker in the end.
For instance the compiler might pass on additional objects to
link based on the presence of flags like `-g', `-pg' or
`-pthread'.

 William> This doesn't seem correct as the C++ flags aren't
 William> necessarily appropriate for linking. 

The example you sent to Guido uses `AM_CXXFLAGS = -DSOMETHING'.
I wouldn't expect this to cause any trouble during linking.  Does it?
(If so you should probably change it to `AM_CPPFLAGS = -DSOMETHING'.)

Am I missing something?

 William> This isn't consistent with the per-program
 William> _CXXFLAGS which do not get passed to the
 William> linker. Is this all as intended?

I agree this is a bug.  We should honor per-target compiler
flags at link time for consistency.

-- 
Alexandre Duret-Lutz






Re: CXXFLAGS and linking

2003-01-24 Thread Alexandre Duret-Lutz
>>> "Braden" == Braden McDaniel <[EMAIL PROTECTED]> writes:

 Braden> GNU make doesn't agree.

I hear you, but that no reason: Automake follows the GNU Coding
Standards in this case.
-- 
Alexandre Duret-Lutz






Re: CXXFLAGS and linking

2003-01-24 Thread Alexandre Duret-Lutz
>>> "Braden" == Braden McDaniel <[EMAIL PROTECTED]> writes:

[...]

 Braden> I've reviewed 7.2 in the GNU Coding Standards, and it's
 Braden> not clear to me what you're referring to. Where exactly
 Braden> should I be looking?

The following sentence in the `Variables for Specifying Commands'
section (sorry I don't have section number in the info version).

| `CFLAGS' should be used in every invocation of the C compiler, both
| those which do compilation and those which do linking.

-- 
Alexandre Duret-Lutz






Re: help! automake "sees" nonexistent C files

2003-01-28 Thread Alexandre Duret-Lutz
>>> "Markus" == Markus Werle <[EMAIL PROTECTED]> writes:

 Markus> Markus Werle wrote:
 >> Hi!
 >> 
 >> After some very slight changes to my Makefile.am

 Markus> ... which included a multline comment:

 Markus> #euler_SOURCES = \
 Markus> #   ${COMMON_SOURCES} \
 Markus> #   src/pdes/EULER_2D_UNI/main.C \
 Markus> #   src/pdes/EULER_2D_UNI/ConservationOfMass.C \
 Markus> #   src/pdes/EULER_2D_UNI/ConservationOfMomentum.C \
 Markus> #   src/pdes/EULER_2D_UNI/ConservationOfEnergy.C \
 Markus> #   src/pdes/EULER_2D_UNI/BoundaryConditions.C

`euler_SOURCES' defaults to `euler.c' if you don't define it.
No wonder Automake asks for a compiler.  Just define it as empty
to get rid of the error message.

[...]

-- 
Alexandre Duret-Lutz






Re: a question about automake

2003-01-28 Thread Alexandre Duret-Lutz
>>> "huangwei" == huangwei  <[EMAIL PROTECTED]> writes:

 huangwei> Dear all,
 huangwei> I am a Newbie about automake.

 huangwei> I am confused in the makefile.in,because in it there
 huangwei> are many variables like as follows:

 huangwei> ...
 huangwei> LIBS = @LIBS@
 huangwei> ...

 huangwei> When I type configure ,using LIBS=/home/yiyid/usr/lib
 huangwei> (non-standard lib directory),but int the makefile
 huangwei> generated automatically ,the value of LIBS will be
 huangwei> the system default path + the path which I have set.

 huangwei> Could tell me how to solve it then?

Sorry I don't understand this part of your mail.  Could you *show*
what you did, what you got, and explain what you would have expected?

 huangwei> And another question, how to let the same variable in
 huangwei> makefile.in of subdirectors be set at the same time?

Any variable defined with `AC_SUBST' in your `configure.ac' will
be defined in all your `Makefile's.

If you also want to defines rules or if you don't want to define
variables in *all* `Makefile's, you can factor these definitions
in a `Makefile' fragment that you will `include' in all the
relevant `Makefile.am's.  See the `Include' section of the
manual for the syntax.

 huangwei> I have set the top directory makefile, but it seem
 huangwei> that the makefiles in the subdirectory can't be set.

Indeed.  There is no "variable inheritance" between `Makefile's.
-- 
Alexandre Duret-Lutz






Re: making script executable?

2003-02-04 Thread Alexandre Duret-Lutz
>>> "mcmahill" == mcmahill  <[EMAIL PROTECTED]> writes:

 mcmahill> I have a shell script which I want to run as part of
 mcmahill> a testsuite.  However when I do a 'make distcheck'
 mcmahill> this script [...] ends up with execute permissions
 mcmahill> turned off.

How does this happen?

Automake uses many shell scripts in its test suite.  They are
all executable and they don't lose their permission bits during
distcheck (AFAIK).

Automake doesn't use `chmod +x' nor `$(SHELL)'.  Anyway these
would be just workarounds, the real problem is why your script
lose its executable bit, not how to set it back.
-- 
Alexandre Duret-Lutz






Re: making script executable?

2003-02-04 Thread Alexandre Duret-Lutz
>>> "Bob" == Bob Proulx <[EMAIL PROTECTED]> writes:

 Bob> Simon Richter wrote:
 >> 
 >> $(SHELL)  ?

 Bob> Does that mean that a SHELL=/bin/csh user will run the script with csh
 Bob> and a SHELL=/bin/zsh user will run the shell with zsh?  

Nope.  The $(SHELL) Makefile variable is AC_SUBST'ed by
./configure, fortunately it doesn't come from the environment.

(Still there are broken make implementations that will use the
SHELL envvar when run as `make -e'.  Details in the Autoconf
manual.)
-- 
Alexandre Duret-Lutz






Re: -rm -f core.$pid

2003-02-04 Thread Alexandre Duret-Lutz
>>> "Patrick" == Patrick Guio <[EMAIL PROTECTED]> writes:
[...]
 Patrick> core files generated are called after process id with
 Patrick> the syntax core.$pid
[...]
 Patrick> That might be nice to remove those as well?
[...]

Thanks for the suggestion.

What do people thinks about Automake's removal of core dumps?

I tend to think it's a misfeature.

For one thing, this doesn't match the documentation.
Quizz: which of the following targets do you think
Automake is using to clear `core' files?

|  * If `make' built it, and it is commonly something that one would
|want to rebuild (for instance, a `.o' file), then `mostlyclean'
|should delete it.
|  
|  * Otherwise, if `make' built it, then `clean' should delete it.
|  
|  * If `configure' built it, then `distclean' should delete it
|  
|  * If the maintainer built it, then `maintainer-clean' should delete
|it.

Nhgbznxr pyrnaf pber svyrf qhevat va gur zbfgylpyrna gnetrg.


Furthermore, if any core file is dumped during `make distcheck',
then it's obviously a bug in the package and we should not hide
it.  What happens presently is that `distclean' will remove the
core, so we'll not notice it when checking for spurious files in
the build tree.  Although the build will probably go wrong
anyway, I'm not a supporter of things that may conceal bugs.

-- 
Alexandre Duret-Lutz






Re: Sending header files to etags

2003-02-04 Thread Alexandre Duret-Lutz
>>> "Alan" == Alan Gutierrez <[EMAIL PROTECTED]> writes:

 Alan> bin_PROGRAMS = foo

 Alan> foo_SOURCES = \
 Alan> src/foo/foo.hpp \
 Alan> src/foo/foo.cpp

 Alan> automake correctly determines the foo.hpp dependency for building foo,
 Alan> but doesn't feed foo.hpp to etags.

% make tags
tags=; \
here=`pwd`; \
list='src/foo/foo.hpp src/foo/foo.cpp'; \
unique=`for i in $list; do \
if test -f "$i"; then echo $i; else echo ./$i; fi; \
  done | \
  gawk '{ files[$0] = 1; } \
   END { for (i in files) print i; }'`; \
test -z "$tags$unique" \
  || etags\
 $tags $unique

Looks like it works for me. 
Which version of Automake are you complaining about?
-- 
Alexandre Duret-Lutz






Re: Java class files, again

2003-02-04 Thread Alexandre Duret-Lutz
>>> "Eric" == Eric Siegerman <[EMAIL PROTECTED]> writes:

 Eric> On Sat, Feb 01, 2003 at 02:59:00AM +0100, Simon Richter wrote:
 >> for a project of mine I need support for java .class files, and as I'd
 >> like to do this the right way I've thought I might as well try to hack
 >> automake's Java support.

 Eric> Cool!

Seconded!  (Although I can't make any technical comments
regarding Java as eric did.)

Simon, please, start here: http://sources.redhat.com/automake/contribute.html
-- 
Alexandre Duret-Lutz






Re: Archives and/or Java

2003-02-04 Thread Alexandre Duret-Lutz
>>> "Simon" == Simon Richter <[EMAIL PROTECTED]> writes:
[...]
 Simon> Hrm, what if an archive would be treated like a directory, i.e.

 Simon> foo_jar_DATA = foo.properties

Sounds like a nice idea.

 Simon> ... Hrm, that would go in the direction of generic archive target
 Simon> support, and one would have to think about files in subdirectories of
 Simon> archives as well ("propertiesdir = $(foo_jardir)/properties"? Ick.).

Ouch.

 Simon> Any ideas how we could implement this cleanly? Actually, though it looks
 Simon> icky, the idea of making archives "special" directories has its
 Simon> advantages. I could think of

 Simon> data_TGZS = images.tgz
 Simon> images_tgz_DATA = penguin.png windows.bmp

 Simon> or even

 Simon> data_ARCHIVES = images.archive
[...]

Maybe we don't need several primaries (_TGZS, _JAR, _ZIP, ...).
How about

data_ARCHIVES = foo.tar.gz bar.zip baz.jar

Automake can match suffixes like it does in _SOURCES to
select a compiler.


BTW, an item on the TODO list is to merge _LIBRARIES and _LTLIBRARIES.
We can decide wether the user want to build a libtool library
or a plain static library by looking at the suffix.

Your $(propertiesdir) example apart, _ARCHIVES and _LIBRARIES do
not look very different, do they?

 Simon> To do for archives: Files installed in archives need to
 Simon> be installed at build time,

I guess this is required to support things like $(propertiesdir).
Is this still true if subdirectories are not used? (Like when
we build _LIBRARIES.)

 Simon> but I don't think that's a major issue

Neither do I.  AFAICT the major hindrance is the Automake guts.
(Hopefully that's an occasion to do some cleaning.)

[...skipping Java issues I can't comment on...]
-- 
Alexandre Duret-Lutz






FYI: Fix for _AC_AM_CONFIG_HEADER_HOOK (CONFIG_HEADER stamp filecreation) bug

2003-02-04 Thread Alexandre Duret-Lutz
>>> "Sander" == Sander Niemeijer <[EMAIL PROTECTED]> writes:

 Sander> This replacement for the _AC_AM_CONFIG_HEADER_HOOK macro (located in
 Sander> m4/init.m4) fixes an incorrect naming issue of stamp-h* files when
 Sander> only specific headers are recreated through config.status.

Thanks a lot!  I'm installing the following on HEAD and branch-1-7.
This also handles header.h:top.in:middle.in:bottom.in style arguments.

[...]

 Sander> P.S. A better replacement would be to have the
 Sander> $config_headers list passed along as variable to the
 Sander> _AC_AM_HEADER_HOOK macro.

We can discuss this later when the Autoconf maintainer is back.

[...]

2003-02-04  Alexandre Duret-Lutz  <[EMAIL PROTECTED]>

* m4/init.m4 (_AC_AM_CONFIG_HEADER_HOOK): Recompute
indexes of header files so we create stamp files with
the right numbers when config.status is run on some headers.
* tests/stamph2.test: Check for this.
Reported by Sander Niemeijer.

Index: THANKS
===
RCS file: /cvs/automake/automake/THANKS,v
retrieving revision 1.186.2.17
diff -u -r1.186.2.17 THANKS
--- THANKS  2 Feb 2003 10:45:41 -   1.186.2.17
+++ THANKS  4 Feb 2003 19:54:32 -
@@ -184,6 +184,7 @@
 Rusty Ballinger[EMAIL PROTECTED]
 Ryan T. Sammartino [EMAIL PROTECTED]
 Sam Hocevar[EMAIL PROTECTED]
+Sander Niemeijer   [EMAIL PROTECTED]
 Sergey Vlasov  [EMAIL PROTECTED]
 Seth Alves [EMAIL PROTECTED]
 Shuhei Amakawa [EMAIL PROTECTED]
Index: m4/init.m4
===
RCS file: /cvs/automake/automake/m4/init.m4,v
retrieving revision 1.50.2.2
diff -u -r1.50.2.2 init.m4
--- m4/init.m4  13 Jan 2003 14:06:04 -  1.50.2.2
+++ m4/init.m4  4 Feb 2003 19:54:32 -
@@ -118,5 +118,14 @@
 # loop where config.status creates the headers, so we can generate
 # our stamp files there.
 AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK],
-[_am_stamp_count=`expr ${_am_stamp_count-0} + 1`
+[# Compute $1's index in $config_headers.
+_am_stamp_count=1
+for _am_header in $config_headers :; do
+  case $_am_header in
+$1 | $1:* )
+  break ;;
+* )
+  _am_stamp_count=`expr $_am_stamp_count + 1` ;;
+  esac
+done
 echo "timestamp for $1" >`AS_DIRNAME([$1])`/stamp-h[]$_am_stamp_count])
Index: tests/stamph2.test
===
RCS file: /cvs/automake/automake/tests/stamph2.test,v
retrieving revision 1.7
diff -u -r1.7 stamph2.test
--- tests/stamph2.test  8 Sep 2002 13:07:56 -   1.7
+++ tests/stamph2.test  4 Feb 2003 19:54:32 -
@@ -1,5 +1,5 @@
 #! /bin/sh
-# Copyright (C) 2001, 2002  Free Software Foundation, Inc.
+# Copyright (C) 2001, 2002, 2003  Free Software Foundation, Inc.
 #
 # This file is part of GNU Automake.
 #
@@ -21,6 +21,8 @@
 # Make sure stamp-h* files are created where we expect
 . ./defs || exit 1
 
+set -e
+
 cat >> configure.in << END
 AM_CONFIG_HEADER(1.h
  2.h:config.hin
@@ -42,17 +44,32 @@
 : > sdir1/config1.hin
 : > sdir2/config2.hin
 
-$ACLOCAL || exit 1
-$AUTOCONF || exit 1
-$AUTOMAKE || exit 1
-./configure || exit 1
-
-test -f stamp-h1 || exit 1
-test -f stamp-h2 || exit 1
-test -f stamp-h3 || exit 1
-test -f sdir1/stamp-h4 || exit 1
-test -f sdir1/stamp-h5 || exit 1
-test -f sdir1/stamp-h6 || exit 1
-test -f sdir1/stamp-h7 || exit 1
+$ACLOCAL
+$AUTOCONF
+$AUTOMAKE
+./configure
+
+test -f stamp-h1
+test -f stamp-h2
+test -f stamp-h3
+test -f sdir1/stamp-h4
+test -f sdir1/stamp-h5
+test -f sdir1/stamp-h6
+test -f sdir1/stamp-h7
+
+# Make sure `./config.status foo' creates the right stamp file.
+# Report from Sander Niemeijer.
+
+rm -f stamp-h*
+rm -f sdir1/stamp-h*
+
+./config.status sdir1/7.h 2.h sdir1/4.h
+test ! -f stamp-h1
+test -f stamp-h2
+test ! -f stamp-h3
+test -f sdir1/stamp-h4
+test ! -f sdir1/stamp-h5
+test ! -f sdir1/stamp-h6
+test -f sdir1/stamp-h7
 
 exit 0

-- 
Alexandre Duret-Lutz






Re: Flex c++ bug

2003-02-04 Thread Alexandre Duret-Lutz
>>> "Aidan" == Aidan Delaney <[EMAIL PROTECTED]> writes:

 Aidan> balor@navi traditional $ make
 Aidan> flex   traditional.ll && mv lex.yy.c traditional.cc

Automake indeed does not support C++ scanners (i.e., flex -+), but 
will compile a C scanner as C++ source when asked so.

[...]
 Aidan> AFAIK it should run the @BISON@ -d first
[...]

Automake 1.7.3 will have the following paragraphs in its manual.

|When `yacc' is invoked, it is passed `YFLAGS' and `AM_YFLAGS'.  The
| former is a user variable and the latter is intended for the
| `Makefile.am' author.
|
|`AM_YFLAGS' is usually used to pass the `-d' option to `yacc'.
| Automake knows what this means and will automatically adjust its rules
| to update and distribute the header file built by `yacc -d'.  What
| Automake cannot guess, though, is where this header will be used: it is
| up to you to ensure the header gets built before it is first used.
| Typically this is necessary in order for dependency tracking to work
| when the header is included by another file.  The common solution is
| listing the header file in `BUILT_SOURCES' (*note Sources::) as follows.
| 
|  BUILT_SOURCES = parser.h
|      AM_YFLAGS = -d
|  bin_PROGRAMS = foo
|  foo_SOURCES = ... parser.y ...

-- 
Alexandre Duret-Lutz






Re: Java class files, again

2003-02-05 Thread Alexandre Duret-Lutz
>>> "Simon" == Simon Richter <[EMAIL PROTECTED]> writes:

 Simon> This document says that the CVS tree is on sources.redhat.com, is that
 Simon> still the case (I got my working tree from subversions)?

subversions mirrors sources.redhat.com.  I don't know how often.
-- 
Alexandre Duret-Lutz






RFC: FAQ chapter for the manual (LONG)

2003-02-06 Thread Alexandre Duret-Lutz
I people,

Here is new chapter I would like to append to the Automake manual.

As English is obviously not my mother tongue, and because I know
some people have strong opinions about some of the issues
discussed, I'd appreciate any comments.

I've tried to stay neutral, but I'm pretty sure some people will
think I'm unfair in some places.  Let me know.

Cheerio,

Alexandre Duret-Lutz

--- snip --- snip --- snip ---

Frequently Asked Questions about Automake
*

   This chapters covers some questions that often come up on the mailing
lists.

* Menu:

* CVS:: CVS and generated files
* maintainer-mode:: missing and AM_MAINTAINER_MODE
* wildcards::   Why doesn't Automake support wildcards?
* distcleancheck::  Files left in build directory after distclean

File: automake.info,  Node: CVS,  Next: maintainer-mode,  Prev: FAQ,  Up: FAQ

CVS and generated files
===

Background: distributed generated files
---

   Packages made with Autoconf and Automake ship with some generated
files like `configure' or `Makefile.in'.  These files were generated on
the developer's host and are distributed so that end-users do not have
to install the maintainer tools required to rebuild them.  Other
generated files like Lex scanners, Yacc parsers, or Info documentation,
are usually distributed on similar grounds.

   Automake output rules in `Makefile's to rebuild these files.  For
instance `make' will run `autoconf' to rebuild `configure' whenever
`configure.in' is changed.  This makes development safer by ensuring a
`configure' is never out-of-date with respect to `configure.in'.

   As generated files shipped in packages are up-to-date, and because
`tar' preserves timestamps, these rebuild rules are not triggered when
a user unpacks and builds a package.

Background: CVS and timestamps
--

   CVS does not preserve timestamps.  The modification time of a
CVS-controlled file is its checkout date.  Because CVS processes files
in alphabetical order, `configure.in' will appear older than
`configure' after a fresh checkout, even if `configure' was up-to-date
when it was checked in.

   In other words, `make' relies on timestamps, CVS messes up
timestamps, so these two tools do not work well together.

Living with CVS in Autoconfiscated projects
---

   There are basically two clans amongst maintainers: those who keep all
distributed files under CVS, including generated files, and those who
keep generated files _out_ of CVS.

All files in CVS


   * The CVS repository contains all distributed files so you know
 exactly what is distributed, and you can checkout any prior
 version entirely (except for timestamps).

   * Maintainers can see how generated files evolve (for instance you
 can see what happens to your `Makefile.in's when you upgrade
 Automake and make sure they look OK).

   * Users do not need the autotools to build a checkout of the
 project, it works almost like a released tarball.  Timestamps are
 inaccurate, hence some rebuild rules will be triggered and attempt
 to run developer tools such as `autoconf' or `automake'.
   
 Actually, calls to such tools are all wrapped into a call to the
 `missing' script discussed later (*note maintainer-mode::).
 `missing' will take care of fixing the timestamps when these tools
 are not installed, so that the build can continue.
   
   * In distributed development, developers are likely to have different
 version of the maintainer tools installed.  In this case rebuilds
 triggered by timestamp lossage will lead to spurious changes to
 generated files.  There are several solutions to this:

* All developers should use the same versions, so that the
  rebuilt files are identical to files in CVS.  (This starts to
  be difficult when each project you work on uses different
  versions.)

* Or people use a script to fix the timestamp after a checkout
  (the GCC folks have such a script).
   
* Or `configure.in' uses `AM_MAINTAINER_MODE', which will
  disable all these rebuild rules by default.  This is further
  discussed in *Note maintainer-mode::.

   * Although we focused on spurious rebuilds, the converse can also
 happen.  CVS's timestamp handling can also let you think an
 out-of-date file is up-to-date.

 For instance, suppose a developer has modified `Makefile.am' and
 rebuilt `Makefile.in', and then decide to do a last-minute change
 to `Makefile.am' right before checking in both files (without
 rebuilding `Makefile.in' to account for th

Re: RFC: FAQ chapter for the manual (LONG)

2003-02-06 Thread Alexandre Duret-Lutz
>>> "Ronald" == Ronald Landheer-Cieslak <[EMAIL PROTECTED]> writes:

[...]

 Ronald> I beg to differ: use the -d option with import keeps
 Ronald> the modification time, and The "commit" command retains
 Ronald> the timestamp of the file, if the act of checking it in
 Ronald> didn't change it (by expanding keywords).

My impression was that CVS could preserve timestamp on checkin,
but not on checkout.  Looks like I was wrong.  I just tried to
make a fresh checkout of Automake, and timestamps are correct.

However `cvs update' seems to always use the checkout time,
loosing original timestamps.  So although my description of 
this issue is admittedly wrong, there is still a problem.
Do you know how to tell `cvs update' to preserve timestamps?

 Ronald> AFAICT, neither autoconf nor automake nor libtool adds
 Ronald> any CVS keyswords (like $Id$, for example) - but
 Ronald> correct me if I'm wrong :)

They don't, but Autoconf and Automake will propagate keywords
from input.

[...]

 >> * The CVS repository contains all distributed files so you know
 >> exactly what is distributed, and you can checkout any prior
 >> version entirely (except for timestamps).
 Ronald>  ^
 Ronald> not true.

Agreed.

 Ronald> [snip]
 >> * Although we focused on spurious rebuilds, the converse can also
 >> happen.  CVS's timestamp handling can also let you think an
 >> out-of-date file is up-to-date.
 >> 
 >> For instance, suppose a developer has modified `Makefile.am' and
 >> rebuilt `Makefile.in', and then decide to do a last-minute change
 >> to `Makefile.am' right before checking in both files (without
 >> rebuilding `Makefile.in' to account for the change).

 Ronald> .. and while having a CVS tag in the Makefile.am file
 Ronald> (which is quite common)

Even without tag.  We are talking about `cvs update' below.

 >> This last change to `Makefile.am' make the copy of `Makefile.in'
 >> out-of-date.  Since CVS processes files alphabetically, when
 >> another developer update his or her tree, `Makefile.in' will
 >> happen to be newer than `Makefile.am'.  This other developer will
 >> not see `Makefile.in' is out-of-date.

[...]

 Ronald> AFAIK the problem with generated files in CVS is not a
 Ronald> problem of time stamps (file modification times) but
 Ronald> rather of CVS keyword expansion.

We probably have two problems.  I've never used CVS keywords (and I'm
accustomed to type `cvs add -ko ...'), but I've always been beaten
by this timestamp lossage.

Thanks to you, I'm relieved to learn it doesn't happen with 
`cvs checkout'.

 Ronald> In any case, CVS is a versioning tool, not a
 Ronald> distribution tool. For me, that means that it makes
 Ronald> sense not to have generated files in the CVS
 Ronald> repository.

I'll try to make your point in the relevant section.

Thanks for your comments.

pip-pip
-- 
Alexandre Duret-Lutz






Re: RFC: FAQ chapter for the manual (LONG)

2003-02-06 Thread Alexandre Duret-Lutz
Here is a rewrite of this CVS/timestamp section.
I hope it's more accurate.

Background: CVS and timestamps
--

   Unless you use CVS keywords (in which case files are rewritten before
commit), CVS preserves timestamp during `cvs commit' and `cvs import
-d' operations.

   When you check out a file using `cvs checkout' its timestamp is set
to that of the revision which is being checked out.

   However, during `cvs update', files will have the date of the
update, not the original timestamp of this revision.  This is meant to
make sure that `make' notices sources files have been updated.

   This timestamp shift is troublesome when both sources and generated
files are kept under CVS.  Because CVS processes files in alphabetical
order, `configure.in' will appear older than `configure' after a `cvs
update' that updates both files, even if `configure' was newer than
`configure.in' when it was checked in.  Calling `make' will then
trigger a spurious rebuild of `configure'.

Living with CVS in Autoconfiscated projects
---

   There are basically two clans amongst maintainers: those who keep all
distributed files under CVS, including generated files, and those who
keep generated files _out_ of CVS.

All files in CVS


   * The CVS repository contains all distributed files so you know
 exactly what is distributed, and you can checkout any prior
 version entirely.
   
   * Maintainers can see how generated files evolve (for instance you
 can see what happens to your `Makefile.in's when you upgrade
 Automake and make sure they look OK).

   * Users do not need the autotools to build a checkout of the
 project, it works just like a released tarball.

   * If users use `cvs update' to update their copy, instead of `cvs
 checkout' to fetch a fresh one, timestamps will be inaccurate.
 Some rebuild rules will be triggered and attempt to run developer
 tools such as `autoconf' or `automake'.
   
 Actually, calls to such tools are all wrapped into a call to the
 `missing' script discussed later (*note maintainer-mode::).
 `missing' will take care of fixing the timestamps when these tools
 are not installed, so that the build can continue.

   * In distributed development, developers are likely to have different
 version of the maintainer tools installed.  In this case rebuilds
 triggered by timestamp lossage will lead to spurious changes to
 generated files.  There are several solutions to this:

* All developers should use the same versions, so that the
  rebuilt files are identical to files in CVS.  (This starts to
  be difficult when each project you work on uses different
  versions.)

* Or people use a script to fix the timestamp after a checkout
  (the GCC folks have such a script).

* Or `configure.in' uses `AM_MAINTAINER_MODE', which will
  disable all these rebuild rules by default.  This is further
  discussed in *Note maintainer-mode::.

   * Although we focused on spurious rebuilds, the converse can also
 happen.  CVS's timestamp handling can also let you think an
 out-of-date file is up-to-date.

 For instance, suppose a developer has modified `Makefile.am' and
 rebuilt `Makefile.in', and then decide to do a last-minute change
 to `Makefile.am' right before checking in both files (without
 rebuilding `Makefile.in' to account for the change).

 This last change to `Makefile.am' make the copy of `Makefile.in'
 out-of-date.  Since CVS processes files alphabetically, when
 another developer `cvs update' his or her tree, `Makefile.in' will
 happen to be newer than `Makefile.am'.  This other developer will
 not see `Makefile.in' is out-of-date.


Generated files out of CVS
..
   
   One way to get CVS and `make' working peacefully is to never store
generated files in CVS, i.e., do not CVS-control files which are
`Makefile' targets (or _derived_ files in Make terminology).
   
   This way developers are not annoyed by changes to generated files.
It does not matter if they all have different versions (assuming they
are compatible, of course).  And finally, timestamps are not lost,
changes to sources files can't be missed as in the
`Makefile.am'/`Makefile.in' example discussed earlier.
   
   The drawback is that the CVS repository is not an exact copy of what
is distributed and that users now need to install various development
tools (maybe even specific versions) before they can build a checkout.
But, after all, CVS's job is versioning, not distribution.
   
   Allowing developers to use different versions of their tools can also
hide bugs during distributed development.  Indeed, developers will be
using (hence testing) their own generated files, instead of the
generated files that will be released actually.  The developer who
prepares th

Re: Comment on: FAQ chapter for the manual

2003-02-06 Thread Alexandre Duret-Lutz
Hi Bruce!

>>> "Bruce" == Bruce Korb <[EMAIL PROTECTED]> writes:

[...]

 Bruce> You left out an argument in favor:  the add-on files are self
 Bruce> contained.  I, in fact, intentionally make it very simple to
 Bruce> add expression files to AutoGen.  :-)  You add a file named
 Bruce> ``exprMumble.c'' to the agen5 directory and it is automatically
 Bruce> incorporated into autogen, but for the fact you also have to
 Bruce> edit Makefile.am to add it to the list.  If they don't want to
 Bruce> distribute it, then omit it.  It gets dropped automatically,
 Bruce> but for the fact it is now listed in Makefile.am.  :-)

Point taken.

 Bruce> There ought to be a way to say, "I understand all your
 Bruce> philosophical objections, but I don't care.  Glob this expression
 Bruce> and insert the result into Makefile.in and please don't tell me you
 Bruce> know how to do my business better than me."  

I think we agree.  The last sentence in this section was meant
to imply such a patch would be considered, would someone mind
enough to work it out.

 Bruce> We have philosophical differences.

Fortunately this allows us to talk more often.

[...]

 >> Suppose our package contains a program for
 >> which we want to build a man page using `help2man'.

[...]

 Bruce> This example is too simplistic.  There are a number of packages
 Bruce> that derive documentation from the sources.  

That's seems simplier to me: you can distribute the sources and
the derived documentation without spurious rebuilds.  I'm
speaking of a simple one-step .c -> .html case here.

If you meant .c -> .texi -> .info, you need to distribute the
files at each step if you decide to distribute the latter.

This is really what I wanted to imply with "If you distribute
something generated, distribute its sources."  Maybe I should
elaborate on this.  Or would it be clearer to just replace 
`sources' by `dependencies'?

There are ugly stamp-file tricks to play if one doesn't
want to ship intermediate files, but I'm not volunteering
to document such an hairy topic.  Not these days, at least. 

 Bruce> Mine is "special" in that I distribute the piece that
 Bruce> does the extraction, but anyone deriving a .texi file
 Bruce> from javadoc comments will have essentially the same
 Bruce> difficulty.  

Honestly, I've used getdefs/autogen to build Texinfo
documentation in three projects so far and never hit any
difficulty.  I don't think this is different from your javadoc
example.  I just ship the .info files so that users to not need
Texinfo.  And I ship the .texi files so that users do not need
getdefs/autogen.

I understand you can decide that my last sentence does not apply
in your case, since your package builds getdefs and autogen.
I think this precisely makes your project different from others.

 Bruce> Do you distribute trivially extracted text or not?  I
 Bruce> say, "not" and if not you have this dilemma.  Various
 Bruce> pieces of documentation will depend upon the extracted
 Bruce> .texi file, even if you distribute these docs.  The
 Bruce> result is your clients will always have their builds
 Bruce> attempting to rebuild distributed docs and the distcheck
 Bruce> will choke.  After years of arguing this, I did finally
 Bruce> win my point and it ought to be in the FAQ.  :-)

I confess I don't understand this paragraph at all.  Are you
speaking about not distributing some intermediate files?
Also what are the dilemma and the point?  

You said your clients always rebuild distributed docs.  Either
you think this is ok and there is no point in distributing these
docs, either you think this rebuilding is not ok and your
dependencies need work.  In all cases it seems distcheck is
right in complaining.  I don't yet see how this could be
otherwise so I'm certainly missing your point.

 Bruce> BTW, the problem gets much worse if the product distributes with
 Bruce> no .texi files because the texi rules know that if there are no
 Bruce> texi files, then there can be no texi documentation.  This is
 Bruce> a mistake.  I've been told that the texi rules come from the texi
 Bruce> folks, so it's not Automake's job to fix it.  It's still a problem.

Fixing the rules for building .info files is cleary Automake's job.
Could you fill a PR with an example of what you are trying to achieve?
(I'm not sure I understand what you want.)
-- 
Alexandre Duret-Lutz






Re: Comment on: FAQ chapter for the manual

2003-02-07 Thread Alexandre Duret-Lutz
>>> "Bruce" == Bruce Korb <[EMAIL PROTECTED]> writes:

[...]

 Bruce> There's now a relatively simple process by which one can
 Bruce> delete reconstructed, but also distributed files.  I do
 Bruce> think it would be worthwhile to make that visible so that
 Bruce> those that do construct and distribute .texi files won't
 Bruce> have to necessarily tear their hair out.  Here's the magic:

 Bruce> distcleancheck_listfiles = \
 Bruce> find -type f -exec 'test -f $(srcdir)/{} || echo {} ;'

This is already documented.  I'm fine with adding an explicit
reference to this. "For desperate cases", I'd say, as I think
there is always better to do.

 Bruce> That will cause to be removed any file you both build and
 Bruce> redistribute.  Period.

To be less confusing, it's not "delete" nor "removed", but
"ignore" and "ignored".  (If you were meaning "removed from the
diagnostic" then we agree.)

[...]

 >> I just ship the .info files so that users to not need
 >> Texinfo.  And I ship the .texi files so that users do not need
 >> getdefs/autogen.

 Bruce> and if you have the .texi derivation rule as well, 

Of course I do.  They rules need to be here in case the user
changes something in the .texi dependencies.  This is a
requirement to achieve what François Pinard would call a
dependable build.

 Bruce> then you need to either 1) be careful that "make
 Bruce> distcheck" doesn't construct the distributed file, 

I don't.  It simply doesn't happen.  There is no reason why it
should happen, expect if I, by error, had made these files
dependent on non-distributed built files like in the exemple I
present in the FAQ (or like you do in AutoGen), or if I forgot
to distribute a dependency.  These are two errors I could fix
easily, so I have no reason to hide them with
bla^H^H^Hdistcleancheck_listfiles magic.

I believe you have such dependencies in AutoGen: .texi files
that explicitely depends on binaries such as autogen or getdefs,
and are therefore always rebuilt.  

I believe that these dependencies unnecessarily trigger your
whole documentation pipe at make time, and that you then have to
play (too) many tricks in order not to suffer the consequences.

Have you tried getting rid of theses as in the help2man example?

foo.texi: built-build-tools sources
build-command

becomes

foo.texi: sources
$(MAKE) built-build-tools
build-command

I believe fixing the dependencies at the root should allow to
distribute .c files, generated .texi files, and generated .info
files, without sourious rebuilds of the documentation.  With
clean rules and no pain.

Maybe I believe too much :).  Anyway, this is assuming you also
ship all dependencies (including @included .texi files, to be
clearer -- two mails ago I was under the impression you didn't
want to distribute them, as they were "trivially extracted", but
now you say you do distribute .texi files, so I'm confused).

[...]

 Bruce> It's ok to rebuild the .texi, not ok to choke because
 Bruce> they dont have texinfo or texi2html or whatever to go on.
 Bruce> In other words, I distribute the .texi and the .info and
 Bruce> I distribute the means for getting from .c to .texi.

I still would like to understand why you distribute generated
(.texi) files when it's ok to rebuild them.

I think there is no reason to rebuild a file which is
distributed.  That's what distcheckclean checks.  So I'd really
want to understand why you think differently (appart from giving
us occasions to talk, that is :)).  So far I've failed to get
your point.

BTW, autogen.info is not rebuilt the first time I run `make' in
Autogen (5.4.8), but it gets rebuilt if I run `make' a second
time.  Looks weird.  Is this intended?  I'm sorry I don't
understand why this happens.

Ciao,
-- 
Alexandre Duret-Lutz






Re: Automatic dependency tracker vanished - why?

2003-02-09 Thread Alexandre Duret-Lutz
>>> "Markus" == Markus Werle <[EMAIL PROTECTED]> writes:

[...]

 Markus> that the files in .deps only contain the line
 Markus> # dummy

 Markus> Why? 

You have run ./configure, but haven't run make yet.
Dependencies are updated as a side-effect of the compilation.

 Markus> What went wrong?

Nothing as far as I can tell.  

Please send more details if dependencies really aren't updated
during build (don't forget to say which version of Automake you
are and were using, especially if something "vanished").

[...]

-- 
Alexandre Duret-Lutz






Re: CVS, bootstrapping and DJGPP

2003-02-09 Thread Alexandre Duret-Lutz
>>> "Richard" == Richard Dawe <[EMAIL PROTECTED]> writes:

[...]

 Richard> I found the problem. It was due to $SHELL (in the
 Richard> environment) not being set to bash. 

Is this something we should set in Automake?

For instance
 $ENV{'SHELL'} = '@SHELL@'
where @SHELL@ is the shell computed by ./configure

Or is this something DJGPP users should stick in their
environment?

The issue doesn't seem limited to automake.  For instance
autoupdate will calls autoconf using arguments like 
"--trace define:'AC:\$f:\$1'".

[...]

-- 
Alexandre Duret-Lutz






Re: CVS, bootstrapping and DJGPP

2003-02-10 Thread Alexandre Duret-Lutz
>>> "Richard" == Richard Dawe <[EMAIL PROTECTED]> writes:

[...]

 Richard> I found the problem. It was due to $SHELL (in the
 Richard> environment) not being set to bash.
 >> 
 >> Is this something we should set in Automake?
 >> 
 >> For instance
 >> $ENV{'SHELL'} = '@SHELL@'
 >> where @SHELL@ is the shell computed by ./configure

 Richard> Yes, but I don't know whether you should do this for
 Richard> all platforms or just DJGPP (by checking for
 Richard> defined($ENV{'DJGPP'}) before defining $ENV{'SHELL'}
 Richard> to be @SHELL@).

Thanks.  I'm installing the following change on HEAD and branch-1-7.

2003-02-10  Alexandre Duret-Lutz  <[EMAIL PROTECTED]>

* automake.in (BEGIN): Override $ENV{'SHELL'} with ./configure's
SHELL for DJGPP.
Suggested by Richard Dawe.

Index: automake.in
===
RCS file: /cvs/automake/automake/automake.in,v
retrieving revision 1.1365.2.30
diff -u -r1.1365.2.30 automake.in
--- automake.in 6 Feb 2003 16:52:51 -   1.1365.2.30
+++ automake.in 10 Feb 2003 14:02:35 -
@@ -33,6 +33,15 @@
 {
   my $perllibdir = $ENV{'perllibdir'} || '@datadir@/@PACKAGE@-@APIVERSION@';
   unshift @INC, $perllibdir;
+
+  # Override SHELL.  This is required on DJGPP so that system() uses
+  # bash, not COMMAND.COM which doesn't quote arguments properly.
+  # Other systems aren't expected to use $SHELL when Automake
+  # runs, but it should be safe to drop the `if DJGPP' gard if
+  # it turns up other systems need the same thing.  After all,
+  # if SHELL is used, ./configure's SHELL is always better than
+  # the user's SHELL (which may be something like tcsh).
+  $ENV{'SHELL'} = '@SHELL@' if exists $ENV{'DJGPP'};
 }
 
 use Automake::Struct;

-- 
Alexandre Duret-Lutz






ANN: new mailing list: autotools-announce@gnu.org

2003-02-10 Thread Alexandre Duret-Lutz
[Please repost and forward wherever it is appropriate.]

We have setup a new mailing list, [EMAIL PROTECTED], that
will carry announcements for releases *and* beta-releases of Autoconf,
Automake, Gettext, and Libtool.

This is intended to be a read-only and low-traffic list, for people
that cannot afford reading each tool's list, but still would like to
hear about new releases, or are willing to test pre-releases.  If you
know such people, please tell them.

You can subscribe here:

http://mail.gnu.org/mailman/listinfo/autotools-announce

Cheers,
-- 
Alexandre Duret-Lutz






Re: _TEXINFOS question

2003-02-11 Thread Alexandre Duret-Lutz
>>> "Patrick" == Patrick Guio <[EMAIL PROTECTED]> writes:

 Patrick> Dear all,
 Patrick> I am using the _TEXINFOS variables in a Makefile.am to build the
 Patrick> documentation. I would like these to be built on request with a `doc'
 Patrick> target for example and not with the default 'all' or 'all-am'.
 Patrick> Is there a way to do that?

No friendly way.
-- 
Alexandre Duret-Lutz






Automake 1.7.2b uploaded (beta for 1.7.3)

2003-02-12 Thread Alexandre Duret-Lutz
Hi people!

Here is a snapshot of the 1.7.x branch of Automake.

  ftp://alpha.gnu.org/gnu/automake/automake-1.7.2b.tar.gz
  ftp://alpha.gnu.org/gnu/automake/automake-1.7.2b.tar.bz2
  ftp://sources.redhat.com/pub/automake/automake-1.7.2b.tar.gz
  ftp://sources.redhat.com/pub/automake/automake-1.7.2b.tar.bz2

This should be reasonably close to what 1.7.3 will be.
Please test it and report any problem you have to <[EMAIL PROTECTED]>.
I hope we can release 1.7.3 by the middle of next week.

  There is a known bug with VPATH handling of Texinfo and Lex rules
  which isn't fixed here.  This affects all 1.7.x versions for Texinfo
  rules.  I think older versions will also fails on Lex rules but I
  haven't verified.  This is triggered during VPATH builds with (at
  least) Tru64 make, FreeBSD (current) make, and OpenBSD (3.2) make.
  In short, these make implementations will *not* perform a
  VPATH search for dependencies which appear as targets in Makefiles.
  As far as BSD make is concerned this seems to be a recent change in
  its behavior, as I believe it worked fine in the past.
  Fixing this requires too much changes for the 1.7.x branch.

  The following failures in the test suite can denote this bug:
lex3.test, txinfo3.test, txinfo13.test, txinfo16.test, txinfo18.test

  Please report these failures anyway, with your system's version,
  so we know more precisely where this happens.

Here is a list of changes since 1.7.1.  Those that worry me the more
are the changes to elisp compilation, and the changes to depcomp.  If
you can test these, by all means please do!

Bugs fixed in 1.7.2b:
* Fix stamp files numbering (when using multiple AC_CONFIG_HEADERS).
* Query distutils for `pythondir' and `pythonexecdir', instead of
  using an hardcoded path.  This should allow builds on 64-bit
  distributions that usually use lib64/ instead of lib/.
* AM_PATH_PYTHON will also search for python2.3.
* elisp files are now built all at once instead of one by one. Besides
  incurring a speed-up, this is required to support interdependent elisp files.
* Support for DJGPP:
  - `make distcheck' will now work in `_inst/' and `_build' instead
of `=inst/' and `=build/'
  - use `_dirstamp' when the file-system doesn't support `.dirstamp'
  - more changes that affect only the Automake package (not its output)
* Fix some incompatibilities with upcoming perl-5.10.
* Properly quote AC_PACKAGE_TARNAME and AC_PACKAGE_VERSION when defining
  PACKAGE and VERSION.
* depcomp fixes:
  - dashmstdout and dashXmstdout modes: don't use `-o /dev/null', this
is troublesome with gcc and Solaris compilers. (PR/385)
  - makedepend mode: work with Libtool. (PR/385 too)
  - support for ICC.
* better support for unusual gettext setups, such as multiple po/ directories
  (PR/381):
  - Flag missing po/ and intl/ directories as warnings, not errors.
  - Disable these warnings if po/ does not exist.
* Noteworthy manual updates:
  - New FAQ chapter.
  - Document how AC_CONFIG_AUX_DIR interacts with missing files.
(Debian Bug #39542)
  - Document `AM_YFLAGS = -d'.  (PR/382)

-- 
Alexandre Duret-Lutz






Re: Automake 1.7.2b uploaded (beta for 1.7.3)

2003-02-13 Thread Alexandre Duret-Lutz
>>> "Robert" == Robert Boehne <[EMAIL PROTECTED]> writes:

 Robert> Hello,
 Robert> I have a problem with the beta, after bootstrapping a
 Robert> fresh checkout of Libtool with Autoconf 2.57 and Automake
 Robert> 1.7.2b, I get a make distcheck error.  Apparently the
 Robert> distcheck fails because files are left over in the
 Robert> insallation directory after "make uninstall" is run.

I was luckier: CVS Libtool distchecks succesfully here.  

I'm using Debian unstable, with Autoconf 2.57, Automake 1.7.2b, 
Libtool 1.4e, Texinfo 4.3a, Make 3.80, Bash 2.05b.0(1)-release.

My install-info is that from Texinfo, not from Debian.
(Maybe Debian's install-info creates the ${infodir}/dir file?)

 Robert> Below are the offending files
 Robert> ${infodir}/dir
 Robert> ${prefix}/share/libtool:
 Robert> install-sh  missing  mkinstalldirs

Any idea when these files get installed?  
Are they installed by `make install'?  (i.e., outside distcheck')
-- 
Alexandre Duret-Lutz






Re: Multiple makefiles and rules for CONFIG_HEADER and CONFIG_FILEentries

2003-02-13 Thread Alexandre Duret-Lutz
>>> "Sander" == Sander Niemeijer <[EMAIL PROTECTED]> writes:

[...]

 Sander> Now I recently discovered that automake places the
 Sander> rules to rebuild foo.h from foo.h.in (with the use of a
 Sander> stamp-h* file) in the Makefile of the directory where
 Sander> foo.h will appear if that directory has a Makefile and
 Sander> otherwise put it in the toplevel Makefile. But it won't
 Sander> put these rules in any of the other Makefiles.  Of
 Sander> course this leaves me with a problem if I change
 Sander> foo.h.in and perform a make, since for targets in my
 Sander> subdirectories that depend on foo.h make won't try to
 Sander> rebuild foo.h and thus these targets won't be rebuild
 Sander> either.

I've been bitten by this too.  I added your email to the Cc: list for PR/355.

 Sander> I would like to know whether anybody knows a way to have the foo.h.in
 Sander> -> foo.h (with appropriate stamp-h* usage) dependencies included in
 Sander> all my makefiles that contain targets with dependencies on foo.h.

No idea :(  Except handwriting these rules, of course, but that
means you must know how stamp files are numbered.

 Sander> I'm currently considering to let configure create a separate foo.h in
 Sander> each of the directories that need foo.h (through a
 Sander> AC_CONFIG_HEADERS([dir1/foo.h:inc/foo.h.in dir2/foo.h:inc/foo.h.in]),

This looks safer.

[...]
-- 
Alexandre Duret-Lutz






Re: Automake 1.7.2b uploaded (beta for 1.7.3)

2003-02-14 Thread Alexandre Duret-Lutz
>>> "Robert" == Robert Boehne <[EMAIL PROTECTED]> writes:

[...]

 Robert> these files are installed by "make install",

Could you send the output of `make install', so we see exactly
when these files are installed?


 Robert> which is run as a dependency of distcheck.  Any ideas
 Robert> why this is happening?  I began to look into this
 Robert> problem because another maintainer has not been able to
 Robert> run "make distcheck" since he abandoned a much older
 Robert> Automake.  

Which version worked last?

[...]

-- 
Alexandre Duret-Lutz






Re: Distcheck: cannot create regular file

2003-02-15 Thread Alexandre Duret-Lutz
>>> "Bruce" == Bruce Korb <[EMAIL PROTECTED]> writes:

 Bruce> At the end of this log, you'll see lines like this:

 Bruce> cp: cannot create regular file \
 Bruce> `blocksort-1.4.2/libopts/.deps/save.Plo': Permission denied

Simply don't distribute these files.
-- 
Alexandre Duret-Lutz






Re: Distcheck: cannot create regular file

2003-02-15 Thread Alexandre Duret-Lutz
>>> "Bruce" == Bruce Korb <[EMAIL PROTECTED]> writes:

[...]

 Bruce> Distributing files marked read-only or in read-only directories
 Bruce> really ought not cause a distribution failure.  

They really wouldn't cause distcheck failures if they weren't rebuilt.
(Does it ring a bell?)

[...]

 Bruce> This is a really gnarly little twisty hassle, but I
 Bruce> think I've simplified the issue as much as I know how.

I think we already discussed this, probably at the time the
"Conditional subdirectories" section was added to the manual.
I suggest you take a look at it, it's really much easier.

As long as LIBOPTS_DIRS is defined using a conditional, as you
do in libopts/MakeDefs.inc, then libopts/ will be distributed
correctly without any work from you.

The trouble, in blocksort, comes from the fact that LIBOPTS_DIR
is defined by an AC_SUBSTitution.  A bogus AC_SUBST, by the
way, because LIBOPTS_DIR was set to either '' or 'true' (i.e.,
never to 'libopts' which is what we would expect in SUBDIRS)

blocksort-1.4.2 passes distcheck with the following patch.

--- blocksort-1.4.2/Makefile.am 2003-02-15 20:22:55.0 +0100
+++ blocksort-1.4.2/Makefile.am 2003-02-16 02:37:10.0 +0100
@@ -16,10 +16,11 @@
 extra  = $(TARG)-lsm.tpl $(TARG)-spec.tpl bsort-opt.def
 specfiles  = $(TARG).lsm $(TARG).spec
 CFG_FILES  = cfg/libopts.m4 cfg/bootstrap cfg/bootstrap.local
-EXTRA_DIST = $(specfiles) $(extra) $(TARG).1 $(CFG_FILES) libopts
+EXTRA_DIST = $(specfiles) $(extra) $(TARG).1 $(CFG_FILES)
 man_MANS   = blocksort.1
 
+include $(srcdir)/libopts/MakeDefs.inc
 SUBDIRS= $(LIBOPTS_DIR)
 blocksort_LDADD= $(LIBOPTS_LDADD)
 blocksort_CFLAGS   = $(LIBOPTS_CFLAGS)
--- blocksort-1.4.2/cfg/libopts.m4  2003-02-15 20:23:14.0 +0100
+++ blocksort-1.4.2/cfg/libopts.m4  2003-02-16 02:27:50.0 +0100
@@ -337,7 +337,6 @@
   AM_CONDITIONAL([NEED_LIBOPTS], [test -n "${LIBOPTS_DIR}"])
   AC_SUBST(LIBOPTS_LDADD)
   AC_SUBST(LIBOPTS_CFLAGS)
-  AC_SUBST(LIBOPTS_DIR)
   AC_CONFIG_FILES([libopts/Makefile])
 ]) # end of AC_DEFUN of LIBOPTS_CHECK
--- blocksort-1.4.2/libopts/libopts.m4  2003-02-15 19:55:40.0 +0100
+++ blocksort-1.4.2/libopts/libopts.m4  2003-02-16 02:35:49.0 +0100
@@ -337,6 +337,5 @@
   AM_CONDITIONAL([NEED_LIBOPTS], [test -n "${LIBOPTS_DIR}"])
   AC_SUBST(LIBOPTS_LDADD)
   AC_SUBST(LIBOPTS_CFLAGS)
-  AC_SUBST(LIBOPTS_DIR)
   AC_CONFIG_FILES([libopts/Makefile])
 ]) # end of AC_DEFUN of LIBOPTS_CHECK


-- 
Alexandre Duret-Lutz






Re: Automake 1.7.2b uploaded (beta for 1.7.3)

2003-02-16 Thread Alexandre Duret-Lutz
anged to AC_CONFIG_AUX_DIR([.]).  I
suppose some people will mind about the extra kilobytes, though.

[*] To be fair, I guess it's harmless if you don't rerun
automake in the libltdl directory embeded in a package.  However
I think it's quite common to do so, for instance `autoreconf' will
work recursively.
-- 
Alexandre Duret-Lutz






Re: yacc/lex dependency order

2003-02-20 Thread Alexandre Duret-Lutz
>>> "mcmahill" == mcmahill  <[EMAIL PROTECTED]> writes:

[...]

 mcmahill> The problem I'm having is that the lex source
 mcmahill> includes a header generated by yacc but the automake
 mcmahill> generated makefile doesn't capture that dependency.

The 1.7.3 documentation has a paragraph about this, see
http://sources.redhat.com/automake/automake.html#Yacc%20and%20Lex
-- 
Alexandre Duret-Lutz






Re: tests under automake-1.7.2 fail (AFS @sys variable)

2003-02-20 Thread Alexandre Duret-Lutz
>>> "Martin" == Martin MOKREJ© <[EMAIL PROTECTED]> writes:

[...]

 Martin> Unfortunately, I cannot find out where is the logfile of the test
 Martin> executions to inspect details. The documentation on this is very bad:
 Martin> http://www.gnu.org/manual/automake/html_mono/automake.html#SEC96 , so I
1.7.3 has a tests/README

 Martin> I found out I can run the test myself at least.

There is nothing else to find out :)

[...]

 Martin> + autoupdate
 Martin> Possible unintended interpolation of @sys in string at 
/software/@sys/usr/bin/autoupdate line 29.
 Martin> Can't locate Autom4te/General.pm in @INC (@INC contains: 
/software//usr/share/autoconf 
/software/@sys/usr/lib/perl5/5.8.0/alpha-dec_osf-thread-multi-ld 
/software/@sys/usr/lib/perl5/5.8.0 
/software/@sys/usr/lib/perl5/site_perl/5.8.0/alpha-dec_osf-thread-multi-ld 
/software/@sys/usr/lib/perl5/site_perl/5.8.0 /software/@sys/usr/lib/perl5/site_perl .) 
at /software/@sys/usr/bin/autoupdate line 34.
 Martin> BEGIN failed--compilation aborted at /software/@sys/usr/bin/autoupdate line 
34.

autoupdate (= Autoconf) is failing here, so please report this to
[EMAIL PROTECTED]
-- 
Alexandre Duret-Lutz






Re: How to create static library with sources from multiple dirs?

2003-02-20 Thread Alexandre Duret-Lutz
>>> "Bob" == Bob Rossi <[EMAIL PROTECTED]> writes:

[...]

 Bob> I would like to create 1 library even though the sources are spread out
 Bob> over 3 directories. I can only seem to come up with 2 undesirable solutions.
 Bob> 1. Put all the code in one directory and make 1 library.
 Bob> 2. Create 3 library's

You haven't said which Automake version you were using.  With
recent versions (>= 1.5 I think), you can build programs or
libraries from sources in subdirectories.

  AUTOMAKE_OPTIONS = subdir-objects # Optional, see the manual.
  noinst_LIBRARIES = liball.a
  liball_a_SOURCES = sub1/foo.c sub1/foo.h sub2/bar.c sub2/bar.h ...

(It's good style to list headers files in _SOURCES instead of
EXTRA_DIST, even if they aren't compiled.)
-- 
Alexandre Duret-Lutz






Re: aclocal: adding user-home parts to aclocal(/automake) ?

2003-02-20 Thread Alexandre Duret-Lutz
Hi Guido!

>>> "gd" == Guido Draheim <[EMAIL PROTECTED]> writes:

[...]

 gd> there is no way that a path can be added - the aclocal 1.7
 gd> does read $datadir/aclocal/dirlist but that one is a
 gd> sysadmin file as well, not a user-home related file.  

One workaround is to install aclocal in your account, among the
many other packages you already have.  This way you control your
dirlist, and can even point to the system's aclocal directory.

There is little interest in working on aclocal these days.
First, the plan is to have aclocal replaced by an equivalant
Autoconf feature.  So the less features we put in aclocal, the
easier the transition will be.  Second, using aclocal to fetch
macros outside the source tree is considered bad style (that's
one reason for getting rid of aclocal).  So I'd rather consider
the inconvenience you mention as an invitation to use an m4/
directory in your project.

[...]

 gd> It happens that there is no AUTOMAKE_OPTIONS environment
 gd> variable either to add default-options. 

Default options are better set in a Makefile.  (I've got your
point with -I, but I'm answering the general case here.)
-- 
Alexandre Duret-Lutz






Re: Stupid problem: how to specify the directory for .h files?

2003-02-20 Thread Alexandre Duret-Lutz
>>> "JG" == Jean-Guillaume Paradis (LMC) <[EMAIL PROTECTED]> writes:

[...]

 JG> dsiSecManager_SOURCES = file1.cpp $(PROJECT_ROOT_DIR)/include/file1.h

BTW, Automake doesn't support variables as *part of* filenames.
This break the dependency tracking code.

So, I you ever want to do this, it should read

dsiSecManager_SOURCES = file1.cpp ../../include/file1.h

(Or whatever PROJECT_ROOT_DIR is.)
-- 
Alexandre Duret-Lutz






Re: Building application on Mac OS X with automake

2003-02-20 Thread Alexandre Duret-Lutz
>>> "Paul" == Paul F Kunz <[EMAIL PROTECTED]> writes:

 Paul> I have an application based on Qt that I build with automake on
 Paul> Linux and other UNIX platforms.   Now I'm attempting to build it on
 Paul> Mac OS X.   After I upgrade to libtool 1.4.3, I can build the
 Paul> application, even with older version of autoconf and automake.
 Paul> However, the applicatons's main window doesn't become the active
 Paul> window and its menus don't show on the Mac Menu bar.   I think it is
 Paul> because the applicaiton has be packaged in a certain way and producing
 Paul> just an execuatable is not sufficient.   Looking at Qt's examples
 Paul> makefile shows that this seems to be true.

 Paul> My question is whether somebody has worked out what needs to be
 Paul> done using automake.   I can probably do it myself, but if it has
 Paul> already been done so much the better.

No idea.  Have you asked the Qt people?  Or did you finally worked it out?
-- 
Alexandre Duret-Lutz






Re: Archives and/or Java

2003-02-20 Thread Alexandre Duret-Lutz
Sorry for the delay.

>>> "Simon" == Simon Richter <[EMAIL PROTECTED]> writes:

[...]

 Simon> The question is basically: Should jar files be treated
 Simon> as libraries, losing the ability to stuff application
 Simon> data into them, or should they be treated as
 Simon> to-be-implemented archives, which can contain anything.
 Simon> I'd vote for the latter choice, because it doesn't add
 Simon> to the complexity of _LIBRARIES (which will eventually
 Simon> be a good thing in light of the _LTLIBRARIES merge),
 Simon> gives us an important feature (additional members in the
 Simon> jar) without being an evil hack and also gives us the
 Simon> archive feature (which isn't too important standalone).

Eiter ways, even both together, sound fine to me.  The former
seems a lot simpler to implement (*), but if you are
volunteering to implement the second...

(*) I'm assuming _LIBRARIES and _LTLIBRARIES have been merged
first.  This shouldn't be too hard to do, and actually I'd like
to do it, but it's unclear whether I'll have enought time to
commit to this before before mid-march.

[...]
-- 
Alexandre Duret-Lutz






Re: Archives and/or Java

2003-02-20 Thread Alexandre Duret-Lutz
>>> "Simon" == Simon Richter <[EMAIL PROTECTED]> writes:

[...]

 >> (*) I'm assuming _LIBRARIES and _LTLIBRARIES have been merged
 >> first.

 Simon> ... since jars would be an exception then, since they
 Simon> are not built with libtool as all other libraries are.

Sorry, the plan is *not* to always use Libtool!  There will
still be two kinds for libraries: `*.la' and `*.a'.  The former
should be built with libtool and the second without.  The sole
difference is that we decide what to do based on the suffix,
rather than the _PRIMARY.  This gives room for handling other
suffixes.

[...]

-- 
Alexandre Duret-Lutz






Re: AM_PATH_PYTHON and Python C interface headers

2003-02-20 Thread Alexandre Duret-Lutz
>>> "Raphaël" == Raphaël Poss <[EMAIL PROTECTED]> writes:

 Raphaël> I suffer with Autoconf/Automake when
 Raphaël> looking for the correct include path to find Python C
 Raphaël> interface headers. Could something be done about this
 Raphaël> ?

Hi Raph!

See the end of 
http://article.gmane.org/gmane.comp.sysutils.automake.bugs/594
-- 
Alexandre Duret-Lutz






Automake 1.7.3 released

2003-02-20 Thread Alexandre Duret-Lutz
We're pleased to announce the release of Automake 1.7.3
This is a bug fix release.  The list of bug fixes is appended.

You can find the new release here:

ftp://ftp.gnu.org/gnu/automake/automake-1.7.3.tar.bz2
ftp://ftp.gnu.org/gnu/automake/automake-1.7.3.tar.gz
ftp://sources.redhat.com/pub/automake/automake-1.7.3.tar.bz2
ftp://sources.redhat.com/pub/automake/automake-1.7.3.tar.gz

Soon it will also appear on the sources and GNU mirrors listed here:

http://www.gnu.org/order/ftp.html
http://sources.redhat.com/mirrors.html

Here are the MD5 checksums:

f088f86393ab21931513d91de95162a4  automake-1.7.3.tar.bz2
83145fcf00bb1105be1b0974e258b86c  automake-1.7.3.tar.gz

Please report bugs to <[EMAIL PROTECTED]>.

 - Akim, Alexandre, and Tom

Bugs fixed in 1.7.3:
* Fix stamp files numbering (when using multiple AC_CONFIG_HEADERS).
* Query distutils for `pythondir' and `pythonexecdir', instead of
  using an hardcoded path.  This should allow builds on 64-bit
  distributions that usually use lib64/ instead of lib/.
* AM_PATH_PYTHON will also search for python2.3.
* elisp files are now built all at once instead of one by one. Besides
  incurring a speed-up, this is required to support interdependent elisp files.
* Support for DJGPP:
  - `make distcheck' will now work in `_inst/' and `_build' instead
of `=inst/' and `=build/'
  - use `_dirstamp' when the file-system doesn't support `.dirstamp'
  - install/uninstall `*.i[0-9][0-9]'-style info files
  - more changes that affect only the Automake package (not its output)
* Fix some incompatibilities with upcoming perl-5.10.
* Properly quote AC_PACKAGE_TARNAME and AC_PACKAGE_VERSION when defining
  PACKAGE and VERSION.
* depcomp fixes:
  - dashmstdout and dashXmstdout modes: don't use `-o /dev/null', this
is troublesome with gcc and Solaris compilers. (PR/385)
  - makedepend mode: work with Libtool. (PR/385 too)
  - support for ICC.
* better support for unusual gettext setups, such as multiple po/ directories
  (PR/381):
  - Flag missing po/ and intl/ directories as warnings, not errors.
  - Disable these warnings if po/ does not exist.
* Noteworthy manual updates:
  - New FAQ chapter.
  - Document how AC_CONFIG_AUX_DIR interacts with missing files.
(Debian Bug #39542)
  - Document `AM_YFLAGS = -d'.  (PR/382)





Re: libtool integration question/issue

2003-02-25 Thread Alexandre Duret-Lutz
>>> "Pavel" == Pavel Hlavnicka <[EMAIL PROTECTED]> writes:

 Pavel> Hi all,
 Pavel> I have a small touble with libtool 1.4.2 and automake 1.6 on my RH 8.0
 Pavel> box. Everything I use is installed from vanilla packages.

 Pavel> I noticed a couple of people complaining about ltmain.sh is not added
 Pavel> to required files (a warning is issued). 

Libtool files can be installed with libtoolize.  Automake's
--add-missing option will only add files that are shipped with
Automake.

autoreconf (from recent Autoconf versions) can call all of these
tools for you.

[...]

 Pavel> a) is it a result of non-perfect installation, e.g. should be here
 Pavel> some links from automake libdir to liboolt libdir?

no, see above

 Pavel> b) what versions of config.guess and config.sub should be used?

any, or the more recent if you really care (check ./config.guess -t).
You can also fetch new versions from ftp://ftp.gnu.org/gnu/config/

 Pavel> (particulary, is there something libtool specific in files delivered
 Pavel> with libtool?)

no

 Pavel> c) shouldn't the handle_libtool procedure save the $libdir value and
 Pavel> store the libtool library path into it temporarily? 
 Pavel> (yes, but where this value should come from... ?)

nah, it's libtoolize's job
-- 
Alexandre Duret-Lutz





Re: Newbie help regarding .so modules

2003-02-25 Thread Alexandre Duret-Lutz
Hi Michael,

>>> "Michael" == Michael Reynolds <[EMAIL PROTECTED]> writes:

 Michael> I have 2 modules, each with their own _init and _fini functions.  My
 Michael> Makefile.am file is as follows:

[...]

 Michael> /services/services/src/modules/dns.c:40: multiple definition of `_init'
 Michael> /usr/lib/crti.o(.init+0x0): first defined here
 Michael> dns.lo: In function `_fini':
 Michael> /services/services/src/modules/dns.c(.text+0x88): multiple definition
 Michael> of `_fini'
 Michael> /usr/lib/crti.o(.fini+0x0): first defined here
 Michael> *** Error code 1
 Michael> ** END **

 Michael> What I need help with is compiling the so modules.  

This looks like a libtool question to me, so I just Googled for 
"libtool _init" and got this as the first answer:
http://mail.gnu.org/archive/html/libtool/2001-02/msg00020.html

Does it answer your question?  Otherwise, I suggest you write to 
[EMAIL PROTECTED]
-- 
Alexandre Duret-Lutz





Re: Corba IDL and automake

2003-02-25 Thread Alexandre Duret-Lutz
>>> "Thomas" == Thomas Richter <[EMAIL PROTECTED]> writes:

[...]

 Thomas> 1) If I run "automake --foreign", I get the following warnings:

 Thomas> idl/Makefile.am:21: invalid variable `noinst_libidl_a_HEADERS'
 Thomas> idl/Makefile.am:8: invalid unused variable name: `IDL_SOURCES'

 Thomas> Why is "noinst_libidl_a_HEADERS" invalid? These are header files for
 Thomas> the idl static library that are not to be included in the distribution.
Because foo_HEADERS means "please install these header in the
$(foodir) directory during `make install'", and you haven't
defined $(noinst_libidl_adir).

These headers should be listed in libidl_a_SOURCES or
nodist_libidla_a_SOURCES (whether you want to distribute them or
not).

 Thomas> Why is IDL_SOURCES unused? It is very well used in all
 Thomas> the lines below.

It's not used by Automake.  Automake reserves *_SOURCES
variables.  IDL_SOURCES would be the sources for an undeclared
IDL program, so Automake presumes you made a typo.

 Thomas> 2) I need to specify an explicit make rule how to form
 Thomas> an object from a .cpp file. If I don't, then the
 Thomas> automake generated makefile does not include any such
 Thomas> rule, and it won't compile any object code and would
 Thomas> rather fail to build the final library. Why is this so,

Automake doesn't understand what you do because you are using
many "GNUmakisms" such as "$(forall...)" or %-rules.  By doing
so you hide data, so Automake cannot help.

 Thomas> and what would be a more apropriate solution instead of
 Thomas> giving the rule manually (which is, as far as I
 Thomas> understand it, against the automake paradigm).

I suggest you install Automake 1.7.3 (any version >= 1.7 will
do), and run it with the -Wall option.  This will flag various
unportable constructs in your Makefile.

If you fixes these (using `.idl.cpp:' instead of `%.cpp: %.idl',
using `$(idlsources:.idl=.cpp)' instead of `$(forall...)'), then
Automake should work better.  At least it will see your sources,
so it can output rules to build them.
-- 
Alexandre Duret-Lutz





  1   2   3   4   5   6   7   8   9   10   >