[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Nmh-workers] nmh-1.3-RC1: restoring build functionality lost since
Re: [Nmh-workers] nmh-1.3-RC1: restoring build functionality lost since nmh-1.0.4
Fri, 09 May 2008 16:10:12 +0100
Oliver Kiddle wrote:
>On 4 May, Russell Ruby wrote:
>> That one restores the ability to build outside the
>> "top src" directory, along with restoring the automatic substitutions
>> for missing library functions.
>This has broken building of nmh with a non-GNU make! You can only rely
>on $< in pattern/inference rules.
Rats. Looking at the CVS history I see
date: 2005-12-24 17:53:26 +0000; author: pm215; state: Exp; lines: +4 -4;
Avoid non-portable use of $< outside an inference rule.
showing that we've been round this loop before. (Should have done that
Unfortunately I don't have any systems which don't use the usual GNU
tools, so I can't test for this kind of thing.
>I've never built outside the top src directory. What does that involve
>and how do you go about doing it and what is the point?
tar xvzf nmh-1.3RC2.tar.gz
ie you just run configure from whatever directory you want to build in.
It means that for example you can configure and build nmh in various
different ways without the generated object files conflicting with
each other. It's also nice if you're working with a CVS tree because
it means you're not creating lots of .o files in your CVS tree.
>Is there an alternative fix.
I suppose we could put in some pattern rules for the handful
of cases where we want to use $<.
>The -o option to lex is also not portable: not everyone uses recent flex
>though this appears to be an older problem.
As you say, that's been like that for a while now. POSIX says that lex
should support -t to write to standard output, so we could use
$(LEX) -n -t $< > $@
assuming that most lexes support that too. (We switched away from
"$(LEX) -nt" back in 2005 because flex didn't like it, but I think
that's just because it wants the two switches separately.)