Date: Sun, 14 Apr 2013 01:21:20 +0000 (UTC) From: "Simon J. Gerraty" <sjg@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r249458 - projects/bmake/share/mk Message-ID: <201304140121.r3E1LKqF070009@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: sjg Date: Sun Apr 14 01:21:20 2013 New Revision: 249458 URL: http://svnweb.freebsd.org/changeset/base/249458 Log: Sync latest versions Modified: projects/bmake/share/mk/dirdeps.mk projects/bmake/share/mk/gendirdeps.mk projects/bmake/share/mk/meta.autodep.mk projects/bmake/share/mk/meta.stage.mk projects/bmake/share/mk/meta2deps.py Modified: projects/bmake/share/mk/dirdeps.mk ============================================================================== --- projects/bmake/share/mk/dirdeps.mk Sun Apr 14 00:59:56 2013 (r249457) +++ projects/bmake/share/mk/dirdeps.mk Sun Apr 14 01:21:20 2013 (r249458) @@ -1,4 +1,4 @@ -# $Id: dirdeps.mk,v 1.24 2013/02/10 19:21:46 sjg Exp $ +# $Id: dirdeps.mk,v 1.28 2013/03/25 21:11:43 sjg Exp $ # Copyright (c) 2010-2013, Juniper Networks, Inc. # All rights reserved. @@ -86,19 +86,29 @@ # # For example: # -# # variables other than MACHINE might be optional +# # Always list MACHINE first, +# # other variables might be optional. # TARGET_SPEC_VARS = MACHINE TARGET_OS # .if ${TARGET_SPEC:Uno:M*,*} != "" # _tspec := ${TARGET_SPEC:S/,/ /g} # MACHINE := ${_tspec:[1]} # TARGET_OS := ${_tspec:[2]} # # etc. +# # We need to stop that TARGET_SPEC affecting any submakes +# # and deal with MACHINE=${TARGET_SPEC} in the environment. +# TARGET_SPEC = +# # export but do not track +# .export-env TARGET_SPEC +# .export ${TARGET_SPEC_VARS} # .for v in ${TARGET_SPEC_VARS:O:u} # .if empty($v) # .undef $v # .endif # .endfor # .endif +# # make sure we know what TARGET_SPEC is +# # as we may need it to find Makefile.depend* +# TARGET_SPEC = ${TARGET_SPEC_VARS:@v@${$v:U}@:ts,} # .if ${.MAKE.LEVEL} == 0 Modified: projects/bmake/share/mk/gendirdeps.mk ============================================================================== --- projects/bmake/share/mk/gendirdeps.mk Sun Apr 14 00:59:56 2013 (r249457) +++ projects/bmake/share/mk/gendirdeps.mk Sun Apr 14 01:21:20 2013 (r249458) @@ -1,4 +1,4 @@ -# $Id: gendirdeps.mk,v 1.12 2013/02/10 19:59:10 sjg Exp $ +# $Id: gendirdeps.mk,v 1.21 2013/03/28 20:01:05 sjg Exp $ # Copyright (c) 2010-2013, Juniper Networks, Inc. # All rights reserved. @@ -119,7 +119,7 @@ META2DEPS_CMD = ${_time} ${PYTHON} ${MET META2DEPS_CMD += -D ${DPDEPS} .endif -M2D_OBJROOTS += ${OBJTOP}/ ${_OBJROOT} ${_objroot} +M2D_OBJROOTS += ${OBJTOP} ${_OBJROOT} ${_objroot} .if defined(SB_OBJROOT) M2D_OBJROOTS += ${SB_OBJROOT} .endif @@ -174,7 +174,12 @@ dir_list += ${f:H:tA} .endfor .if !empty(ddep_list) ddeps != cat ${ddep_list:O:u} | ${META2DEPS_FILTER} ${_skip_gendirdeps} \ - sed 's,//*$$,,;s,\.${HOST_TARGET}$$,.host,' + sed 's,//*$$,,;s,\.${HOST_TARGET}$$,.host,;s,\.${MACHINE}$$,,' + +.if ${DEBUG_GENDIRDEPS:Uno:@x@${RELDIR:M$x}@} != "" +.info ${RELDIR}: raw_dir_list='${dir_list}' +.info ${RELDIR}: ddeps='${ddeps}' +.endif dir_list += ${ddeps} .endif .endif @@ -188,8 +193,10 @@ dir_list += ${ddeps} # so we add # ${"${dir_list:M*bsd/sys/${MACHINE_ARCH}/include}":?bsd/include:} # to GENDIRDEPS_DIR_LIST_XTRAS +_objtops = ${OBJTOP} ${_OBJTOP} ${_obtop} +_objtops := ${_objtops:O:u} dirdep_list = \ - ${dir_list:M${_objtop}*/*:C,${_objtop}[^/]*/,,} \ + ${_objtops:@o@${dir_list:M$o*/*:C,$o[^/]*/,,}@} \ ${GENDIRDEPS_DIR_LIST_XTRAS} # sort longest first @@ -198,10 +205,11 @@ M2D_OBJROOTS := ${M2D_OBJROOTS:O:u:[-1.. # anything we use from an object dir other than ours # needs to be qualified with its .<machine> suffix # (we used the pseudo machine "host" for the HOST_TARGET). -skip_ql= ${SRCTOP}* ${_objtop}* +skip_ql= ${SRCTOP}* ${_objtops:@o@$o*@} .for o in ${M2D_OBJROOTS:${skip_ql:${M_ListToSkip}}} -qualdir_list += \ - ${dir_list:${skip_ql:${M_ListToSkip}}:M$o*/*/*:C,$o([^/]+)/(.*),\2.\1,:S,.${HOST_TARGET},.host,} +# we need := so only skip_ql to this point applies +ql := ${dir_list:${skip_ql:${M_ListToSkip}}:M$o*/*/*:C,$o([^/]+)/(.*),\2.\1,:S,.${HOST_TARGET},.host,} +qualdir_list += ${ql} skip_ql+= $o* .endfor Modified: projects/bmake/share/mk/meta.autodep.mk ============================================================================== --- projects/bmake/share/mk/meta.autodep.mk Sun Apr 14 00:59:56 2013 (r249457) +++ projects/bmake/share/mk/meta.autodep.mk Sun Apr 14 01:21:20 2013 (r249458) @@ -1,4 +1,4 @@ -# $Id: meta.autodep.mk,v 1.28 2012/07/13 15:38:16 sjg Exp $ +# $Id: meta.autodep.mk,v 1.32 2012/11/13 00:44:26 sjg Exp $ # # @(#) Copyright (c) 2010, Simon J. Gerraty @@ -235,6 +235,7 @@ META_FILES = ${.MAKE.META.FILES:T:N.depe .export GENDIRDEPS_FILTER .endif +# we might have .../ in MAKESYSPATH _makesyspath:= ${_PARSEDIR} ${_DEPENDFILE}: ${_depend} ${.PARSEDIR}/gendirdeps.mk ${META2DEPS} $${.MAKE.META.CREATED} @echo Checking $@: ${.OODATE:T:[1..8]} Modified: projects/bmake/share/mk/meta.stage.mk ============================================================================== --- projects/bmake/share/mk/meta.stage.mk Sun Apr 14 00:59:56 2013 (r249457) +++ projects/bmake/share/mk/meta.stage.mk Sun Apr 14 01:21:20 2013 (r249458) @@ -1,4 +1,4 @@ -# $Id: meta.stage.mk,v 1.22 2013/03/08 17:52:11 sjg Exp $ +# $Id: meta.stage.mk,v 1.24 2013/03/23 02:25:19 sjg Exp $ # # @(#) Copyright (c) 2011, Simon J. Gerraty # @@ -48,17 +48,21 @@ GENDIRDEPS_FILTER += Nnot-empty-is-impor ${_STAGED_DIRS:O:u:M${OBJTOP}*:S,${OBJTOP}/,N,} \ ${_STAGED_DIRS:O:u:N${OBJTOP}*:S,${_objroot},,:C,^([^/]+)/(.*),N\2.\1,:S,${HOST_TARGET},.host,} +LN_CP_SCRIPT = LnCp() { \ + rm -f $$2 2> /dev/null; \ + ln $$1 $$2 2> /dev/null || \ + cp -p $$1 $$2; } + # it is an error for more than one src dir to try and stage # the same file -STAGE_DIRDEP_SCRIPT = StageDirdep() { \ +STAGE_DIRDEP_SCRIPT = ${LN_CP_SCRIPT}; StageDirdep() { \ t=$$1; \ if [ -s $$t.dirdep ]; then \ cmp -s .dirdep $$t.dirdep && return; \ echo "ERROR: $$t installed by `cat $$t.dirdep` not ${_dirdep}" >&2; \ exit 1; \ fi; \ - ln .dirdep $$t.dirdep 2> /dev/null || \ - cp .dirdep $$t.dirdep || exit 1; } + LnCp .dirdep $$t.dirdep || exit 1; } # common logic for staging files # this all relies on RELDIR being set to a subdir of SRCTOP @@ -71,9 +75,7 @@ STAGE_FILE_SCRIPT = ${STAGE_DIRDEP_SCRIP for f in "$$@"; do \ case "$$f" in */*) t=$$dest/${_stage_file_basename};; *) t=$$dest/$$f;; esac; \ StageDirdep $$t; \ - rm -f $$t; \ - { ln $$f $$t 2> /dev/null || \ - cp -p $$f $$t; } || exit 1; \ + LnCp $$f $$t || exit 1; \ [ -z "$$mode" ] || chmod $$mode $$t; \ done; :; } @@ -103,9 +105,7 @@ STAGE_AS_SCRIPT = ${STAGE_DIRDEP_SCRIPT} case "$$1" in */*) mkdir -p ${_stage_target_dirname};; esac; \ shift; \ StageDirdep $$t; \ - rm -f $$t; \ - { ln $$s $$t 2> /dev/null || \ - cp -p $$s $$t; } || exit 1; \ + LnCp $$s $$t || exit 1; \ [ -z "$$mode" ] || chmod $$mode $$t; \ done; :; } Modified: projects/bmake/share/mk/meta2deps.py ============================================================================== --- projects/bmake/share/mk/meta2deps.py Sun Apr 14 00:59:56 2013 (r249457) +++ projects/bmake/share/mk/meta2deps.py Sun Apr 14 01:21:20 2013 (r249458) @@ -35,7 +35,7 @@ We only pay attention to a subset of the """ RCSid: - $Id: meta2deps.py,v 1.10 2013/03/17 03:10:09 sjg Exp $ + $Id: meta2deps.py,v 1.12 2013/03/31 22:31:59 sjg Exp $ Copyright (c) 2011-2013, Juniper Networks, Inc. All rights reserved. @@ -196,9 +196,17 @@ class MetaFile: if not _srctop in self.srctops: self.srctops.append(_srctop) - trim_list = ['/' + self.machine, '/' + self.machine + '/'] + trim_list = ['/' + self.machine + '/', + '/' + self.machine, + self.machine + '/', + self.machine] + if self.machine == 'host': - trim_list += ['/' + self.host_target, '/' + self.host_target + '/'] + trim_list += ['/' + self.host_target + '/', + '/' + self.host_target, + self.host_target + '/', + self.host_target] + for objroot in getv(conf, 'OBJROOTS', []): for e in trim_list: if objroot.endswith(e): @@ -237,6 +245,8 @@ class MetaFile: if not self.reldir: self.dpdeps = None # we cannot do it? + self.cwd = os.getcwd() # make sure this is initialized + if name: self.parse()
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201304140121.r3E1LKqF070009>