Re: svn commit: r250699 - in head: share/mk usr.bin/make
On Fri, 17 May 2013 23:34:08 +0200, Tijl Coosemans writes: _PORTCONF!=3D/usr/local/libexec/portconf =2Efor i in ${_PORTCONF:S/|/ /g} ${i:S/%/ /g} Is it possible to re-write this to be less dependent on how .for is parsed? Eg. assuming i is foo=[%]blah%goo ${i:C,=.*,,g} = ${i:C,.*=%*,,:S,%, ,g} works the same for fmake and bmake. ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org
Re: svn commit: r250699 - in head: share/mk usr.bin/make
On 2013-05-16 17:28, Simon J. Gerraty wrote: Author: sjg Date: Thu May 16 15:28:38 2013 New Revision: 250699 URL: http://svnweb.freebsd.org/changeset/base/250699 Log: Build bmake by default. For me /usr/src is a symlink to /some/path and now if I build from /usr/src some parts end up in /usr/obj/usr/src and other parts in /usr/obj/some/path. It used to be the latter. /usr/ports is a symlink too: % cd /usr/ports/www/firefox % pwd /usr/home/tijl/freebsd/ports/head/www/firefox % make -V .CURDIR /usr/ports/www/firefox % cd /usr/home/tijl/freebsd/ports/head/www/firefox % pwd /usr/home/tijl/freebsd/ports/head/www/firefox % make -V .CURDIR /home/tijl/freebsd/ports/head/www/firefox So it seems to change /usr/home back into /home too. This breaks ports-mgmt/portconf because it adds the following to /etc/make.conf but .CURDIR never matches the real path. .if !empty(.CURDIR:M/usr/home/tijl/freebsd/ports*) exists(/usr/local/libexec/portconf) ... .endif signature.asc Description: OpenPGP digital signature
Re: svn commit: r250699 - in head: share/mk usr.bin/make
For me /usr/src is a symlink to /some/path and now if I build from /usr/src some parts end up in /usr/obj/usr/src and other parts in /usr/obj/some/path. It used to be the latter. This could be the result of some bits being built by the old freebsd make. Since the early stage of buildworld doesn't use the up to date bsd.own.mk I suspect that the install of bmake as $MAKEOBJDIRPREFIX$.CURDIR/make.$MACHINE/make may not be working. Ok, I just checked - it isn't, it gets installed there as bmake, which would explain the havior you see. Should be fixed now. Also bmake will now ignore PWD always - same as fmake. ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org
Re: svn commit: r250699 - in head: share/mk usr.bin/make
On 2013-05-17 21:39, Simon J. Gerraty wrote: For me /usr/src is a symlink to /some/path and now if I build from /usr/src some parts end up in /usr/obj/usr/src and other parts in /usr/obj/some/path. It used to be the latter. This could be the result of some bits being built by the old freebsd make. Since the early stage of buildworld doesn't use the up to date bsd.own.mk I suspect that the install of bmake as $MAKEOBJDIRPREFIX$.CURDIR/make.$MACHINE/make may not be working. Ok, I just checked - it isn't, it gets installed there as bmake, which would explain the havior you see. Should be fixed now. Also bmake will now ignore PWD always - same as fmake. Thanks, it seems to work now. Bmake doesn't seem to like what portconf puts in make.conf though: # Begin portconf settings # Do not touch these lines .if !empty(.CURDIR:M/usr/home/tijl/freebsd/ports*) exists(/usr/local/libexec/portconf) _PORTCONF!=/usr/local/libexec/portconf .for i in ${_PORTCONF:S/|/ /g} ${i:S/%/ /g} .endfor .endif # End portconf settings When the output of /usr/local/libexec/portconf is empty make warns about it: make: /etc/make.conf line 115: warning: Couldn't read shell's output for /usr/local/libexec/portconf When it isn't empty, make fails on ${i:S/%/ /g} (evaluates to VAR= or VAR=value): make: /etc/make.conf line 117: Need an operator make: Fatal errors encountered -- cannot continue signature.asc Description: OpenPGP digital signature
Re: svn commit: r250699 - in head: share/mk usr.bin/make
On Fri, 17 May 2013 23:34:08 +0200, Tijl Coosemans writes: When the output of /usr/local/libexec/portconf is empty make warns about it: Yes. This is to avoid accidents. If you *know* that no output is a valid result, you can add '; echo' to the end of the command to suppress the warning. make: /etc/make.conf line 115: warning: Couldn't read shell's output fo= r /usr/local/libexec/portconf When it isn't empty, make fails on ${i:S/%/ /g} (evaluates to Interesting will ponder that. ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org
Re: svn commit: r250699 - in head: share/mk usr.bin/make
On Fri, May 17, 2013 at 03:28:10PM -0700, Simon J. Gerraty wrote: On Fri, 17 May 2013 23:34:08 +0200, Tijl Coosemans writes: When the output of /usr/local/libexec/portconf is empty make warns about it: Yes. This is to avoid accidents. If you *know* that no output is a valid result, you can add '; echo' to the end of the command to suppress the warning. make: /etc/make.conf line 115: warning: Couldn't read shell's output fo= r /usr/local/libexec/portconf Note that adding '; echo' will result in an additional fork() or vfork() call. If -c /usr/local/libexec/portconf is given, FreeBSD sh execs portconf. If there is an echo command after it, sh will have to (v)fork. In NetBSD, this is not a concern because NetBSD sh (v)forks in either case. Placing the echo before the external command will let FreeBSD sh avoid the fork as well, but some common other shells (bash, recent mksh) will not fork for -c external but will fork for -c builtin;external. -- Jilles Tjoelker ___ svn-src-head@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/svn-src-head To unsubscribe, send any mail to svn-src-head-unsubscr...@freebsd.org