bug-make
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[bug #25190] define expansion seems to lose the final newline


From: Norman Abramovitz
Subject: [bug #25190] define expansion seems to lose the final newline
Date: Sun, 28 Dec 2008 05:49:40 +0000
User-agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727; .NET CLR 3.0.04506.30; .NET CLR 3.0.04506.648)

URL:
  <http://savannah.gnu.org/bugs/?25190>

                 Summary: define expansion seems to lose the final newline
                 Project: make
            Submitted by: nabramovitz
            Submitted on: Sun 28 Dec 2008 05:49:38 AM GMT
                Severity: 3 - Normal
              Item Group: Bug
                  Status: None
                 Privacy: Public
             Assigned to: None
             Open/Closed: Open
         Discussion Lock: Any
       Component Version: 3.81
        Operating System: Any
           Fixed Release: None

    _______________________________________________________

Details:

Environment

Red Hat Enterprise Linux Server release 5.2 (Tikanga)This program built for
i686-redhat-linux-gnu

If I do not have the empty line at the end of the pkgify_rule, the next
generated program target assignment (yyy) gets combined with the previous
generated chmod line (xxx).  The blank line should not be required.

Execution results with the blank line.

$ gmake -f x -n all
echo xxx comes from xxx.sh
chmod +x xxx
echo yyy comes from yyy.sh
chmod 644 yyy
echo all done

Execution results without the blank line.

$ gmake -f x -n all
echo xxx comes from xxx.sh
chmod +x xxx   yyy: PKGIFY_MODE?=+x
echo yyy comes from yyy.sh
chmod 644 yyy
echo all done

It is not a printing error since if I run without the -n flag I get the
following errors.  Since I made my sources phoney objects to simplify the test
case, I expect two error messages from chmod not three.

$ gmake -f x all
echo xxx comes from xxx.sh
xxx comes from xxx.sh
chmod: cannot access `xxx': No such file or directory
chmod: cannot access `yyy:': No such file or directory
chmod: cannot access `PKGIFY_MODE?=+x': No such file or directory
gmake: *** [xxx] Error 1

The test script follows.

SH_PROGRAM=xxx yyy
SHSRC=xxx.sh yyy.sh
.PHONY: xxx.sh yyy.sh

yyy: PKGIFY_MODE=644

PKGIFY=echo $@ comes from $<

all: ${SH_PROGRAM}
        echo all done

indices=$(shell (( i= 0 )); while (( i < $(words ${${1}}) )); do (( i += 1
)); l="$${l} $$i"; done; echo  $${l})

define pkgify_rule
$(1): PKGIFY_MODE?=+x
${1}: ${2}
        $${PKGIFY}
        @chmod $${PKGIFY_MODE} $$@

endef
# if the blank line above the endef is removed the next target assignment
becomes
# part of the previous chmod line

define pkgify_template
$(foreach idx,$(call indices,${1}), $(call pkgify_rule,$(word
${idx},${$(1)}),$(word ${idx},${${2}})))
endef

# this ifdef works 3.81 but not in 3.80. if function works 3.80 and 3.81
ifdef SH_PROGRAM
$(eval $(call pkgify_template,SH_PROGRAM,SHSRC))
endif

xyz: xyz.sh
        echo xyz





    _______________________________________________________

Reply to this item at:

  <http://savannah.gnu.org/bugs/?25190>

_______________________________________________
  Message sent via/by Savannah
  http://savannah.gnu.org/





reply via email to

[Prev in Thread] Current Thread [Next in Thread]