From patchwork Tue Nov 16 12:00:01 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622209 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C7F26C433EF for ; Tue, 16 Nov 2021 12:02:44 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id A570861040 for ; Tue, 16 Nov 2021 12:02:44 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235757AbhKPMFk (ORCPT ); Tue, 16 Nov 2021 07:05:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33596 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235810AbhKPMEd (ORCPT ); Tue, 16 Nov 2021 07:04:33 -0500 Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A2009C06120F for ; Tue, 16 Nov 2021 04:00:37 -0800 (PST) Received: by mail-wm1-x32a.google.com with SMTP id n33-20020a05600c502100b0032fb900951eso1724399wmr.4 for ; Tue, 16 Nov 2021 04:00:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=TeX5ZS2MPeBvASt8okmPtbmwlr3s2ozk2p9IRJvpas4=; b=NwQ7P1afSuV+h019DlzIN3RKhdhd/b2k6yCfvkbXP0ch1bd8FvX8zrUh+AVntdnhxi nV01R5uGE3Isix+xCotc6FPbzgC3n+JkT1E7HkYNT1RrXnK/VevmYMxgVmSjqh+u9bdr +CK0fcG0U2Zf9wrcVM2Mz6gj8WJex/jaN0HcIHLEOWGW69PDEf4/qWxzrpMbRa4LkGrL 6jm8HG3R9uX4nJ6IPiaDALdDoO4U/L0han/AgWv7NbK7s9RxMequrFWoN1uqs2xyrbGJ byYOzLLtJvXrWvPC8njP5olSHoSSccCVWpQna9fGUeCi6mUUrG6pK/jw0P+OXk2bdStI WsWg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=TeX5ZS2MPeBvASt8okmPtbmwlr3s2ozk2p9IRJvpas4=; b=LD8l3sxpfUS/7Nbf6qj+waCaKW8ceIWiDo37frUCiBgUyesjJTUgM6aEK1F0sGK3je QfPTVXorLtxpGSzAAkGygAXYue7teUcLmCieNunZD4qWrludkMpMSiJ5b+cPTmfXaapw oJ10RKgNa0NSQpkKuUMpoTWFkJ5BArdkm2SeAHs/k9nZGpYeju6rtH/di6ADEGFBWGOv Dc7XZzBFuN6wRjibwsGU0K73/eG7KqBm+Idzl3hTXOjVVLHxBzPEEzkEobjOyQPbDZFd VZo/0wVFES8kmKldTxq94gzMH7xS3PztUW1EZgY9m3LHcIi33gFFR1u9nsDTfrrQVJHY 1hmw== X-Gm-Message-State: AOAM530FrXfubUX6Ma4zROWJXRtWUlA6w7RUkfvc22YxanegxmHChdr6 j3WZKSYijCg+OnsS7xKm0xAKUU/yqrsvhg== X-Google-Smtp-Source: ABdhPJyjeJ9INLIg50rx9httPwOz3f5RTekvv3FKkBrSx6OAiB0kA5JLrrKz+FdsG/zdk7Tm8bJwuA== X-Received: by 2002:a1c:c917:: with SMTP id f23mr4932274wmb.10.1637064035932; Tue, 16 Nov 2021 04:00:35 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:35 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 01/23] Makefile: don't invoke msgfmt with --statistics Date: Tue, 16 Nov 2021 13:00:01 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Remove the --statistics flag that I added in 5e9637c6297 (i18n: add infrastructure for translating Git with gettext, 2011-11-18). Our Makefile output is good about reducing verbosity by default, except in this case: $ rm -rf po/build/locale/e*; time make -j $(nproc) all SUBDIR templates MKDIR -p po/build/locale/el/LC_MESSAGES MSGFMT po/build/locale/el/LC_MESSAGES/git.mo MKDIR -p po/build/locale/es/LC_MESSAGES MSGFMT po/build/locale/es/LC_MESSAGES/git.mo 1038 translated messages, 3325 untranslated messages. 5230 translated messages. I didn't have any good reason for using --statistics at the time other than ad-hoc eyeballing of the output. We don't need to spew out exactly how many messages we've got translated every time. Now we'll instead emit: $ rm -rf po/build/locale/e*; time make -j $(nproc) all SUBDIR templates MKDIR -p po/build/locale/el/LC_MESSAGES MSGFMT po/build/locale/el/LC_MESSAGES/git.mo MKDIR -p po/build/locale/es/LC_MESSAGES MSGFMT po/build/locale/es/LC_MESSAGES/git.mo Signed-off-by: Ævar Arnfjörð Bjarmason --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index d56c0e4aadc..11da97de233 100644 --- a/Makefile +++ b/Makefile @@ -1870,7 +1870,7 @@ ifdef GIT_TEST_CMP_USE_COPIED_CONTEXT endif ifndef NO_MSGFMT_EXTENDED_OPTIONS - MSGFMT += --check --statistics + MSGFMT += --check endif ifdef HAVE_CLOCK_GETTIME From patchwork Tue Nov 16 12:00:02 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622207 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4DA2FC433F5 for ; Tue, 16 Nov 2021 12:02:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 30F7261040 for ; Tue, 16 Nov 2021 12:02:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236014AbhKPMFf (ORCPT ); Tue, 16 Nov 2021 07:05:35 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33678 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235811AbhKPMEd (ORCPT ); Tue, 16 Nov 2021 07:04:33 -0500 Received: from mail-wm1-x329.google.com (mail-wm1-x329.google.com [IPv6:2a00:1450:4864:20::329]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 5B738C061210 for ; Tue, 16 Nov 2021 04:00:38 -0800 (PST) Received: by mail-wm1-x329.google.com with SMTP id p3-20020a05600c1d8300b003334fab53afso1731832wms.3 for ; Tue, 16 Nov 2021 04:00:38 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=vxul1YYNwYQX3tFj/SVCdT0l2SN3rSACHXGzLgadBwE=; b=FEAkI6Z+O2w5pB8oLpJou9J/iFlmyW+v4htuGC9VAvEMmyC9w7jZ7L/bMFhrcgBgKy khBAnCZC4GIZDjrIp4y4Kw1COrpAfbvh5TUcbnK3UOHl+hAbBujaTRSCrzRPlQ9FZwpX sZuXz1tPab536KaN+7GEl3pri4Ca+F6DtGjw8KwNhixiedaQJTkboEBWZhY/StEe+tCR a7A4FTQKipphMa5IHOAyqw8r5UBWSgtbswMZy6fLgeHBwHhZxoBre00M93ZfU5j0LmJZ A7uITRS0995fGOISCfF06pQsNqTWjLWvFBe8LbPA3L3mRaxdYY0JJHLsIGCmYMeZ9FXE OBaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=vxul1YYNwYQX3tFj/SVCdT0l2SN3rSACHXGzLgadBwE=; b=XHVC5AaGcxpiQJhG3IKlabZZDcNp9uySP/FGittVOdirKmUZ95Fui5PpqqD2i7/2yz PPGuSbbzZMbx8iOJs7EpsX4nsZOqdp0p4rHYsSrOqGIMOykORE8CsuiwSUXCarzQDyo8 JAFb5DpbDXLDTKyknyON6AFcX1C8PPnnhYifwHmAbhqEwXy5x+UAO/JOKomgq7oHz4ze L1OeFSsTSRiCHTAQdQS/0VBgH7k9htNSve0C1rigqwQz/ZvgFL8RpRRmHDni5Y5xEOEH aFR//0xWhMJY/J5WZjx+R2tKdts54+fGIT9v7jYxU9NoHzocABtU+0w3wmg5rmTjrjU+ 1SPw== X-Gm-Message-State: AOAM5303Lqwmj3Hz6IvkVMM0+47vblPRt4CpGCKotlcmUpyyOmDYQfs3 R5RkaWO4b9312uY3fKSZBar9wFdBOhc76w== X-Google-Smtp-Source: ABdhPJyzWv7yscW9v6LKma+Fi0FZaM49yoJpVD6zCvsM3bTQUE26Zuw8wZidlgKyEjUmz3bydBkayQ== X-Received: by 2002:a05:600c:4e4a:: with SMTP id e10mr6861285wmq.176.1637064036720; Tue, 16 Nov 2021 04:00:36 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:36 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 02/23] Makefile: don't set up "perl/build" rules under NO_PERL=Y Date: Tue, 16 Nov 2021 13:00:02 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Do not define LIB_{PERL,CPAN}{,_GEN} if NO_PERL is defined. This changes no functionality, but makes it clear which of these rules are needed under NO_PERL=Y. See 20d2a30f8ff (Makefile: replace perl/Makefile.PL with simple make rules, 2017-12-10) for the initial implementation. We do for better or worse rely on "install-doc" calling "install-man-perl" regardless of whether NO_PERL=Y is defined or not, i.e. we'll always end up with that manual page, even if we don't have any of the Perl code installed. Let's add a comment about that adjacent to the rules that build perl/build. Signed-off-by: Ævar Arnfjörð Bjarmason --- Makefile | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 11da97de233..06405825a24 100644 --- a/Makefile +++ b/Makefile @@ -2684,19 +2684,12 @@ endif po/build/locale/%/LC_MESSAGES/git.mo: po/%.po $(QUIET_MSGFMT)mkdir -p $(dir $@) && $(MSGFMT) -o $@ $< +ifndef NO_PERL LIB_PERL := $(wildcard perl/Git.pm perl/Git/*.pm perl/Git/*/*.pm perl/Git/*/*/*.pm) LIB_PERL_GEN := $(patsubst perl/%.pm,perl/build/lib/%.pm,$(LIB_PERL)) LIB_CPAN := $(wildcard perl/FromCPAN/*.pm perl/FromCPAN/*/*.pm) LIB_CPAN_GEN := $(patsubst perl/%.pm,perl/build/lib/%.pm,$(LIB_CPAN)) -ifndef NO_PERL -all:: $(LIB_PERL_GEN) -ifndef NO_PERL_CPAN_FALLBACKS -all:: $(LIB_CPAN_GEN) -endif -NO_PERL_CPAN_FALLBACKS_SQ = $(subst ','\'',$(NO_PERL_CPAN_FALLBACKS)) -endif - perl/build/lib/%.pm: perl/%.pm GIT-PERL-DEFINES $(QUIET_GEN)mkdir -p $(dir $@) && \ sed -e 's|@@LOCALEDIR@@|$(perl_localedir_SQ)|g' \ @@ -2704,6 +2697,14 @@ perl/build/lib/%.pm: perl/%.pm GIT-PERL-DEFINES -e 's|@@NO_PERL_CPAN_FALLBACKS@@|$(NO_PERL_CPAN_FALLBACKS_SQ)|g' \ < $< > $@ +all:: $(LIB_PERL_GEN) +ifndef NO_PERL_CPAN_FALLBACKS +all:: $(LIB_CPAN_GEN) +endif +NO_PERL_CPAN_FALLBACKS_SQ = $(subst ','\'',$(NO_PERL_CPAN_FALLBACKS)) +endif + +# install-man depends on Git.3pm even with NO_PERL=Y perl/build/man/man3/Git.3pm: perl/Git.pm $(QUIET_GEN)mkdir -p $(dir $@) && \ pod2man $< $@ From patchwork Tue Nov 16 12:00:03 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622211 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 61FDCC433F5 for ; Tue, 16 Nov 2021 12:02:45 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 497FF61040 for ; Tue, 16 Nov 2021 12:02:45 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235581AbhKPMFl (ORCPT ); Tue, 16 Nov 2021 07:05:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33598 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235814AbhKPMEd (ORCPT ); Tue, 16 Nov 2021 07:04:33 -0500 Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 202CEC06121D for ; Tue, 16 Nov 2021 04:00:39 -0800 (PST) Received: by mail-wm1-x330.google.com with SMTP id g191-20020a1c9dc8000000b0032fbf912885so2183175wme.4 for ; Tue, 16 Nov 2021 04:00:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=a+3T1NYWnCm3oc8E6iQ2ln3ogGtXMv1bYmNy/z1NChQ=; b=TnNESP+xtt2NEKgmtzF5OiTmu2g/Qviv4J4nNE5s3cbya9DiExW6m3AMV88mlR+2OL FSWmfG3PErSSLPVwTs6x1gD+fDb355ZQmM358A0sJyjNNIzLVjMz/EjxpyKS1gH15+lf v7K/Xmy+rEUru2faWmt8gn+bcEQg3m7DEkb/DYTkXyNkxRKDp72HdVIYLKHtJKS3Qyiw FsCO3PNo6YH+gN23pTvhjAQ9qnCTZj6DHuw9O898pVbSwDZAS8b3NpQMDLFycWfq+9Gd U5Qwv4fBXy8u/D6KKCTTghsyYjO+2mfjZNuip0XtTh6hJTd9Z1blSrQSvXzafqfUS+S6 KFdA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=a+3T1NYWnCm3oc8E6iQ2ln3ogGtXMv1bYmNy/z1NChQ=; b=BUk87kK13MJSjW0l6lpYPVvgZtPQEjHGFuQi7nTOFhoY0qC1nIB9c8aYWcTwCQeWA+ c6C2JuIgWc5KygehiK/+bogU34UarKlwm8Vd+z1kIe9+wUa+2/HcRdgQtR8BXxfLgXoD uDVPTyah5CO1RDBUsrmLmZ08mYPJSFhrlixpI5vM5Aus5+AnlNNHiTZ/fHtcnYDrTIl2 Ap3g5J4diK/dr9NBA2vZ2xDonecFaMtPnPxOCloAcMlcGG7iK1boQXnTO/m1x92Kzvnw CCXqfyRIdP8yRqXG2I2d01HNQ31u00dpvVe29fyJmREJJvEtObzC5m2ZvrcXVrUPHGcx klQA== X-Gm-Message-State: AOAM530QOxv7dk4OF99GJzzVEA2Xo+MJTeJ33tzWBXkL/srI3TiYA6l/ L8MEYP0MMR/nC17s6iciBzslji56x72yQQ== X-Google-Smtp-Source: ABdhPJwXMvXz4InA0iDVl7pobRpk7aMfacUCSoyI/IS1lUeL1dYaoEtJUZ6/ogXgjftVRb4J+5YVCA== X-Received: by 2002:a05:600c:4fca:: with SMTP id o10mr6997062wmq.175.1637064037483; Tue, 16 Nov 2021 04:00:37 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.36 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:36 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 03/23] Makefile: use "=" not ":=" for po/* and perl/* Date: Tue, 16 Nov 2021 13:00:03 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Change these variable definitions from being simply-expanded to be recursively expanded instead. I.e. they'll be lazily expanded when used. I added these in 5e9637c6297 (i18n: add infrastructure for translating Git with gettext, 2011-11-18) and 20d2a30f8ff (Makefile: replace perl/Makefile.PL with simple make rules, 2017-12-10), the reason for using ":=" over "=" was that I didn't know the difference in 2011 (I think I copied some POC code), and in 2017 I used the 2011 commit for reference. Signed-off-by: Ævar Arnfjörð Bjarmason --- Makefile | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Makefile b/Makefile index 06405825a24..6b77702e102 100644 --- a/Makefile +++ b/Makefile @@ -2672,11 +2672,11 @@ po/git.pot: $(GENERATED_H) FORCE pot: po/git.pot ifdef NO_GETTEXT -POFILES := -MOFILES := +POFILES = +MOFILES = else -POFILES := $(wildcard po/*.po) -MOFILES := $(patsubst po/%.po,po/build/locale/%/LC_MESSAGES/git.mo,$(POFILES)) +POFILES = $(wildcard po/*.po) +MOFILES = $(patsubst po/%.po,po/build/locale/%/LC_MESSAGES/git.mo,$(POFILES)) all:: $(MOFILES) endif @@ -2685,10 +2685,10 @@ po/build/locale/%/LC_MESSAGES/git.mo: po/%.po $(QUIET_MSGFMT)mkdir -p $(dir $@) && $(MSGFMT) -o $@ $< ifndef NO_PERL -LIB_PERL := $(wildcard perl/Git.pm perl/Git/*.pm perl/Git/*/*.pm perl/Git/*/*/*.pm) -LIB_PERL_GEN := $(patsubst perl/%.pm,perl/build/lib/%.pm,$(LIB_PERL)) -LIB_CPAN := $(wildcard perl/FromCPAN/*.pm perl/FromCPAN/*/*.pm) -LIB_CPAN_GEN := $(patsubst perl/%.pm,perl/build/lib/%.pm,$(LIB_CPAN)) +LIB_PERL = $(wildcard perl/Git.pm perl/Git/*.pm perl/Git/*/*.pm perl/Git/*/*/*.pm) +LIB_PERL_GEN = $(patsubst perl/%.pm,perl/build/lib/%.pm,$(LIB_PERL)) +LIB_CPAN = $(wildcard perl/FromCPAN/*.pm perl/FromCPAN/*/*.pm) +LIB_CPAN_GEN = $(patsubst perl/%.pm,perl/build/lib/%.pm,$(LIB_CPAN)) perl/build/lib/%.pm: perl/%.pm GIT-PERL-DEFINES $(QUIET_GEN)mkdir -p $(dir $@) && \ From patchwork Tue Nov 16 12:00:04 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622213 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id E900BC433FE for ; Tue, 16 Nov 2021 12:02:46 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CD45661B31 for ; Tue, 16 Nov 2021 12:02:46 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236027AbhKPMFl (ORCPT ); Tue, 16 Nov 2021 07:05:41 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33684 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235815AbhKPMEd (ORCPT ); Tue, 16 Nov 2021 07:04:33 -0500 Received: from mail-wr1-x429.google.com (mail-wr1-x429.google.com [IPv6:2a00:1450:4864:20::429]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D114BC06121E for ; Tue, 16 Nov 2021 04:00:39 -0800 (PST) Received: by mail-wr1-x429.google.com with SMTP id d5so37076226wrc.1 for ; Tue, 16 Nov 2021 04:00:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=vzWaOCkAyT1oTOILPGPWZBp90e8wv/Ne5RQ32RxgOAM=; b=axaYZPpEQhW05nTanvasnipKYq727puFWQVfpnLwwZ/NMuezzCQrytJ+kiqjX0f900 fjIeLtn6lY/rwYMXJff/MKECcg8xG/wWauMsJf7ztHx1xQJ5xVgG8EUayU4Uiil936br SM1HkWgW4zmdtqENGxqskp7x9AFs6Jd+uAEZ4jvyQvmO0mMZoNhCHl4vWpYKtkwP1QoM 2gxRk9K0V4V0+8tMToDZRIohvx/gDhWJzGqltDYRSjDZ1voqXBU2Us2kbyzlzcneLxxt VhUURqhA8U3RojQFN1jO2C7R+4k6Mn/3Du91W0IksmsaCoOJikq7b/RVLKEQKvq1hGdr ZWzg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=vzWaOCkAyT1oTOILPGPWZBp90e8wv/Ne5RQ32RxgOAM=; b=cCi7NR/qERsYYMk0YgAok3F2Ux923at63UaiREppe6v5GhUhoQDw5g8UTdZNQ/TXPe J32mIDtqK5EygQgPSyQP7E/NMCfHIxSnjOyWZvljrnVaZa4o9Rv3PZ6dcsgOxXlIOsW5 6FsW3ZEwB/ffYOw6LPj880uQRLZmoBGyw57tiWzgZpS5i8OWpOMePX2wsL0+jCpJpFxO qzAo7qgyAla/pVizPJZruXSO0b/Ix/Im990/uEEkUO8F0CaEPygX5lysBkZyP7hJpgaK bz/0Ryy0TAHgOCLeiAT+aLLPfCdWF+Hj5eIKxLGCBa3Mm3u3zPEDYbpfUb265UQCyLCF tsPQ== X-Gm-Message-State: AOAM530xWbetQcHUoQFZpX6d+TiebbdJQBxcUy70jmbJDDz2Mpw1ORly W8tC1121QAgEhVE+RplWCvNsZ5fo4l4hug== X-Google-Smtp-Source: ABdhPJyYi5fjuSS4TzinQdb7kxNXgFqlYrGAPyfUEEF6lMPdr21R8ivm9jd5F9+KEoL2or9IdZ5Ofg== X-Received: by 2002:a5d:59ab:: with SMTP id p11mr8432535wrr.340.1637064038236; Tue, 16 Nov 2021 04:00:38 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:37 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 04/23] Makefile: clean perl/build/ even with NO_PERL=Y Date: Tue, 16 Nov 2021 13:00:04 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Fix a regression in 499c29394ce (Makefile: allow building without perl, 2009-04-03) where we'd stop cleaning the perl/* directory because NO_PERL was defined, thus leaving behind litter if the flag at "clean" time didn't match that of build time. In 499c29394ce this was done to avoid relying on the perl/Makefile.PL, but since my 20d2a30f8ff (Makefile: replace perl/Makefile.PL with simple make rules, 2017-12-10) we can clean things in that directory unconditionally. Signed-off-by: Ævar Arnfjörð Bjarmason --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 6b77702e102..a71fba15e30 100644 --- a/Makefile +++ b/Makefile @@ -3234,6 +3234,7 @@ clean: profile-clean coverage-clean cocciclean $(RM) $(HCC) $(RM) -r bin-wrappers $(dep_dirs) $(compdb_dir) compile_commands.json $(RM) -r po/build/ + $(RM) -r perl/build/ $(RM) *.pyc *.pyo */*.pyc */*.pyo $(GENERATED_H) $(ETAGS_TARGET) tags cscope* $(RM) -r .dist-tmp-dir .doc-tmp-dir $(RM) $(GIT_TARNAME).tar.gz @@ -3242,7 +3243,6 @@ clean: profile-clean coverage-clean cocciclean $(RM) Documentation/GIT-EXCLUDED-PROGRAMS ifndef NO_PERL $(MAKE) -C gitweb clean - $(RM) -r perl/build/ endif $(MAKE) -C templates/ clean $(MAKE) -C t/ clean From patchwork Tue Nov 16 12:00:05 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622217 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 26195C433F5 for ; Tue, 16 Nov 2021 12:02:56 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0DA1B61040 for ; Tue, 16 Nov 2021 12:02:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236049AbhKPMFv (ORCPT ); Tue, 16 Nov 2021 07:05:51 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33710 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235816AbhKPMEd (ORCPT ); Tue, 16 Nov 2021 07:04:33 -0500 Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8DBB9C061220 for ; Tue, 16 Nov 2021 04:00:40 -0800 (PST) Received: by mail-wr1-x431.google.com with SMTP id s13so37114115wrb.3 for ; Tue, 16 Nov 2021 04:00:40 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=5Y8Ujq6qGOd3NqRgUwFyGFX0aUIjId4CKZRnoX3PP1U=; b=LaKVfMSytuPNC0kYU8HeZt1T0DAKdOIOHrA/wIN4SDv+tCxXguqx+HnLI4Ep2pU6IM mJNJKyJfXIB8Kv/ztT544z14HghlQ44rIP7aMgiGLhZByYKtBEjdUWVRt7hjkoPM1IfP qpu8kyR5Vg2+xuhDMtmV0g30C6NfQxqg4P2QqjxYj0dJzP2fxnsMWpMpTXgk2XsKpy8Z 88QM6/hyo5z7gcxUsnggDooDbt/G8z5sfm1jwYQ3Pa+Cy6HRIjgoCAcs2yG8hX2/jU5+ I8kJbO6KRlPKocmru2Mmyu0x1V08T//fVIYFL/XpqJl3NlID0nE2J8p7gpl2cFiHjlWP O3ug== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=5Y8Ujq6qGOd3NqRgUwFyGFX0aUIjId4CKZRnoX3PP1U=; b=HYN/vLba6neirrnF8lnlWUFEJUIaWf10pPphaain/4cIa2i18/3z0C/zqNlZVVKDj6 uVrvZcspyipeoiyxev5qQsyX+882iydvsFa93+WSTVBLRRFEqnNOMINHz+0zMhIRHi4K g+Rxli3GdjGZ4DPFXQmTdMmGTW2tugiqoYDaHJ5EfBWlq10zDXeyECa9zba9Nw3BaxPq L5/LocXrM2KX/1dKQm1IM5Mwdum4uxoflN0GmDkatbqNLF6/1jU2gZvJTPQnmeFGydTT OZpEr1ORKbBDVl531WkSwcgHmEd84nQo0csOQtwCWL687SsYdRZ+n3BtagMkGUgc7oRk kG6A== X-Gm-Message-State: AOAM533zi1u2aRL7kWMUP3ScWXD95Nuoy/MAbzr+FkfLFdPNYJEwE9iv vKfqTsueHNfiJu0krpACS8JuMtR0Kalzww== X-Google-Smtp-Source: ABdhPJzNeIiSQdvXep22XEimZOw6a38lOSpy5btba3Y0jBOy5++yGKtWMJbFjh/tlclK43CoJJKxsA== X-Received: by 2002:a05:6000:15c1:: with SMTP id y1mr8765778wry.63.1637064038971; Tue, 16 Nov 2021 04:00:38 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:38 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 05/23] Makefile: remove "mv $@ $@+" dance redundant to .DELETE_ON_ERROR Date: Tue, 16 Nov 2021 13:00:05 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Since 7b76d6bf221 (Makefile: add and use the ".DELETE_ON_ERROR" flag, 2021-06-29) we don't need to guard the clobbering of $@ with this sort of "mv $@+ $@" pattern in these cases where we're merely generating a file that'll be used as a dependency for other files, as in this case for GIT-PERL-HEADER. Signed-off-by: Ævar Arnfjörð Bjarmason --- Makefile | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/Makefile b/Makefile index a71fba15e30..284725099c9 100644 --- a/Makefile +++ b/Makefile @@ -2349,8 +2349,7 @@ GIT-PERL-HEADER: $(PERL_HEADER_TEMPLATE) GIT-PERL-DEFINES Makefile -e 's=@@PERLLIBDIR_REL@@=$(perllibdir_relative_SQ)=g' \ -e 's=@@GITEXECDIR_REL@@=$(gitexecdir_relative_SQ)=g' \ -e 's=@@LOCALEDIR_REL@@=$(localedir_relative_SQ)=g' \ - $< >$@+ && \ - mv $@+ $@ + $< >$@ .PHONY: perllibdir perllibdir: From patchwork Tue Nov 16 12:00:06 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622215 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2839FC433EF for ; Tue, 16 Nov 2021 12:02:50 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 12A0C61B31 for ; Tue, 16 Nov 2021 12:02:50 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235840AbhKPMFp (ORCPT ); Tue, 16 Nov 2021 07:05:45 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33600 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235817AbhKPMEd (ORCPT ); Tue, 16 Nov 2021 07:04:33 -0500 Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 36F9FC061224 for ; Tue, 16 Nov 2021 04:00:41 -0800 (PST) Received: by mail-wm1-x32a.google.com with SMTP id 133so16723196wme.0 for ; Tue, 16 Nov 2021 04:00:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Zgie3GtPWoA96xu+bKyUrQ3tuGsqk6+zGm2gvh763ok=; b=TemQOGiasTS/OZw96c3K5sf5js9sQ5agl9DcnGyQE/RkRAW/TmPFAS5thS+82HxJKA CJdUq+dmDKSE1ouDFqJjfwAZhhHSUrRwkhvLQT322+ubPZqJ44WApZ50bIv7c8dFu//h 5GT+gGDaBf5O9KbhJpvqu6LbfKodIdgNu6P3iQUxRTsezOCwoYRqpTKUsJZtJPhxLF4m HOO8uh4oog3Dmixy8fspMeXy40KQCAPD7NQkzmwzuB7O02IsIy7sH6K4o5PEEl7RcFTo kgcrTwVGcgBGVAdT4VVocl7yB/z5KUgbCt+G+oV2gTKFcH1rU4+/uQzzL0I3vbeCdZWn L+CA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Zgie3GtPWoA96xu+bKyUrQ3tuGsqk6+zGm2gvh763ok=; b=gxijOusp19ayO49PQB3/Kdh67xNneL6wZMePqtY8plMN0wJX/k4yZsWmv+d9BETOct cHdYG8vOAGgvtttFIdG+xc3sH6vKJVuFpvPICJM4U5hFC7moI9P439NBZn0IcgDd+0ft NyQ7K9oBUSBkS5O8DY9hYuD6OUz9xtMEatPXNR+SZK6/fY4oix3i3srqqyWzdU8+glCD 6pADzi9ji8X+OE4oBdGZH4O/HUEiib7tuhqXJySrfnf1CklOeiaM1XBpliQBobZvtnKt 6xAaN2jrQeg9FQcGYRc4tqo/Y4mDM25Pwy0gpcdEck97nPJi4ViAxpXP8TKQHlc8AFZZ c6OA== X-Gm-Message-State: AOAM532OC4sYCfS8GOAg7iDatXtolyDlv2FGzTDQiYb5cY3HatwWo1Wf WtkGS634cZyC3rdwdTAuxJ0AK12JvtIgQg== X-Google-Smtp-Source: ABdhPJywnCx4jVsd0bHny3uQmypiGxBA3Noucv6piXlVp4y5q1Ew+EoG+OJUH50GKqL5Tti7G7P33A== X-Received: by 2002:a05:600c:35d4:: with SMTP id r20mr7265294wmq.76.1637064039623; Tue, 16 Nov 2021 04:00:39 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:39 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 06/23] Makefile: guard Perl-only variable assignments Date: Tue, 16 Nov 2021 13:00:06 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Move the "ifndef NO_PERL" a few lines earlier to encompass the "perl_localedir_SQ" variable. We'll only use it under !NO_PERL. Signed-off-by: Ævar Arnfjörð Bjarmason --- Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 284725099c9..0cb10f00ebb 100644 --- a/Makefile +++ b/Makefile @@ -2291,11 +2291,11 @@ git.res: git.rc GIT-VERSION-FILE GIT-PREFIX # This makes sure we depend on the NO_PERL setting itself. $(SCRIPT_PERL_GEN): GIT-BUILD-OPTIONS +ifndef NO_PERL # Used for substitution in Perl modules. Disabled when using RUNTIME_PREFIX # since the locale directory is injected. perl_localedir_SQ = $(localedir_SQ) -ifndef NO_PERL PERL_HEADER_TEMPLATE = perl/header_templates/fixed_prefix.template.pl PERL_DEFINES = PERL_DEFINES += $(PERL_PATH_SQ) From patchwork Tue Nov 16 12:00:07 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622231 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 17E61C433EF for ; Tue, 16 Nov 2021 12:03:57 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id F06A161414 for ; Tue, 16 Nov 2021 12:03:56 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236124AbhKPMGr (ORCPT ); Tue, 16 Nov 2021 07:06:47 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33624 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235823AbhKPMEf (ORCPT ); Tue, 16 Nov 2021 07:04:35 -0500 Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E8385C061226 for ; Tue, 16 Nov 2021 04:00:41 -0800 (PST) Received: by mail-wr1-x433.google.com with SMTP id d24so37129048wra.0 for ; Tue, 16 Nov 2021 04:00:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=klTjINaqjN/jgn6GXv6s9qPSilPAQPY1xHxfkZ7f6cc=; b=ZYUGXaTTIlve/ooopKOzBUWlja/lQoLz+jXtx8VaQdmnISUrzwQRFIqXkgFaDxgKwT SXtyW4IvK3+MbLHxiXPciJCc8271vdmAMumP8sO3clarU7MYrSfE1+KI5qYM0GFexdXR NKU4AKuTTDWjkGGrhMHYx7+JPCS42KwH4lhFkbANTPlOXUUVSK36DdOHPOkdTOsaaJhq Bd0mOWj96XdI+2UUufKtlGNidffx32INVdIB3eSdqsUeDlCWeRcnS+WaaCxavpbD+qLd WJ5phbuev4kIZL8SICD7hb+Ea6AlKo+glrwX6GxhBJXfj2uMR/PRKBC8qIWmc4D6zZv9 1C/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=klTjINaqjN/jgn6GXv6s9qPSilPAQPY1xHxfkZ7f6cc=; b=h/A91UX2l4OK3L8UiPwZD7N8AZcSRDK0k7OeeVSmQJ1XxYP/00tZNPHANCnKA5wAqv x4QaIMNSVfKwNXlA9/WQUwQfKQag97ny9K70E1DRgZlOFWCdrfLUMkro9nnnB3WCx/PF SoEmGPy3IrIX6Fu+CGVxb56EFvtFIk3JsIt+8LR9fHegUUa+jcksKWDSqJSHwmwSLj7o lCiNYZbQ5Qn2RsfSWg3SkVKziVVg730VmYnmbp8JoxKtPGm8dpeYTMUW7v1V8CICh53I +5eL16WMYdK4kZ8jwV6/WG1SbJyK59ZokmXcJUL9nmr9OYPaM+PvfkVYV8NJMrvQj/Sv +6zQ== X-Gm-Message-State: AOAM5336igivJjBAcaz/ZGN60Hl6eP0dnsRNvU3laNG9xJycbKLcvXDq FSE2ALz9TWYaWGwhMXkt5h1LUkin6TPC5w== X-Google-Smtp-Source: ABdhPJyh88vyeCt18BxK9vrpELA3JqKGInYHQpDG7nmARpjNSXzKqea/pHM4HI1rQjQTu46WwH+L8g== X-Received: by 2002:adf:f60e:: with SMTP id t14mr8667679wrp.112.1637064040328; Tue, 16 Nov 2021 04:00:40 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:39 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 07/23] Makefile: change "ifndef NO_PERL" to "ifdef NO_PERL" Date: Tue, 16 Nov 2021 13:00:07 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Change the NO_PERL variable assignments so that they declare the much smaller fallback condition first. Signed-off-by: Ævar Arnfjörð Bjarmason --- Makefile | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 0cb10f00ebb..288f4834db8 100644 --- a/Makefile +++ b/Makefile @@ -2291,7 +2291,15 @@ git.res: git.rc GIT-VERSION-FILE GIT-PREFIX # This makes sure we depend on the NO_PERL setting itself. $(SCRIPT_PERL_GEN): GIT-BUILD-OPTIONS -ifndef NO_PERL +ifdef NO_PERL +$(SCRIPT_PERL_GEN) git-instaweb: % : unimplemented.sh + $(QUIET_GEN) \ + sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \ + -e 's|@@REASON@@|NO_PERL=$(NO_PERL)|g' \ + unimplemented.sh >$@+ && \ + chmod +x $@+ && \ + mv $@+ $@ +else # NO_PERL # Used for substitution in Perl modules. Disabled when using RUNTIME_PREFIX # since the locale directory is injected. perl_localedir_SQ = $(localedir_SQ) @@ -2363,14 +2371,6 @@ git-instaweb: git-instaweb.sh GIT-SCRIPT-DEFINES $(QUIET_GEN)$(cmd_munge_script) && \ chmod +x $@+ && \ mv $@+ $@ -else # NO_PERL -$(SCRIPT_PERL_GEN) git-instaweb: % : unimplemented.sh - $(QUIET_GEN) \ - sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \ - -e 's|@@REASON@@|NO_PERL=$(NO_PERL)|g' \ - unimplemented.sh >$@+ && \ - chmod +x $@+ && \ - mv $@+ $@ endif # NO_PERL # This makes sure we depend on the NO_PYTHON setting itself. From patchwork Tue Nov 16 12:00:08 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622229 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 9C751C433EF for ; Tue, 16 Nov 2021 12:03:47 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7D7736140A for ; Tue, 16 Nov 2021 12:03:47 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236115AbhKPMGk (ORCPT ); Tue, 16 Nov 2021 07:06:40 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33720 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235733AbhKPMEf (ORCPT ); Tue, 16 Nov 2021 07:04:35 -0500 Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AFFE9C061227 for ; Tue, 16 Nov 2021 04:00:42 -0800 (PST) Received: by mail-wm1-x32a.google.com with SMTP id i8-20020a7bc948000000b0030db7b70b6bso1743358wml.1 for ; Tue, 16 Nov 2021 04:00:42 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=u4Bcy5NxgsNvhTA1DszLMvlWZrOobM8cSJBXupNUz/4=; b=SNuDX5B0jTrkmLPiJa/hprQQPVewK2E19h/6IEdbspnmNQSAzvJ6xsH/GoLLxnFtVl 5vMjaU+X2uNxPx5m2v65fegfqZoNj3CPHv3o+juIaleWlozAK2scAlpyVNf1pSzqlScb ufIlEhV5N3igo8Z7/vrxWEUFqshsWlNjJtq7Xo361eBk2IFCZuA3zBkFZwavY4ybQYho rzgIsXuSqBVXhbl6/vpqL2TDOeOIoDd//vLLPY4PdBNW7EQ7aII5d7d1Vi9aKEX0+bzH WM61d9ArgITOorAg2UZMJOZRvwCRu/toKHIDlFx0Cnw6naHgSIPf1+nYp9l/fSkpgCQu j1EQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=u4Bcy5NxgsNvhTA1DszLMvlWZrOobM8cSJBXupNUz/4=; b=wE3R+fnt70hoG3suCEWscMHsMROJRJbIKZsNVWbrwgy3lYr6xmcPLl8l0E2fUbinRe g4SQYTLxMRUeKxWGjHqlzn33GLw5up6FIHqyfGXkGooFbAhcwXXw/czXtU+kh5taw2w5 meU3Y8N4QtPMR9zgZY3JltCsICTF3gQ/aqwscKoaQTYNIwdROZQjCZJBn45zN0DDJW41 JCVpd6QzOV9lsWVVr9WsDCsi6zg/k10j2+kwb9HQ0zisGNrT5t4HhnFrkBlZFBIcNKhh X5veaVb1yJh/lZZ+s3NpUNmcSwZHXL9dMJPjXk7YDZslX0j+kRaB6suzCKG39iD+FIWo Kbvg== X-Gm-Message-State: AOAM533XXi91pU+U3jdVqy+W8UYKEjJFIbyrDwqUJQWVO38I0G7XRcOL OqusT1LkBmj7jkT3jEYM2wn0iU3/8tuFDw== X-Google-Smtp-Source: ABdhPJwL+kUA3Y/nSEk68kzNCrGePuIiHengGXUTpVuwRuLDAyVHcIpnbnuMY/h85Kx0SLty0eS+og== X-Received: by 2002:a1c:447:: with SMTP id 68mr68957049wme.69.1637064041070; Tue, 16 Nov 2021 04:00:41 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.40 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:40 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 08/23] Makefile: adjust Perl-related comments & whitespace Date: Tue, 16 Nov 2021 13:00:08 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Folllow-up my 4070c9e09fc (Makefile: don't re-define PERL_DEFINES, 2021-05-05) and move the rest of the assignments to PERL_DEFINES to one place. Signed-off-by: Ævar Arnfjörð Bjarmason --- Makefile | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/Makefile b/Makefile index 288f4834db8..ab78f8dd42e 100644 --- a/Makefile +++ b/Makefile @@ -2312,21 +2312,19 @@ PERL_DEFINES += $(perllibdir_SQ) PERL_DEFINES += $(RUNTIME_PREFIX) PERL_DEFINES += $(NO_PERL_CPAN_FALLBACKS) PERL_DEFINES += $(NO_GETTEXT) +PERL_DEFINES += $(gitexecdir) +PERL_DEFINES += $(perllibdir) +PERL_DEFINES += $(localedir) +PERL_DEFINES := $(subst $(space),:,$(PERL_DEFINES)) -# Support Perl runtime prefix. In this mode, a different header is installed -# into Perl scripts. ifdef RUNTIME_PREFIX - PERL_HEADER_TEMPLATE = perl/header_templates/runtime_prefix.template.pl -# Don't export a fixed $(localedir) path; it will be resolved by the Perl header -# at runtime. +# The RUNTIME_PREFIX header defines $Git::I18N::TEXTDOMAINDIR, so +# $(perl_localedir_SQ) won't be needed perl_localedir_SQ = - endif -PERL_DEFINES += $(gitexecdir) $(perllibdir) $(localedir) - $(SCRIPT_PERL_GEN): % : %.perl GIT-PERL-DEFINES GIT-PERL-HEADER GIT-VERSION-FILE $(QUIET_GEN) \ sed -e '1{' \ @@ -2339,7 +2337,6 @@ $(SCRIPT_PERL_GEN): % : %.perl GIT-PERL-DEFINES GIT-PERL-HEADER GIT-VERSION-FILE chmod +x $@+ && \ mv $@+ $@ -PERL_DEFINES := $(subst $(space),:,$(PERL_DEFINES)) GIT-PERL-DEFINES: FORCE @FLAGS='$(PERL_DEFINES)'; \ if test x"$$FLAGS" != x"`cat $@ 2>/dev/null`" ; then \ From patchwork Tue Nov 16 12:00:09 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622227 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 7E9FDC433F5 for ; Tue, 16 Nov 2021 12:03:42 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 61A8461B39 for ; Tue, 16 Nov 2021 12:03:42 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235695AbhKPMGb (ORCPT ); Tue, 16 Nov 2021 07:06:31 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33732 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235706AbhKPMEg (ORCPT ); Tue, 16 Nov 2021 07:04:36 -0500 Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [IPv6:2a00:1450:4864:20::32e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9C033C061228 for ; Tue, 16 Nov 2021 04:00:43 -0800 (PST) Received: by mail-wm1-x32e.google.com with SMTP id k37-20020a05600c1ca500b00330cb84834fso1733897wms.2 for ; Tue, 16 Nov 2021 04:00:43 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=hInNR+nhuE/zSD4l17a7t44fs7UBSgKVKtmZ2RaI0cQ=; b=QG9QoO2UbKV6sSung8ImfQvL8JmxFLrFjxKo8Uo7cAmQcCnBzyGb1swJfRte8SzPDT 489FvIhrSBOlxgM3eokDRx2dtOHYO9v8B0dxg+CivYzA4KzdjX41Dc6U2mrbr1Oyjom2 FphJyreLp42rr0WAMPnuUkcM6L/YKYFoA3Tw1eYokWCYfhFEBPtDwB7d0qjREFIPsafe rpWGpJgzCUmIQGGDg7Ue6PXo1yUv7n+iI0T+aPDF3jG5ilUT6vD6jxb8ddXhJY/GU2a7 J+qqN/v8ibLZAWOVi7u2eyoNSxDXLpTgyj/9DoIHIHKTLcS5C+d2PdmGD/0hGnWPCd0f mAnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=hInNR+nhuE/zSD4l17a7t44fs7UBSgKVKtmZ2RaI0cQ=; b=79cmLfLh4+b4g0jfEh/cfvyF/c7he5v70ciqQ1w3cOH9WQ2qTzZUGCfajcxoL8PFZ0 eqJDnDU15a8C//658m7oU/oXrUqAp14SGf2Kegtyo2EHI4s07Sg1XLpbtfonQiV0XWq9 k9y/EY1Gw0ySb4u1tCU5Vu/Nm9i48AaULvz1zmLthLlShSu7dLDg9D9o1LJuIjFRFCiJ Q9GAMTaVDHkAVzN5HZUZsZZbPCQ9nFOPwI864tifLIunGRiDiNUdI8s30x/8DVc3csnV U+r27HFofluJndrQVMG71QUp2ENefQPHTgop+JT2QVVLXxlRT5rTgTZlRcGdjyhbN/P8 BwDw== X-Gm-Message-State: AOAM531EUJmRYrYhDCVUIsg/kKwG2tEvCnCPwiDGdtC8r5v//umuu/lM 73R580E+G5RfDRw+f9/lwGSQv6LGpXLJUQ== X-Google-Smtp-Source: ABdhPJwn7fmVssOBCNlQc3l4JyFl//mwEKZ89RpaAPEFap82cc50BJ4Vki4LfqUtgTWSMbgUlsJuTg== X-Received: by 2002:a7b:c841:: with SMTP id c1mr68958469wml.80.1637064041916; Tue, 16 Nov 2021 04:00:41 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:41 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 09/23] Makefile: correct "GIT-PERL-{DEFINES,HEADER}" dependency graph Date: Tue, 16 Nov 2021 13:00:09 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Fix several small issues with the dependency graph of the generated "GIT-PERL-DEFINES" and "GIT-PERL-HEADER" files: 1. Don't have "GIT-PERL-HEADER" depend on the "Makefile". That was a lazy way to over-declare the dependencies added in f6a0ad4be71 (Makefile: generate Perl header from template file, 2018-04-10). Let's correct our dependency graph instead. 2. Don't have $(SCRIPT_PERL_GEN) (such as "git-send-email") depend on GIT-BUILD-OPTIONS. Let's instead use GIT-PERL-DEFINES. The reason for depending on "GIT-BUILD-OPTIONS" was to trigger a re-build if NO_PERL=Y was defined. We can instead add that variable to "PERL_DEFINES", and have "GIT-PERL-DEFINES" created and updated if "NO_PERL=Y" is defined. 3. Due to #2 we'll need to have GIT-PERL-DEFINES be generated even under NO_PERL, since that variable will be used by the "unimplemented.sh" script. 4. Don't depend on $(gitexecdir), $(perllibdir) and $(localedir), instead depend on the $(*_relative_SQ) versions of those. The latter is what we'll actually use, while it's unlikely to matter in practice (we'd just skip re-building these under RUNTIME_PREFIX if the relative path was the same) it makes the code easier to read. That's because this brings us to a 1=1 mapping of these variables and what's subsequently used in the "GIT-PERL-DEFINES", "GIT-PERL-HEADER" and "perl/build/lib/%.pm" rules below. 5. We don't need the substitution of " " for ":" added in 07d90eadb50 (Makefile: add Perl runtime prefix support, 2018-04-10), let's drop it. This doesn't matter for the correctness of these files, because unlike GIT-BUILD-OPTIONS nothing is consuming them except the Makefile itself. Signed-off-by: Ævar Arnfjörð Bjarmason --- Makefile | 42 +++++++++++++++++++++++++----------------- 1 file changed, 25 insertions(+), 17 deletions(-) diff --git a/Makefile b/Makefile index ab78f8dd42e..361abff2402 100644 --- a/Makefile +++ b/Makefile @@ -2288,10 +2288,14 @@ git.res: git.rc GIT-VERSION-FILE GIT-PREFIX $(shell echo $(GIT_VERSION) 0 0 0 0 | tr '.a-zA-Z-' ' '))) \ -DGIT_VERSION="\\\"$(GIT_VERSION)\\\"" -i $< -o $@ -# This makes sure we depend on the NO_PERL setting itself. -$(SCRIPT_PERL_GEN): GIT-BUILD-OPTIONS +# Under NO_PERL=Y we'll still make GIT-PERL-DEFINES. We need to depend +# on NO_PERL=Y itself for creating "unimplemented.sh" scripts. +PERL_DEFINES = +$(SCRIPT_PERL_GEN): GIT-PERL-DEFINES ifdef NO_PERL +PERL_DEFINES += $(NO_PERL) + $(SCRIPT_PERL_GEN) git-instaweb: % : unimplemented.sh $(QUIET_GEN) \ sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \ @@ -2300,22 +2304,26 @@ $(SCRIPT_PERL_GEN) git-instaweb: % : unimplemented.sh chmod +x $@+ && \ mv $@+ $@ else # NO_PERL -# Used for substitution in Perl modules. Disabled when using RUNTIME_PREFIX -# since the locale directory is injected. +# The localedir is only used in Perl modules if !NO_GETTEXT +ifndef NO_GETTEXT perl_localedir_SQ = $(localedir_SQ) +endif PERL_HEADER_TEMPLATE = perl/header_templates/fixed_prefix.template.pl -PERL_DEFINES = + PERL_DEFINES += $(PERL_PATH_SQ) PERL_DEFINES += $(PERLLIB_EXTRA_SQ) PERL_DEFINES += $(perllibdir_SQ) PERL_DEFINES += $(RUNTIME_PREFIX) PERL_DEFINES += $(NO_PERL_CPAN_FALLBACKS) PERL_DEFINES += $(NO_GETTEXT) -PERL_DEFINES += $(gitexecdir) -PERL_DEFINES += $(perllibdir) -PERL_DEFINES += $(localedir) -PERL_DEFINES := $(subst $(space),:,$(PERL_DEFINES)) +ifdef RUNTIME_PREFIX +PERL_DEFINES += $(gitexecdir_relative_SQ) +PERL_DEFINES += $(perllibdir_relative_SQ) +PERL_DEFINES += $(localedir_relative_SQ) +else +PERL_DEFINES += $(perllocaledir_SQ) +endif ifdef RUNTIME_PREFIX PERL_HEADER_TEMPLATE = perl/header_templates/runtime_prefix.template.pl @@ -2337,14 +2345,7 @@ $(SCRIPT_PERL_GEN): % : %.perl GIT-PERL-DEFINES GIT-PERL-HEADER GIT-VERSION-FILE chmod +x $@+ && \ mv $@+ $@ -GIT-PERL-DEFINES: FORCE - @FLAGS='$(PERL_DEFINES)'; \ - if test x"$$FLAGS" != x"`cat $@ 2>/dev/null`" ; then \ - echo >&2 " * new perl-specific parameters"; \ - echo "$$FLAGS" >$@; \ - fi - -GIT-PERL-HEADER: $(PERL_HEADER_TEMPLATE) GIT-PERL-DEFINES Makefile +GIT-PERL-HEADER: $(PERL_HEADER_TEMPLATE) GIT-PERL-DEFINES $(QUIET_GEN) \ INSTLIBDIR='$(perllibdir_SQ)' && \ INSTLIBDIR_EXTRA='$(PERLLIB_EXTRA_SQ)' && \ @@ -2370,6 +2371,13 @@ git-instaweb: git-instaweb.sh GIT-SCRIPT-DEFINES mv $@+ $@ endif # NO_PERL +GIT-PERL-DEFINES: FORCE + @FLAGS='$(PERL_DEFINES)'; \ + if test x"$$FLAGS" != x"`cat $@ 2>/dev/null`" ; then \ + echo >&2 " * new perl-specific parameters"; \ + echo "$$FLAGS" >$@; \ + fi + # This makes sure we depend on the NO_PYTHON setting itself. $(SCRIPT_PYTHON_GEN): GIT-BUILD-OPTIONS From patchwork Tue Nov 16 12:00:10 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622219 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 27E9DC433F5 for ; Tue, 16 Nov 2021 12:02:58 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 12B3A61B31 for ; Tue, 16 Nov 2021 12:02:58 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235847AbhKPMFx (ORCPT ); Tue, 16 Nov 2021 07:05:53 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33626 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235747AbhKPMEg (ORCPT ); Tue, 16 Nov 2021 07:04:36 -0500 Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com [IPv6:2a00:1450:4864:20::42d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 78158C061229 for ; Tue, 16 Nov 2021 04:00:44 -0800 (PST) Received: by mail-wr1-x42d.google.com with SMTP id i5so37089287wrb.2 for ; Tue, 16 Nov 2021 04:00:44 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=jf4RXCd0z9lfXfN8DlxDnYnxN7b5y/MQKB5pAP3Qfy4=; b=LaSw1UZZhFu5dlU2sv2veA3nw2q2hHALsSiJm8DCZk/Uu+uQpCBijDkPLtjDJdMnTU qA73AQParcFBXaH+GjrvbwtWOIFAh0abY/FqUFAzOPQ6hA6rHiy5JjztOAodqbrzcwaF Yn06b140VO0kDsVH58pd8nSBJAZerJa/+T12RLhJLe5py2pGePPJTudlLR3bRvT1A4Rf 7vXC9HJCMeQyErvJFFoLX/LA1TCsDJB12608+nknbB1Q1ayIfHgXmCTaCw15gONoJWPk m0VUmAbZF0ylwbfgqeYST0ghjRfpH0nZf6uTO2nDJpnc7OVSS1LEX29utcSho/JzLNUV qlsg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=jf4RXCd0z9lfXfN8DlxDnYnxN7b5y/MQKB5pAP3Qfy4=; b=qS6akNh2/Mh7rEVGdE6SRk/cb3BzZuvlNyioQuZav8K22hJBaWNieni2wHxSYJ9nsM J05v0IFrWUaB9ZdSiqejhSt3FbI+3AnYuCtLwZi93P8brHba8dsE0cA8w8UTlz6NTva9 KaSVSOtf4QyHdLtI66DQd2VoSQKvWRq0cgCirwsBUc1yj7Vc7P9XFuGrKxji0cOkGcDw cORwfTRA3xyWLumK1g83bbWosWu0AK68DIAEJt9vlSFjicnP+igrfL9/n1buuzqI3eUm mQ+G2NirffqomMQJqsrlEwNGwM0S2Gu6EVl4JxdPdLTVDLwkK+cOB2OpwbOez8NgBCjR JcVw== X-Gm-Message-State: AOAM5322BUw7BYk2Bcdla6zaB4OOR9GDA+hjPYoSD+q+tlJMQVnWBeUv ecOGVqBMczjsfzxuW1Ym09joU7l+aBoNUg== X-Google-Smtp-Source: ABdhPJxR9aPe1pmz+KXgY7edVAgIOcNq/uCisDUecmTRq+zj74nMTNDincTMCISpuXPzkb2Unljfog== X-Received: by 2002:a5d:6508:: with SMTP id x8mr8717951wru.388.1637064042855; Tue, 16 Nov 2021 04:00:42 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.41 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:42 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 10/23] Makefile: create a GIT-PYTHON-DEFINES, like "PERL" Date: Tue, 16 Nov 2021 13:00:10 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Create a new "GIT-PYTHON-DEFINES" file, and untangle the dependency issues of the Python by copying over the patterns established for building the adjacent Perl code in preceding commits. As with Perl, there's no real reason to depend on GIT-BUILD-OPTIONS or GIT-CFLAGS when building the Python code, nor did we need GIT-PREFIX. Let's instead add those variables we care about to a "GIT-PYTHON-DEFINES" and depend on that. This changes code originally added in ca3bcabf118 (auto-detect changed prefix and/or changed build flags, 2006-06-15), and adjusted in 96a4647fca5 (Makefile: detect when PYTHON_PATH changes, 2012-12-18). The relevant code for the "Perl" targets was then added in 07981dce81e (Makefile: rebuild perl scripts when perl paths change, 2013-11-18), and has been adjusted in preceding commits. Signed-off-by: Ævar Arnfjörð Bjarmason --- .gitignore | 2 +- Makefile | 49 +++++++++++++++++++++++++------------------------ 2 files changed, 26 insertions(+), 25 deletions(-) diff --git a/.gitignore b/.gitignore index 054249b20a8..845e5d0c355 100644 --- a/.gitignore +++ b/.gitignore @@ -8,7 +8,7 @@ /GIT-PREFIX /GIT-PERL-DEFINES /GIT-PERL-HEADER -/GIT-PYTHON-VARS +/GIT-PYTHON-DEFINES /GIT-SCRIPT-DEFINES /GIT-USER-AGENT /GIT-VERSION-FILE diff --git a/Makefile b/Makefile index 361abff2402..c698c5b058a 100644 --- a/Makefile +++ b/Makefile @@ -2378,18 +2378,15 @@ GIT-PERL-DEFINES: FORCE echo "$$FLAGS" >$@; \ fi -# This makes sure we depend on the NO_PYTHON setting itself. -$(SCRIPT_PYTHON_GEN): GIT-BUILD-OPTIONS +# As with NO_PERL=Y we'll still make GIT-PYTHON-DEFINES if "NO_PYTHON" +# is defined, for creating the "unimplemented.sh" scripts. +PYTHON_DEFINES = +$(SCRIPT_PYTHON_GEN): GIT-PYTHON-DEFINES + +ifdef NO_PYTHON +PYTHON_DEFINES += $(SHELL_PATH_SQ) +PYTHON_DEFINES += $(NO_PYTHON) -ifndef NO_PYTHON -$(SCRIPT_PYTHON_GEN): GIT-CFLAGS GIT-PREFIX GIT-PYTHON-VARS -$(SCRIPT_PYTHON_GEN): % : %.py - $(QUIET_GEN) \ - sed -e '1s|#!.*python|#!$(PYTHON_PATH_SQ)|' \ - $< >$@+ && \ - chmod +x $@+ && \ - mv $@+ $@ -else # NO_PYTHON $(SCRIPT_PYTHON_GEN): % : unimplemented.sh $(QUIET_GEN) \ sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \ @@ -2397,8 +2394,24 @@ $(SCRIPT_PYTHON_GEN): % : unimplemented.sh unimplemented.sh >$@+ && \ chmod +x $@+ && \ mv $@+ $@ +else # NO_PYTHON +PYTHON_DEFINES += $(PYTHON_PATH_SQ) + +$(SCRIPT_PYTHON_GEN): % : %.py GIT-PYTHON-DEFINES + $(QUIET_GEN) \ + sed -e '1s|#!.*python|#!$(PYTHON_PATH_SQ)|' \ + $< >$@+ && \ + chmod +x $@+ && \ + mv $@+ $@ endif # NO_PYTHON +GIT-PYTHON-DEFINES: FORCE + @FLAGS='$(PYTHON_DEFINES)'; \ + if test x"$$FLAGS" != x"`cat $@ 2>/dev/null`" ; then \ + echo >&2 " * new python-specific parameters"; \ + echo "$$FLAGS" >$@; \ + fi + CONFIGURE_RECIPE = sed -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \ configure.ac >configure.ac+ && \ autoconf -o configure configure.ac+ && \ @@ -2848,18 +2861,6 @@ else endif @if cmp $@+ $@ >/dev/null 2>&1; then $(RM) $@+; else mv $@+ $@; fi -### Detect Python interpreter path changes -ifndef NO_PYTHON -TRACK_PYTHON = $(subst ','\'',-DPYTHON_PATH='$(PYTHON_PATH_SQ)') - -GIT-PYTHON-VARS: FORCE - @VARS='$(TRACK_PYTHON)'; \ - if test x"$$VARS" != x"`cat $@ 2>/dev/null`" ; then \ - echo >&2 " * new Python interpreter location"; \ - echo "$$VARS" >$@; \ - fi -endif - test_bindir_programs := $(patsubst %,bin-wrappers/%,$(BINDIR_PROGRAMS_NEED_X) $(BINDIR_PROGRAMS_NO_X) $(TEST_PROGRAMS_NEED_X)) all:: $(TEST_PROGRAMS) $(test_bindir_programs) @@ -3256,7 +3257,7 @@ ifndef NO_TCLTK endif $(RM) GIT-VERSION-FILE GIT-CFLAGS GIT-LDFLAGS GIT-BUILD-OPTIONS $(RM) GIT-USER-AGENT GIT-PREFIX - $(RM) GIT-SCRIPT-DEFINES GIT-PERL-DEFINES GIT-PERL-HEADER GIT-PYTHON-VARS + $(RM) GIT-SCRIPT-DEFINES GIT-PERL-DEFINES GIT-PERL-HEADER GIT-PYTHON-DEFINES ifdef MSVC $(RM) $(patsubst %.o,%.o.pdb,$(OBJECTS)) $(RM) $(patsubst %.exe,%.pdb,$(OTHER_PROGRAMS)) From patchwork Tue Nov 16 12:00:11 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622225 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F34B3C433EF for ; Tue, 16 Nov 2021 12:03:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id D512761040 for ; Tue, 16 Nov 2021 12:03:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236073AbhKPMGK (ORCPT ); Tue, 16 Nov 2021 07:06:10 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33738 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235751AbhKPMEg (ORCPT ); Tue, 16 Nov 2021 07:04:36 -0500 Received: from mail-wr1-x42d.google.com (mail-wr1-x42d.google.com [IPv6:2a00:1450:4864:20::42d]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 52CE6C06122A for ; Tue, 16 Nov 2021 04:00:45 -0800 (PST) Received: by mail-wr1-x42d.google.com with SMTP id r8so36984856wra.7 for ; Tue, 16 Nov 2021 04:00:45 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=GZey/9m9V78NBW8cceKwNGYYQTDQ7ngcgVlzXdWjcu8=; b=b+vpS8zRPHsuySrm2DvFAIKDFlhFwELyaXnRt2hTgw2Pn+dyp6qr5tdZNr3IyvVLQE ubLn2C0s6yNjJQJY7YuqzpbNTfO4AzM5NqkmQxL41sNsuik1G0QuS97In1IYQloCrc0W o5CuvBHDCRk9p34kj8sed+KkqNt+46PoRlGfMShvhKXonNJHLfIGOLdEcoHi5glhOt4Y TRJl8SGG90s5Mp5UAhXCPPCz0Jt/iDOnScbRgTaQzaqTisP3RoNVrNyUTNqhUo3HHPuN VuHr7rXIWbp2HGotCW3/KaFCM1qGYH6FMFHapan5lvfMypYgLfAZLTeITV62Jd5ZxB9E zX4Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=GZey/9m9V78NBW8cceKwNGYYQTDQ7ngcgVlzXdWjcu8=; b=7FAbW9SnqB9kxR9Z4Q4lXeLVgBpmyJFyb9r62AuTrasfclh5KkGVpcTpEF3/17PYz5 mCGXE4ii2dS3AzUmErQMFgOUh9HdL4O37IX25gC6AEsQJBDEPOsP5u9Hcx+D3nQC7GwK NGz+3NV/H+i6vpaarRpS4Q+JQo/2B+sQ2laGfjZqsgUiK86KwxHa60w4WHqnlZde0BLP 5g0QigPpOoxiCaXWKRbp3jfanmPcvO6mV1F/ZYfJQnuFnwU/Iy/oE3lkSjwip4lPDvR7 yRbidw1i8hXoaPtHMm8Ugv4j1Ew0DQLdVLXIXpYKjSJI2IiVzWYQDRqAvbKvAGWwOS4O 9lBA== X-Gm-Message-State: AOAM532cokiFGoq8ZurwbnpBFn8ksh9CYyGCAeA7ikIuSPlvbL/vpVCy 0XcIwtBZ2vhvWtdgARWy4Ycm21OB7DAUfw== X-Google-Smtp-Source: ABdhPJx9m4xmQ0ZOkuFaJLg2fcFHTf83ZRu2sYQcT+AxxfkPeu74/+XyFh5GnHRNI06B/0XUI2uKmg== X-Received: by 2002:a05:6000:1568:: with SMTP id 8mr8722037wrz.76.1637064043627; Tue, 16 Nov 2021 04:00:43 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.42 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:43 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 11/23] Makefile: stop needing @@GIT_VERSION@@ in *.perl scripts Date: Tue, 16 Nov 2021 13:00:11 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Change the hardcoding of @@GIT_VERSION@@ in generated *.perl scripts to instead shell out to "git version". This means that we can stop re-building during development every time the HEAD changes. These codepaths are not "hot", so shelling out to get the version shouldn't matter to users, in the one case where it potentially would in send-email (the loop for each E-Mail we send) we now cache the value, so we'll only retrieve it once. Signed-off-by: Ævar Arnfjörð Bjarmason --- Makefile | 2 +- git-cvsserver.perl | 6 +++--- git-send-email.perl | 7 ++----- git-svn.perl | 2 +- 4 files changed, 7 insertions(+), 10 deletions(-) diff --git a/Makefile b/Makefile index c698c5b058a..8205614c6ec 100644 --- a/Makefile +++ b/Makefile @@ -2333,7 +2333,7 @@ PERL_HEADER_TEMPLATE = perl/header_templates/runtime_prefix.template.pl perl_localedir_SQ = endif -$(SCRIPT_PERL_GEN): % : %.perl GIT-PERL-DEFINES GIT-PERL-HEADER GIT-VERSION-FILE +$(SCRIPT_PERL_GEN): % : %.perl GIT-PERL-DEFINES GIT-PERL-HEADER $(QUIET_GEN) \ sed -e '1{' \ -e ' s|#!.*perl|#!$(PERL_PATH_SQ)|' \ diff --git a/git-cvsserver.perl b/git-cvsserver.perl index 64319bed43f..76f0e8bbbef 100755 --- a/git-cvsserver.perl +++ b/git-cvsserver.perl @@ -26,8 +26,6 @@ use File::Basename; use Getopt::Long qw(:config require_order no_ignore_case); -my $VERSION = '@@GIT_VERSION@@'; - my $log = GITCVS::log->new(); my $cfg; @@ -126,7 +124,9 @@ or die $usage; if ($state->{version}) { - print "git-cvsserver version $VERSION\n"; + my $version = qx[git version]; + $version =~ s/^(git)\b/$1-cvsserver/; + print $version; exit; } if ($state->{help}) { diff --git a/git-send-email.perl b/git-send-email.perl index 5262d88ee32..041cd2fb96d 100755 --- a/git-send-email.perl +++ b/git-send-email.perl @@ -1468,6 +1468,7 @@ sub file_name_is_absolute { # # If an error occurs sending the email, this just dies. +my $gitversion; sub send_message { my @recipients = unique_email_list(@to); @cc = (grep { my $cc = extract_valid_address_or_die($_); @@ -1478,11 +1479,6 @@ sub send_message { @recipients = unique_email_list(@recipients,@cc,@initial_bcc); @recipients = (map { extract_valid_address_or_die($_) } @recipients); my $date = format_2822_time($time++); - my $gitversion = '@@GIT_VERSION@@'; - if ($gitversion =~ m/..GIT_VERSION../) { - $gitversion = Git::version(); - } - my $cc = join(",\n\t", unique_email_list(@cc)); my $ccline = ""; if ($cc ne '') { @@ -1497,6 +1493,7 @@ sub send_message { Message-Id: $message_id "; if ($use_xmailer) { + $gitversion ||= Git::version(); $header .= "X-Mailer: git-send-email $gitversion\n"; } if ($in_reply_to) { diff --git a/git-svn.perl b/git-svn.perl index be987e316f9..727431412be 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -9,7 +9,6 @@ $_revision $_repository $_q $_authors $_authors_prog %users/; $AUTHOR = 'Eric Wong '; -$VERSION = '@@GIT_VERSION@@'; use Carp qw/croak/; use File::Basename qw/dirname basename/; @@ -47,6 +46,7 @@ command_close_bidi_pipe get_record ); +$VERSION = Git::version(); BEGIN { Memoize::memoize 'Git::config'; From patchwork Tue Nov 16 12:00:12 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622221 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id DC58CC433F5 for ; Tue, 16 Nov 2021 12:03:11 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id C8809611C3 for ; Tue, 16 Nov 2021 12:03:11 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235877AbhKPMF4 (ORCPT ); Tue, 16 Nov 2021 07:05:56 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33584 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235836AbhKPMEh (ORCPT ); Tue, 16 Nov 2021 07:04:37 -0500 Received: from mail-wm1-x330.google.com (mail-wm1-x330.google.com [IPv6:2a00:1450:4864:20::330]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2B207C06122B for ; Tue, 16 Nov 2021 04:00:46 -0800 (PST) Received: by mail-wm1-x330.google.com with SMTP id az33-20020a05600c602100b00333472fef04so1719081wmb.5 for ; Tue, 16 Nov 2021 04:00:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=9c+Tnx5WN/x457Qc4NaLx0dTbaRDrTVc+KBx9HiTNnw=; b=iXx34yRK7LcwROyJkc4EfsQtOpPjCtPG4Sy4lJ+HZqr5zNuO4zOHf265FuR/g9jZJm s3klj5tv75iEXZ0vmCUy1msQ3jf4+F8fDne1eXTkvS8hc08l/hB0E/xKaNUE+8mLbPsy 5NbADOQbVlrtJCHUfjLoqAw9LRWoqtCwwuGIttqt+TCGHWRuAlCIRb15TrJG97bI0HaO 0oXCQ23M7WlsfxsXFIfmYSnitTtC8UpYd5iWVB/N1TF54AmgOdXc1z8LCYkiGeGD7HIn J5WitxAqpdXL0gs/zCE9BE1iYrh63vrCqUXcVaWWzHyYJiF324Qbh42QdDfBc6EixVdA kfGg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=9c+Tnx5WN/x457Qc4NaLx0dTbaRDrTVc+KBx9HiTNnw=; b=Fhs5pk5+CsISpFFAqAr+/op58QdXhDTi1Bl2NzqAgW4sMPBTnP2RR7cFahzP+euJ4h YOoC7MGIQaj01jnRf5M2I9+Ouqni6mDoIwtI5V69NV0jracshun4YDAWiKzyJ2u+DXDf glCtYjDIKhN14N2hrMybrV1Z4j3C3dSHiNRR3VJV1hK/lFwi89Ej8nG66EixV4BJuI6Q p7w9Gha2E5EhLL/53sNSB7DU+R2P7DtXPXT/V8ZmGGWOtoj5yyEGp6Uv8OyUPVsyrti3 u4zIx/Kj9RcPUPVYyc5JkUH3jVgabgsG9EzAj1fv00KAMDZif1W2apN3e9tp2y0nHlzz ypoQ== X-Gm-Message-State: AOAM530IBNqJonJpna42uunVlmJk0RzoHfKoh3qMQ0PFUjMk32CYbVLD 1GiM9LFUHMQwUd+dM0d3kHzpSBhSrvbXDQ== X-Google-Smtp-Source: ABdhPJw2ZJfwxFG82FJZ+Ii2J69Xf/JdWpGUef1Z+Yfy7nldw9OQgmJYzVx5NIV+8J43kK5HcY7WGA== X-Received: by 2002:a05:600c:19d0:: with SMTP id u16mr7002164wmq.111.1637064044472; Tue, 16 Nov 2021 04:00:44 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:43 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 12/23] Makefiles: add "shared.mak", move ".DELETE_ON_ERROR" to it Date: Tue, 16 Nov 2021 13:00:12 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org We have various behavior that's shared across our Makefiles, or that really should be (e.g. via defined templates). Let's create a top-level "shared.mak" to house those sorts of things, and start by adding the ".DELETE_ON_ERROR" flag to it. See my own 7b76d6bf221 (Makefile: add and use the ".DELETE_ON_ERROR" flag, 2021-06-29) and db10fc6c09f (doc: simplify Makefile using .DELETE_ON_ERROR, 2021-05-21) for the addition and use of the ".DELETE_ON_ERROR" flag. This does have the potential downside that if e.g. templates/Makefile would like to include this "shared.mak" in the future the semantics of such a Makefile will change, but as noted in the above commits (and GNU make's own documentation) any such change would be for the better, so it's safe to do this. This also doesn't introduce a bug by e.g. having this ".DELETE_ON_ERROR" flag only apply to this new shared.mak, Makefiles have no such scoping semantics. Signed-off-by: Ævar Arnfjörð Bjarmason --- Documentation/Makefile | 6 +++--- Makefile | 13 +++---------- shared.mak | 9 +++++++++ 3 files changed, 15 insertions(+), 13 deletions(-) create mode 100644 shared.mak diff --git a/Documentation/Makefile b/Documentation/Makefile index ed656db2ae9..ba27456c86a 100644 --- a/Documentation/Makefile +++ b/Documentation/Makefile @@ -1,3 +1,6 @@ +# Import tree-wide shared Makefile behavior and libraries +include ../shared.mak + # Guard against environment variables MAN1_TXT = MAN5_TXT = @@ -524,7 +527,4 @@ doc-l10n install-l10n:: $(MAKE) -C po $@ endif -# Delete the target file on error -.DELETE_ON_ERROR: - .PHONY: FORCE diff --git a/Makefile b/Makefile index 8205614c6ec..5ae7d012cfb 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,6 @@ +# Import tree-wide shared Makefile behavior and libraries +include shared.mak + # The default target of this Makefile is... all:: @@ -2158,16 +2161,6 @@ shell_compatibility_test: please_set_SHELL_PATH_to_a_more_modern_shell strip: $(PROGRAMS) git$X $(STRIP) $(STRIP_OPTS) $^ -### Flags affecting all rules - -# A GNU make extension since gmake 3.72 (released in late 1994) to -# remove the target of rules if commands in those rules fail. The -# default is to only do that if make itself receives a signal. Affects -# all targets, see: -# -# info make --index-search=.DELETE_ON_ERROR -.DELETE_ON_ERROR: - ### Target-specific flags and dependencies # The generic compilation pattern rule and automatically diff --git a/shared.mak b/shared.mak new file mode 100644 index 00000000000..0170bb397ae --- /dev/null +++ b/shared.mak @@ -0,0 +1,9 @@ +### Flags affecting all rules + +# A GNU make extension since gmake 3.72 (released in late 1994) to +# remove the target of rules if commands in those rules fail. The +# default is to only do that if make itself receives a signal. Affects +# all targets, see: +# +# info make --index-search=.DELETE_ON_ERROR +.DELETE_ON_ERROR: From patchwork Tue Nov 16 12:00:13 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622233 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 2A618C433F5 for ; Tue, 16 Nov 2021 12:04:03 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 0BA506140D for ; Tue, 16 Nov 2021 12:04:03 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235794AbhKPMGz (ORCPT ); Tue, 16 Nov 2021 07:06:55 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33590 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235844AbhKPMEi (ORCPT ); Tue, 16 Nov 2021 07:04:38 -0500 Received: from mail-wm1-x32a.google.com (mail-wm1-x32a.google.com [IPv6:2a00:1450:4864:20::32a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DD9BDC06122C for ; Tue, 16 Nov 2021 04:00:46 -0800 (PST) Received: by mail-wm1-x32a.google.com with SMTP id n33-20020a05600c502100b0032fb900951eso1724808wmr.4 for ; Tue, 16 Nov 2021 04:00:46 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=393N/MjNX6iCyNl/tl80+jAwpO4YdgKQAG272TLbAXs=; b=Nukp/7Y0I4Y1pBSg2PqnlQS+b5geNYBMmeHvG+eZt+WORADh2Nb73bZ7H75KtpykDB vseiCImKpW7SqAkGcXl6NRygXglYN6m3L5v1TPISr71q234VYHeCi7Q+qi2M1xMjs4N7 ByrTt6gxH2wVLHoNmqDTo54v3DGP/kMTDf1aRbliopQlff/38RqSIxIeTrHLJmE21tJ/ oQQkQ4uty/YMOQhlloWdn3WPX+Of7neA3c7vF5XKtdQKDNY7inGK8pz/2v3KM9akhw/E cl52h9i9jx2C+XpVGrEprB4Igy/czfW8sT5D8AIzvadpjMKynBUs4vpZZFUyGMjMyz3m ocMw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=393N/MjNX6iCyNl/tl80+jAwpO4YdgKQAG272TLbAXs=; b=vuH+fApQkkMJ10tU2BYvWIJVezvkrzCf+E4EWDxkNTY4BGpSnlN0badjFFyFLbfaAd 9sVTEREcD/VonvZfhk7axaAYb7BDaa/LSYhJc0JkBr4TcLPWbOrTnsXTEufOK7eohDHw YKCPJKo0N/zZx+TgscWdigy6tWEEKRzBoVSlyuD8x1+IDEj1Fx/pWMccW7GXM/Vv9p9U iAhXWH+6gXQeQubSl+4qjvbzjRIq9Cv/meV3nE/BoHsB3OVMlA+jzssbmMwKxpLI+fdh QzBjKTFkH990FvfTNzy8AREfAeVsoMSFb/UQl9rFGePR+31OsjtMpEFnbqxMwLdJsNMp hhyA== X-Gm-Message-State: AOAM532uTJgYuZvQfCUQJQcSZ+ORCitZp/wCpQvWze75RTPNUWvGfgYb wfpCXkd2YLBN6uFv22wPFWsy8PT/FhNlCA== X-Google-Smtp-Source: ABdhPJz6rPAKQsYtyPuWzXnwBzNzI+ca4zljoSQSL3iY0t8/pJp6h0s5EOXty+tfYolZKPDxRRQIqQ== X-Received: by 2002:a05:600c:a08:: with SMTP id z8mr69218124wmp.165.1637064045251; Tue, 16 Nov 2021 04:00:45 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.44 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:44 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 13/23] Makefile: move $(comma), $(empty) and $(space) to shared.mak Date: Tue, 16 Nov 2021 13:00:13 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Move these variables over to the shared.max, we'll make use of them in a subsequent commit. There was no reason for these to be "simply expanded variables", so let's use the normal lazy "=" assignment here. See 425ca6710b2 (Makefile: allow combining UBSan with other sanitizers, 2017-07-15) for the commit that introduced these. Signed-off-by: Ævar Arnfjörð Bjarmason --- Makefile | 4 ---- shared.mak | 8 ++++++++ 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/Makefile b/Makefile index 5ae7d012cfb..7130e32a251 100644 --- a/Makefile +++ b/Makefile @@ -1252,10 +1252,6 @@ endif ALL_CFLAGS = $(DEVELOPER_CFLAGS) $(CPPFLAGS) $(CFLAGS) ALL_LDFLAGS = $(LDFLAGS) -comma := , -empty := -space := $(empty) $(empty) - ifdef SANITIZE SANITIZERS := $(foreach flag,$(subst $(comma),$(space),$(SANITIZE)),$(flag)) BASIC_CFLAGS += -fsanitize=$(SANITIZE) -fno-sanitize-recover=$(SANITIZE) diff --git a/shared.mak b/shared.mak index 0170bb397ae..2d597ef7603 100644 --- a/shared.mak +++ b/shared.mak @@ -7,3 +7,11 @@ # # info make --index-search=.DELETE_ON_ERROR .DELETE_ON_ERROR: + +### Global variables + +## comma, empty, space: handy variables as these tokens are either +## special or can be hard to spot among other Makefile syntax. +comma = , +empty = +space = $(empty) $(empty) From patchwork Tue Nov 16 12:00:14 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622235 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5B448C433F5 for ; Tue, 16 Nov 2021 12:04:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3377A61414 for ; Tue, 16 Nov 2021 12:04:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235906AbhKPMHF (ORCPT ); Tue, 16 Nov 2021 07:07:05 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33652 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235789AbhKPMEn (ORCPT ); Tue, 16 Nov 2021 07:04:43 -0500 Received: from mail-wm1-x32f.google.com (mail-wm1-x32f.google.com [IPv6:2a00:1450:4864:20::32f]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id D9D14C06122D for ; Tue, 16 Nov 2021 04:00:47 -0800 (PST) Received: by mail-wm1-x32f.google.com with SMTP id p18so7327891wmq.5 for ; Tue, 16 Nov 2021 04:00:47 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=1i/4us0fqd5yE4+f5Re9OBE+HeZDqU80Yms9ZrDLOKM=; b=ms3Vm36WOeV24gJDYvhpe7ZNyIWwru0pqWOm8ofHZD+jHhxu0gc41BL0cutPOHWjei G+3chmSHlPYspkVOmuSI0L+a3KUQyW+MnjDgxjKbovjkc71MahFcPSmIOjrN1SupQigQ uQDeEB9ztrsPY2H2GG2gTQawpc9UaQsDDgpU3GWsM0wgwhcldgDLI/5ALWOhQkhZRyqJ XgC+ygZKnXQyCDNxbk8SyIbQD7ihcxWnsK6zivmjFb9pGzr974qdK0DvS92wunnZFQI/ 265qowwbNOYiHMc8dfdX5d4k0tvVJ8LW+w8MtPmnuv/d6nftBS7JQtKp9QAecMcAvAU3 oEUw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=1i/4us0fqd5yE4+f5Re9OBE+HeZDqU80Yms9ZrDLOKM=; b=HqoU9IbRhXBATSvH68EiZGFHk5FVq/utbdHLQWxgPMlAGoLFhEzX9IRTo9D+LETGjc FBtjFDu0eCgH+aQ09IDDQVvUoESuomp7x0dqxzlZFrMijdOzt418OvxrsnZx4r/bNgiM bJRGmUsjOGyHbEgRy70QU/JJXfVw7NmAI2wuKRWsRQsqdwuQ2+5IoUqvvzWXU7TTfN6/ Ca6rywm5EhxUbu/tHd5x1gDApsiqt/HDpLilqTKQ068VbvJtQL43Zy4/qQF5Xe6WlsCw alqtW2G0dIeD+rjbudoRDpN1c2spiB/WOlQp+70cMtv/Hl0U/kowzd9L74lw9y4JMwks gUKA== X-Gm-Message-State: AOAM5327l9CP52Ezcf9FT2HFhc2tJNk3kccIpC5a1qqr3SULHARBgaxM KC05oeU1Udap3v+4ZaYuYUZsj1/cCoeRbQ== X-Google-Smtp-Source: ABdhPJy6FscMfu8SFDfODvQ0Xvxy/rumUGFoaiKOTeLVrmtdmWolPlHcbNLI2HEsuBnOYaxSbWeRuA== X-Received: by 2002:a05:600c:500b:: with SMTP id n11mr53918065wmr.38.1637064046064; Tue, 16 Nov 2021 04:00:46 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:45 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 14/23] Makefile: re-add and use the "shellquote" macros Date: Tue, 16 Nov 2021 13:00:14 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Re-add and use, and expand on "shellquote" macros added in 4769948afe7 (Deal with $(bindir) and friends with whitespaces., 2005-10-10). We avoided using them due to the "$(call)" feature of GNU make being relatively new at the time, but it isn't anymore. We hard depend on GNU make versions that have it. The use of "$(call)" was removed in 39c015c556f (Fixes for ancient versions of GNU make, 2006-02-18) and 7ffe7098dca (Fix installation of templates on ancient systems., 2006-07-29) due to those incompatibilities with older GNU make versions, and we've used the more verbose *_SQ pattern ever since. The "$(call)" feature was introduced in GNU make version 3.78, released on the 22nd of September, 1999. That release also introduced "$(error)" and "$(warning)", which we've been making use of since f2fabbf76e4 (Teach Makefile to check header dependencies, 2010-01-26). This extends upon the macros added in 4769948afe7: We now have macros for quoting a ' inside '', and a ' with no surrounding '' as before. Additionally provide and use a "shelldquote" macro along with "shellquote" for the common case of wanting to quote a C string we pass to the compiler with a -D flag. This doesn't get rid of all of our shell quoting. We've still got some in the main Makefile, let's leave most of it to avoid in-flight conflicts. I've fully converted "templates/Makefile" and "t/Makefile" though. Signed-off-by: Ævar Arnfjörð Bjarmason --- Makefile | 15 +++++---------- shared.mak | 14 ++++++++++++++ t/Makefile | 34 +++++++++++++++------------------- templates/Makefile | 14 +++++--------- 4 files changed, 39 insertions(+), 38 deletions(-) diff --git a/Makefile b/Makefile index 7130e32a251..b458c24d95e 100644 --- a/Makefile +++ b/Makefile @@ -1996,11 +1996,7 @@ ifneq ("$(PROFILE)","") endif endif -# Shell quote (do not use $(call) to accommodate ancient setups); - -ETC_GITCONFIG_SQ = $(subst ','\'',$(ETC_GITCONFIG)) -ETC_GITATTRIBUTES_SQ = $(subst ','\'',$(ETC_GITATTRIBUTES)) - +# Shell quote, should be changed to use $(call shellquote,...) DESTDIR_SQ = $(subst ','\'',$(DESTDIR)) NO_GETTEXT_SQ = $(subst ','\'',$(NO_GETTEXT)) bindir_SQ = $(subst ','\'',$(bindir)) @@ -2535,11 +2531,11 @@ builtin/init-db.sp builtin/init-db.s builtin/init-db.o: EXTRA_CPPFLAGS = \ config.sp config.s config.o: GIT-PREFIX config.sp config.s config.o: EXTRA_CPPFLAGS = \ - -DETC_GITCONFIG='"$(ETC_GITCONFIG_SQ)"' + -DETC_GITCONFIG=$(call shelldquote,$(ETC_GITCONFIG)) attr.sp attr.s attr.o: GIT-PREFIX attr.sp attr.s attr.o: EXTRA_CPPFLAGS = \ - -DETC_GITATTRIBUTES='"$(ETC_GITATTRIBUTES_SQ)"' + -DETC_GITATTRIBUTES=$(call shelldquote,$(ETC_GITATTRIBUTES)) gettext.sp gettext.s gettext.o: GIT-PREFIX gettext.sp gettext.s gettext.o: EXTRA_CPPFLAGS = \ @@ -2700,14 +2696,13 @@ perl/build/lib/%.pm: perl/%.pm GIT-PERL-DEFINES $(QUIET_GEN)mkdir -p $(dir $@) && \ sed -e 's|@@LOCALEDIR@@|$(perl_localedir_SQ)|g' \ -e 's|@@NO_GETTEXT@@|$(NO_GETTEXT_SQ)|g' \ - -e 's|@@NO_PERL_CPAN_FALLBACKS@@|$(NO_PERL_CPAN_FALLBACKS_SQ)|g' \ + -e 's|@@NO_PERL_CPAN_FALLBACKS@@|$(call shq,$(NO_PERL_CPAN_FALLBACKS))|g' \ < $< > $@ all:: $(LIB_PERL_GEN) ifndef NO_PERL_CPAN_FALLBACKS all:: $(LIB_CPAN_GEN) endif -NO_PERL_CPAN_FALLBACKS_SQ = $(subst ','\'',$(NO_PERL_CPAN_FALLBACKS)) endif # install-man depends on Git.3pm even with NO_PERL=Y @@ -3021,7 +3016,7 @@ else $(INSTALL) $(vcpkg_dbg_bin)/*.pdb '$(DESTDIR_SQ)$(bindir_SQ)' endif endif - $(MAKE) -C templates DESTDIR='$(DESTDIR_SQ)' install + $(MAKE) -C templates DESTDIR=$(call shellquote,$(DESTDIR)) install $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(mergetools_instdir_SQ)' $(INSTALL) -m 644 mergetools/* '$(DESTDIR_SQ)$(mergetools_instdir_SQ)' ifndef NO_GETTEXT diff --git a/shared.mak b/shared.mak index 2d597ef7603..ef03c2bc094 100644 --- a/shared.mak +++ b/shared.mak @@ -8,6 +8,20 @@ # info make --index-search=.DELETE_ON_ERROR .DELETE_ON_ERROR: +### Quoting helpers + +## Quote a ' inside a '': FOO='$(call shq,$(BAR))' +shq = $(subst ','\'',$(1)) + +## Quote a ' and provide a '': FOO=$(call shq,$(BAR)) +shellquote = '$(call shq,$(1))' + +## Quote a " inside a "" +shdq = $(subst ",\",$(1)) + +## Quote ' for the shell, and embedded " for C: -DFOO=$(call shelldquote,$(BAR)) +shelldquote = '"$(call shdq,$(call shq,$(1)))"' + ### Global variables ## comma, empty, space: handy variables as these tokens are either diff --git a/t/Makefile b/t/Makefile index 882d26eee30..4168b5c6ce6 100644 --- a/t/Makefile +++ b/t/Makefile @@ -1,3 +1,6 @@ +# Import tree-wide shared Makefile behavior and libraries +include ../shared.mak + # Run tests # # Copyright (c) 2005 Junio C Hamano @@ -24,13 +27,6 @@ TEST_RESULTS_DIRECTORY = test-results CHAINLINTTMP = chainlinttmp endif -# Shell quote; -SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH)) -TEST_SHELL_PATH_SQ = $(subst ','\'',$(TEST_SHELL_PATH)) -PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH)) -TEST_RESULTS_DIRECTORY_SQ = $(subst ','\'',$(TEST_RESULTS_DIRECTORY)) -CHAINLINTTMP_SQ = $(subst ','\'',$(CHAINLINTTMP)) - T = $(sort $(wildcard t[0-9][0-9][0-9][0-9]-*.sh)) TGITWEB = $(sort $(wildcard t95[0-9][0-9]-*.sh)) THELPERS = $(sort $(filter-out $(T),$(wildcard *.sh))) @@ -44,38 +40,38 @@ test: pre-clean check-chainlint $(TEST_LINT) $(MAKE) aggregate-results-and-cleanup failed: - @failed=$$(cd '$(TEST_RESULTS_DIRECTORY_SQ)' && \ + @failed=$$(cd $(call shellquote,$(TEST_RESULTS_DIRECTORY)) && \ grep -l '^failed [1-9]' *.counts | \ sed -n 's/\.counts$$/.sh/p') && \ test -z "$$failed" || $(MAKE) $$failed prove: pre-clean check-chainlint $(TEST_LINT) - @echo "*** prove ***"; $(PROVE) --exec '$(TEST_SHELL_PATH_SQ)' $(GIT_PROVE_OPTS) $(T) :: $(GIT_TEST_OPTS) + @echo "*** prove ***"; $(PROVE) --exec $(call shellquote,$(SHELL_PATH)) $(GIT_PROVE_OPTS) $(T) :: $(GIT_TEST_OPTS) $(MAKE) clean-except-prove-cache $(T): - @echo "*** $@ ***"; '$(TEST_SHELL_PATH_SQ)' $@ $(GIT_TEST_OPTS) + @echo "*** $@ ***"; $(call shellquote,$(SHELL_PATH)) $@ $(GIT_TEST_OPTS) pre-clean: - $(RM) -r '$(TEST_RESULTS_DIRECTORY_SQ)' + $(RM) -r $(call shellquote,$(TEST_RESULTS_DIRECTORY)) clean-except-prove-cache: clean-chainlint - $(RM) -r 'trash directory'.* '$(TEST_RESULTS_DIRECTORY_SQ)' + $(RM) -r 'trash directory'.* $(call shellquote,$(TEST_RESULTS_DIRECTORY)) $(RM) -r valgrind/bin clean: clean-except-prove-cache $(RM) .prove clean-chainlint: - $(RM) -r '$(CHAINLINTTMP_SQ)' + $(RM) -r $(call shellquote,$(CHAINLINTTMP)) check-chainlint: - @mkdir -p '$(CHAINLINTTMP_SQ)' && \ + @mkdir -p $(call shellquote,$(CHAINLINTTMP)) && \ err=0 && \ for i in $(CHAINLINTTESTS); do \ $(CHAINLINT) '$(CHAINLINTTMP_SQ)'/$$i.actual && \ - diff -u chainlint/$$i.expect '$(CHAINLINTTMP_SQ)'/$$i.actual || err=1; \ + sed -e '/^# LINT: /d' >$(call shellquote,$(CHAINLINTTMP))/$$i.actual && \ + diff -u chainlint/$$i.expect $(call shellquote,$(CHAINLINTTMP))/$$i.actual || err=1; \ done && exit $$err test-lint: test-lint-duplicates test-lint-executable test-lint-shell-syntax \ @@ -92,7 +88,7 @@ test-lint-executable: echo >&2 "non-executable tests:" $$bad; exit 1; } test-lint-shell-syntax: - @'$(PERL_PATH_SQ)' check-non-portable-shell.pl $(T) $(THELPERS) $(TPERF) + @$(call shellquote,$(PERL_PATH)) check-non-portable-shell.pl $(T) $(THELPERS) $(TPERF) test-lint-filenames: @# We do *not* pass a glob to ls-files but use grep instead, to catch @@ -107,9 +103,9 @@ aggregate-results-and-cleanup: $(T) $(MAKE) clean aggregate-results: - for f in '$(TEST_RESULTS_DIRECTORY_SQ)'/t*-*.counts; do \ + for f in $(call shellquote,$(TEST_RESULTS_DIRECTORY))/t*-*.counts; do \ echo "$$f"; \ - done | '$(SHELL_PATH_SQ)' ./aggregate-results.sh + done | $(call shellquote,$(SHELL_PATH)) ./aggregate-results.sh gitweb-test: $(MAKE) $(TGITWEB) diff --git a/templates/Makefile b/templates/Makefile index d22a71a3999..c9251a96622 100644 --- a/templates/Makefile +++ b/templates/Makefile @@ -1,3 +1,6 @@ +# Import tree-wide shared Makefile behavior and libraries +include ../shared.mak + # make and install sample templates ifndef V @@ -18,13 +21,6 @@ ifndef PERL_PATH PERL_PATH = perl endif -SHELL_PATH_SQ = $(subst ','\'',$(SHELL_PATH)) -PERL_PATH_SQ = $(subst ','\'',$(PERL_PATH)) - -# Shell quote (do not use $(call) to accommodate ancient setups); -DESTDIR_SQ = $(subst ','\'',$(DESTDIR)) -template_instdir_SQ = $(subst ','\'',$(template_instdir)) - all: boilerplates.made custom # Put templates that can be copied straight from the source @@ -61,6 +57,6 @@ clean: $(RM) -r blt boilerplates.made install: all - $(INSTALL) -d -m 755 '$(DESTDIR_SQ)$(template_instdir_SQ)' + $(INSTALL) -d -m755 $(call shellquote,$(DESTDIR)$(template_instdir)) (cd blt && $(TAR) cf - .) | \ - (cd '$(DESTDIR_SQ)$(template_instdir_SQ)' && umask 022 && $(TAR) xof -) + (cd $(call shellquote,$(DESTDIR)$(template_instdir)) && umask 022 && $(TAR) xof -) From patchwork Tue Nov 16 12:00:15 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622239 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 77C11C433F5 for ; Tue, 16 Nov 2021 12:04:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 5EA8B61A7D for ; Tue, 16 Nov 2021 12:04:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235941AbhKPMHN (ORCPT ); Tue, 16 Nov 2021 07:07:13 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33654 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235778AbhKPMEn (ORCPT ); Tue, 16 Nov 2021 07:04:43 -0500 Received: from mail-wm1-x32c.google.com (mail-wm1-x32c.google.com [IPv6:2a00:1450:4864:20::32c]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C9466C06122E for ; Tue, 16 Nov 2021 04:00:48 -0800 (PST) Received: by mail-wm1-x32c.google.com with SMTP id c71-20020a1c9a4a000000b0032cdcc8cbafso2178834wme.3 for ; Tue, 16 Nov 2021 04:00:48 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=TbL9/aYSq4QVMXMrvOa1Qan9j/xEwhWBnAId07Fnj2o=; b=iT4UlXdkSwe2D2qknqpis5sNxaQ9MZ91v6Q5LyEBZ7lbsFoyBEwi5ZpObOCvTHPpCZ thZ6jaPHqQ50lVJZFX+Oru+Men5CDjz7wanct9m0kX6pYyMPGvgc4fJ4uUWYed3tlg3x IdUi1JPsXLQJ6ecEuYlGXIb3jABDgwIlvsQdUSof1RddHcV/SYGLCskb3mtReStllHfQ bhAzsNHorLOR8UWNt0mMB5hjRUwGVpXSdgVyG+GT7XvICLNLB9D2HUIMPUFu/nxZo7fb W1Kd4DlbEyT1IrWUcY5GSrb860forCsXS2f44tUTDQXDmWm6lonUxHLe2pLbNABDh5ut PFrA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=TbL9/aYSq4QVMXMrvOa1Qan9j/xEwhWBnAId07Fnj2o=; b=oIGx/4SVMdnEYhXMoxfz5xkU0M3XfoL8kjdTyNMhiuhsL/aDxKedpaqUZ0EzoXy3kM KLvUvpNinDwRp6YOk8UzDNOC3Y8Dn7Cufl0gthlxfHmdUdK7+fmYhDGOskdA8qxDiW9o VgXeVqrusgZoPPHQhzCU/3+FGJCWObMSEd0Ctzg9IjCyjrtgvHW7ERFOmjlNMPsVy5x0 hoR2eMPkFKBUgpMYMHPPCJ8ELLj2zSRDx3kP/fZ8MhBLkt9FuDzjuKRLnntre5kUqF7g 8YUd0xH3EPKX9gBPiu+EJNXBPOgT4Xe8Fki9w+fEOmznvf601u1/lD1rklJ1vpkb9PzP +8tQ== X-Gm-Message-State: AOAM532o7BHD1Y7i1hmTh11M35hM+FNrUBplxY574x9dv7ia7cNxZGvN Ln3zfD+LWMa/Z6LsrxVH620s6jiEM4nahA== X-Google-Smtp-Source: ABdhPJxMqaWIE5Dd5NIN6/9A9h92nyWiFVFBtKX/HjqrdnF7rcWYmee4YN2PG2AG15fZ/cwPfGEaNQ== X-Received: by 2002:a1c:4b0b:: with SMTP id y11mr7258351wma.9.1637064047042; Tue, 16 Nov 2021 04:00:47 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:46 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 15/23] Makefile: add a "TRACK_template" for GIT-*{FLAGS,DEFINES,...} Date: Tue, 16 Nov 2021 13:00:15 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Move the mostly copy/pasted code in the "Makefile" and "Documentation/Makefile" which FORCE-generates a file based on a variable in play in the Makefile to use a template. This will make it easier later on to move these to rules that aren't FORCE-run using optional gmake 4.2+ features, but for now just getting rid of the repetition is worth it. The message for the new generated rule will say whether or not we're generating the file for the first time, as opposed to the old messages saying "new" whether we had flag modifications, or were building for the first time. Example output before: $ make clean [...] $ make GIT_VERSION = 2.34.0-rc1-dev * new build flags CC grep.o $ make CFLAGS=-I$RANDOM grep.o * new build flags CC grep.o After: $ make clean [...] $ make grep.o GIT_VERSION = 2.34.0-rc1-dev GIT-CFLAGS PARAMETERS (new) CC grep.o $ make CFLAGS=-I$RANDOM grep.o GIT-CFLAGS PARAMETERS (changed) CC grep.o Note: It's important that "@FLAGS" here be defined as '$$($(2))', and not the eagerly expanded '$($(2))'. The latter will break if e.g. curl-config isn't installed, since we'll end up recursively expanding that part of the variable even if NO_CURL isn't defined, which happens e.g. for the "check-docs" target in CI. We're also introducing a $(wspfx) variable here to control the whitespace prefixing. It matches the $(QUIET...) variables, who'll be using these variables in a subsequent commit. Note that it's important that we call the shell quote escaping macros inline (or equivalent), because if we'd like variables to be overridable we need to support e.g.: $ make CFLAGS=-I$RANDOM grep.o wspfx='$(space)->' -> GIT-CFLAGS PARAMETERS (changed) CC grep.o If we simply quoted and used $(wspfx) then the user would need to provide us with a quoted version, so there's still some use-cases for these $(*_sq) variables. It could also be done inline, but that's a lot more verbose. Signed-off-by: Ævar Arnfjörð Bjarmason --- Documentation/Makefile | 8 +------ Makefile | 51 ++++++------------------------------------ shared.mak | 22 ++++++++++++++++++ 3 files changed, 30 insertions(+), 51 deletions(-) diff --git a/Documentation/Makefile b/Documentation/Makefile index ba27456c86a..4a939cc2c25 100644 --- a/Documentation/Makefile +++ b/Documentation/Makefile @@ -343,13 +343,7 @@ mergetools-list.made: ../git-mergetool--lib.sh $(wildcard ../mergetools/*) date >$@ TRACK_ASCIIDOCFLAGS = $(subst ','\'',$(ASCIIDOC_COMMON):$(ASCIIDOC_HTML):$(ASCIIDOC_DOCBOOK)) - -GIT-ASCIIDOCFLAGS: FORCE - @FLAGS='$(TRACK_ASCIIDOCFLAGS)'; \ - if test x"$$FLAGS" != x"`cat GIT-ASCIIDOCFLAGS 2>/dev/null`" ; then \ - echo >&2 " * new asciidoc flags"; \ - echo "$$FLAGS" >GIT-ASCIIDOCFLAGS; \ - fi +$(eval $(call TRACK_template,GIT-ASCIIDOCFLAGS,TRACK_ASCIIDOCFLAGS)) clean: $(RM) -rf .build/ diff --git a/Makefile b/Makefile index b458c24d95e..c8a0a1586ca 100644 --- a/Makefile +++ b/Makefile @@ -2087,10 +2087,7 @@ endif GIT_USER_AGENT_SQ = $(subst ','\'',$(GIT_USER_AGENT)) GIT_USER_AGENT_CQ = "$(subst ",\",$(subst \,\\,$(GIT_USER_AGENT)))" GIT_USER_AGENT_CQ_SQ = $(subst ','\'',$(GIT_USER_AGENT_CQ)) -GIT-USER-AGENT: FORCE - @if test x'$(GIT_USER_AGENT_SQ)' != x"`cat GIT-USER-AGENT 2>/dev/null`"; then \ - echo '$(GIT_USER_AGENT_SQ)' >GIT-USER-AGENT; \ - fi +$(eval $(call TRACK_template,GIT-USER-AGENT,GIT_USER_AGENT_SQ)) ifdef DEFAULT_HELP_FORMAT BASIC_CFLAGS += -DDEFAULT_HELP_FORMAT='"$(DEFAULT_HELP_FORMAT)"' @@ -2238,12 +2235,7 @@ SCRIPT_DEFINES = $(SHELL_PATH_SQ):$(DIFF_SQ):\ $(localedir_SQ):$(USE_GETTEXT_SCHEME):$(SANE_TOOL_PATH_SQ):\ $(gitwebdir_SQ):$(PERL_PATH_SQ):$(PAGER_ENV):\ $(perllibdir_SQ) -GIT-SCRIPT-DEFINES: FORCE - @FLAGS='$(SCRIPT_DEFINES)'; \ - if test x"$$FLAGS" != x"`cat $@ 2>/dev/null`" ; then \ - echo >&2 " * new script parameters"; \ - echo "$$FLAGS" >$@; \ - fi +$(eval $(call TRACK_template,GIT-SCRIPT-DEFINES,SCRIPT_DEFINES)) define cmd_munge_script sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \ @@ -2355,13 +2347,7 @@ git-instaweb: git-instaweb.sh GIT-SCRIPT-DEFINES chmod +x $@+ && \ mv $@+ $@ endif # NO_PERL - -GIT-PERL-DEFINES: FORCE - @FLAGS='$(PERL_DEFINES)'; \ - if test x"$$FLAGS" != x"`cat $@ 2>/dev/null`" ; then \ - echo >&2 " * new perl-specific parameters"; \ - echo "$$FLAGS" >$@; \ - fi +$(eval $(call TRACK_template,GIT-PERL-DEFINES,PERL_DEFINES)) # As with NO_PERL=Y we'll still make GIT-PYTHON-DEFINES if "NO_PYTHON" # is defined, for creating the "unimplemented.sh" scripts. @@ -2390,12 +2376,7 @@ $(SCRIPT_PYTHON_GEN): % : %.py GIT-PYTHON-DEFINES mv $@+ $@ endif # NO_PYTHON -GIT-PYTHON-DEFINES: FORCE - @FLAGS='$(PYTHON_DEFINES)'; \ - if test x"$$FLAGS" != x"`cat $@ 2>/dev/null`" ; then \ - echo >&2 " * new python-specific parameters"; \ - echo "$$FLAGS" >$@; \ - fi +$(eval $(call TRACK_template,GIT-PYTHON-DEFINES,PYTHON_DEFINES)) CONFIGURE_RECIPE = sed -e 's/@@GIT_VERSION@@/$(GIT_VERSION)/g' \ configure.ac >configure.ac+ && \ @@ -2751,31 +2732,13 @@ cscope: cscope.out ### Detect prefix changes TRACK_PREFIX = $(bindir_SQ):$(gitexecdir_SQ):$(template_dir_SQ):$(prefix_SQ):\ $(localedir_SQ) - -GIT-PREFIX: FORCE - @FLAGS='$(TRACK_PREFIX)'; \ - if test x"$$FLAGS" != x"`cat GIT-PREFIX 2>/dev/null`" ; then \ - echo >&2 " * new prefix flags"; \ - echo "$$FLAGS" >GIT-PREFIX; \ - fi +$(eval $(call TRACK_template,GIT-PREFIX,TRACK_PREFIX)) TRACK_CFLAGS = $(CC):$(subst ','\'',$(ALL_CFLAGS)):$(USE_GETTEXT_SCHEME) - -GIT-CFLAGS: FORCE - @FLAGS='$(TRACK_CFLAGS)'; \ - if test x"$$FLAGS" != x"`cat GIT-CFLAGS 2>/dev/null`" ; then \ - echo >&2 " * new build flags"; \ - echo "$$FLAGS" >GIT-CFLAGS; \ - fi +$(eval $(call TRACK_template,GIT-CFLAGS,TRACK_CFLAGS)) TRACK_LDFLAGS = $(subst ','\'',$(ALL_LDFLAGS)) - -GIT-LDFLAGS: FORCE - @FLAGS='$(TRACK_LDFLAGS)'; \ - if test x"$$FLAGS" != x"`cat GIT-LDFLAGS 2>/dev/null`" ; then \ - echo >&2 " * new link flags"; \ - echo "$$FLAGS" >GIT-LDFLAGS; \ - fi +$(eval $(call TRACK_template,GIT-LDFLAGS,TRACK_LDFLAGS)) # We need to apply sq twice, once to protect from the shell # that runs GIT-BUILD-OPTIONS, and then again to protect it diff --git a/shared.mak b/shared.mak index ef03c2bc094..3b4163e652a 100644 --- a/shared.mak +++ b/shared.mak @@ -29,3 +29,25 @@ shelldquote = '"$(call shdq,$(call shq,$(1)))"' comma = , empty = space = $(empty) $(empty) + +## wspfx: the whitespace prefix padding for $(QUIET...) and similarly +## aligned output. +wspfx = $(space)$(space)$(space) +wspfx_sq = $(call shellquote,$(wspfx)) + +### Templates + +## Template for making a GIT-SOMETHING, which changes if a +## TRACK_SOMETHING variable changes. +define TRACK_template +.PHONY: FORCE +$(1): FORCE + @FLAGS='$$($(2))'; \ + if ! test -f $(1) ; then \ + echo $(wspfx_sq) "$(1) PARAMETERS (new)" $@; \ + echo "$$$$FLAGS" >$(1); \ + elif test x"$$$$FLAGS" != x"`cat $(1) 2>/dev/null`" ; then \ + echo $(wspfx_sq) "$(1) PARAMETERS (changed)" $@; \ + echo "$$$$FLAGS" >$(1); \ + fi +endef From patchwork Tue Nov 16 12:00:16 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622237 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 979FFC433FE for ; Tue, 16 Nov 2021 12:04:29 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 7EEA961A7D for ; Tue, 16 Nov 2021 12:04:29 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236133AbhKPMHW (ORCPT ); Tue, 16 Nov 2021 07:07:22 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33588 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235779AbhKPMEn (ORCPT ); Tue, 16 Nov 2021 07:04:43 -0500 Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DB9E6C06122F for ; Tue, 16 Nov 2021 04:00:49 -0800 (PST) Received: by mail-wr1-x433.google.com with SMTP id u1so37056035wru.13 for ; Tue, 16 Nov 2021 04:00:49 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=RslYP/bFBNufLqifQGzjMCRo5PCwulHM513xwWFpLSk=; b=PThn51o1W0lpXHHvRzfvzpbSVP7Tiha/P6vb9eDr2rOXF0b/2oGAQwuRMhXOdl/KUk 00U4ZUmQtkR4t5KMoRJ+8rJV0IkGS0+J+dy1KzQGbJGzjLweYPRhOjpm0wNW4d6yFAjL z6ihk0XCn3bmWFK6vveLh5H+zZvqxAbDPXLsCcm2TBRK+zfLtzonou0olfDVM/CW1YSp ugEXFp6TY2bNfK8rE+ciI9sgMAj9DWhBV4V4nJs5FvVnq7SVrpvX4vwvWvSjDFlP0eis rb5r4sAnZsDqX5wQhv2GFY1f77Z2Vmt6akDAQbJPcV54TXZPWqo5X5rBdUJIBxXA5Hec 2i+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=RslYP/bFBNufLqifQGzjMCRo5PCwulHM513xwWFpLSk=; b=3xElI0ot8bNUENPIndLnwpXNzCzsoknRKEbuwzwwvdKUTgfDIhsWuoQ71FyaM7u3aq +N2PlS40IcyaPK/7lu4x27abT+s29g1+VWmhCCfJzoTiRmt8nQp5Fw/V17M4Pwgj56PA GEJCkyjlvrqfkangDyuf/H4wPpMbdIP53QLYOpe4S6DH2ijHxVIUFjV02Ya0RyF06jiG cjLK7dK3b/0ZA0JcZuipUg5eusMnreRIcgJ/onZpusX9cXESyaNELA1sfq48C94++Mbk kqutkjYPLis/dL4MVH3B5Li93xmVO86s3T2YtbJY2dzF9+2YOa6LeuMaYGtLsd05Klt1 iyNw== X-Gm-Message-State: AOAM531fI2H9Sf3ecmzqzNnsdv65lVN8GRMoTrID1VG6j0SNcLTtsq/p nmidXVugce3FOTf5UJE75vro5Uvf5+Ebvg== X-Google-Smtp-Source: ABdhPJw4TMLHCogahYJfyEtJUrUyDpMMI7mIaEmRvOHETWIJaqy1oUP36E2vjcM5nyDN/ZQ1DEVvQg== X-Received: by 2002:a5d:4e0b:: with SMTP id p11mr8517113wrt.88.1637064048214; Tue, 16 Nov 2021 04:00:48 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:47 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 16/23] Makefile: add "$(QUIET)" boilerplate to shared.mak Date: Tue, 16 Nov 2021 13:00:16 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org The $(QUIET) variables we define are largely duplicated between our various Makefiles, let's define them in the new "shared.mak" instead. Since we're not using the environment to pass these around we don't need to export the "QUIET_GEN" and "QUIET_BUILT_IN" variables anymore. The "QUIET_GEN" variable is used in "git-gui/Makefile" and "gitweb/Makefile", but they've got their own definition for those. The "QUIET_BUILT_IN" variable is only used in the top-level "Makefile". We still need to export the "V" variable. Signed-off-by: Ævar Arnfjörð Bjarmason --- Documentation/Makefile | 32 ------------------------- Makefile | 33 -------------------------- config.mak.uname | 1 - shared.mak | 53 ++++++++++++++++++++++++++++++++++++++++++ templates/Makefile | 5 ---- 5 files changed, 53 insertions(+), 71 deletions(-) diff --git a/Documentation/Makefile b/Documentation/Makefile index 4a939cc2c25..69a9af35397 100644 --- a/Documentation/Makefile +++ b/Documentation/Makefile @@ -218,38 +218,6 @@ DEFAULT_EDITOR_SQ = $(subst ','\'',$(DEFAULT_EDITOR)) ASCIIDOC_EXTRA += -a 'git-default-editor=$(DEFAULT_EDITOR_SQ)' endif -QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir -QUIET_SUBDIR1 = - -ifneq ($(findstring $(MAKEFLAGS),w),w) -PRINT_DIR = --no-print-directory -else # "make -w" -NO_SUBDIR = : -endif - -ifneq ($(findstring $(MAKEFLAGS),s),s) -ifndef V - QUIET = @ - QUIET_ASCIIDOC = @echo ' ' ASCIIDOC $@; - QUIET_XMLTO = @echo ' ' XMLTO $@; - QUIET_DB2TEXI = @echo ' ' DB2TEXI $@; - QUIET_MAKEINFO = @echo ' ' MAKEINFO $@; - QUIET_DBLATEX = @echo ' ' DBLATEX $@; - QUIET_XSLTPROC = @echo ' ' XSLTPROC $@; - QUIET_GEN = @echo ' ' GEN $@; - QUIET_STDERR = 2> /dev/null - QUIET_SUBDIR0 = +@subdir= - QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \ - $(MAKE) $(PRINT_DIR) -C $$subdir - - QUIET_LINT_GITLINK = @echo ' ' LINT GITLINK $<; - QUIET_LINT_MANSEC = @echo ' ' LINT MAN SEC $<; - QUIET_LINT_MANEND = @echo ' ' LINT MAN END $<; - - export V -endif -endif - all: html man html: $(DOC_HTML) diff --git a/Makefile b/Makefile index c8a0a1586ca..c437aea9e4a 100644 --- a/Makefile +++ b/Makefile @@ -1939,39 +1939,6 @@ ifndef PAGER_ENV PAGER_ENV = LESS=FRX LV=-c endif -QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir -QUIET_SUBDIR1 = - -ifneq ($(findstring w,$(MAKEFLAGS)),w) -PRINT_DIR = --no-print-directory -else # "make -w" -NO_SUBDIR = : -endif - -ifneq ($(findstring s,$(MAKEFLAGS)),s) -ifndef V - QUIET_CC = @echo ' ' CC $@; - QUIET_AR = @echo ' ' AR $@; - QUIET_LINK = @echo ' ' LINK $@; - QUIET_BUILT_IN = @echo ' ' BUILTIN $@; - QUIET_GEN = @echo ' ' GEN $@; - QUIET_LNCP = @echo ' ' LN/CP $@; - QUIET_XGETTEXT = @echo ' ' XGETTEXT $@; - QUIET_MSGFMT = @echo ' ' MSGFMT $@; - QUIET_GCOV = @echo ' ' GCOV $@; - QUIET_SP = @echo ' ' SP $<; - QUIET_HDR = @echo ' ' HDR $(<:hcc=h); - QUIET_RC = @echo ' ' RC $@; - QUIET_SPATCH = @echo ' ' SPATCH $<; - QUIET_SUBDIR0 = +@subdir= - QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \ - $(MAKE) $(PRINT_DIR) -C $$subdir - export V - export QUIET_GEN - export QUIET_BUILT_IN -endif -endif - ifdef NO_INSTALL_HARDLINKS export NO_INSTALL_HARDLINKS endif diff --git a/config.mak.uname b/config.mak.uname index d0701f9beb0..1a12d8c635f 100644 --- a/config.mak.uname +++ b/config.mak.uname @@ -715,7 +715,6 @@ vcxproj: git diff-index --cached --quiet HEAD -- # Make .vcxproj files and add them - unset QUIET_GEN QUIET_BUILT_IN; \ perl contrib/buildsystems/generate -g Vcxproj git add -f git.sln {*,*/lib,t/helper/*}/*.vcxproj diff --git a/shared.mak b/shared.mak index 3b4163e652a..80176f705fc 100644 --- a/shared.mak +++ b/shared.mak @@ -35,6 +35,59 @@ space = $(empty) $(empty) wspfx = $(space)$(space)$(space) wspfx_sq = $(call shellquote,$(wspfx)) +### Quieting +## common +QUIET_SUBDIR0 = +$(MAKE) -C # space to separate -C and subdir +QUIET_SUBDIR1 = + +ifneq ($(findstring w,$(MAKEFLAGS)),w) +PRINT_DIR = --no-print-directory +else # "make -w" +NO_SUBDIR = : +endif + +ifneq ($(findstring s,$(MAKEFLAGS)),s) +ifndef V +## common + QUIET_SUBDIR0 = +@subdir= + QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \ + $(MAKE) $(PRINT_DIR) -C $$subdir + + QUIET = @ + QUIET_GEN = @echo ' ' GEN $@; + +## Used in "Makefile" + QUIET_CC = @echo ' ' CC $@; + QUIET_AR = @echo ' ' AR $@; + QUIET_LINK = @echo ' ' LINK $@; + QUIET_BUILT_IN = @echo ' ' BUILTIN $@; + QUIET_LNCP = @echo ' ' LN/CP $@; + QUIET_XGETTEXT = @echo ' ' XGETTEXT $@; + QUIET_MSGFMT = @echo ' ' MSGFMT $@; + QUIET_GCOV = @echo ' ' GCOV $@; + QUIET_SP = @echo ' ' SP $<; + QUIET_HDR = @echo ' ' HDR $(<:hcc=h); + QUIET_RC = @echo ' ' RC $@; + QUIET_SPATCH = @echo ' ' SPATCH $<; + +## Used in "Documentation/Makefile" + QUIET_ASCIIDOC = @echo ' ' ASCIIDOC $@; + QUIET_XMLTO = @echo ' ' XMLTO $@; + QUIET_DB2TEXI = @echo ' ' DB2TEXI $@; + QUIET_MAKEINFO = @echo ' ' MAKEINFO $@; + QUIET_DBLATEX = @echo ' ' DBLATEX $@; + QUIET_XSLTPROC = @echo ' ' XSLTPROC $@; + QUIET_GEN = @echo ' ' GEN $@; + QUIET_STDERR = 2> /dev/null + + QUIET_LINT_GITLINK = @echo ' ' LINT GITLINK $<; + QUIET_LINT_MANSEC = @echo ' ' LINT MAN SEC $<; + QUIET_LINT_MANEND = @echo ' ' LINT MAN END $<; + + export V +endif +endif + ### Templates ## Template for making a GIT-SOMETHING, which changes if a diff --git a/templates/Makefile b/templates/Makefile index c9251a96622..b056e710b7e 100644 --- a/templates/Makefile +++ b/templates/Makefile @@ -2,11 +2,6 @@ include ../shared.mak # make and install sample templates - -ifndef V - QUIET = @ -endif - INSTALL ?= install TAR ?= tar RM ?= rm -f From patchwork Tue Nov 16 12:00:17 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622241 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id F0733C433EF for ; Tue, 16 Nov 2021 12:04:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id D1B1261414 for ; Tue, 16 Nov 2021 12:04:39 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235961AbhKPMH1 (ORCPT ); Tue, 16 Nov 2021 07:07:27 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33658 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235900AbhKPMEp (ORCPT ); Tue, 16 Nov 2021 07:04:45 -0500 Received: from mail-wm1-x32b.google.com (mail-wm1-x32b.google.com [IPv6:2a00:1450:4864:20::32b]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C771EC061230 for ; Tue, 16 Nov 2021 04:00:50 -0800 (PST) Received: by mail-wm1-x32b.google.com with SMTP id o29so16693760wms.2 for ; Tue, 16 Nov 2021 04:00:50 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=NcgkNGk4LHO5zXDgYbnt0ZesM4Wt3+ivuJEBZM6P0Dc=; b=XqqTk2nhtoapzPJYR7S7n2cPeNCg6SXkvsMPxrADbvj4l3zNXmTR9paVK20U7kd0Vl FkavxGIGDmIdGSCfgo/x9n7dIY2S5dSX3krJi0/a8SQ5POp+aC/+j1Cg3ecu8NtxI4RX oht12LZmK5ygRxZsTnCS8kYQ7BDWPr5U/qd/ew1eFa97pO6kAJsJsnjxpKjZkfWOHyJq GahKuYSX4emumVZR1zt7AoOBXyt2Of/wJcEpQK5h+AC9U9S/r0FISnSKuFEt9dAU9+is y8sgp89lngVPf2mLr81zRiQ5CNsxlscslDe/Lu8nOho1xWQppxXAr5MzQbX81ULf4mOm riYQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=NcgkNGk4LHO5zXDgYbnt0ZesM4Wt3+ivuJEBZM6P0Dc=; b=u1soKl+PFN/Yt85gPa//tfO4KmfcXidaZgWttX3wUVtMBC6+o8JZ1Mx2KA0tcjnmEp gTFKjnCoXpaXHPHjzuwE5L7Be5PmSoxQGHs4/pp5F41jjQupNrYiFmXQ2rESMG4pZ+v+ K0IwznLHDkw0zbDJeyBZFfBnSt0bmn9REUlS/QEMos+3S32Rk04JWVprxob7kVMCxl4Z 4QG3wpChptLj+SGbBz8Qo37nfkU6R/x++vnkvvzmlQgUAaewk87fw8FC5oNfWlF3s4Rp QIBtFHLRWXKht7dXi8thETRLUk6laxMvbTU7dM5bZVOLW8v11mqZwDH8EFKgChhPcw+1 kw8A== X-Gm-Message-State: AOAM530pTM/KJgvZJpWqfMj1P+Bn8xg61LzJVgqODEhW2gC2dHyXhV5x lLyKRsU3xYvKvj+mIEeOAYBPCOLYf+5cBg== X-Google-Smtp-Source: ABdhPJyMiCUndD1d9tsjLs5HRgmzLvNJLBqKiSkLOW29AcP+1GTMesvc1lhx/RK/RLBFhL6iPj5yKg== X-Received: by 2002:a7b:c005:: with SMTP id c5mr6993796wmb.150.1637064049055; Tue, 16 Nov 2021 04:00:49 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.48 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:48 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 17/23] Makefile: use $(wspfx) for $(QUIET...) in shared.mak Date: Tue, 16 Nov 2021 13:00:17 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Change the mostly move-only change in the preceding commit to use the $(wspfx) variable for defining the QUIET padding, to guarantee that it's consistent with the "TRACK_template" template. $ make CFLAGS=-I$RANDOM grep.o wspfx='$(space)->' -> GIT-CFLAGS PARAMETERS (changed) -> CC grep.o Signed-off-by: Ævar Arnfjörð Bjarmason --- shared.mak | 48 ++++++++++++++++++++++++------------------------ 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/shared.mak b/shared.mak index 80176f705fc..a1b62b272f8 100644 --- a/shared.mak +++ b/shared.mak @@ -50,39 +50,39 @@ ifneq ($(findstring s,$(MAKEFLAGS)),s) ifndef V ## common QUIET_SUBDIR0 = +@subdir= - QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo ' ' SUBDIR $$subdir; \ + QUIET_SUBDIR1 = ;$(NO_SUBDIR) echo $(wspfx_sq) SUBDIR $$subdir; \ $(MAKE) $(PRINT_DIR) -C $$subdir QUIET = @ - QUIET_GEN = @echo ' ' GEN $@; + QUIET_GEN = @echo $(wspfx_sq) GEN $@; ## Used in "Makefile" - QUIET_CC = @echo ' ' CC $@; - QUIET_AR = @echo ' ' AR $@; - QUIET_LINK = @echo ' ' LINK $@; - QUIET_BUILT_IN = @echo ' ' BUILTIN $@; - QUIET_LNCP = @echo ' ' LN/CP $@; - QUIET_XGETTEXT = @echo ' ' XGETTEXT $@; - QUIET_MSGFMT = @echo ' ' MSGFMT $@; - QUIET_GCOV = @echo ' ' GCOV $@; - QUIET_SP = @echo ' ' SP $<; - QUIET_HDR = @echo ' ' HDR $(<:hcc=h); - QUIET_RC = @echo ' ' RC $@; - QUIET_SPATCH = @echo ' ' SPATCH $<; + QUIET_CC = @echo $(wspfx_sq) CC $@; + QUIET_AR = @echo $(wspfx_sq) AR $@; + QUIET_LINK = @echo $(wspfx_sq) LINK $@; + QUIET_BUILT_IN = @echo $(wspfx_sq) BUILTIN $@; + QUIET_LNCP = @echo $(wspfx_sq) LN/CP $@; + QUIET_XGETTEXT = @echo $(wspfx_sq) XGETTEXT $@; + QUIET_MSGFMT = @echo $(wspfx_sq) MSGFMT $@; + QUIET_GCOV = @echo $(wspfx_sq) GCOV $@; + QUIET_SP = @echo $(wspfx_sq) SP $<; + QUIET_HDR = @echo $(wspfx_sq) HDR $(<:hcc=h); + QUIET_RC = @echo $(wspfx_sq) RC $@; + QUIET_SPATCH = @echo $(wspfx_sq) SPATCH $<; ## Used in "Documentation/Makefile" - QUIET_ASCIIDOC = @echo ' ' ASCIIDOC $@; - QUIET_XMLTO = @echo ' ' XMLTO $@; - QUIET_DB2TEXI = @echo ' ' DB2TEXI $@; - QUIET_MAKEINFO = @echo ' ' MAKEINFO $@; - QUIET_DBLATEX = @echo ' ' DBLATEX $@; - QUIET_XSLTPROC = @echo ' ' XSLTPROC $@; - QUIET_GEN = @echo ' ' GEN $@; + QUIET_ASCIIDOC = @echo $(wspfx_sq) ASCIIDOC $@; + QUIET_XMLTO = @echo $(wspfx_sq) XMLTO $@; + QUIET_DB2TEXI = @echo $(wspfx_sq) DB2TEXI $@; + QUIET_MAKEINFO = @echo $(wspfx_sq) MAKEINFO $@; + QUIET_DBLATEX = @echo $(wspfx_sq) DBLATEX $@; + QUIET_XSLTPROC = @echo $(wspfx_sq) XSLTPROC $@; + QUIET_GEN = @echo $(wspfx_sq) GEN $@; QUIET_STDERR = 2> /dev/null - QUIET_LINT_GITLINK = @echo ' ' LINT GITLINK $<; - QUIET_LINT_MANSEC = @echo ' ' LINT MAN SEC $<; - QUIET_LINT_MANEND = @echo ' ' LINT MAN END $<; + QUIET_LINT_GITLINK = @echo $(wspfx_sq) LINT GITLINK $<; + QUIET_LINT_MANSEC = @echo $(wspfx_sq) LINT MAN SEC $<; + QUIET_LINT_MANEND = @echo $(wspfx_sq) LINT MAN END $<; export V endif From patchwork Tue Nov 16 12:00:18 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622243 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 3E4A9C433EF for ; Tue, 16 Nov 2021 12:04:43 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 24CB861B39 for ; Tue, 16 Nov 2021 12:04:43 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236174AbhKPMHh (ORCPT ); Tue, 16 Nov 2021 07:07:37 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33586 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235959AbhKPMFZ (ORCPT ); Tue, 16 Nov 2021 07:05:25 -0500 Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AA51EC0797B5 for ; Tue, 16 Nov 2021 04:00:51 -0800 (PST) Received: by mail-wr1-x431.google.com with SMTP id a9so10851908wrr.8 for ; Tue, 16 Nov 2021 04:00:51 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=FV1QtdN8Z1ZpecyngUgYpHXhT9Ht/Sv+3/E2cLt8Vts=; b=SB1J49BaJorVAqXOdABpGEXo4dAwLvkMcmI4fvVL5d+GZ4gsRDys9Ij4BkBLoHiZhx uA01+LjPVPSV/YMxLILHe7Db5uEIRZods1M7BvVxaaOiu5SJkVqf4JcDr8ymMcjNfbhS VnmtFqjyDCyT5dJCEyACnDMoWvE7M6Ql1IUbtJIn3YoGWMaqctqRuvhSfqzKclpUxih9 BJQVRq8C2hI/n2fTXfd0GTtgQwMJTEKMrVF/A8RLXHRRO0oMdwzznyxGFrYf9Czhrbdj 1NvLHHGv8mUldtUBCuQ4XJhpwTZlb0XkfimK9oDebHrfe2zYS+a7QK/Wpumg/FfjeXpT dEcg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=FV1QtdN8Z1ZpecyngUgYpHXhT9Ht/Sv+3/E2cLt8Vts=; b=SaJJvhQCfFZ4IDs0rCY2YIk2nLgwPY5a8avKNg3SmiJ3dVO2IvUrS6NafAxqhzU9GN qv+qO/rcqhPrHfXZM2KZh6u52pzUUZmzCrwjLFbMHQsqiGfg7tM/xajn1dO9+wQepu6k g93+k0krDcqydANEp61q90rMQx/WfefcIguwssH1qN9vDjOCZtBTleLeCeIFq8GoaKMe gC9bF3BMF81RqcWl+ALEBPXPcZRGoY6KywOvzV3GDufZFCRkBAWjDJTvGh2iB6BN+jQ2 9L4MMWF/95FkIv8FT6mmGdl4N49eIpYColVjcSY3+pWIBsLtx8mM1V4xwuAG8JZQuvyh V3Eg== X-Gm-Message-State: AOAM532l8EPnki4IRQ0yyrhhwStnI+gHpo2CowGytoSPYvCBR8lfwgOo RIVFkxCx9RPL/IpqCNbeTGJGiWXCN9CN6w== X-Google-Smtp-Source: ABdhPJyci8FDJasl8QfrY8xN1bUO2JNb5Vd2M8cKjvbmzWKZJ6s1/KRgA1xv5crOQBSTLybHtQ94sA== X-Received: by 2002:adf:e6c5:: with SMTP id y5mr8662513wrm.79.1637064049954; Tue, 16 Nov 2021 04:00:49 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:49 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 18/23] Makefiles: add and use wildcard "mkdir -p" template Date: Tue, 16 Nov 2021 13:00:18 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Add a template to do the "mkdir -p" of $(@D) (the parent dir of $@) for us, and use it for the "make lint-docs" targets I added in 8650c6298c1 (doc lint: make "lint-docs" non-.PHONY, 2021-10-15). As seen in 4c64fb5aad9 (Documentation/Makefile: fix lint-docs mkdir dependency, 2021-10-26) maintaining these manual lists of parent directory dependencies is fragile, in addition to being obviously verbose. I used this pattern at the time because I couldn't find another method than "order-only" prerequisites to avoid doing a "mkdir -p $(@D)" for every file being created, which as noted in [1] would be significantly slower. But as it turns out we can use this neat trick of only doing a "mkdir -p" if the $(wildcard) macro tells us the path doesn't exist. A re-run of a performance test similar to thatnoted downthread of [1] in [2] shows that this is faster, in addition to being less verbose and more reliable (this uses my "git-hyperfine" thin wrapper for "hyperfine"[3]): $ git hyperfine -L rev HEAD~0,HEAD~1 -b 'make -C Documentation lint-docs' -p 'rm -rf Documentation/.build' 'make -C Documentation lint-docs' Benchmark 1: make -C Documentation lint-docs' in 'HEAD~0 Time (mean ± σ): 2.129 s ± 0.011 s [User: 1.840 s, System: 0.321 s] Range (min … max): 2.121 s … 2.158 s 10 runs Benchmark 2: make -C Documentation lint-docs' in 'HEAD~1 Time (mean ± σ): 2.659 s ± 0.002 s [User: 2.306 s, System: 0.397 s] Range (min … max): 2.657 s … 2.662 s 10 runs Summary 'make -C Documentation lint-docs' in 'HEAD~0' ran 1.25 ± 0.01 times faster than 'make -C Documentation lint-docs' in 'HEAD~1' So let's use that pattern both for the "lint-docs" target, and a few miscellaneous other targets. This method of creating parent directories is explicitly racy in that we don't know if we're going to say always create a "foo" followed by a "foo/bar" under parallelism, or skip the "foo" because we created "foo/bar" first. In this case it doesn't matter for anything except that we aren't guaranteed to get the same number of rules firing when running make in parallel. 1. https://lore.kernel.org/git/211028.861r45y3pt.gmgdl@evledraar.gmail.com/ 2. https://lore.kernel.org/git/211028.86o879vvtp.gmgdl@evledraar.gmail.com/ 3. https://gitlab.com/avar/git-hyperfine/ Signed-off-by: Ævar Arnfjörð Bjarmason --- Documentation/Makefile | 25 +++---------------------- Makefile | 12 +++++++----- shared.mak | 7 +++++++ 3 files changed, 17 insertions(+), 27 deletions(-) diff --git a/Documentation/Makefile b/Documentation/Makefile index 69a9af35397..d16b653394c 100644 --- a/Documentation/Makefile +++ b/Documentation/Makefile @@ -428,25 +428,11 @@ quick-install-html: require-htmlrepo print-man1: @for i in $(MAN1_TXT); do echo $$i; done -## Lint: Common -.build: - $(QUIET)mkdir $@ -.build/lint-docs: | .build - $(QUIET)mkdir $@ - ## Lint: gitlink -.build/lint-docs/gitlink: | .build/lint-docs - $(QUIET)mkdir $@ -.build/lint-docs/gitlink/howto: | .build/lint-docs/gitlink - $(QUIET)mkdir $@ -.build/lint-docs/gitlink/config: | .build/lint-docs/gitlink - $(QUIET)mkdir $@ LINT_DOCS_GITLINK = $(patsubst %.txt,.build/lint-docs/gitlink/%.ok,$(HOWTO_TXT) $(DOC_DEP_TXT)) -$(LINT_DOCS_GITLINK): | .build/lint-docs/gitlink -$(LINT_DOCS_GITLINK): | .build/lint-docs/gitlink/howto -$(LINT_DOCS_GITLINK): | .build/lint-docs/gitlink/config $(LINT_DOCS_GITLINK): lint-gitlink.perl $(LINT_DOCS_GITLINK): .build/lint-docs/gitlink/%.ok: %.txt + $(call mkdir_p_parent_template) $(QUIET_LINT_GITLINK)$(PERL_PATH) lint-gitlink.perl \ $< \ $(HOWTO_TXT) $(DOC_DEP_TXT) \ @@ -457,23 +443,18 @@ $(LINT_DOCS_GITLINK): .build/lint-docs/gitlink/%.ok: %.txt lint-docs-gitlink: $(LINT_DOCS_GITLINK) ## Lint: man-end-blurb -.build/lint-docs/man-end-blurb: | .build/lint-docs - $(QUIET)mkdir $@ LINT_DOCS_MAN_END_BLURB = $(patsubst %.txt,.build/lint-docs/man-end-blurb/%.ok,$(MAN_TXT)) -$(LINT_DOCS_MAN_END_BLURB): | .build/lint-docs/man-end-blurb $(LINT_DOCS_MAN_END_BLURB): lint-man-end-blurb.perl $(LINT_DOCS_MAN_END_BLURB): .build/lint-docs/man-end-blurb/%.ok: %.txt + $(call mkdir_p_parent_template) $(QUIET_LINT_MANEND)$(PERL_PATH) lint-man-end-blurb.perl $< >$@ .PHONY: lint-docs-man-end-blurb -lint-docs-man-end-blurb: $(LINT_DOCS_MAN_END_BLURB) ## Lint: man-section-order -.build/lint-docs/man-section-order: | .build/lint-docs - $(QUIET)mkdir $@ LINT_DOCS_MAN_SECTION_ORDER = $(patsubst %.txt,.build/lint-docs/man-section-order/%.ok,$(MAN_TXT)) -$(LINT_DOCS_MAN_SECTION_ORDER): | .build/lint-docs/man-section-order $(LINT_DOCS_MAN_SECTION_ORDER): lint-man-section-order.perl $(LINT_DOCS_MAN_SECTION_ORDER): .build/lint-docs/man-section-order/%.ok: %.txt + $(call mkdir_p_parent_template) $(QUIET_LINT_MANSEC)$(PERL_PATH) lint-man-section-order.perl $< >$@ .PHONY: lint-docs-man-section-order lint-docs-man-section-order: $(LINT_DOCS_MAN_SECTION_ORDER) diff --git a/Makefile b/Makefile index c437aea9e4a..0a3f292bf82 100644 --- a/Makefile +++ b/Makefile @@ -2632,7 +2632,8 @@ all:: $(MOFILES) endif po/build/locale/%/LC_MESSAGES/git.mo: po/%.po - $(QUIET_MSGFMT)mkdir -p $(dir $@) && $(MSGFMT) -o $@ $< + $(call mkdir_p_parent_template) + $(QUIET_MSGFMT)$(MSGFMT) -o $@ $< ifndef NO_PERL LIB_PERL = $(wildcard perl/Git.pm perl/Git/*.pm perl/Git/*/*.pm perl/Git/*/*/*.pm) @@ -2641,7 +2642,8 @@ LIB_CPAN = $(wildcard perl/FromCPAN/*.pm perl/FromCPAN/*/*.pm) LIB_CPAN_GEN = $(patsubst perl/%.pm,perl/build/lib/%.pm,$(LIB_CPAN)) perl/build/lib/%.pm: perl/%.pm GIT-PERL-DEFINES - $(QUIET_GEN)mkdir -p $(dir $@) && \ + $(call mkdir_p_parent_template) + $(QUIET_GEN) \ sed -e 's|@@LOCALEDIR@@|$(perl_localedir_SQ)|g' \ -e 's|@@NO_GETTEXT@@|$(NO_GETTEXT_SQ)|g' \ -e 's|@@NO_PERL_CPAN_FALLBACKS@@|$(call shq,$(NO_PERL_CPAN_FALLBACKS))|g' \ @@ -2655,8 +2657,8 @@ endif # install-man depends on Git.3pm even with NO_PERL=Y perl/build/man/man3/Git.3pm: perl/Git.pm - $(QUIET_GEN)mkdir -p $(dir $@) && \ - pod2man $< $@ + $(call mkdir_p_parent_template) + $(QUIET_GEN)pod2man $< $@ FIND_SOURCE_FILES = ( \ git ls-files \ @@ -2780,7 +2782,7 @@ test_bindir_programs := $(patsubst %,bin-wrappers/%,$(BINDIR_PROGRAMS_NEED_X) $( all:: $(TEST_PROGRAMS) $(test_bindir_programs) bin-wrappers/%: wrap-for-bin.sh - @mkdir -p bin-wrappers + $(call mkdir_p_parent_template) $(QUIET_GEN)sed -e '1s|#!.*/sh|#!$(SHELL_PATH_SQ)|' \ -e 's|@@BUILD_DIR@@|$(shell pwd)|' \ -e 's|@@PROG@@|$(patsubst test-%,t/helper/test-%$(X),$(@F))$(patsubst git%,$(X),$(filter $(@F),$(BINDIR_PROGRAMS_NEED_X)))|' < $< > $@ && \ diff --git a/shared.mak b/shared.mak index a1b62b272f8..363138a5577 100644 --- a/shared.mak +++ b/shared.mak @@ -56,6 +56,8 @@ ifndef V QUIET = @ QUIET_GEN = @echo $(wspfx_sq) GEN $@; + QUIET_MKDIR_P_PARENT = @echo $(wspfx_sq) MKDIR -p $(@D); + ## Used in "Makefile" QUIET_CC = @echo $(wspfx_sq) CC $@; QUIET_AR = @echo $(wspfx_sq) AR $@; @@ -88,6 +90,11 @@ ifndef V endif endif +## Helpers +define mkdir_p_parent_template +$(if $(wildcard $(@D)),,$(QUIET_MKDIR_P_PARENT)$(shell mkdir -p $(@D))) +endef + ### Templates ## Template for making a GIT-SOMETHING, which changes if a From patchwork Tue Nov 16 12:00:19 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622253 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5101FC433EF for ; Tue, 16 Nov 2021 12:06:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3100E61B31 for ; Tue, 16 Nov 2021 12:06:30 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235835AbhKPMJU (ORCPT ); Tue, 16 Nov 2021 07:09:20 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33678 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235801AbhKPMFb (ORCPT ); Tue, 16 Nov 2021 07:05:31 -0500 Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com [IPv6:2a00:1450:4864:20::331]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AC6DDC0797B9 for ; Tue, 16 Nov 2021 04:00:52 -0800 (PST) Received: by mail-wm1-x331.google.com with SMTP id r9-20020a7bc089000000b00332f4abf43fso1678684wmh.0 for ; Tue, 16 Nov 2021 04:00:52 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=JYU6ZqdBylyp/LlzABrbBEiDt9aT91KV5lqC0sjQkNY=; b=gkt7K+8e9O3sZTywgzqWcrolW3iPcnF13St7LKZbRQ6oX2v2V8D9+SCD8Jl0wiFu0L Z7ofryLyg9v9oNMrT05pRKCSi31QZKI8Rc291evi0gSLtGZ0MdKLpr5jNT3vHg0bGp1k DbHw0aOwyNsZIA8OjK9onbLLBf3CcsnzleBnMlrl0DYCaHjWlG+2qxMOxjeZPXz0GBeh cWuwVRKqv3qZh3kWxb5wPi0yq27b1unh9CNRq880WoHxcMHLn2u4fKh/GeeAsV4MrQPA +0Qxlfw8OVyxF/XGLVTUfRsFwb7MW+oDnAwuYXOPadzOcdhaAQoAZI9ss31r6Ttnx2qj nRwg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=JYU6ZqdBylyp/LlzABrbBEiDt9aT91KV5lqC0sjQkNY=; b=7da74iqzlae/ZoZmjlLgayogTZpDULfI/lDFtTycDjRYGLqTVolfcoYRTEumySvxQE jvnwBS/1NBaTsQ3URPAo/I5riimB1ys01u7qAKacCL3qgy865P0tNhZnhT9p+QlpO1vs zFruyOlcqCMiMEN0QSspR9FHv+rRbTWXE2PlfSuFq1FtSj0UiNP/cHrCktPJAFMh+smK pJ6V/B3h99mP31rmJxU5I+lWZExFyolmJWB9CV7o91jMuDyoPVby5BhSF8xI9C1wkklw ZlHQnn5YQQK2gt5STsy4sxky5w906gJvcRIeYQoLPlLiBTd4e9b+OZAJYpuGJPIi3FU4 JjkQ== X-Gm-Message-State: AOAM532snE4y4mmfWh1x1xhgzRp4/JyoeEF0dqORet3Wq45Ny3RWxwOa jU4Jlh7ysB6l1BH9d9fyyGlxlmzIRybxMA== X-Google-Smtp-Source: ABdhPJwYxVdLo9azKxbBwz9iTJT1Y9EmSOA3fBWyBObVCOPmRwP5anlIYfWzZ5dLttEZWz0AA9rviw== X-Received: by 2002:a7b:cd93:: with SMTP id y19mr6948263wmj.190.1637064050963; Tue, 16 Nov 2021 04:00:50 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:50 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 19/23] Makefile: correct the dependency graph of hook-list.h Date: Tue, 16 Nov 2021 13:00:19 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Fix an issue in my cfe853e66be (hook-list.h: add a generated list of hooks, like config-list.h, 2021-09-26), the builtin/help.c was inadvertently made to depend on hook-list.h, but it's used by builtin/bugreport.c. Reported-by: Mike Hommey Signed-off-by: Ævar Arnfjörð Bjarmason --- Makefile | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/Makefile b/Makefile index 0a3f292bf82..bae20eb1b40 100644 --- a/Makefile +++ b/Makefile @@ -2162,8 +2162,9 @@ git$X: git.o GIT-LDFLAGS $(BUILTIN_OBJS) $(GITLIBS) help.sp help.s help.o: command-list.h hook.sp hook.s hook.o: hook-list.h +builtin/bugreport.sp builtin/bugreport.s builtin/bugreport.o: hook-list.h -builtin/help.sp builtin/help.s builtin/help.o: config-list.h hook-list.h GIT-PREFIX +builtin/help.sp builtin/help.s builtin/help.o: config-list.h GIT-PREFIX builtin/help.sp builtin/help.s builtin/help.o: EXTRA_CPPFLAGS = \ '-DGIT_HTML_PATH="$(htmldir_relative_SQ)"' \ '-DGIT_MAN_PATH="$(mandir_relative_SQ)"' \ From patchwork Tue Nov 16 12:00:20 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622251 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 84C4AC433EF for ; Tue, 16 Nov 2021 12:06:24 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 6CA7D61B31 for ; Tue, 16 Nov 2021 12:06:24 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235803AbhKPMJL (ORCPT ); Tue, 16 Nov 2021 07:09:11 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33596 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235980AbhKPMFb (ORCPT ); Tue, 16 Nov 2021 07:05:31 -0500 Received: from mail-wr1-x431.google.com (mail-wr1-x431.google.com [IPv6:2a00:1450:4864:20::431]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8B62FC0797BD for ; Tue, 16 Nov 2021 04:00:53 -0800 (PST) Received: by mail-wr1-x431.google.com with SMTP id n29so37009129wra.11 for ; Tue, 16 Nov 2021 04:00:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=Szy2iyXwOHP8os9PTxE0N2UjaPR+rLWL2NUEvSiQdgw=; b=DQ/KwOcN/Mppy30R8kNQbnywc/uAg3h2vNjywQe44Rznvpu/xTFVnd9fzueUd96cks Rwl+eSH9jmgRc5pG+g7FKOkoV326+hCFEm2YHOJA3Q4cjknqt0w+v1JPcsOqGXmSA88N ZaRHUojkLMCYqYe9fOgYB9biBI7fZmM13GWXhdtgfUCSVtimQZj8pm5WlqjY0KHiBxnV xJa8FYaoQzu+9yxKl4Nncp0UWEawMx3RDZxKcOKnh7HhB0DYs8kvoQdhCV32ork57fMK YikWZ/ubEj7wtcDy/8taEIXyDpMWDx9he7vQoyn54kTfhb5M9+19jbA27GgDoixaWtJC vaiw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=Szy2iyXwOHP8os9PTxE0N2UjaPR+rLWL2NUEvSiQdgw=; b=v1LNB3suHOt6Gr9P/Ij6Sd9UG2eOgrEp4OU9dx5pGCCOI4a5iWuFySQqwXvAOvFiuc p59AAaKt6HXI9TV7FmqCFd4pcODi1uXoGbf9DsJnxbFmgJHHfK0HN6diXgw94Mgn9/m9 xUfAE0yCqg9DocEw6FdrV01IwJMfD9LmEXSYm4jrhsxgaPeUFIQyC/df8at0vpKEfmNA nDvmuye6nKsOhFa+k2qfxX+HlCj9bQQhLgLIeegTNgbAZPBnA9R1s3CVUss08cHBNSAI MyAgPDjfo8t+C5iKdGzWBamzi0rCVv6EzBLuksZFp/MWMjDdz9uqGHzusHMg8BhnxNiI nNHw== X-Gm-Message-State: AOAM531qV1YfMeU2f2qgeAAUlBWrxTGgXYPMxbMZvlpxEpIVjTXPcEDP JR1bDc3lRUNVG2g50ZL5b4B/rYESm9fCxQ== X-Google-Smtp-Source: ABdhPJygPS9OdShlh2WmbAFe49tqzg1tg3l9KFpxJJ0ldVeqHpZ8ZyDaUbTLX49o5sDtho6rKo+ueA== X-Received: by 2002:a5d:668f:: with SMTP id l15mr8755400wru.182.1637064051912; Tue, 16 Nov 2021 04:00:51 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:51 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 20/23] Makefile: use $(file) I/O instead of "FORCE" when possible Date: Tue, 16 Nov 2021 13:00:20 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Provide an alternate implementation of the recently added "TRACK_template" which uses GNU make 4.2 features. If the 'file' function is available we don't need to shell out at all to check if our tracked files change. We need to use the intermediate TRACK_template calling a TRACK_template_eval within the generated rule so that we don't eagerly fleshen these when "make" reads the file. This doesn't make the runtime faster on my system, but helps to cut down on the noise of things we shell out for unconditionally. I.e. running "make" with "SHELL_PATH='sh -x'" (twice, so we pick up the setting) shows than a no-op run went from emitting: $ SHELL_PATH='sh -x' make -j8 >/dev/null 2>&1; SHELL_PATH='sh -x' make 2>&1 |wc -l 124 To: $ SHELL_PATH='sh -x' make -j8 >/dev/null 2>&1; SHELL_PATH='sh -x' make 2>&1 |wc -l 95 That 124 to 95 number is a rough approximation of how many times we shell out. "strace -f -c" similarly shows that we went from 8798 to 8466 syscalls. So this brings us further along in the goal of making "make" do as little as possible when it's got nothing to re-build (see [2]). 1. https://lore.kernel.org/git/874kdn1j6i.fsf@evledraar.gmail.com/ Signed-off-by: Ævar Arnfjörð Bjarmason --- shared.mak | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 58 insertions(+) diff --git a/shared.mak b/shared.mak index 363138a5577..4ee0bb7a13d 100644 --- a/shared.mak +++ b/shared.mak @@ -8,6 +8,22 @@ # info make --index-search=.DELETE_ON_ERROR .DELETE_ON_ERROR: +### GNU Make version detection +# We don't care about "release" versions like the "90" in "3.99.90" +MAKE_VERSION_MAJOR = $(word 1,$(subst ., ,$(MAKE_VERSION))) +MAKE_VERSION_MINOR = $(word 2,$(subst ., ,$(MAKE_VERSION))) + +# The oldest supported version of GNU make is 3-something. So "not v3" +# is a future-proof way to ask "is it modern?" +ifneq ($(MAKE_VERSION_MAJOR),3) +# $(file >[...]) and $(file >>[...]) is in 4.0... +MAKE_HAVE_FILE_WRITE = Need version 4.0 or later (released in late 2013) +# .. but we need 4.2 for $(file <[...]) +ifneq ($(filter-out 0 1,$(MAKE_VERSION_MINOR)),) +MAKE_HAVE_FILE_READ = Need version 4.2 or later (released in mid-2016) +endif +endif + ### Quoting helpers ## Quote a ' inside a '': FOO='$(call shq,$(BAR))' @@ -99,6 +115,10 @@ endef ## Template for making a GIT-SOMETHING, which changes if a ## TRACK_SOMETHING variable changes. +## +## This is the slower version used on GNU make <4.2. +ifndef MAKE_HAVE_FILE_READ + define TRACK_template .PHONY: FORCE $(1): FORCE @@ -111,3 +131,41 @@ $(1): FORCE echo "$$$$FLAGS" >$(1); \ fi endef + +endif # !MAKE_HAVE_FILE_READ + +## A TRACK_template template compatible with the one above. Uses +## features of GNU make >=4.2 to avoid shelling out for this "hot" +## "FORCE" logic. +## +## Since version >=4.2 can do both "I" and "O" in I/O with using +## $(file <)/$(file >) we read the GIT-SOMETHING file into a variable +## with the former, and if it's different from our expected value +## write it out with the latter. +ifdef MAKE_HAVE_FILE_READ + +define TRACK_template_eval +$(1)_WRITE = +$(1)_EXISTS = $(wildcard $(1)) +ifeq ($$($(1)_EXISTS),) +$(1)_WRITE = new +else +$(1)_CONTENT = $(file <$(1)) +ifeq ($$($(1)_CONTENT),$($(2))) +$(1)_WRITE = same +else +$(1)_WRITE = changed +endif +endif +ifneq ($$($(1)_WRITE),same) +$$(info $$(wspfx) $(1) parameters ($$($(1)_WRITE))) +$$(file >$(1),$($(2))) +endif +endef # TRACK_template_eval + +define TRACK_template +$(1): + $$(eval $$(call TRACK_template_eval,$(1),$(2))) +endef + +endif # MAKE_HAVE_FILE_READ From patchwork Tue Nov 16 12:00:21 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622245 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id EE9D5C433F5 for ; Tue, 16 Nov 2021 12:05:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id CEFB561B3D for ; Tue, 16 Nov 2021 12:05:54 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236136AbhKPMI0 (ORCPT ); Tue, 16 Nov 2021 07:08:26 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33598 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235804AbhKPMFc (ORCPT ); Tue, 16 Nov 2021 07:05:32 -0500 Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com [IPv6:2a00:1450:4864:20::331]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4918EC0432C0 for ; Tue, 16 Nov 2021 04:00:54 -0800 (PST) Received: by mail-wm1-x331.google.com with SMTP id k37-20020a05600c1ca500b00330cb84834fso1734345wms.2 for ; Tue, 16 Nov 2021 04:00:54 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=MXSJBOyIgVUcx7NMu2fpoysXYWnT+MKHU2pfBKfqnFk=; b=oHfGli8r3wTuu6RpOOYeGZvmBY5QYKnmloOqcOLs/6t3e+eFg2ch5XD0lzjB2A9DYZ mqQnp2zHBhTqC4wXRm4UJsBUi9+w/Q9jr5uSArV3EEyWHsm2we98sbfnrlysKu2Fji7p Hs04ZSSBZ/zeD7nRDMKfmHph7QYrnto4xZnpY6bFnzrRwInpYvePwXFbJfhpZDGjtGqU 6/DNrdXZp2wElKflsY8AmStWVkUiDWEinroGMsZYeciQB075QAMfDrUr7wwBnF0Nf6ba Id09hOKxXFmQ3GRU7mlji/SgSa0LIkNri2W+JfM23aThtXpe31N+RAcibl2R5D/+AUx5 FC6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=MXSJBOyIgVUcx7NMu2fpoysXYWnT+MKHU2pfBKfqnFk=; b=f/+o6LG2uGGzFXNcFgXURMFsMf4ekB7yyYo8ev5UTDi8pA0JhNcrJ/BDSkJ4F2V5ZN 40AyPF6NJPvsPx3CGh1rAodGwqlAVO+BqYsBlbULPghOSKzomAcEVZvzoONzh0NV61k8 i6BYXaTIjGLTFIYkXoG0CDDNefFp3CHpmbCoT72HfvQRpdbrJ/4KxU9FH74wrnBQrWd2 cqCfgFHVOfb7jZSZamR2n1VOqSMqclsfp0WEg/9Cp32TYYMD3dTGc/LSQSOXnC7GLrH6 FfvbjYk9LvJoieYrLAp9usVgMyE1WOdB0h/YzUnalh6OCwwPis9IESGzfXvhG+4r6RpL wlNQ== X-Gm-Message-State: AOAM533+45Ec3zzI0Uf1PajOX6lvVCwCdnpUs9Jff4wgJ/U0wLpv7uzt +Nge+cxx0eyyHSy3sdmK1c+hfk/fHxmKLA== X-Google-Smtp-Source: ABdhPJxfJMiwEs/GZfkgza6TzLvFh51zjy0lLbaJbG/f/4yRnkLbBD8ZCgPz5Fzsx7JiqqIA5vYp0w== X-Received: by 2002:a7b:c38b:: with SMTP id s11mr71247103wmj.29.1637064052639; Tue, 16 Nov 2021 04:00:52 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.51 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:52 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 21/23] Makefile: disable GNU make built-in wildcard rules Date: Tue, 16 Nov 2021 13:00:21 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Override built-in rules of GNU make that use a wildcard target. This speeds things up significantly as we don't need to stat() so many files just in case we'd be able to retrieve their contents from RCS or SCCS. See [1] for an old mailing list discussion about how to disable these. This gives us a noticeable speedup on a no-op run: $ git hyperfine -L rev HEAD~1,HEAD~0 -s 'make -j8 all NO_TCLTK=Y' 'make NO_TCLTK=Y' --warmup 10 -M 10 Benchmark 1: make NO_TCLTK=Y' in 'HEAD~1 Time (mean ± σ): 182.2 ms ± 4.1 ms [User: 146.8 ms, System: 49.5 ms] Range (min … max): 179.6 ms … 193.4 ms 10 runs Benchmark 2: make NO_TCLTK=Y' in 'HEAD~0 Time (mean ± σ): 167.9 ms ± 1.3 ms [User: 127.8 ms, System: 55.6 ms] Range (min … max): 166.1 ms … 170.4 ms 10 runs Summary 'make NO_TCLTK=Y' in 'HEAD~0' ran 1.09 ± 0.03 times faster than 'make NO_TCLTK=Y' in 'HEAD~1' Running the same except with 'strace -c -S calls make' as the benchmark command shows (under --show-output) that we went from ~7716 syscalls to ~7519, mostly a reduction in [l]stat(). 1. https://lists.gnu.org/archive/html/help-make/2002-11/msg00063.html Signed-off-by: Ævar Arnfjörð Bjarmason --- shared.mak | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/shared.mak b/shared.mak index 4ee0bb7a13d..4862df1607a 100644 --- a/shared.mak +++ b/shared.mak @@ -1,3 +1,14 @@ +### Remove GNU make implicit rules + +## This speeds things up since we don't need to look for and stat() a +## "foo.c,v" every time a rule referring to "foo.c" is in play. See +## "make -p -f/dev/null | grep ^%::'". +%:: %,v +%:: RCS/%,v +%:: RCS/% +%:: s.% +%:: SCCS/s.% + ### Flags affecting all rules # A GNU make extension since gmake 3.72 (released in late 1994) to From patchwork Tue Nov 16 12:00:22 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622247 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 39396C433EF for ; Tue, 16 Nov 2021 12:06:05 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 1DB3B61B31 for ; Tue, 16 Nov 2021 12:06:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235766AbhKPMIw (ORCPT ); Tue, 16 Nov 2021 07:08:52 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33684 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235805AbhKPMFc (ORCPT ); Tue, 16 Nov 2021 07:05:32 -0500 Received: from mail-wm1-x331.google.com (mail-wm1-x331.google.com [IPv6:2a00:1450:4864:20::331]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4CABAC061234 for ; Tue, 16 Nov 2021 04:00:55 -0800 (PST) Received: by mail-wm1-x331.google.com with SMTP id 67-20020a1c1946000000b0030d4c90fa87so2182413wmz.2 for ; Tue, 16 Nov 2021 04:00:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=z0u8mrPikfpozsZuwu5lKfiwFGSebR9jdTFIZIlU2as=; b=ePQ+X6JL9y456U0ucmdsOiitY/dQDKqRCjPqUq1u5arbPvTBSAK+rq6udXNdbdHEoK WT6B8HT6TmjbpPVCoYM0iWDEFfoXOGfKEzB/IGLZaUSPnr5HE4szWFSK6m8GZ+kPW2yD yOgwL4MJQ9CQywUB+gDYAnk/wdXggtzEkUusThEZxUGC5LzWxjuNoWffu1/bceqrR1Sq E2qO8NLF1LdDywKSw4f/wOprbAb1sBuTPp5mKCHrsQZn176Mt9X2Gaa8IULY7dNgt9bO +CJ5hzEn2bgj8WY0UGN921n3ztHaN5mq+JEh2XMS8581Bx/tmkox/AvxJ7ywDtvSVuPZ eQlg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=z0u8mrPikfpozsZuwu5lKfiwFGSebR9jdTFIZIlU2as=; b=fIIPkAvtVLEpnl6uZXhJa11jJOI2LL6gizG5KwWnDkWzTKEnHc+yWh5Km0i2iffg0J op3WS8S8fnFfIYo4hGcL8QN9+evoHHaqqqh1+ZB7ohh5YWN5vOH2VlnK3S/Z+D/323+l Y529SQEgqedVGwHMq8phKpF3AMI3K2q1CSBmIKG3Fbc4fXuMNmkMATK8T444+V+JmzNs DVwkIuqydoVuQkyAwUSoROGjdvViSj0ZZwjS1gwuSe7iCv4Fq+qoVSczWNWPfxWJaEIN sv8USaieRhMeN59rxmUQqcxJuNTyQdUJSXlr8zyQ9v8S020Qcc+tqU1F6il0hOhT7lyf e3mA== X-Gm-Message-State: AOAM531IGfkx0KQx6mbO9rEEPMZi0HnFLhXwApL7CCvChz8rj+TvGCEQ 2Rcd2qiSssarF+xgWR09XS/eaSqbl5ipLQ== X-Google-Smtp-Source: ABdhPJygcWUvjmgIzrLu93yFvBNM1Kb7iDVzF/JlpR9KNc+MUCp9GgP3OCRdtt/lq21gM45xMrRUsA== X-Received: by 2002:a1c:a710:: with SMTP id q16mr70122880wme.138.1637064053615; Tue, 16 Nov 2021 04:00:53 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:52 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 22/23] Makefile: define $(LIB_H) in terms of $(FIND_SOURCE_FILES) Date: Tue, 16 Nov 2021 13:00:22 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org Combine the definitions of $(FIND_SOURCE_FILES) and $(LIB_H) to speed up the Makefile, as these are the two main expensive $(shell) commands that we execute unconditionally. When see what was in $(FOUND_SOURCE_FILES) that wasn't in $(LIB_H) via the ad-hoc test of: $(error $(filter-out $(LIB_H),$(filter %.h,$(ALL_SOURCE_FILES)))) $(error $(filter-out $(ALL_SOURCE_FILES),$(filter %.h,$(LIB_H)))) We'll get, respectively: Makefile:850: *** t/helper/test-tool.h. Stop. Makefile:850: *** . Stop. I.e. we only had a discrepancy when it came to t/helper/test-tool.h. In terms of correctness this was broken before, but now works: $ make t/helper/test-tool.hco HDR t/helper/test-tool.h This speeds things up a lot: $ git -c hyperfine.hook.setup= hyperfine -L rev HEAD~1,HEAD~0 -s 'make -j8 all NO_TCLTK=Y' 'make NO_TCLTK=Y' --war mup 10 -M 10 Benchmark 1: make NO_TCLTK=Y' in 'HEAD~1 Time (mean ± σ): 99.5 ms ± 0.5 ms [User: 83.4 ms, System: 20.7 ms] Range (min … max): 98.8 ms … 100.2 ms 10 runs Benchmark 2: make NO_TCLTK=Y' in 'HEAD~0 Time (mean ± σ): 69.4 ms ± 0.5 ms [User: 58.8 ms, System: 14.2 ms] Range (min … max): 68.9 ms … 70.3 ms 10 runs Summary 'make NO_TCLTK=Y' in 'HEAD~0' ran 1.43 ± 0.01 times faster than 'make NO_TCLTK=Y' in 'HEAD~1' Signed-off-by: Ævar Arnfjörð Bjarmason --- Makefile | 54 ++++++++++++++++++++++++++---------------------------- 1 file changed, 26 insertions(+), 28 deletions(-) diff --git a/Makefile b/Makefile index bae20eb1b40..1041efb6e5e 100644 --- a/Makefile +++ b/Makefile @@ -821,12 +821,33 @@ GENERATED_H += hook-list.h .PHONY: generated-hdrs generated-hdrs: $(GENERATED_H) -LIB_H := $(sort $(patsubst ./%,%,$(shell git ls-files '*.h' ':!t/' ':!Documentation/' 2>/dev/null || \ +## Exhaustive lists of our source files, either dynamically generated, +## or hardcoded. +SOURCES_CMD = ( \ + git ls-files \ + '*.[hcS]' \ + '*.sh' \ + ':!*[tp][0-9][0-9][0-9][0-9]*' \ + ':!contrib' \ + 2>/dev/null || \ $(FIND) . \ - -name .git -prune -o \ - -name t -prune -o \ - -name Documentation -prune -o \ - -name '*.h' -print))) + \( -name .git -type d -prune \) \ + -o \( -name '[tp][0-9][0-9][0-9][0-9]*' -prune \) \ + -o \( -name contrib -type d -prune \) \ + -o \( -name build -type d -prune \) \ + -o \( -name 'trash*' -type d -prune \) \ + -o \( -name '*.[hcS]' -type f -print \) \ + -o \( -name '*.sh' -type f -print \) \ + | sed -e 's|^\./||' \ + ) +FOUND_SOURCE_FILES := $(shell $(SOURCES_CMD)) + +FOUND_C_SOURCES = $(filter %.c,$(FOUND_SOURCE_FILES)) +FOUND_H_SOURCES = $(filter %.h,$(FOUND_SOURCE_FILES)) + +COCCI_SOURCES = $(filter-out $(THIRD_PARTY_SOURCES),$(FOUND_C_SOURCES)) + +LIB_H = $(FOUND_H_SOURCES) LIB_OBJS += abspath.o LIB_OBJS += add-interactive.o @@ -2661,26 +2682,6 @@ perl/build/man/man3/Git.3pm: perl/Git.pm $(call mkdir_p_parent_template) $(QUIET_GEN)pod2man $< $@ -FIND_SOURCE_FILES = ( \ - git ls-files \ - '*.[hcS]' \ - '*.sh' \ - ':!*[tp][0-9][0-9][0-9][0-9]*' \ - ':!contrib' \ - 2>/dev/null || \ - $(FIND) . \ - \( -name .git -type d -prune \) \ - -o \( -name '[tp][0-9][0-9][0-9][0-9]*' -prune \) \ - -o \( -name contrib -type d -prune \) \ - -o \( -name build -type d -prune \) \ - -o \( -name 'trash*' -type d -prune \) \ - -o \( -name '*.[hcS]' -type f -print \) \ - -o \( -name '*.sh' -type f -print \) \ - | sed -e 's|^\./||' \ - ) - -FOUND_SOURCE_FILES = $(shell $(FIND_SOURCE_FILES)) - $(ETAGS_TARGET): $(FOUND_SOURCE_FILES) $(QUIET_GEN)$(RM) $@+ && \ echo $(FOUND_SOURCE_FILES) | xargs etags -a -o $@+ && \ @@ -2860,9 +2861,6 @@ check: $(GENERATED_H) exit 1; \ fi -FOUND_C_SOURCES = $(filter %.c,$(FOUND_SOURCE_FILES)) -COCCI_SOURCES = $(filter-out $(THIRD_PARTY_SOURCES),$(FOUND_C_SOURCES)) - %.cocci.patch: %.cocci $(COCCI_SOURCES) $(QUIET_SPATCH) \ if test $(SPATCH_BATCH_SIZE) = 0; then \ From patchwork Tue Nov 16 12:00:23 2021 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= X-Patchwork-Id: 12622249 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 mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 5CDFFC433F5 for ; Tue, 16 Nov 2021 12:06:13 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 3D1E861B31 for ; Tue, 16 Nov 2021 12:06:13 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S236071AbhKPMJB (ORCPT ); Tue, 16 Nov 2021 07:09:01 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33600 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S235813AbhKPMFc (ORCPT ); Tue, 16 Nov 2021 07:05:32 -0500 Received: from mail-wr1-x42a.google.com (mail-wr1-x42a.google.com [IPv6:2a00:1450:4864:20::42a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 01EB7C0432C1 for ; Tue, 16 Nov 2021 04:00:56 -0800 (PST) Received: by mail-wr1-x42a.google.com with SMTP id n29so37009307wra.11 for ; Tue, 16 Nov 2021 04:00:55 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=gFT/DbJpzqPOAaYPdExqWjjX4T6Pif3T9PPaf7+1RWw=; b=VJmy8hka2W+BqzPnybfF0oGI2CuWUgEEwtW24d20PfGBtyQsBTvLtF5TIpl/hon3mg boFOl1XIOVyaMhYy13vNBIuCChjcW0AdWZ70d3AfeFQrcUDCdI25OBGbTn/Wb88LYmgE pziGi9u3mRLJUou7M23F+JxJEjPpLx3b+4MS+eWVfrf7PvQ7FmLrFhUVlT5LUcCJ4dAf REzkVQiv/YDISC1FelUm/D5vhAewQgZYL1XqxIS1JsKoTtUfhD1TnTJTfFDGmXglCN2Z tJzyMWyHdy6aijroZGAANuh0myHhf9ep1VwWH8u/qoWk4OGUGN4tJwFn0mzQRTLb9bqt Z8sw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=gFT/DbJpzqPOAaYPdExqWjjX4T6Pif3T9PPaf7+1RWw=; b=Hn0uGYDX21FXCVIQkehENBrAnCIEBpZJGnnLbbS8Jvk3ZPocIhCxoOBEvyKZYGI9/D A6vINAjosK50HoDwjozD/zdcA6Yj7hsOdaf6gaXGRU6IfXbpPKKulHh7mRW4LpXYlF2h TNl7ZTUn/Xz7WDa9iDtNF39JbfiU2cfzrI8ztV+LInDPGzn6uqsiHmkFv4PPjyl8Z2lk qlVtqJkv4uhIEWzXZtliHf4S8Ok7NVfsA/T99376t+5R36h2sOOZcdfW+sZ0izmYQXTF mmIhsyh3ou1X4ScFTkO5qhi764SchO+xZ5VrLwivtKeD/svx8L81fvPZaOJKmQLUy9nA 1Ugw== X-Gm-Message-State: AOAM533JvpXH8GSbIQiUufU7UfURBgH57gPeyz1Ht28JnIn/crJkFdSB ITxwrdeKAHfC1ebDCjmU2vAd7ew70magdA== X-Google-Smtp-Source: ABdhPJxhn3smT/qnIS04iZVcx4qr6JKXAL+Tp3dB/x94cA7ZO/34QEOKxaCtODuCt1kTYxIcPJAfQg== X-Received: by 2002:adf:f947:: with SMTP id q7mr8495421wrr.260.1637064054357; Tue, 16 Nov 2021 04:00:54 -0800 (PST) Received: from vm.nix.is (vm.nix.is. [2a01:4f8:120:2468::2]) by smtp.gmail.com with ESMTPSA id k37sm2427922wms.21.2021.11.16.04.00.53 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 16 Nov 2021 04:00:53 -0800 (PST) From: =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= To: git@vger.kernel.org Cc: Junio C Hamano , Phillip Wood , Jeff King , Dan Jacques , Eric Wong , Jonathan Nieder , Mike Hommey , =?utf-8?b?w4Z2YXIgQXJuZmrDtnLDsCBCamFybWFzb24=?= Subject: [PATCH v3 23/23] Makefile: move ".SUFFIXES" rule to shared.mak Date: Tue, 16 Nov 2021 13:00:23 +0100 Message-Id: X-Mailer: git-send-email 2.34.0.795.g1e9501ab396 In-Reply-To: References: MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: git@vger.kernel.org This was added in 30248886ce8 (Makefile: disable default implicit rules, 2010-01-26), let's move it to the top of "shared.mak" so it'll apply to all our Makefiles. This doesn't benefit the main Makefile at all, since it already had the rule, but since we're including shared.mak in other Makefiles starts to benefit them. E.g. running the 'man" target is now ~1.3x faster: $ git -c hyperfine.hook.setup= hyperfine -L rev HEAD~1,HEAD~0 -s 'make -j8 -C Documentation man' 'make -C Documentation man' --warmup 10 -M 10 Benchmark 1: make -C Documentation man' in 'HEAD~1 Time (mean ± σ): 87.2 ms ± 1.0 ms [User: 79.3 ms, System: 10.8 ms] Range (min … max): 86.3 ms … 89.7 ms 10 runs Benchmark 2: make -C Documentation man' in 'HEAD~0 Time (mean ± σ): 64.5 ms ± 0.6 ms [User: 54.5 ms, System: 13.0 ms] Range (min … max): 63.8 ms … 65.7 ms 10 runs Summary 'make -C Documentation man' in 'HEAD~0' ran 1.35 ± 0.02 times faster than 'make -C Documentation man' in 'HEAD~1' Signed-off-by: Ævar Arnfjörð Bjarmason --- Makefile | 2 -- shared.mak | 5 +++++ 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 1041efb6e5e..d2cc6865a4e 100644 --- a/Makefile +++ b/Makefile @@ -2460,8 +2460,6 @@ ASM_SRC := $(wildcard $(OBJECTS:o=S)) ASM_OBJ := $(ASM_SRC:S=o) C_OBJ := $(filter-out $(ASM_OBJ),$(OBJECTS)) -.SUFFIXES: - $(C_OBJ): %.o: %.c GIT-CFLAGS $(missing_dep_dirs) $(missing_compdb_dir) $(QUIET_CC)$(CC) -o $*.o -c $(dep_args) $(compdb_args) $(ALL_CFLAGS) $(EXTRA_CPPFLAGS) $< $(ASM_OBJ): %.o: %.S GIT-CFLAGS $(missing_dep_dirs) $(missing_compdb_dir) diff --git a/shared.mak b/shared.mak index 4862df1607a..a20193b0c8f 100644 --- a/shared.mak +++ b/shared.mak @@ -9,6 +9,11 @@ %:: s.% %:: SCCS/s.% +## Likewise delete default $(SUFFIXES). See: +## +## info make --index-search=.DELETE_ON_ERROR +.SUFFIXES: + ### Flags affecting all rules # A GNU make extension since gmake 3.72 (released in late 1994) to