From nobody@FreeBSD.org  Tue Jan 13 10:31:31 2004
Return-Path: <nobody@FreeBSD.org>
Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125])
	by hub.freebsd.org (Postfix) with ESMTP id 5E5AB16A4CE
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 13 Jan 2004 10:31:31 -0800 (PST)
Received: from www.freebsd.org (www.freebsd.org [216.136.204.117])
	by mx1.FreeBSD.org (Postfix) with ESMTP id D32B143D55
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 13 Jan 2004 10:31:29 -0800 (PST)
	(envelope-from nobody@FreeBSD.org)
Received: from www.freebsd.org (localhost [127.0.0.1])
	by www.freebsd.org (8.12.10/8.12.10) with ESMTP id i0DIVTdL056757
	for <freebsd-gnats-submit@FreeBSD.org>; Tue, 13 Jan 2004 10:31:29 -0800 (PST)
	(envelope-from nobody@www.freebsd.org)
Received: (from nobody@localhost)
	by www.freebsd.org (8.12.10/8.12.10/Submit) id i0DIVTKI056756;
	Tue, 13 Jan 2004 10:31:29 -0800 (PST)
	(envelope-from nobody)
Message-Id: <200401131831.i0DIVTKI056756@www.freebsd.org>
Date: Tue, 13 Jan 2004 10:31:29 -0800 (PST)
From: "Valentin A. Alekseev" <valeks@novel-il.ru>
To: freebsd-gnats-submit@FreeBSD.org
Subject: bsd.dep.mk disallows shell generated flags in CFLAGS
X-Send-Pr-Version: www-2.0

>Number:         61322
>Category:       misc
>Synopsis:       [build] [patch] bsd.dep.mk disallows shell generated flags in CFLAGS
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-bugs
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Tue Jan 13 10:40:12 PST 2004
>Closed-Date:    Mon Jan 18 15:49:43 UTC 2010
>Last-Modified:  Mon Jan 18 15:49:43 UTC 2010
>Originator:     Valentin A. Alekseev
>Release:        FreeBSD 5.2-CURRENT
>Organization:
n/a
>Environment:
FreeBSD alpha.valabs.spb.ru 5.2-CURRENT FreeBSD 5.2-CURRENT #16: Mon Jan 12 00:44:36 MSK 2004     valeks@alpha.valabs.spb.ru:/usr/obj/usr/src-5-CURRENT/sys/ALPHA  i386

>Description:
bsd.dep.mk disallows usage of shell generated CFLAGS while calling to
mkdep. So there is no portable way to, for e.g., specify place of
libxml2 includes (xml2-config --cflags).
>How-To-Repeat:
Makefile:
..
PROG= xgrep
CFLAGS+= `xml2-config --cflags`
..
Output of make depend:
$ make depend
rm -f .depend
mkdep -f .depend -a       xgrep.c
xgrep.c:6:27: libxml/parser.h: No such file or directory
xgrep.c:7:26: libxml/xpath.h: No such file or directory
mkdep: compile failed

>Fix:
Here is a patch that blindly allows ones to use any shell generated
vars in CFLAGS. Maybe it would be better to replace M`* with M`*-config and M*` with M--cflags`.

--- src/share/mk/bsd.dep.mk.orig        Tue Jan 13 20:34:30 2004         
+++ src/share/mk/bsd.dep.mk     Tue Jan 13 20:58:57 2004                                                                         
@@ -116,18 +116,18 @@                                                            rm -f ${DEPENDFILE}                                              
 .if ${SRCS:M*.[cS]} != ""                                                       ${MKDEPCMD} -f ${DEPENDFILE} -a ${MKDEP} \                       -           ${CFLAGS:M-nostdinc*} ${CFLAGS:M-[BID]*} \                   +           ${CFLAGS:M-nostdinc*} ${CFLAGS:M-[BID]*} ${CFLAGS:M`*} ${CFLAGS:M*`}\                                                
            ${.ALLSRC:M*.[cS]}                                            .endif                                                                   .if ${SRCS:M*.cc} != "" || ${SRCS:M*.C} != "" || ${SRCS:M*.cpp} != "" || \                                                      
     ${SRCS:M*.cxx} != ""                                                        ${MKDEPCMD} -f ${DEPENDFILE} -a ${MKDEP} \                       -           ${CXXFLAGS:M-nostdinc*} ${CXXFLAGS:M-[BID]*} \               +           ${CXXFLAGS:M-nostdinc*} ${CXXFLAGS:M-[BID]*} ${CFLAGS:M`*} ${CFLAGS:M*`} \                                           
            ${.ALLSRC:M*.cc} ${.ALLSRC:M*.C} ${.ALLSRC:M*.cpp} ${.ALLSRC:M*.cxx}                                                 
 .endif                                                                   .if ${SRCS:M*.m} != ""                                                          ${MKDEPCMD} -f ${DEPENDFILE} -a ${MKDEP} \                       -           ${OBJCFLAGS:M-nostdinc*} ${OBJCFLAGS:M-[BID]*} \             +           ${OBJCFLAGS:M-nostdinc*} ${OBJCFLAGS:M-[BID]*} ${CFLAGS:M`*} ${CFLAGS:M*`} \                                         
            ${OBJCFLAGS:M-Wno-import*} \                                             ${.ALLSRC:M*.m}                                               .endif
