On Mon, Dec 26, 2005 at 12:25:54PM -0600, Steve Peters wrote:
From my quick and dirty test, it appears that the cd's in a GNU make are in
effect for the current command, but you are implicitly returned to your
start directory after the completed command. BSD doesn't return you back to
your starting directory. Looking at the OpenBSD make(1) manpage, I got a
hint to the fix.
-j max_jobs
Specify the maximum number of jobs that make may have running at
any one time. Turns compatibility mode off, unless the -B flag
is also specified.
So, after running make -j2 -B disttest everything compiled just fine. Check
the FreeBSD make manpage to see if there is a similar -B flag. That
might be the fix you're looking for.
There is a -B flag.
However, I found that the following change stops the nested make thinking
that it should be running with -j, and everything passes:
Change 26499 by [EMAIL PROTECTED] on 2005/12/27 00:29:33
Removing MAKE_JOBS_FIFO from %ENV causes FreeBSD make to forget about
any -j flags. (And their implied disabling of backwards compatibility,
which is the real cause of the make disttest failure).
Affected files ...
... //depot/perl/lib/ExtUtils/t/basic.t#20 edit
Differences ...
//depot/perl/lib/ExtUtils/t/basic.t#20 (text)
@@ -25,7 +25,7 @@
# 'make disttest' sets a bunch of environment variables which interfere
# with our testing.
-delete @ENV{qw(PREFIX LIB MAKEFLAGS)};
+delete @ENV{qw(PREFIX LIB MAKEFLAGS MAKE_JOBS_FIFO)};
my $perl = which_perl();
my $Is_VMS = $^O eq 'VMS';
I hope that this also helps other *BSD makes.
Nicholas Clark