[bug #17521] target-specific variables inluding semicolon
Update of bug #17521 (project make): Status:None = Fixed Assigned to:None = psmith Open/Closed:Open = Closed Operating System: MS Windows = Any Fixed Release:None = CVS ___ Follow-up Comment #4: Fixed. Thanks. ___ Reply to this item at: http://savannah.gnu.org/bugs/?17521 ___ 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
[bug #17521] target-specific variables inluding semicolon
URL: http://savannah.gnu.org/bugs/?17521 Summary: target-specific variables inluding semicolon Project: make Submitted by: None Submitted on: 金曜日 2006年08月25日 at 08:43 UTC Severity: 3 - Normal Item Group: Bug Status: None Privacy: Public Assigned to: None Open/Closed: Open Component Version: 3.81 Operating System: MS Windows Fixed Release: None ___ Details: $ make --version 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-cygwin $ $ cat Makefile test: HELLO = 'hello \ world' test2: HELLO2 = 'hello; \ world' test : @echo $(HELLO) test2 : @echo $(HELLO2) $ make test hello world $ make test2 hello; \ world I expect 'hello; world'. Regards. ___ Reply to this item at: http://savannah.gnu.org/bugs/?17521 ___ 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
[bug #17521] target-specific variables inluding semicolon
Follow-up Comment #1, bug #17521 (project make): This is not a bug, but a documented change in behavior, intended to bring GNU Make in line with Posix specification for Make. From the NEWS file: * WARNING: Backward-incompatibility! In order to comply with POSIX, the way in which GNU make processes backslash-newline sequences in command strings has changed. If your makefiles use backslash-newline sequences inside of single-quoted strings in command scripts you will be impacted by this change. See the GNU make manual subsection Splitting Command Lines (node Splitting Lines), in section Command Syntax, chapter Writing the Commands in Rules, for details. In other words, your Makefile violates Posix rules for Make; in order to fix your Makefile, either use double quotes instead of single quotes, or put the single-quoted string into a Make variable and use that variable in rule's commands. ___ Reply to this item at: http://savannah.gnu.org/bugs/?17521 ___ 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
[bug #17521] target-specific variables inluding semicolon
Follow-up Comment #2, bug #17521 (project make): Actually, Eli, if the example shown is accurate (I haven't tried it) then this seems to be a bug. First note that the two cases behave differently: the one without the semicolon strips the backslash and the one with it does not. That can't be right. Second, the text you're quoting applies to backslashes inside the command script: these backslashes are in variable values (even though they're target-specific variables they still follow the rules for setting variables) and the behavior of backslashes in variable values didn't change. Again, I haven't looked at this at all but offhand I'd say there's some issue with the parser finding semicolons in target-specific variables: remember make needs to handle semicolons in a normal target definition such as all: ; @echo all specially. ___ Reply to this item at: http://savannah.gnu.org/bugs/?17521 ___ 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