>Release-Note:
>Audit-Trail:

From: Ruslan Ermilov <ru@FreeBSD.org>
To: "Valentin A. Alekseev" <valeks@novel-il.ru>
Cc: bug-followup@FreeBSD.org
Subject: Re: misc/61322: bsd.dep.mk disallows shell generated flags in CFLAGS
Date: Sat, 17 Jan 2004 20:42:07 +0200

 --Oiv9uiLrevHtW1RS
 Content-Type: text/plain; charset=us-ascii
 Content-Disposition: inline
 Content-Transfer-Encoding: quoted-printable
 
 On Tue, Jan 13, 2004 at 10:31:29AM -0800, Valentin A. Alekseev wrote:
 >=20
 > >How-To-Repeat:
 > Makefile:
 > ..
 > PROG=3D xgrep
 > CFLAGS+=3D `xml2-config --cflags`
 > ..
 > Output of make depend:
 > $ make depend
 > rm -f .depend
 > mkdep -f .depend -a       xgrep.c
 > xgrep.c:6:27: libxml/parser.h: No such file or directory
 > xgrep.c:7:26: libxml/xpath.h: No such file or directory
 > mkdep: compile failed
 >=20
 XML2_CFLAGS!=3D	xml2-config --cflags
 CFLAGS+=3D	${XML2_CFLAGS}
 
 > >Fix:
 > Here is a patch that blindly allows ones to use any shell generated
 > vars in CFLAGS. Maybe it would be better to replace M`* with M`*-config a=
 nd M*` with M--cflags`.
 >=20
 The patch you've sent is severely damaged.
 
 
 Cheers,
 --=20
 Ruslan Ermilov
 FreeBSD committer
 ru@FreeBSD.org
 
 --Oiv9uiLrevHtW1RS
 Content-Type: application/pgp-signature
 Content-Disposition: inline
 
 -----BEGIN PGP SIGNATURE-----
 Version: GnuPG v1.2.4 (FreeBSD)
 
 iD8DBQFACYH/Ukv4P6juNwoRAqSrAJ9OdZQMXmlhbuJrFVToCa+YRdJomwCfYYWz
 H5YusPv3iJwiRLnPmvqhkxY=
 =61P0
 -----END PGP SIGNATURE-----
 
 --Oiv9uiLrevHtW1RS--
State-Changed-From-To: open->feedback 
State-Changed-By: linimon 
State-Changed-When: Thu Oct 27 21:56:48 GMT 2005 
State-Changed-Why:  
Set to feedback to note that submitter was asked for an undamaged copy 
of the patch quite some time ago. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=61322 
State-Changed-From-To: feedback->suspended 
State-Changed-By: linimon 
State-Changed-When: Sat Mar 1 20:21:03 UTC 2008 
State-Changed-Why:  
Feedback not received from submitter.  The patch is there but damaged if 
anyone wants to try to recover it. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=61322 

From: Alex Kozlov <spam@rm-rf.kiev.ua>
To: bug-followup@FreeBSD.org, valeks@novel-il.ru, linimon@freebsd.org,
	spam@rm-rf.kiev.ua
Cc:  
Subject: Re: misc/61322: [patch] bsd.dep.mk disallows shell generated flags
	in CFLAGS
