From patchwork Mon Nov 11 08:24:57 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13870371 Received: from fout-a6-smtp.messagingengine.com (fout-a6-smtp.messagingengine.com [103.168.172.149]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id B951C14F9F9 for ; Mon, 11 Nov 2024 08:25:14 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.149 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1731313518; cv=none; b=gj/BwCb37Bk3uQL+6RBSsY5zl57rj3XfxqetIbL1vWHGq2XSSHueU8o9A918K1jjTiODbGRa2TY2yzLy2fch+kQ3wsQXameVSQpj9hIqj3EtpUaB4qmW9x6S5iD0Huc2T4KvqH65oN9ydL/ZQTpDjXsY/5pF75sUKxASPH1i+74= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1731313518; c=relaxed/simple; bh=BeVtGXf4a/rJhwe8glmirevg0hzLjpynIf+ofb7MHVM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tPZQgndvACxzE/QpeAfewmFJKRwGs3OFt4OtFJOpcF0W4AsAXAEGvkqV6nlnxZsVYpIz8ikxhUQsbgh7dycrfzxWRnq2YidTJUewZ1FFGyN6liU4mykOQIjpkZKtJTUBE3seL3DvJXNj7BwlDbau8uyL9O+hEFMBBcSARErKzEY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=nC1jhUF9; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=Q70UHE55; arc=none smtp.client-ip=103.168.172.149 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="nC1jhUF9"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="Q70UHE55" Received: from phl-compute-10.internal (phl-compute-10.phl.internal [10.202.2.50]) by mailfout.phl.internal (Postfix) with ESMTP id AF4041380280; Mon, 11 Nov 2024 03:25:13 -0500 (EST) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-10.internal (MEProxy); Mon, 11 Nov 2024 03:25:13 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-transfer-encoding:content-type:content-type:date:date :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1731313513; x=1731399913; bh=0ElWoFd9wQsgt5GQPAjntmxtu0WbNlJo9MtCLEgrHag=; b= nC1jhUF9FgBoo8lmCAEFu1BzWhD8SYZsTKPpMMjoxnn4EVkLITWS8xqhfz/Vu4GF DlEYUQVQE3P6+4sYNW2JkndoGpW0A8KGaWQOBHEZ5PEPE1GO88nPDzzos2LW7tCc ZYPHm7PUIC+L8sZrMmILV0vSXUs4uunZi50H7BWEG21bAKFJzHOqXup3NRoZxTVV KG4K+mXB88LFdwHGTgN6bXnPScqGrZsH2Y062eCHt61n0Ub8J94KFPP5ey5xWZ2A YyfipnWOjp1TvVIyfqzS17otKRVYFLYlw7z4zOCyMgvxHSxPsJV2Jk6ejTCeeF8G TSu/e0yyLvQrb4GrVDYPZQ== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1731313513; x= 1731399913; bh=0ElWoFd9wQsgt5GQPAjntmxtu0WbNlJo9MtCLEgrHag=; b=Q 70UHE55rrKP4V1tc692QY6930NWT5uq//kBf1ohVyzMJ5DtGR2E2cumUyKgzrjY1 mFi7AYZ7flukyDjHOKw5aPsa2kP5diGZGG62XcITml7cViivnxOL2gNDwrkfrPIO 2oGTKL5VMA+tBwX7V3npJ4Zlo6G/HbvQBXhG0xx5HzelknEOYWbZ10FYNR0+maiE oQ9VrOzJgVcQBG4fIA/ehmn0xw1HM2SQ6rVajzvDu38LpOlZMbKQwgxM8D0FLajO VHWgAQTKDyI4MxHhUZaOvivUO74jSow9F7lLHVpQC6n8/6zdOsgv0j0yHdwatJD4 wfhfyd0yvN7fNAkILlibw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddruddugdduudekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhephfffufggtgfgkfhfjgfvvefosehtjeertdertdej necuhfhrohhmpefrrghtrhhitghkucfuthgvihhnhhgrrhguthcuoehpshesphhkshdrih hmqeenucggtffrrghtthgvrhhnpeffueeiudejvdekheeuvdekfeffiedvueelteekudeh jeetkeegvddugfdtgfeileenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmh grihhlfhhrohhmpehpshesphhkshdrihhmpdhnsggprhgtphhtthhopeegpdhmohguvgep shhmthhpohhuthdprhgtphhtthhopehgihhtsehvghgvrhdrkhgvrhhnvghlrdhorhhgpd hrtghpthhtohepjhhohhgrnhhnvghsrdhstghhihhnuggvlhhinhesghhmgidruggvpdhr tghpthhtohepghhithhsthgvrhesphhosghogidrtghomhdprhgtphhtthhopehphhhilh hlihhprdifohhougduvdefsehgmhgrihhlrdgtohhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 11 Nov 2024 03:25:12 -0500 (EST) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 85a0bc31 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 11 Nov 2024 08:24:35 +0000 (UTC) From: Patrick Steinhardt Date: Mon, 11 Nov 2024 09:24:57 +0100 Subject: [PATCH v2 1/4] t/unit-tests: convert "clar-generate.awk" into a shell script Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20241111-pks-clar-build-improvements-v2-1-d4794d8d1b30@pks.im> References: <20241111-pks-clar-build-improvements-v2-0-d4794d8d1b30@pks.im> In-Reply-To: <20241111-pks-clar-build-improvements-v2-0-d4794d8d1b30@pks.im> To: git@vger.kernel.org Cc: Johannes Schindelin , Phillip Wood , Junio C Hamano X-Mailer: b4 0.14.2 Convert "clar-generate.awk" into a shell script that invokes awk(1). This allows us to avoid the shell redirect in the build system, which may otherwise be a problem with build systems on platforms that use a different shell. While at it, wrap the overly lines in the CMake build instructions. Signed-off-by: Patrick Steinhardt --- Makefile | 2 +- contrib/buildsystems/CMakeLists.txt | 7 ++-- t/unit-tests/clar-generate.awk | 50 ---------------------------- t/unit-tests/generate-clar-suites.sh | 63 ++++++++++++++++++++++++++++++++++++ 4 files changed, 69 insertions(+), 53 deletions(-) diff --git a/Makefile b/Makefile index d06c9a8ffa7b637050c9619a367fbe61e7243a74..5232b913fd20f01a7e5f41d46178e93d52c9f534 100644 --- a/Makefile +++ b/Makefile @@ -3907,7 +3907,7 @@ GIT-TEST-SUITES: FORCE $(UNIT_TEST_DIR)/clar-decls.h: $(patsubst %,$(UNIT_TEST_DIR)/%.c,$(CLAR_TEST_SUITES)) GIT-TEST-SUITES $(QUIET_GEN)$(SHELL_PATH) $(UNIT_TEST_DIR)/generate-clar-decls.sh "$@" $(filter %.c,$^) $(UNIT_TEST_DIR)/clar.suite: $(UNIT_TEST_DIR)/clar-decls.h - $(QUIET_GEN)awk -f $(UNIT_TEST_DIR)/clar-generate.awk $< >$(UNIT_TEST_DIR)/clar.suite + $(QUIET_GEN)$(SHELL_PATH) $(UNIT_TEST_DIR)/generate-clar-suites.sh $< $(UNIT_TEST_DIR)/clar.suite $(UNIT_TEST_DIR)/clar/clar.o: $(UNIT_TEST_DIR)/clar.suite $(CLAR_TEST_OBJS): $(UNIT_TEST_DIR)/clar-decls.h $(CLAR_TEST_OBJS): EXTRA_CPPFLAGS = -I$(UNIT_TEST_DIR) diff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt index 8974bb9fa202a0556fd9b16d105836d8cb66f543..da99dc3087a218d30e0fd1044567d7148d0d80a9 100644 --- a/contrib/buildsystems/CMakeLists.txt +++ b/contrib/buildsystems/CMakeLists.txt @@ -1008,8 +1008,11 @@ add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h" COMMAND ${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-decls.sh "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h" ${clar_test_SUITES} DEPENDS ${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-decls.sh ${clar_test_SUITES}) add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/t/unit-tests/clar.suite" - COMMAND awk -f "${CMAKE_SOURCE_DIR}/t/unit-tests/clar-generate.awk" "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h" > "${CMAKE_BINARY_DIR}/t/unit-tests/clar.suite" - DEPENDS "${CMAKE_SOURCE_DIR}/t/unit-tests/clar-generate.awk" "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h") + COMMAND "${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-suites.sh" + "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h" + "${CMAKE_BINARY_DIR}/t/unit-tests/clar.suite" + DEPENDS "${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-suites.sh" + "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h") add_library(unit-tests-lib ${clar_test_SUITES} "${CMAKE_SOURCE_DIR}/t/unit-tests/clar/clar.c" diff --git a/t/unit-tests/clar-generate.awk b/t/unit-tests/clar-generate.awk deleted file mode 100644 index ab71ce6c9fc2c3d49d826f3550a95be893114508..0000000000000000000000000000000000000000 --- a/t/unit-tests/clar-generate.awk +++ /dev/null @@ -1,50 +0,0 @@ -function add_suite(suite, initialize, cleanup, count) { - if (!suite) return - suite_count++ - callback_count += count - suites = suites " {\n" - suites = suites " \"" suite "\",\n" - suites = suites " " initialize ",\n" - suites = suites " " cleanup ",\n" - suites = suites " _clar_cb_" suite ", " count ", 1\n" - suites = suites " },\n" -} - -BEGIN { - suites = "static struct clar_suite _clar_suites[] = {\n" -} - -{ - print - name = $3; sub(/\(.*$/, "", name) - suite = name; sub(/^test_/, "", suite); sub(/__.*$/, "", suite) - short_name = name; sub(/^.*__/, "", short_name) - cb = "{ \"" short_name "\", &" name " }" - if (suite != prev_suite) { - add_suite(prev_suite, initialize, cleanup, count) - if (callbacks) callbacks = callbacks "};\n" - callbacks = callbacks "static const struct clar_func _clar_cb_" suite "[] = {\n" - initialize = "{ NULL, NULL }" - cleanup = "{ NULL, NULL }" - count = 0 - prev_suite = suite - } - if (short_name == "initialize") { - initialize = cb - } else if (short_name == "cleanup") { - cleanup = cb - } else { - callbacks = callbacks " " cb ",\n" - count++ - } -} - -END { - add_suite(suite, initialize, cleanup, count) - suites = suites "};" - if (callbacks) callbacks = callbacks "};" - print callbacks - print suites - print "static const size_t _clar_suite_count = " suite_count ";" - print "static const size_t _clar_callback_count = " callback_count ";" -} diff --git a/t/unit-tests/generate-clar-suites.sh b/t/unit-tests/generate-clar-suites.sh new file mode 100755 index 0000000000000000000000000000000000000000..d5c712221e46a2eaa288fff5262438e5f04d6f72 --- /dev/null +++ b/t/unit-tests/generate-clar-suites.sh @@ -0,0 +1,63 @@ +#!/bin/sh + +if test $# -lt 2 +then + echo "USAGE: $0 " 2>&1 + exit 1 +fi + +CLAR_DECLS_H="$1" +OUTPUT="$2" + +awk ' + function add_suite(suite, initialize, cleanup, count) { + if (!suite) return + suite_count++ + callback_count += count + suites = suites " {\n" + suites = suites " \"" suite "\",\n" + suites = suites " " initialize ",\n" + suites = suites " " cleanup ",\n" + suites = suites " _clar_cb_" suite ", " count ", 1\n" + suites = suites " },\n" + } + + BEGIN { + suites = "static struct clar_suite _clar_suites[] = {\n" + } + + { + print + name = $3; sub(/\(.*$/, "", name) + suite = name; sub(/^test_/, "", suite); sub(/__.*$/, "", suite) + short_name = name; sub(/^.*__/, "", short_name) + cb = "{ \"" short_name "\", &" name " }" + if (suite != prev_suite) { + add_suite(prev_suite, initialize, cleanup, count) + if (callbacks) callbacks = callbacks "};\n" + callbacks = callbacks "static const struct clar_func _clar_cb_" suite "[] = {\n" + initialize = "{ NULL, NULL }" + cleanup = "{ NULL, NULL }" + count = 0 + prev_suite = suite + } + if (short_name == "initialize") { + initialize = cb + } else if (short_name == "cleanup") { + cleanup = cb + } else { + callbacks = callbacks " " cb ",\n" + count++ + } + } + + END { + add_suite(suite, initialize, cleanup, count) + suites = suites "};" + if (callbacks) callbacks = callbacks "};" + print callbacks + print suites + print "static const size_t _clar_suite_count = " suite_count ";" + print "static const size_t _clar_callback_count = " callback_count ";" + } +' "$CLAR_DECLS_H" >"$OUTPUT" From patchwork Mon Nov 11 08:24:58 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13870368 Received: from fhigh-a2-smtp.messagingengine.com (fhigh-a2-smtp.messagingengine.com [103.168.172.153]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 62A2B15B96E for ; Mon, 11 Nov 2024 08:25:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.153 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1731313517; cv=none; b=oBkEQfxBFqsBa9cK6/tlIuDvprNQ3RlhOXCld2o9a0bAvM1RY5WCBOPqMjGDvDodTScoNY18x9RjxK8e6uSaOPw0tfkLWwZtOqHbTfKeSE+0os6n/Mpft8Y3lXYQZJXIzS2dINgNrYYVxuLpiBB2TARig3y77aK8vwhe1LKbVNc= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1731313517; c=relaxed/simple; bh=kd6ltjmgpO3Qf68IbmeI+KwV2WTqpZK9n0f9PgiQtdk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=Me6nGe7XgiA9uOzZm7ndU8Mvgj5hlvivIu/1UMZplU3HBAP1ZM9jSR2JkmJJP48NV30s4BCqfVyG3bYZnKW1EuMiTvZdqnjf3mo/eyf33Ugi0tuX2DjEXpO+LAMxabHxp+IXWLCAdKZRD5b2MPtYD0RxHuPJgeGQbCaYCfORga4= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=R2ASmQNu; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=gX95CzM/; arc=none smtp.client-ip=103.168.172.153 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="R2ASmQNu"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="gX95CzM/" Received: from phl-compute-01.internal (phl-compute-01.phl.internal [10.202.2.41]) by mailfhigh.phl.internal (Postfix) with ESMTP id 82A411140102; Mon, 11 Nov 2024 03:25:14 -0500 (EST) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-01.internal (MEProxy); Mon, 11 Nov 2024 03:25:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-transfer-encoding:content-type:content-type:date:date :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1731313514; x=1731399914; bh=AYeZgubIEeaKJ+0342Ls5pOVn9OIUWOdfg7ZZIqpORo=; b= R2ASmQNu2bR5fcNY3tBijEEVIEwK9lufV5JFitBPYgv1JcSt5yM8OsHXqstIAvEn COaRL+lmkPihhMCvI3KqPwgi+ay1NayPF3l63602Fw14EG/3mjV5vvuURSkuJowf Gvap4L89DCJZcA+3EFbaYKkiJCJSpqyIZ4HSKzoUTLimVAFrD/KOhUrw0cn08BYj i0xbTITBqQVbIWWBgKdt0Sc6W3v5UEEg0Redp5O9qSNbfdVYSyzp6mdR5qHn6Be4 IOpzMJse653G7FHI/WbfASe6F9InkSox7f0TZCiNoU5xxvY6YRx5ZP3yXsFMTOTv pGRtNuh4uVUMzmh2rKkrHA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1731313514; x= 1731399914; bh=AYeZgubIEeaKJ+0342Ls5pOVn9OIUWOdfg7ZZIqpORo=; b=g X95CzM/xpLPnxiuhO4rqVwVe6VzuLzbOllP2cAiIBlDA4b4JXGe172nLQCK7xCRo XCLsB8AhELkMymCBBgMx4wuZQN7nCwjUZveQGV3H0cY+GbWBvmkDRMmCWuZLYYbK 9b/GL0aS1rD+kP2knYiQxDivO84NJhdTFJ2Qr+GM4ycZm4sEAxAT/LWCImcoHxU9 nRn6lSKsMyYU4yEaj1bTXolp7SOU+qvsfbzXw4CgS4elYyknPd3eiEV02p3sYGQ4 szB7VU8JGqidNu23VjF66D4o2psObNMTQ6ofq2XhI3dq1Bzo2w1ESGBgvm8wDLke n5gonkmrX96DXmtl2N3fw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddruddugdduudekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhephfffufggtgfgkfhfjgfvvefosehtjeertdertdej necuhfhrohhmpefrrghtrhhitghkucfuthgvihhnhhgrrhguthcuoehpshesphhkshdrih hmqeenucggtffrrghtthgvrhhnpeffueeiudejvdekheeuvdekfeffiedvueelteekudeh jeetkeegvddugfdtgfeileenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmh grihhlfhhrohhmpehpshesphhkshdrihhmpdhnsggprhgtphhtthhopeegpdhmohguvgep shhmthhpohhuthdprhgtphhtthhopehjohhhrghnnhgvshdrshgthhhinhguvghlihhnse hgmhigrdguvgdprhgtphhtthhopehgihhtsehvghgvrhdrkhgvrhhnvghlrdhorhhgpdhr tghpthhtohepghhithhsthgvrhesphhosghogidrtghomhdprhgtphhtthhopehphhhilh hlihhprdifohhougduvdefsehgmhgrihhlrdgtohhm X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 11 Nov 2024 03:25:13 -0500 (EST) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 91a32038 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 11 Nov 2024 08:24:36 +0000 (UTC) From: Patrick Steinhardt Date: Mon, 11 Nov 2024 09:24:58 +0100 Subject: [PATCH v2 2/4] cmake: use SH_EXE to execute clar scripts Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20241111-pks-clar-build-improvements-v2-2-d4794d8d1b30@pks.im> References: <20241111-pks-clar-build-improvements-v2-0-d4794d8d1b30@pks.im> In-Reply-To: <20241111-pks-clar-build-improvements-v2-0-d4794d8d1b30@pks.im> To: git@vger.kernel.org Cc: Johannes Schindelin , Phillip Wood , Junio C Hamano X-Mailer: b4 0.14.2 In 30bf9f0aaa (cmake: set up proper dependencies for generated clar headers, 2024-10-21), we have deduplicated the logic to generate our clar headers by reusing the same scripts that our Makefile does. Despite the deduplication, this refactoring also made us rebuild the headers in case the source files change, which didn't happen previously. The commit also introduced an issue though: we execute the scripts directly, so when the host does not have "/bin/sh" available they will fail. This is for example the case on Windows when importing the CMake project into Microsoft Visual Studio. Address the issue by invoking the scripts with `SH_EXE`, which contains the discovered path of the shell interpreter. While at it, wrap the overly long lines in the CMake build instructions. Signed-off-by: Patrick Steinhardt --- contrib/buildsystems/CMakeLists.txt | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt index da99dc3087a218d30e0fd1044567d7148d0d80a9..2db80b7cc3c6aba840f18ffdc78d2cda1877d8cd 100644 --- a/contrib/buildsystems/CMakeLists.txt +++ b/contrib/buildsystems/CMakeLists.txt @@ -1005,10 +1005,13 @@ parse_makefile_for_scripts(clar_test_SUITES "CLAR_TEST_SUITES" "") list(TRANSFORM clar_test_SUITES PREPEND "${CMAKE_SOURCE_DIR}/t/unit-tests/") list(TRANSFORM clar_test_SUITES APPEND ".c") add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h" - COMMAND ${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-decls.sh "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h" ${clar_test_SUITES} - DEPENDS ${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-decls.sh ${clar_test_SUITES}) + COMMAND ${SH_EXE} ${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-decls.sh + "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h" + ${clar_test_SUITES} + DEPENDS ${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-decls.sh + ${clar_test_SUITES}) add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/t/unit-tests/clar.suite" - COMMAND "${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-suites.sh" + COMMAND ${SH_EXE} "${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-suites.sh" "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h" "${CMAKE_BINARY_DIR}/t/unit-tests/clar.suite" DEPENDS "${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-suites.sh" From patchwork Mon Nov 11 08:24:59 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13870369 Received: from fout-a6-smtp.messagingengine.com (fout-a6-smtp.messagingengine.com [103.168.172.149]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D24D015B99E for ; Mon, 11 Nov 2024 08:25:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.149 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1731313517; cv=none; b=KWuwKPSAJOIlLr65D/4LllrZZ8p/KeuX17V18vGFwiqrXXIS3/pbyDbAQXNs0/HCwX4rqwn/L6Gdegyq93Jdmn6RuKw23qIo19H8y4u/yGj49WiaKGEc43LRg3i6X3PlgW3MNscMbLsD2oIsKeet50ZYd0g+YaKzLagvokSsnDU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1731313517; c=relaxed/simple; bh=kVKYRU6OSYi7/V6dZB8BwOgekT3Ltxg8G3HkLeh2nmA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=oxgRmRFeibj8FxgetRKE3YJKx0/eQatLP5aWSz4Csn+n7LOH5OagADjhpr215QHqNBFQnLolNxwF9noQtlOI+OQ3FQ2udp120HTbG4v87/fNBKunuFYY8oHwfQLelYPgYcd+bIFHTOB0XIpu+xrs34Ksc3k6MG0uRyXwrkwzpGY= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=GX1puw5u; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=BoUNmJva; arc=none smtp.client-ip=103.168.172.149 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="GX1puw5u"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="BoUNmJva" Received: from phl-compute-10.internal (phl-compute-10.phl.internal [10.202.2.50]) by mailfout.phl.internal (Postfix) with ESMTP id E5A5013805F7; Mon, 11 Nov 2024 03:25:14 -0500 (EST) Received: from phl-mailfrontend-01 ([10.202.2.162]) by phl-compute-10.internal (MEProxy); Mon, 11 Nov 2024 03:25:14 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-transfer-encoding:content-type:content-type:date:date :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1731313514; x=1731399914; bh=HCpP0MbZBfjNIZ6BBYvww9NQPeiT33tR6Th6vxNF4Io=; b= GX1puw5ucXxYWD4T6HdNSOIlbN9TgntNFSF1qz797V6ymLaeigdQ/bcM94QHUiUH RjGm5lhJgnZrSFBjfQ4ddE0gbPS2Wvg1rW4GNoGYVy2WP30CoAo7vE0sZpbEV5YG wth9dE7LkDrEW5E8U5xBWzwv/O6zz+x1Bp41a9uRp1XSTx7mz73596Dsx6XZX7LH KOQkkCft1vFJXzlpzIY8HT/JVkFubSB1Y//8YxbTdFoJdAUyTTeDIWkbGQEUJAr5 c/9hvWMdd5ahgAToXzh7H9uH1dCnzSHCQvcZKYpG7j4dw586WfzbRF228RANwW1y uao8KlhDf0OP19IsmDOOQA== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1731313514; x= 1731399914; bh=HCpP0MbZBfjNIZ6BBYvww9NQPeiT33tR6Th6vxNF4Io=; b=B oUNmJvaKhx3nKxTw7Pga0st0CTXPk+CAK5v/CpZCRiolp+DJj6j568z0ISByTcva SNqaELyWFVU35HL75WAd3pDcLaBbcONqNo1BPW7KA4wQAlubX/F2PPTLj8mku2Jn RgdsXhI3sf3CIdBpKW+UFljAWe0tCQhR/ut2ecWlNgLTnxW7rN9bao3Aqnzaomhf MvBnde0Lp/TK/w9wemxbTUZ+FhD6ukzytHcG4wN+geNI1SG86gQEK7CcX5IQIHq0 ygDO5yE+oVcf9TT2SdvIQyoEVsWZB8xt7YJDFj2u/BqQMMJHXLuoLoDcDsGg09C4 DkkaQnRKtFVg6Imcz4LSw== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddruddugdduudekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhephfffufggtgfgkfhfjgfvvefosehtjeertdertdej necuhfhrohhmpefrrghtrhhitghkucfuthgvihhnhhgrrhguthcuoehpshesphhkshdrih hmqeenucggtffrrghtthgvrhhnpeffueeiudejvdekheeuvdekfeffiedvueelteekudeh jeetkeegvddugfdtgfeileenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmh grihhlfhhrohhmpehpshesphhkshdrihhmpdhnsggprhgtphhtthhopeegpdhmohguvgep shhmthhpohhuthdprhgtphhtthhopehgihhtshhtvghrsehpohgsohigrdgtohhmpdhrtg hpthhtohepghhithesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehphhhi lhhlihhprdifohhougduvdefsehgmhgrihhlrdgtohhmpdhrtghpthhtohepjhhohhgrnh hnvghsrdhstghhihhnuggvlhhinhesghhmgidruggv X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 11 Nov 2024 03:25:13 -0500 (EST) Received: by vm-mail (OpenSMTPD) with ESMTPSA id c4568e93 (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 11 Nov 2024 08:24:37 +0000 (UTC) From: Patrick Steinhardt Date: Mon, 11 Nov 2024 09:24:59 +0100 Subject: [PATCH v2 3/4] cmake: use verbatim arguments when invoking clar commands Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20241111-pks-clar-build-improvements-v2-3-d4794d8d1b30@pks.im> References: <20241111-pks-clar-build-improvements-v2-0-d4794d8d1b30@pks.im> In-Reply-To: <20241111-pks-clar-build-improvements-v2-0-d4794d8d1b30@pks.im> To: git@vger.kernel.org Cc: Johannes Schindelin , Phillip Wood , Junio C Hamano X-Mailer: b4 0.14.2 Pass the VERBATIM option to `add_custom_command()`. Like this, all arguments to the commands will be escaped properly for the build tool so that the invoked command receives each argument unchanged. Signed-off-by: Patrick Steinhardt --- contrib/buildsystems/CMakeLists.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/contrib/buildsystems/CMakeLists.txt b/contrib/buildsystems/CMakeLists.txt index 2db80b7cc3c6aba840f18ffdc78d2cda1877d8cd..8c71f5a1d0290c9204e094fb266f10c7b70af9fb 100644 --- a/contrib/buildsystems/CMakeLists.txt +++ b/contrib/buildsystems/CMakeLists.txt @@ -1009,13 +1009,15 @@ add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h" "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h" ${clar_test_SUITES} DEPENDS ${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-decls.sh - ${clar_test_SUITES}) + ${clar_test_SUITES} + VERBATIM) add_custom_command(OUTPUT "${CMAKE_BINARY_DIR}/t/unit-tests/clar.suite" COMMAND ${SH_EXE} "${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-suites.sh" "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h" "${CMAKE_BINARY_DIR}/t/unit-tests/clar.suite" DEPENDS "${CMAKE_SOURCE_DIR}/t/unit-tests/generate-clar-suites.sh" - "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h") + "${CMAKE_BINARY_DIR}/t/unit-tests/clar-decls.h" + VERBATIM) add_library(unit-tests-lib ${clar_test_SUITES} "${CMAKE_SOURCE_DIR}/t/unit-tests/clar/clar.c" From patchwork Mon Nov 11 08:25:00 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Patrick Steinhardt X-Patchwork-Id: 13870370 Received: from fout-a6-smtp.messagingengine.com (fout-a6-smtp.messagingengine.com [103.168.172.149]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id ADF8B15CD55 for ; Mon, 11 Nov 2024 08:25:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=103.168.172.149 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1731313518; cv=none; b=GLLXrgt3cpUryZikw90/lB+X9ENJBCwX5/TmwwQAv5IgnAirPyuidpYu9JWrdSOs2GwEW+6EkuV/1DpQ1NNVkh/cd1s28U8ueZsYUgU814Oq58j6o0FaBsABOybqw89Ayt0Nf0cHh2zvya1sy0Qk6hBnSqEFIe6CUrFLEHRLu3c= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1731313518; c=relaxed/simple; bh=tgNZSXqJpeH71x7Y2HLTACO6t9mU0604RxK7SjwYtdk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=UvEayvzvOn+gL192iUjvLnQcOC3LgIgFGZK+ydZIXM1SWzcEu4rmTv13OkOJjNQkC/knOAXJbJh9f6C2hNKIqVK6opHDpNnrh4H7FutDXHY4D7G2gU8uLkSyRdf6WUiTQ+MyrIfcbzV/CE32was2Cx2dElSfISUs66sKpiJPeHE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im; spf=pass smtp.mailfrom=pks.im; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b=q7zorpG+; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b=EFFvyb8t; arc=none smtp.client-ip=103.168.172.149 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=reject dis=none) header.from=pks.im Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=pks.im Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=pks.im header.i=@pks.im header.b="q7zorpG+"; dkim=pass (2048-bit key) header.d=messagingengine.com header.i=@messagingengine.com header.b="EFFvyb8t" Received: from phl-compute-02.internal (phl-compute-02.phl.internal [10.202.2.42]) by mailfout.phl.internal (Postfix) with ESMTP id B7D1D13805FF; Mon, 11 Nov 2024 03:25:15 -0500 (EST) Received: from phl-mailfrontend-02 ([10.202.2.163]) by phl-compute-02.internal (MEProxy); Mon, 11 Nov 2024 03:25:15 -0500 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=pks.im; h=cc:cc :content-transfer-encoding:content-type:content-type:date:date :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to; s=fm3; t=1731313515; x=1731399915; bh=KwtD8ze5cB8D+bzP2jTyF8fb8nPUFTuMcWWrHTQdBl8=; b= q7zorpG+MXfohjU4GB67BBgl6XU2Z5aFK2CVQxHTJruPhmTRp1S5ld7AIRGJ39AV LZe+T8bkNRlZiW4PZUbI5cqnoct8iBKJax/OIEgFPL7USlqNhfWI888sU1JRjFa2 UfpQMAWbGXz8fhRN31TjW/uNmHOFMGNzGPbMiOt2/N7+8LNBE52LkW4ZAHF3c3SL Su3f8Pbfx7a1Vrl4P1Iv04yeoa8jHDv6dJ5WDKyDz91SDqZHY9VFI+7ibHggpN78 OPCpRUyjUr1w/dzjdu7qnU1imr9cAENGjmwCZsiK7iaZGKKSy0CADk1UG1SCNFrv cuXxXXQbJsXEMjgC/UWw0Q== DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d= messagingengine.com; h=cc:cc:content-transfer-encoding :content-type:content-type:date:date:feedback-id:feedback-id :from:from:in-reply-to:in-reply-to:message-id:mime-version :references:reply-to:subject:subject:to:to:x-me-proxy :x-me-sender:x-me-sender:x-sasl-enc; s=fm3; t=1731313515; x= 1731399915; bh=KwtD8ze5cB8D+bzP2jTyF8fb8nPUFTuMcWWrHTQdBl8=; b=E FFvyb8tOCs6MtgjXvLusX6B/c25yUtFOw/xMmzSeI8JxeOF8xU0TsuX4E/rWgLCM V0kxD6V9RZSj2HlCcHxq36gjOEb0JiZ6JY2ossOUqCQ8S47wl0T5jZKiKyRgTDv1 DRT793ICNKE1llAcerBb5WMdPQb5jyopAcohJGEl6etmytJzoDnjq9k+22uduTxu wWBRA+ALebh0LvCQAVpegr09MRtQ54/SD2d07zGmsc74ce0KWdPwXNdr/i6w63SZ ieT/SRKC5hwdjH3NW59yUHdG9kGRK1Auw9NmOa5XN6JUzn4eoBrPlT+QQLQoF3Gh BVp1Jf8Uaa7R9b0NqXxgA== X-ME-Sender: X-ME-Received: X-ME-Proxy-Cause: gggruggvucftvghtrhhoucdtuddrgeefuddruddugdduudekucetufdoteggodetrfdotf fvucfrrhhofhhilhgvmecuhfgrshhtofgrihhlpdggtfgfnhhsuhgsshgtrhhisggvpdfu rfetoffkrfgpnffqhgenuceurghilhhouhhtmecufedttdenucesvcftvggtihhpihgvnh htshculddquddttddmnecujfgurhephfffufggtgfgkfhfjgfvvefosehtjeertdertdej necuhfhrohhmpefrrghtrhhitghkucfuthgvihhnhhgrrhguthcuoehpshesphhkshdrih hmqeenucggtffrrghtthgvrhhnpeffueeiudejvdekheeuvdekfeffiedvueelteekudeh jeetkeegvddugfdtgfeileenucevlhhushhtvghrufhiiigvpedtnecurfgrrhgrmhepmh grihhlfhhrohhmpehpshesphhkshdrihhmpdhnsggprhgtphhtthhopeegpdhmohguvgep shhmthhpohhuthdprhgtphhtthhopehgihhtshhtvghrsehpohgsohigrdgtohhmpdhrtg hpthhtohepghhithesvhhgvghrrdhkvghrnhgvlhdrohhrghdprhgtphhtthhopehphhhi lhhlihhprdifohhougduvdefsehgmhgrihhlrdgtohhmpdhrtghpthhtohepjhhohhgrnh hnvghsrdhstghhihhnuggvlhhinhesghhmgidruggv X-ME-Proxy: Feedback-ID: i197146af:Fastmail Received: by mail.messagingengine.com (Postfix) with ESMTPA; Mon, 11 Nov 2024 03:25:14 -0500 (EST) Received: by vm-mail (OpenSMTPD) with ESMTPSA id 9661bbcb (TLSv1.3:TLS_AES_256_GCM_SHA384:256:NO); Mon, 11 Nov 2024 08:24:38 +0000 (UTC) From: Patrick Steinhardt Date: Mon, 11 Nov 2024 09:25:00 +0100 Subject: [PATCH v2 4/4] Makefile: let clar header targets depend on their scripts Precedence: bulk X-Mailing-List: git@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Message-Id: <20241111-pks-clar-build-improvements-v2-4-d4794d8d1b30@pks.im> References: <20241111-pks-clar-build-improvements-v2-0-d4794d8d1b30@pks.im> In-Reply-To: <20241111-pks-clar-build-improvements-v2-0-d4794d8d1b30@pks.im> To: git@vger.kernel.org Cc: Johannes Schindelin , Phillip Wood , Junio C Hamano X-Mailer: b4 0.14.2 The targets that generate clar headers depend on their source files, but not on the script that is actually generating the output. Fix the issue by adding the missing dependencies. Signed-off-by: Patrick Steinhardt --- Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 5232b913fd20f01a7e5f41d46178e93d52c9f534..549b24e7fdbbdc173dfec79cdaddf67ccba52e14 100644 --- a/Makefile +++ b/Makefile @@ -3904,9 +3904,9 @@ GIT-TEST-SUITES: FORCE echo "$$FLAGS" >GIT-TEST-SUITES; \ fi -$(UNIT_TEST_DIR)/clar-decls.h: $(patsubst %,$(UNIT_TEST_DIR)/%.c,$(CLAR_TEST_SUITES)) GIT-TEST-SUITES +$(UNIT_TEST_DIR)/clar-decls.h: $(patsubst %,$(UNIT_TEST_DIR)/%.c,$(CLAR_TEST_SUITES)) $(UNIT_TEST_DIR)/generate-clar-decls.sh GIT-TEST-SUITES $(QUIET_GEN)$(SHELL_PATH) $(UNIT_TEST_DIR)/generate-clar-decls.sh "$@" $(filter %.c,$^) -$(UNIT_TEST_DIR)/clar.suite: $(UNIT_TEST_DIR)/clar-decls.h +$(UNIT_TEST_DIR)/clar.suite: $(UNIT_TEST_DIR)/clar-decls.h $(UNIT_TEST_DIR)/generate-clar-suites.sh $(QUIET_GEN)$(SHELL_PATH) $(UNIT_TEST_DIR)/generate-clar-suites.sh $< $(UNIT_TEST_DIR)/clar.suite $(UNIT_TEST_DIR)/clar/clar.o: $(UNIT_TEST_DIR)/clar.suite $(CLAR_TEST_OBJS): $(UNIT_TEST_DIR)/clar-decls.h