all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Eric Abrahamsen <eric@ericabrahamsen.net>
To: Benjamin Riefenstahl <b.riefenstahl@turtle-trading.net>
Cc: Stefan Monnier <monnier@iro.umontreal.ca>, emacs-devel@gnu.org
Subject: Re: ELPA -- making individual packages
Date: Fri, 04 Sep 2020 15:20:38 -0700	[thread overview]
Message-ID: <87eenhgp55.fsf@ericabrahamsen.net> (raw)
In-Reply-To: <875z8tigmv.fsf@ericabrahamsen.net> (Eric Abrahamsen's message of "Fri, 04 Sep 2020 10:41:28 -0700")

Eric Abrahamsen <eric@ericabrahamsen.net> writes:

> Benjamin Riefenstahl <b.riefenstahl@turtle-trading.net> writes:
>
>> Hi all,
>>
>> Stefan Monnier writes:
>>> I don't think `make` can do exactly that, but there's no doubt that we
>>> should be able to provide a way to build just a particular package
>>> (maybe the target would have to be called something else than just
>>> `gnorb`, e.g. `compile-gnorb`).  It's probably not that hard.
>>
>> Right, in GNU make I have done it like this before:
>>
>>   compile-%:
>>       echo Making package $* ...
>>       [commands to make the package]
>>
>>   test-%:
>>       echo Testing package $* ...
>>       [commands to test the package]
>
> Well, this is as far as I've been able to get:
>
> .PHONY:
> compile-%:
> 	@if [ -d "$(CURDIR)/packages/$*" ]; then		      \
> 	  $(MAKE) -C "$(CURDIR)/packages/$*" "*.elc";                 \
> 	else							      \
> 	  echo "No such package: $*";                         	      \
> 	fi;

Off-list someone sent me this:

define RULE-pkg
$(notdir $(1)): $(filter $(1)/%, $(elcs))
endef

$(foreach pkg, $(pkgs), $(eval $(call RULE-pkg, $(pkg))))

Which seems to work! Called with the bare package name. One weird thing,
though, is that for each file being compiled I get:

Unable to activate package ‘relint’.
Required package ‘xr-1.19’ is unavailable
Unable to activate package ‘exwm’.
Required package ‘xelb-0.18’ is unavailable
Unable to activate package ‘ebdb-i18n-chn’.
Required package ‘pyim-1.6.0’ is unavailable
Unable to activate package ‘counsel’.
Required package ‘swiper-0.13.1’ is unavailable

Which is odd since the package I'm compiling doesn't have anything to do
with those packages.

But, closer to success.



      reply	other threads:[~2020-09-04 22:20 UTC|newest]

Thread overview: 12+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-09-03 23:46 ELPA -- making individual packages Eric Abrahamsen
2020-09-04  0:18 ` Stefan Kangas
2020-09-04  0:36   ` Eric Abrahamsen
2020-09-04  1:11     ` Stefan Kangas
2020-09-04  1:08 ` Stefan Monnier
2020-09-04  3:25   ` Eric Abrahamsen
2020-09-08 13:12     ` Stefan Monnier
2020-09-08 16:19       ` Eric Abrahamsen
2020-09-08 17:07         ` Eric Abrahamsen
2020-09-04 13:01   ` Benjamin Riefenstahl
2020-09-04 17:41     ` Eric Abrahamsen
2020-09-04 22:20       ` Eric Abrahamsen [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87eenhgp55.fsf@ericabrahamsen.net \
    --to=eric@ericabrahamsen.net \
    --cc=b.riefenstahl@turtle-trading.net \
    --cc=emacs-devel@gnu.org \
    --cc=monnier@iro.umontreal.ca \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/emacs.git
	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.