Yahoo Groups archive

Milter-greylist

Index last updated: 2026-04-28 23:32 UTC

Thread

RE: [milter-greylist] milter-greylist 4.5.5 is available - parallel make PATCH3

RE: [milter-greylist] milter-greylist 4.5.5 is available - parallel make PATCH3

2013-09-05 by Bruncsak, Attila

> On 2013-09-05 01:55, Jim Klimov wrote:
> > On 2013-09-02 09:53, Bruncsak, Attila wrote:
> >> The configure script you provided without extra flags produced the
> >> following messages:
> >>
> >> checking for gmake... no
> >> checking for make... make
> >> MAKE will be: make
> >> checking for make... (cached) make
> >> checking if make accepts -j... ./configure[4143]: : cannot execute
> >> ./configure[4143]: syntax error at line 4143 : `(' unmatched
> >> no
> >> MAKESEQ will be: make
> >> MAKEPAR will be: make
> >> Default MAKE target will be: all
> >>
> >> Otherwise the generated make file seems to be OK compilation started
> >> as expected.
> >
> >
> > I believe the "unmatched" problem above refers to this (at line 4143):
> >
> >          _OUT="`( echo "all: a b"; echo ""; \
> >              echo "a:"; echo '   @sleep 3; date'; echo ""; \
> >              echo "b:"; echo '   @sleep 3; date' ) | $MAKE -f - -j 2`"
> >
> > Can you test if "configure" runs cleanly with your shell, if you combine
> > this into a single line:
> >
> >          _OUT="`( echo "all: a b"; echo ""; echo "a:"; echo '   @sleep
> > 3; date'; echo ""; echo "b:"; echo '   @sleep 3; date' ) | $MAKE -f - -j
> > 2`"
> >
> > I guess we can sacrifice 80-columnness in favor of portability ;)
> 
> Oh, and if you copy-paste from the email, note that the first character
> in the echoed string is a TAB, not several SPACE's, in these blocks:
>    echo '   @sleep 3; date'
> 
> 
> //Jim

The problem is not there see the following example:

$ A="`echo "a  b"`"
: cannot execute
b: not found
$ A="`echo 'a  b'`"
$ echo "$A"
a  b

The shell is improperly handling nested double quotes, even if it should recognize the nesting.
The second double quote is not a closing one but a second opening due to the reverse quote before.

With the following code (replacing the double quotes with single ones):

	_OUT="`( echo 'all: a b'; echo ''; \
            echo 'a:'; echo '   @sleep 3; date'; echo ''; \
            echo 'b:'; echo '   @sleep 3; date' ) | $MAKE -f - -j 2`"

I got the following output of the configure script:

checking for gmake... no
checking for make... make
MAKE will be: make
checking for make... (cached) make
checking if make accepts -j... Make: Unknown flag argument j.  Stop.
no
MAKESEQ will be: make
MAKEPAR will be: make
Default MAKE target will be: all

The 80 columns of formatting is already broken (197 chars in one line)
 here is the output of the linestat command
on the configure script having your patch in it:

The number of lines: 9952
The longest line is: 5527
The length of the longest line is: 197
The first shortest line is: 17
The last shortest line is: 9951
The length of the shortest line is: 0

Best,
Attila

Re: [milter-greylist] milter-greylist 4.5.5 is available - parallel make PATCH3

2013-09-05 by Jim Klimov

On 2013-09-05 10:20, Bruncsak, Attila wrote:
> The shell is improperly handling nested double quotes, even if it should
> recognize the nesting.
> The second double quote is not a closing one but a second opening due to
> the reverse quote before.

Interesting shell you've got there; still, good catch ;)
The ones default on Solaris (Bourne shell on legacy systems or bash on
newer ones) as well as Linux (bash) interpreted this OK.

I attach the configure.ac/Makefile.in patch with my parallelized make
code, applied and updated against the current CVS version (checked out
an hour ago) and with the fix for single-quotes; builds okay for me
over NFS.

I hope Attila can verify that this also works for his setup, and we can
soon integrate this update into CVS :)

Thanks,
//Jim Klimov

Move to quarantaine

This moves the raw source file on disk only. The archive index is not changed automatically, so you still need to run a manual refresh afterward.