From nobody Sun May 14 16:50:10 2023 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4QK7ll0chvz4BtCf; Sun, 14 May 2023 16:50:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4QK7lk6ySZz4PwC; Sun, 14 May 2023 16:50:10 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684083011; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=96I1IAz/fMWHD3evvEr+rGjaDZN/ATKPNcRF+v0nzTs=; b=pKh2s6Jrn/sFgDwC4EouAe6hXQ9VZr5YFPBA5/+eQ5FeaLJp7ZIGRSjxXuJf9RlS4Wvj9P xTIM2K+iylRb2PpEoG/S28SEwOsrf3g+MhmlINSDf/8ln/0WCXjXDlqioQeC848uFpMG8R ZjJvFHfnej+QEGPXiHhsRSEJioTqrwz/pKSozaTE+HpsMZmo3sGefePDrSv9bl6rohVGKK 3slJIvelHJNE5HNp4yQvA20DDUlOkyEe7B1WWe3hHPlQ0crM/ksamVuZnpw1iHESXCePW4 OdAuOWK77ygR0PW1N9KF/HYvjo1YmxX7CdOQE2iNdgvwq4Wkk3z1oHN5Jqsa/Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1684083011; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=96I1IAz/fMWHD3evvEr+rGjaDZN/ATKPNcRF+v0nzTs=; b=qW0PpOlgmiJnoJL0siyqifEoSdIX+Ne2QbuaW5xZIiTEqlx7xry8vcLk4FqyxmZ7ATeDzz 32NiIvgTGzVszszhaWpveSp0DExnUaYZCS8L0BpiU9KTHukFxb8T6qUBtZsL+TKfctk5k/ JPJOoghZoMhNsv7WmgL3PcJ0C439yWF9oB+5D/SIuiCfvRiZbeJ/VSTTLTRxIF1ziNJ4R5 G7niUDis5xobW+pkK6H+Vp1XA2ulQW8OPwKKpPZfTp6+A63zQs9aRTpj6Z4vzZW+bRlfag ss9i/qSBDq5zGGDyFQiABM/SOwJGaha+GWsiebMG9gCka0lW7YdJkYpYARXb+A== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1684083011; a=rsa-sha256; cv=none; b=gDXysbaM/ZWmQIT0yDVkK04/Z2VP1cbEAQswcw0ga2+G6tlCPNyJBRz3dRkuJ5iVzhTuoo DeK8mPcXESA/NmLqJ8oFouJ4kdBaTpwB5iuVd4ymLXGechhHV2+YD/f3qw3VCel6mOqX9U gWu32JkGFAQy4hsZaFCvVtnVx8IipZ0ktufrXwJQG04NrcovW0NtdJqQb6kL4AaagyAqAP Dp8sVR1pAe9n62HKJOyQ5R+Stk9jOvfwq51sh6ymaiMO8nMa+Kos27DyIaOfGxXx609DVT B6KkdZbpGq9Nrhvff+0E2lgDseSWLFtQIGnBCmIS6+vvA+XeUKsdvwG9CQ2gpA== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4QK7lk623Cz15Gw; Sun, 14 May 2023 16:50:10 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 34EGoAkH005938; Sun, 14 May 2023 16:50:10 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 34EGoAd7005932; Sun, 14 May 2023 16:50:10 GMT (envelope-from git) Date: Sun, 14 May 2023 16:50:10 GMT Message-Id: <202305141650.34EGoAd7005932@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: "Simon J. Gerraty" Subject: git: 7d86c8b8eaf5 - main - sys.dirdeps.mk we do want to override OBJTOP List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-all@freebsd.org X-BeenThere: dev-commits-src-all@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: sjg X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7d86c8b8eaf5a2cede0d7343202c87edc4540e9a Auto-Submitted: auto-generated X-ThisMailContainsUnwantedMimeParts: N The branch main has been updated by sjg: URL: https://cgit.FreeBSD.org/src/commit/?id=7d86c8b8eaf5a2cede0d7343202c87edc4540e9a commit 7d86c8b8eaf5a2cede0d7343202c87edc4540e9a Author: Simon J. Gerraty AuthorDate: 2023-05-14 16:50:03 +0000 Commit: Simon J. Gerraty CommitDate: 2023-05-14 16:50:03 +0000 sys.dirdeps.mk we do want to override OBJTOP Add more comments to explain what and why. Ensure OBJROOT ends in / or - (/ preferred). Export OBJTOP if level > 0 this avoids the issue with bmake/unit-tests. Check if we have to override MAKEOBJDIR and if so, put it into env correctly. --- share/mk/sys.dirdeps.mk | 46 +++++++++++++++++++++++++++++++++------------- 1 file changed, 33 insertions(+), 13 deletions(-) diff --git a/share/mk/sys.dirdeps.mk b/share/mk/sys.dirdeps.mk index 2daf3681d8d0..a3d22d7c2e82 100644 --- a/share/mk/sys.dirdeps.mk +++ b/share/mk/sys.dirdeps.mk @@ -1,4 +1,4 @@ -# $Id: sys.dirdeps.mk,v 1.9 2023/05/11 20:05:42 sjg Exp $ +# $Id: sys.dirdeps.mk,v 1.12 2023/05/14 16:16:03 sjg Exp $ # # @(#) Copyright (c) 2012-2023, Simon J. Gerraty # @@ -45,6 +45,7 @@ SRCTOP := ${SB_SRC:U${.PARSEDIR:tA:H:H}} .endif # fake SB if not using mk wrapper +# SB documented at http://www.crufty.net/sjg/docs/sb-tools.htm .if !defined(SB) SB := ${SRCTOP:H} .export SB @@ -54,6 +55,10 @@ SB := ${SRCTOP:H} OBJROOT := ${SB_OBJROOT:U${MAKEOBJDIRPREFIX:U${SB}/obj}/} .export OBJROOT .endif +# we expect OBJROOT to end with / (- can work too) +.if ${OBJROOT:M*[/-]} == "" +OBJROOT := ${OBJROOT}/ +.endif .if empty(STAGE_ROOT) STAGE_ROOT ?= ${OBJROOT}stage @@ -66,9 +71,6 @@ STAGE_ROOT ?= ${OBJROOT}stage # TARGET_SPEC must not contain any '.'s. TARGET_SPEC_VARS ?= MACHINE -.if !target(_tspec_env_done_) -_tspec_env_done_: .NOTMAIN - .if ${TARGET_SPEC:Uno:M*,*} != "" # deal with TARGET_SPEC from env _tspec := ${TARGET_SPEC:S/,/ /g} @@ -86,7 +88,6 @@ TARGET_SPEC= .endif .endfor .endif -.endif # Now make sure we know what TARGET_SPEC is # as we may need it to find Makefile.depend* @@ -98,6 +99,10 @@ TARGET_SPEC = ${TARGET_SPEC_VARS:@v@${$v:U}@:ts,} .endif .if ${TARGET_SPEC_VARS:[#]} > 1 +TARGET_SPEC_VARSr := ${TARGET_SPEC_VARS:[-1..1]} +# alternatives might be +# TARGET_OBJ_SPEC = ${TARGET_SPEC_VARSr:@v@${$v:U}@:ts/} +# TARGET_OBJ_SPEC = ${TARGET_SPEC_VARS:@v@${$v:U}@:ts/} TARGET_OBJ_SPEC ?= ${TARGET_SPEC_VARS:@v@${$v:U}@:ts.} .else TARGET_OBJ_SPEC ?= ${MACHINE} @@ -113,22 +118,37 @@ MACHINE0 := ${MACHINE} .export MACHINE0 .endif +MACHINE_OBJ.host = ${HOST_TARGET} +MACHINE_OBJ.host32 = ${HOST_TARGET32} +MACHINE_OBJ.${MACHINE} ?= ${TARGET_OBJ_SPEC} +MACHINE_OBJDIR = ${MACHINE_OBJ.${MACHINE}} + +# we likely want to override env for OBJTOP .if ${MACHINE} == "host" OBJTOP = ${HOST_OBJTOP} .elif ${MACHINE} == "host32" OBJTOP = ${HOST_OBJTOP32} +.else +OBJTOP = ${OBJROOT}${MACHINE_OBJDIR} +.endif +.if ${.MAKE.LEVEL} > 0 +# should not change from level 1 onwards +# this only matters for cases like bmake/unit-tests +# where we do ${MAKE} -r +.export OBJTOP .endif -MACHINE_OBJ.host = ${HOST_TARGET} -MACHINE_OBJ.host32 = ${HOST_TARGET32} -MACHINE_OBJ.${MACHINE} ?= ${TARGET_OBJ_SPEC} -MACHINE_OBJDIR = ${MACHINE_OBJ.${MACHINE}} -OBJTOP ?= ${OBJROOT}/${MACHINE_OBJDIR} - +.if ${MAKEOBJDIR:U:M*/*} == "" # we do not use MAKEOBJDIRPREFIX +# though we may have used it above to initialize OBJROOT .undef MAKEOBJDIRPREFIX -# we use this -MAKEOBJDIR ?= ${.CURDIR:S,${SRCTOP},${OBJTOP},} +# this is what we expected in env +MAKEOBJDIR = $${.CURDIR:S,^$${SRCTOP},$${OBJTOP},} +# export that but do not track +.export-env MAKEOBJDIR +# this what we need here +MAKEOBJDIR = ${.CURDIR:S,${SRCTOP},${OBJTOP},} +.endif STAGE_MACHINE ?= ${MACHINE_OBJDIR} STAGE_OBJTOP ?= ${STAGE_ROOT}/${STAGE_MACHINE}