From owner-freebsd-bugs@freebsd.org Fri Mar 10 06:46:59 2017 Return-Path: Delivered-To: freebsd-bugs@mailman.ysv.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by mailman.ysv.freebsd.org (Postfix) with ESMTP id 83503D0593C for ; Fri, 10 Mar 2017 06:46:59 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from kenobi.freebsd.org (kenobi.freebsd.org [IPv6:2001:1900:2254:206a::16:76]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 72EAE1C44 for ; Fri, 10 Mar 2017 06:46:59 +0000 (UTC) (envelope-from bugzilla-noreply@freebsd.org) Received: from bugs.freebsd.org ([127.0.1.118]) by kenobi.freebsd.org (8.15.2/8.15.2) with ESMTP id v2A6kxdq095393 for ; Fri, 10 Mar 2017 06:46:59 GMT (envelope-from bugzilla-noreply@freebsd.org) From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 217613] FreeBSD make -- local variable $(.PREFIX) does not strip preceding directory components Date: Fri, 10 Mar 2017 06:46:59 +0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: Base System X-Bugzilla-Component: bin X-Bugzilla-Version: 11.0-RELEASE X-Bugzilla-Keywords: X-Bugzilla-Severity: Affects Only Me X-Bugzilla-Who: sjg@FreeBSD.org X-Bugzilla-Status: New X-Bugzilla-Resolution: X-Bugzilla-Priority: --- X-Bugzilla-Assigned-To: freebsd-bugs@FreeBSD.org X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: https://bugs.freebsd.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-BeenThere: freebsd-bugs@freebsd.org X-Mailman-Version: 2.1.23 Precedence: list List-Id: Bug reports List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 10 Mar 2017 06:46:59 -0000 https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=3D217613 --- Comment #7 from Simon J. Gerraty --- Sorry I should have been more explicit, I was refering to the dependency. If we tweak that makefile so it is consumable by both bmake and gmake % cat tmf .SUFFIXES: .ext .c VPATH =3D /tmp /tmp/target.ext: target.c @echo '@=3D$@ *=3D$* >=3D$> ^=3D$^' all: target.ext % we cannot have $*.c as source - gmake doesn't like it, bmake behaves as documented: % bmake -r -f tmf @=3D/tmp/target.ext *=3Dtarget >=3D/tmp/target.c ^=3D gmake just trims suffix: % make -r -f tmf=20 @=3D/tmp/target.ext *=3D/tmp/target >=3D ^=3Dtarget.c which I think is expected, we can better see what bmake is doing if we put = the $*.c back as a dependency, but qualify it. eg. cat tmf .SUFFIXES: .ext .c VPATH =3D /tmp /tmp/target.ext: ${.CURDIR}/$*.c @echo '@=3D$@ *=3D$* >=3D$> ^=3D$^' all: target.ext % % bmake -r -f tmf=20 bmake: don't know how to make /tmp//tmp/target.c. Stop but if we lose the ${.CURDIR}/ qualification it works: % bmake -r -f tmf=20 @=3D/tmp/target.ext *=3Dtarget >=3D/tmp/target.c ^=3D % on the rhs of the dependency only the suffix is trimed, once we are into the target context the directory is also. Bug? hard to say, it has behaved this way for 20+ years --=20 You are receiving this mail because: You are the assignee for the bug.=