executing perl problem with make 3.81 versus 3.80

2009-09-03 Thread Warren Dodge


I have this Makefile.bug and an empty file yyy which makes no logical sense 
as I stripped my
original problem down to this.

-
touch yyy
-
Makefile.bug
-

.PHONY: ggg
ggg:
perl -ne '$$top = x.p.x1.x1; if( $$verilog =~ /^$$/ ) { $$x=1}' yyy

.PHONY: xxx
xxx:
perl -ne '$$top = x.p.x1.x1; \
 if( $$verilog =~ /^$$/ ) { $$x=1}'  \
 yyy

-

If I use make 3.80 I can make both targets

/tools/gmake3.80/bin/make -f Makefile.bug ggg xxx
perl -ne '$top = x.p.x1.x1; if( $verilog =~ /^$/ ) { $x=1}' yyy
perl -ne '$top = x.p.x1.x1; \
 if( $verilog =~ /^$/ ) { $x=1}'  \
 yyy


If I use make 3.81 I get an error from perl on the xxx target


/tools/wdtgnu/make-3.81/bin/make -f Makefile.bug ggg xxx
perl -ne '$top = x.p.x1.x1; if( $verilog =~ /^$/ ) { $x=1}' yyy
perl -ne '$top = x.p.x1.x1; \
 if( $verilog =~ /^$/ ) { $x=1}'  \
 yyy
syntax error at -e line 2, near if
syntax error at -e line 2, near ;}
Execution of -e aborted due to compilation errors.
make: *** [xxx] Error 255


It appears that something is going wrong on the interfacing of the perl
command into the bash shell which executes the perl.

Here is some information about the 3.81 make.

/tools/wdtgnu/make-3.81/bin/make --debug=j  -f Makefile.bug ggg xxx
GNU Make 3.81
Copyright (C) 2006  Free Software Foundation, Inc.
This is free software; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.

This program built for i686-pc-linux-gnu
perl -ne '$top = x.p.x1.x1; if( $verilog =~ /^$/ ) { $x=1}' yyy
Putting child 0x099e70a0 (ggg) PID 1624 on the chain.
Live child 0x099e70a0 (ggg) PID 1624 
Reaping winning child 0x099e70a0 PID 1624 
Removing child 0x099e70a0 PID 1624 from chain.
perl -ne '$top = x.p.x1.x1; \
 if( $verilog =~ /^$/ ) { $x=1}'  \
 yyy
Putting child 0x099e73d0 (xxx) PID 1625 on the chain.
Live child 0x099e73d0 (xxx) PID 1625 
syntax error at -e line 2, near if
syntax error at -e line 2, near ;}
Execution of -e aborted due to compilation errors.
Reaping losing child 0x099e73d0 PID 1625 
make: *** [xxx] Error 255
Removing child 0x099e73d0 PID 1625 from chain.
 







___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


RE: executing perl problem with make 3.81 versus 3.80

2009-09-03 Thread Martin Dorey
From make's NEWS file for the 3.81 release:

 

* WARNING: Backward-incompatibility!

 

  In order to comply with POSIX, the way in which GNU make processes

  backslash-newline sequences in recipes has changed.  If your makefiles

  use backslash-newline sequences inside of single-quoted strings in

  recipes you will be impacted by this change.  See the GNU make manual

  subsection Splitting Recipe Lines (node Splitting Lines), in

  section Recipe Syntax, chapter Writing Recipe in Rules, for

  details.

 

-Original Message-
From: bug-make-bounces+mdorey=bluearc@gnu.org
[mailto:bug-make-bounces+mdorey=bluearc@gnu.org] On Behalf Of Warren
Dodge
Sent: Thursday, September 03, 2009 17:15
To: bug-make@gnu.org
Cc: warr...@tektronix.com
Subject: executing perl problem with make 3.81 versus 3.80

 

 

 

I have this Makefile.bug and an empty file yyy which makes no
logical sense as I stripped my

original problem down to this.

 


-

touch yyy


-

Makefile.bug


-

 

.PHONY: ggg

ggg:

  perl -ne '$$top = x.p.x1.x1; if( $$verilog =~ /^$$/ ) { $$x=1}'
yyy

 

.PHONY: xxx

xxx:

  perl -ne '$$top = x.p.x1.x1; \

 if( $$verilog =~ /^$$/ ) { $$x=1}'  \

 yyy

 


-

 

If I use make 3.80 I can make both targets

 

/tools/gmake3.80/bin/make -f Makefile.bug ggg xxx

perl -ne '$top = x.p.x1.x1; if( $verilog =~ /^$/ ) { $x=1}' yyy

perl -ne '$top = x.p.x1.x1; \

 if( $verilog =~ /^$/ ) { $x=1}'  \

 yyy

 

 

If I use make 3.81 I get an error from perl on the xxx target

 

 

/tools/wdtgnu/make-3.81/bin/make -f Makefile.bug ggg xxx

perl -ne '$top = x.p.x1.x1; if( $verilog =~ /^$/ ) { $x=1}' yyy

perl -ne '$top = x.p.x1.x1; \

 if( $verilog =~ /^$/ ) { $x=1}'  \

 yyy

syntax error at -e line 2, near if

syntax error at -e line 2, near ;}

Execution of -e aborted due to compilation errors.

make: *** [xxx] Error 255

 

 

It appears that something is going wrong on the interfacing of the perl

command into the bash shell which executes the perl.

 

Here is some information about the 3.81 make.

 

/tools/wdtgnu/make-3.81/bin/make --debug=j  -f Makefile.bug ggg xxx

GNU Make 3.81

Copyright (C) 2006  Free Software Foundation, Inc.

This is free software; see the source for copying conditions.

There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A

PARTICULAR PURPOSE.

 

This program built for i686-pc-linux-gnu

perl -ne '$top = x.p.x1.x1; if( $verilog =~ /^$/ ) { $x=1}' yyy

Putting child 0x099e70a0 (ggg) PID 1624 on the chain.

Live child 0x099e70a0 (ggg) PID 1624 

Reaping winning child 0x099e70a0 PID 1624 

Removing child 0x099e70a0 PID 1624 from chain.

perl -ne '$top = x.p.x1.x1; \

 if( $verilog =~ /^$/ ) { $x=1}'  \

 yyy

Putting child 0x099e73d0 (xxx) PID 1625 on the chain.

Live child 0x099e73d0 (xxx) PID 1625 

syntax error at -e line 2, near if

syntax error at -e line 2, near ;}

Execution of -e aborted due to compilation errors.

Reaping losing child 0x099e73d0 PID 1625 

make: *** [xxx] Error 255

Removing child 0x099e73d0 PID 1625 from chain.

 

 

 

 

 

 

 

 

___

Bug-make mailing list

Bug-make@gnu.org

http://lists.gnu.org/mailman/listinfo/bug-make

___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make


Re: executing perl problem with make 3.81 versus 3.80

2009-09-03 Thread Warren Dodge

I'll check it out. Thanks




___
Bug-make mailing list
Bug-make@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-make