Incorrect per-target ?= variable affectations

Bug #483086 reported by David Decotigny
10
This bug affects 2 people
Affects Status Importance Assigned to Milestone
make-dfsg (Ubuntu)
Confirmed
Undecided
Unassigned

Bug Description

Binary package hint: make

I am running 9.10 on x86_64 (updated yesterday), make 3.81-6.

The following Makefile:
-------------------------------------------------
target1: OPTVAR?=/usr/local
target1:
 echo "Value for $@ '$(OPTVAR)'."

target2:
 echo "Value for $@ is '$(OPTVAR)'."
-------------------------------------------------

Make seems to behave badly with such a Makefile:

shell> make OPTVAR=x target1 target2
echo "Value for target1 '�!M'."
Value for target1 '�!M'.
echo "Value for target2 is '�!M'."
Value for target2 is '�!M'.

Whereas it has the expected behavior when passing OPTVAR through the environment:

shell> env OPTVAR=x make target1 target2
echo "Value for target1 'x'."
Value for target1 'x'.
echo "Value for target2 is 'x'."
Value for target2 is 'x'.

It also behaves as expected when OPTVAR is left undefined:

shell> make target1 target2
echo "Value for target1 '/usr/local'."
Value for target1 '/usr/local'.
echo "Value for target2 is ''."
Value for target2 is ''.

I believe this is a regression from jaunty.

ProblemType: Bug
Architecture: amd64
Date: Sun Nov 15 14:57:25 2009
DistroRelease: Ubuntu 9.10
NonfreeKernelModules: nvidia
Package: make 3.81-6
ProcEnviron:
 SHELL=/bin/zsh
 PATH=(custom, user)
 LANG=en_US.UTF-8
ProcVersionSignature: Ubuntu 2.6.31-14.48-generic
SourcePackage: make-dfsg
Uname: Linux 2.6.31-14-generic x86_64

Revision history for this message
David Decotigny (daviddecotigny) wrote :
affects: make (Ubuntu) → make-dfsg (Ubuntu)
Revision history for this message
Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in make-dfsg (Ubuntu):
status: New → Confirmed
Revision history for this message
Gary Bishop (gb-cs) wrote :

We just spent an hour tracking down a problem only to find the bug has been around since 2009.

Revision history for this message
Gary Bishop (gb-cs) wrote :

I should have added that I'm on 14.04 LTS and the make version is 3.81.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.