Date: Mon, 19 May 2008 17:44:28 +0300

 Hi, bug-followup
 
 Restored patch:
 
 --- src/share/mk/bsd.dep.mk.orig        Tue Jan 13 20:34:30 2004         
 +++ src/share/mk/bsd.dep.mk     Tue Jan 13 20:58:57 2004                                                                         
 @@ -116,18 +116,18 @@
 rm -f ${DEPENDFILE}
 .if ${SRCS:M*.[cS]} != ""
 	${MKDEPCMD} -f ${DEPENDFILE} -a ${MKDEP} \
 -	${CFLAGS:M-nostdinc*} ${CFLAGS:M-[BID]*} \
 +	${CFLAGS:M-nostdinc*} ${CFLAGS:M-[BID]*} ${CFLAGS:M`*} ${CFLAGS:M*`}\
 	${.ALLSRC:M*.[cS]}
 .endif
 .if ${SRCS:M*.cc} != "" || ${SRCS:M*.C} != "" || ${SRCS:M*.cpp} != "" || \ 
 ${SRCS:M*.cxx} != ""
 	${MKDEPCMD} -f ${DEPENDFILE} -a ${MKDEP} \
 -	${CXXFLAGS:M-nostdinc*} ${CXXFLAGS:M-[BID]*} \
 +	${CXXFLAGS:M-nostdinc*} ${CXXFLAGS:M-[BID]*} ${CFLAGS:M`*} ${CFLAGS:M*`} \ 
 	${.ALLSRC:M*.cc} ${.ALLSRC:M*.C} ${.ALLSRC:M*.cpp} ${.ALLSRC:M*.cxx}
 .endif
 .if ${SRCS:M*.m} != ""
 	${MKDEPCMD} -f ${DEPENDFILE} -a ${MKDEP} \
 -	${OBJCFLAGS:M-nostdinc*} ${OBJCFLAGS:M-[BID]*} \
 +	${OBJCFLAGS:M-nostdinc*} ${OBJCFLAGS:M-[BID]*} ${CFLAGS:M`*} ${CFLAGS:M*`} \
 	${OBJCFLAGS:M-Wno-import*} \
 	${.ALLSRC:M*.m}
 .endif
 
 Adapted to fresh current:
 
 --- bsd.dep.mk
 +++ bsd.dep.mk.new
 @@ -130,9 +130,10 @@
  MKDEP_CXXFLAGS=	${CXXFLAGS:M-X*} ${CXXFLAGS:M-[BID]*}
  MKDEP_OBJCFLAGS=${OBJCFLAGS:M-X*} ${OBJCFLAGS:M-[BID]*}
  .else
 -MKDEP_CFLAGS=	${CFLAGS:M-nostdinc*} ${CFLAGS:M-[BID]*}
 -MKDEP_CXXFLAGS=	${CXXFLAGS:M-nostdinc*} ${CXXFLAGS:M-[BID]*}
 -MKDEP_OBJCFLAGS=${OBJCFLAGS:M-nostdinc*} ${OBJCFLAGS:M-[BID]*} ${OBJCFLAGS:M-Wno-import*}
 +MKDEP_CFLAGS=	${CFLAGS:M-nostdinc*} ${CFLAGS:M-[BID]*} ${CFLAGS:M`*} ${CFLAGS:M*`}
 +MKDEP_CXXFLAGS=	${CXXFLAGS:M-nostdinc*} ${CXXFLAGS:M-[BID]*} ${CXXFLAGS:M`*} ${CXXFLAGS:M*`}
 +MKDEP_OBJCFLAGS=${OBJCFLAGS:M-nostdinc*} ${OBJCFLAGS:M-[BID]*} ${OBJCFLAGS:M-Wno-import*} \
 +					${OBJCFLAGS:M`*} ${OBJCFLAGS:M*`}
  .endif
  
  DPSRCS+= ${SRCS}
State-Changed-From-To: suspended->closed 
State-Changed-By: ru 
State-Changed-When: Mon Jan 18 15:49:04 UTC 2010 
State-Changed-Why:  
I can't see how this is any better than the solution I suggested using `!='. 

http://www.freebsd.org/cgi/query-pr.cgi?pr=61322 
>Unformatted:
