From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id iABTACJNMWTKqgAASxT56A (envelope-from ) for ; Sat, 08 Apr 2023 13:16:50 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id AMM5OiFNMWRXMAEAG6o9tA (envelope-from ) for ; Sat, 08 Apr 2023 13:16:49 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id 5411220C49 for ; Sat, 8 Apr 2023 13:16:49 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1pl6Y0-0001nJ-Bt; Sat, 08 Apr 2023 07:15:56 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pl6Xr-0001mM-Iw for emacs-orgmode@gnu.org; Sat, 08 Apr 2023 07:15:54 -0400 Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1pl6Xp-0007W7-VX for emacs-orgmode@gnu.org; Sat, 08 Apr 2023 07:15:47 -0400 Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1pl6Xn-00068b-77 for emacs-orgmode@gnu.org; Sat, 08 Apr 2023 13:15:43 +0200 X-Injected-Via-Gmane: http://gmane.org/ To: emacs-orgmode@gnu.org From: Max Nikulin Subject: Re: [PATCH v2] Add compat.el support to Org (was: [POLL] Use compat.el in Org? (was: Useful package? Compat.el)) Date: Sat, 8 Apr 2023 18:15:35 +0700 Message-ID: References: <87sfx7degz.fsf@gmail.com> <87v8ks6rhf.fsf@localhost> <87r0t3gahd.fsf@localhost> <87wn2ujk27.fsf@localhost> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.9.0 Content-Language: en-US In-Reply-To: <87wn2ujk27.fsf@localhost> Received-SPF: pass client-ip=116.202.254.214; envelope-from=geo-emacs-orgmode@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 8 X-Spam_score: 0.8 X-Spam_bar: / X-Spam_report: (0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FORGED_MUA_MOZILLA=2.309, FREEMAIL_FORGED_FROMDOMAIN=0.249, FREEMAIL_FROM=0.001, HEADER_FROM_DIFFERENT_DOMAINS=0.25, NICE_REPLY_A=-2.03, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN ARC-Seal: i=1; s=key1; d=yhetil.org; t=1680952609; a=rsa-sha256; cv=none; b=LTZNWYQIEOahKFhpACvP0njc7bA0vlIIyH73P7NestsI9KYu58+F2VxiJ8E8PWydqDF0ey 38Ndp9B908yl2eqXC+Yg0KVzFQCnqNqmvfeI4phm+YksrxmN++emcLfRIY7t9aZpbY3p8F mvJimG2+9GaKtbZ9laCF6oYRFyJVQ1BrUv9bMXAF1VO6+SHSsGHnIviul0yAwK+jgjV80a AzpBUVEJ65y0fq71D+ET+SRSv5hTAO/8TId+qXiLUD1pCW4yUBAj3Ni9aNcdB03bc2QZpo 5x602uad1TWajiHfsXhNE/RQsVssfV2vCIFFrG9AZ6RJMrKSpZWg8HHxFkthzA== ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1680952609; h=from:from:sender:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:mime-version:mime-version: content-type:content-type: content-transfer-encoding:content-transfer-encoding: in-reply-to:in-reply-to:references:references:list-id:list-help: list-unsubscribe:list-subscribe:list-post; bh=otMI+3+62jP6L/t/oID96pEQHSMSKz4JsXUsCRyh3QQ=; b=C4jJr0grWLiX1G8rFKuQ3C2xxfHqFMI16WTB2Y8PrFDZMP8BZhCQL/nPobYf2aeKNZcFdg PCz0CmNuMNoEr2F38nGVum16kqiH9FOMruF5Hl+U3wKOB8OGhOOztXXuCwhrKET1MqVApB JQZrFofDyxVy6HnuvQfHMwLnCXZjzjnP0j+wLFX9TZsHoVKMb9IFkFRjxqiQQLBO6/Sdq0 ljhFqL/3QSwOPZZjedIKNLErZNBe3iRNul0KMTDpGbRSZ432Whms3cnpx9A0rdH412/Raz KL//91IA0lp3YnISxocA+RuXUbi1xl3ccOf4MStBvg63Z94zrOjY2m2/cexrXA== Authentication-Results: aspmx1.migadu.com; dkim=none; dmarc=fail reason="SPF not aligned (relaxed), No valid DKIM" header.from=gmail.com (policy=none); spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org" X-Migadu-Scanner: scn0.migadu.com X-Migadu-Spam-Score: -3.22 X-Spam-Score: -3.22 X-Migadu-Queue-Id: 5411220C49 X-TUID: 9RjP+Gq8YL4p On 03/04/2023 00:00, Ihor Radchenko wrote: > Max Nikulin writes: > >> Ihor, do added makefile rules follow best practices used by other Emacs >> packages in respect to dependencies? > I know no other Emacs packages that manage dependencies using make. org-ql uses a helper shell script. org-roam and projectile use eldev that is procedural, not declarative build system. I have not figured out which way magit handles dependencies. I have no more ideas what projects may involve unit tests and dependencies. Actually Org uses make just as interface, not as a declarative build system that is able to minimize work by updating only necessary targets. Build rules are effectively procedural: complete rebuild on every invocation. >> I do not like the idea of network queries on every make. > Any better suggestions? Do not run install dependencies for regular targets like test or compile. At least do not do it unless it is explicitly requested by command line argument or a variable in local.mk >>> +pkgdir = $(shell pwd)/pkg-deps >> >> Make has CURDIR variable, but I am unsure if it is safe to use it in >> this context. > > Actually, we need pkgdir := $(shell pwd)/pkg-deps. > CURDIR is wrong because default.mk will trigger evaluation in every make > sub-process as well. default.mk is included from top level Makefile only. By the way, it is better to explicitly express that path is relative to top project directory by defining e.g. top_builddir (or abs_top_builddir) at first and pkgdir = $(top_builddir)/pkg-deps Today I noticed the following trick in (likely stale) https://github.com/org-roam/org-roam/blob/main/default.mk TOP := $(dir $(lastword $(MAKEFILE_LIST))) I have not realized if it is safe enough.