From patchwork Mon Mar 28 07:41:26 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jan Beulich X-Patchwork-Id: 12793278 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from lists.xenproject.org (lists.xenproject.org [192.237.175.120]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id 248AFC433EF for ; Mon, 28 Mar 2022 07:41:55 +0000 (UTC) Received: from list by lists.xenproject.org with outflank-mailman.295332.502515 (Exim 4.92) (envelope-from ) id 1nYk0K-0005jU-Mz; Mon, 28 Mar 2022 07:41:32 +0000 X-Outflank-Mailman: Message body and most headers restored to incoming version Received: by outflank-mailman (output) from mailman id 295332.502515; Mon, 28 Mar 2022 07:41:32 +0000 Received: from localhost ([127.0.0.1] helo=lists.xenproject.org) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1nYk0K-0005jN-Jw; Mon, 28 Mar 2022 07:41:32 +0000 Received: by outflank-mailman (input) for mailman id 295332; Mon, 28 Mar 2022 07:41:30 +0000 Received: from se1-gles-sth1-in.inumbo.com ([159.253.27.254] helo=se1-gles-sth1.inumbo.com) by lists.xenproject.org with esmtp (Exim 4.92) (envelope-from ) id 1nYk0I-0005jG-JD for xen-devel@lists.xenproject.org; Mon, 28 Mar 2022 07:41:30 +0000 Received: from de-smtp-delivery-102.mimecast.com (de-smtp-delivery-102.mimecast.com [194.104.111.102]) by se1-gles-sth1.inumbo.com (Halon) with ESMTPS id 7a5a43f8-ae6a-11ec-a405-831a346695d4; Mon, 28 Mar 2022 09:41:28 +0200 (CEST) Received: from EUR04-VI1-obe.outbound.protection.outlook.com (mail-vi1eur04lp2052.outbound.protection.outlook.com [104.47.14.52]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id de-mta-34-ua31YCwNPOOmifpnqtC3RQ-1; Mon, 28 Mar 2022 09:41:27 +0200 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com (2603:10a6:10:2db::16) by AM9PR04MB7652.eurprd04.prod.outlook.com (2603:10a6:20b:285::19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5102.22; Mon, 28 Mar 2022 07:41:26 +0000 Received: from DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::914d:e08d:7798:8476]) by DU2PR04MB8616.eurprd04.prod.outlook.com ([fe80::914d:e08d:7798:8476%5]) with mapi id 15.20.5102.022; Mon, 28 Mar 2022 07:41:25 +0000 X-BeenThere: xen-devel@lists.xenproject.org List-Id: Xen developer discussion List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Errors-To: xen-devel-bounces@lists.xenproject.org Precedence: list Sender: "Xen-devel" X-Inumbo-ID: 7a5a43f8-ae6a-11ec-a405-831a346695d4 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=mimecast20200619; t=1648453288; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=ntH+YI2glGh1hhQvbnS5boURGCiH0lvIpdbNClN8A1A=; b=cEmLEdW5onnrENauCL6LjrsNNpvVk90nYCva8UhK7mMn+qXFxUjKESWTD+fSOPLAM45Fm8 BXvAG7JC0ivTkb746F6vDvoaS4bzkh3pfb6QzWBP6vtaL54us9MOU/7m+AvoZPpT9fdukd HR/yV+0cYz4NdOvSpPk/7BCf6wm8SDc= X-MC-Unique: ua31YCwNPOOmifpnqtC3RQ-1 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TJpFsfZUL6+yy+rVfore7w0ElgTrsC1w0CWy5D0Xv2NBO1aW1stEcBJ3bbXkfNxhda4SLFW688Zq8d8ZUuddwz4KJ8Q+jmFLkvEhmoHc8jtWnu57MKZ9wprnIa+IBBarCXiYkgh+0ugShXF5oS6B4VqCYyWXCLADELU9Tl9DzRiY6KgmjrR163fglINKmP1MTjYscGJh0ya4hcQkir39D2L2l9tGGCLdXkCG0oIbu9AaM3WJNMJyxVL67TsDTqFH9Ktd7gfuu6kXU7aF/zaeYeaokuYl79v+3boD+KY3jTSVI/OPGQ4vMO4peorubJ6aG/JchqnOkUi0kbHC/2g7gw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=ntH+YI2glGh1hhQvbnS5boURGCiH0lvIpdbNClN8A1A=; b=RYOds1lGy+iv+7RhiISgSjUhPdJiscAE1a015df5cV5MoT4RwrGCcJjiM7Xx/7atoG6EcVNeuoSKYUwmgzjddSPniYs2PMCf6nfR9TX9bC3iAJZbAJ47A5zAf4hl2fHuD52reCmAR5HkrBTMm6e7zVaNYsvVmCzDqHP/QPfX7ehQRRsbeEUht0Hd0brTzZFx/CaiU4R+rtIg3jT8T4qj9C0BTvhZ7HaS9bf+q5apWVH938sTQXqabOOu+mSTrHB070tSsfZVZGfIr/VIEwVTyMb+jDk2sm7gCvq2XAHHZR9ZWDQH3KLvE/jh0LhQdeGJmxnb1cjui7udRHD/gi2IPQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=suse.com; dmarc=pass action=none header.from=suse.com; dkim=pass header.d=suse.com; arc=none Authentication-Results: dkim=none (message not signed) header.d=none;dmarc=none action=none header.from=suse.com; Message-ID: <49190e22-c802-3830-9d4c-8e6100132687@suse.com> Date: Mon, 28 Mar 2022 09:41:26 +0200 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.7.0 Content-Language: en-US To: "xen-devel@lists.xenproject.org" Cc: Andrew Cooper , George Dunlap , Julien Grall , Stefano Stabellini , Wei Liu , Anthony Perard From: Jan Beulich Subject: [PATCH] build: generic top-level rule to build individual files X-ClientProxiedBy: AS9PR0301CA0047.eurprd03.prod.outlook.com (2603:10a6:20b:469::27) To DU2PR04MB8616.eurprd04.prod.outlook.com (2603:10a6:10:2db::16) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 9c7364df-0d4e-4cc0-0a09-08da108e5ce0 X-MS-TrafficTypeDiagnostic: AM9PR04MB7652:EE_ X-Microsoft-Antispam-PRVS: X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /94W2tMb9M7R8aWqoOJiZdPqu070c1Yj2gdv4E2FcisqMG16RmkxrY8/6FkwAiid5+fWjva/dsirBZMagKsLamrySzYXSUvzaotI5AEXKR9vr2f9wKZaz0KD9WDcE2JkimeCAyvDiNFzcBndQrg5Q4iSsifwMJc5/swQfMIOJgUJT5Em/21Yef8dtHGfivVFqOK3L8BX0o+dtQv5r+W6D3Urc+xdUzvJ/ae6gCrR9NRdr969PxgEkerTlzTWd5Atom3yLIKAE0ISLN46o6v65xZN9ccAwayNSMcSvg6E8x2U7MAfXTGTVnPDY9inFZlBmnt+WlrCElooR43Wma3KjH2fH4vPkWCwKeQpXCgu42QwahUhMWiW837zo2NEPn36udmj4xmr7eAR68F7NLSKme1YzYkL3EVivSBa/8be6ftiuruX2evxmJrgjUK74X1wi1u+831OJLTI8l24jnHsSkgCK7biyvHTGUZ6uzw99NHBv1w1aut/WcUm5pO3Yw/gEDE3XfnEgdJtNtt7wdHhqbWd11rWWQMvF9Fnr+1rDlcIzxSycXBmNH389mhdQP2sBhoOtqt/CJO9o8AZm+L3eLXn6Pu6domKqZ3eFnl+KDK0/Bari9VKNyCrTdO+UZmtdJ2Re7FtKh5bTxT0i8DXubbgQ2JYbgPIKeQpvHttA9lrCUJSD3+jN4FobYQziTM41ti8DI9DthcvjTBHYmo259WpK0d+I26RaF5cd57QKIIks4Pq40xDZ/2QNDEoKz3kV8XyjbdBk0hXml8GcFEuYorG3/zi9Do0XfdKa3FJxYrLrp/6Ryl1ukENjthZsTt+yJqsQ86fYF5U5lH9CyNYMg== X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:DU2PR04MB8616.eurprd04.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230001)(366004)(38100700002)(36756003)(8936002)(8676002)(66946007)(66476007)(26005)(66556008)(316002)(31686004)(31696002)(186003)(54906003)(4326008)(2906002)(6512007)(86362001)(5660300002)(2616005)(508600001)(6486002)(6506007)(966005)(6916009)(41533002)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?q?E4BBcQ/TkHMwXam2Ls0y8OTJL+Js?= =?utf-8?q?v9xRuxdiZ6oAaTueUS0YyE18BHkMIGgRnZMCHLLj/VObK/8FsObUL1ryedz/5S1Yn?= =?utf-8?q?nntmSmNaUDzNNePteZ4mDYnrQ9jETF1QXVnRq0PGUc/za0kLuUDkT+gUbngYqTuyL?= =?utf-8?q?npWUI65LsIG8DL/v7ceBn3ZLgOXgZgJefTzP+qwJ9p19Aecl46NtUQ0eGVXRnGHWU?= =?utf-8?q?eXyjnv+ZWifmw2Pr9OsJW8+tUmued725e0kiNUqHzFw1HHQhp8hO4f/fGTj881vlb?= =?utf-8?q?h7iKMwJB/N5/QpE62JcjrjGNd94BYXABoQDv3tMtF2LUuq2wM/TOajOYD58APCYaV?= =?utf-8?q?hz79D2MZZPTZf11Ek7FKuOYFBRops1V6dDbJkg9tqKdmTeg2sPd2OkKBlk9Xgmlmt?= =?utf-8?q?TkIZz5bms0VHlwybCISRFZ02+sAg3h0cAbI7pt3jcnse2kwnt4U1uVp54p/8lToic?= =?utf-8?q?DZPBHr9w2zy0LBFz56pTTAEJZAujrsaQdvFaDZvq9hYWehdTWdxuSPGl7RlixzWTF?= =?utf-8?q?sAAiFRC3HTAP5JP8nThDwqjEzsPbcza937qt6hFJ/gwu25ihP+Grbe/7XfxblfL16?= =?utf-8?q?8ufOrfNEjy0qJRgvNUoC12WShVXpTqx9Y4U6FyXS0nvyrbXBe+XybwpgOGvA/46xR?= =?utf-8?q?N+1i+TKqrPhVzicdhBLEMr1OOODsTJ7KfPnrrsjwtpzBvCFKrDqSlYRljQd37xGzQ?= =?utf-8?q?fRMbUOPrtanrG/4ENvK7whm35zPHcoA6KC9oCTY8Sni3aCqoefCsvv7FG2EGSG/D3?= =?utf-8?q?v+cdf8Wb+IRXleLxauMzjSGz28bbf9m9OiMwr+FyJ4lpRadGqA6gGWS1/KDAJf8sY?= =?utf-8?q?v2fTIrZrRkRPPYz+mn3WMsEu6EGQx8MY1PWuf8EhT/DDVcoPKTII/sDdzqHMoTrkH?= =?utf-8?q?IO+QhpnBmZYNTHej1N//8dUbS1sMqj8kaImFnKzvaFXGtu4f8gtUlmLVYTsc05cbp?= =?utf-8?q?mrmLafmNzRA9pgR+3VEOJ1l0p7UFEBxiUL2jILoluGVLrphVAZL3wfLLnUr50d01K?= =?utf-8?q?2lJln9ileKk9E/O/kfM93+yVPCm9uAerjVkGwhyc+tIIg3h2jcgAtU5csOO0zsA4I?= =?utf-8?q?K2pbRns/IhmFYfD6PR4WUQRML3HahsZKGKQ3jrXY3WObhoGqj0pGrm038SeiluMEE?= =?utf-8?q?9X5VvFeOQ29DfRRl/gM594FkirlP89pwsPf8sJyfPbLGhXHOAHcpp6Jv95Dx1a19X?= =?utf-8?q?81fKQ4ZingSo4neWA563KZl81dImUOYaHKvObTbExcbai3ZFFP9LofZwi7t5DU2L9?= =?utf-8?q?nlqvSzs0A4IZBTQcA2D7uv0ZmB+N5sLjmxsW53d1jZZhJLkj0e/7zrbflRZngzaN9?= =?utf-8?q?jUgADtx+MEIf9MTGi9RrHvuiEOzu/9JhHtePka6dHFbfB4cSKv1djlNADeAMIWgVg?= =?utf-8?q?95bNoBEea42djCAjEhcqhcIMP1UalGBkWxtmlOauvrPwogHN9Vd9ypNJmwrOVBl/0?= =?utf-8?q?6V64yrmVz4Lu4f0GNYckwXbdDkjtR3bcE+kEQd9s44/z30Q2QmuIXyQdrnjgxmxJM?= =?utf-8?q?cZzqGqpQqCb/2ngLojm68ma1mGolgIpbsKSOXyQDwEicd2QgvWS6UKGSmjomiTKia?= =?utf-8?q?bE4dE8ItcwImUOp4u5kBEJiwTOceBob0Erd5OBZAHnGc8wVJlW4mTsI18rF921M9A?= =?utf-8?q?XkcpW/psrNEmRYpoK1FFlLq5iovufaFw=3D=3D?= X-OriginatorOrg: suse.com X-MS-Exchange-CrossTenant-Network-Message-Id: 9c7364df-0d4e-4cc0-0a09-08da108e5ce0 X-MS-Exchange-CrossTenant-AuthSource: DU2PR04MB8616.eurprd04.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 28 Mar 2022 07:41:25.7026 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: f7a17af6-1c5c-4a36-aa8b-f5be247aa4ba X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: w0KkoagWhDLl3XQ4hHB+zOkA7MwxqkzkEct7mxmUB2DxkGhMzeE+QZiv/gjy5/IkrPB7238JgqkaOrjRtxPq/w== X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM9PR04MB7652 In particular when cross-compiling or having in place other tool chain overrides, invoking make to build individual files (e.g. object, preprocessed, or assembly ones) so far involves putting the various overrides on the command line instead of simply getting them from ./.config. Furthermore this helps working around a yet unaddressed make quirk [1]: Variables put on the command line are invisible to $(shell ...), unless invoked from a recursive make: During the recursive invocation such variables are put in the recursive make's environment and hence become "visible". Signed-off-by: Jan Beulich [1] https://savannah.gnu.org/bugs/?10593 --- a/Makefile +++ b/Makefile @@ -75,6 +75,13 @@ ifeq (x86_64,$(XEN_TARGET_ARCH)) XEN_TARGET_ARCH=x86_32 $(MAKE) -C stubdom pv-grub-if-enabled endif +define do-subtree +$(1)/%: FORCE + $$(MAKE) -C $(1) $$* +endef + +$(foreach m,$(wildcard */Makefile),$(eval $(call do-subtree,$(patsubst %/Makefile,%,$(m))))) + .PHONY: build-docs build-docs: $(MAKE) -C docs build @@ -334,3 +341,6 @@ uninstall: uninstall-tools-public-header .PHONY: xenversion xenversion: @$(MAKE) --no-print-directory -C xen xenversion + +PHONY += FORCE +FORCE: