URL: <http://savannah.gnu.org/bugs/?func=detailitem&item_id=16562>
Summary: Backslashes copied from Makefile to Shell (3.80 behaved differently) Project: make Submitted by: None Submitted on: Thursday 05/11/06 at 14:57 UTC Severity: 3 - Normal Item Group: Bug Status: None Privacy: Public Assigned to: None Open/Closed: Open Component Version: 3.81 Operating System: POSIX-Based Fixed Release: None _______________________________________________________ Details: The following Makefile works with 3.80 but fails with 3.81: all: perl -e 'BEGIN { print 5; } \ END { print 6; }' This is because 3.80 removed the continuation backslashes before passing the command to the shell, while 3.81 keeps them. Thus Perl finds a backslash where it does not expect it in 3.81. Perl then complains: > Can't call method "END" without a package or object reference at -e line 2. Replace 'perl -e' with 'echo' to see the pure effect of this difference. I think this is bad: a) because it's different than before, b) because it is currently not possible to pass multiline arguments to the shell without backslashes, since the backslash is the only way to continue a line in the Makefile. _______________________________________________________ File Attachments: ------------------------------------------------------- Date: Thursday 05/11/06 at 14:57 UTC Name: Makefile.test Size: 74B By: None Makefile that triggers the problem <http://savannah.gnu.org/bugs/download.php?file_id=9944> _______________________________________________________ Reply to this item at: <http://savannah.gnu.org/bugs/?func=detailitem&item_id=16562> _______________________________________________ Message sent via/by Savannah http://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org http://lists.gnu.org/mailman/listinfo/bug-make