X-Git-Url: https://code.delx.au/gnu-emacs-elpa/blobdiff_plain/2ee393efc75af116d8679ea37f6f5176429695cc..8949dbefa4aa968f6d762e1faf0d63f719231eaf:/GNUmakefile diff --git a/GNUmakefile b/GNUmakefile index ec3dc25f8..e35b82d66 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -105,6 +105,18 @@ endef # Compute the set of autolods files and their dependencies. autoloads := $(foreach pkg, $(pkgs), $(pkg)/$(notdir $(pkg))-autoloads.el) +# FIXME: In 99% of the cases, autoloads can be generated in any order. +# But the `names' package is an exception because it sets up an advice that +# changes the way autload.el operates, and that advice is needed when creating +# the autoloads file of packages that use `names', such as `aggressive-indent'. +# The right solution is to check the Package-Requires and create the autoloads +# files in topological order, but for now we'll just do it the ad-hoc way +# add hand-made dependencies between autoloads files, and explicitly +# load the names-autoloads file when building autoloads files. + +packages/aggressive-indent/aggressive-indent-autoloads.el: \ + packages/names/names-autoloads.el + $(foreach al, $(autoloads), $(eval $(call RULE-srcdeps, $(al)))) %-autoloads.el: @echo 'Generating autoloads for $@' @@ -112,6 +124,7 @@ $(foreach al, $(autoloads), $(eval $(call RULE-srcdeps, $(al)))) $(EMACS) -l $(CURDIR)/admin/archive-contents.el \ --eval "(archive--refresh-pkg-file)" \ --eval "(require 'package)" \ + --eval "(load (expand-file-name \"../names/names-autoloads.el\") t t)" \ --eval "(package-generate-autoloads \"$$(basename $$(pwd))\" \ \"$$(pwd)\")" @@ -145,21 +158,18 @@ $(extra_elcs):; rm $@ # # Put into single_pkgs the set of -pkg.el files we need to keep up-to-date. # # I.e. all the -pkg.el files for the single-file packages. -# single_pkgs:=$(foreach pkg, $(pkgs), \ -# $(word $(words $(call FILTER-nonsrc, \ -# $(wildcard $(pkg)/*.el))), \ -# $(pkg)/$(notdir $(pkg))-pkg.el)) -# #$(foreach al, $(single_pkgs), $(eval $(call RULE-srcdeps, $(al)))) -# %-pkg.el: %.el -# @echo 'Generating description file $@' -# @$(EMACS) \ -# --eval '(require (quote package))' \ -# --eval '(setq b (find-file-noselect "$<"))' \ -# --eval '(setq d (with-current-buffer b (package-buffer-info)))' \ -# --eval '(package-generate-description-file d "$(dir $@)")' +pkg_descs:=$(foreach pkg, $(pkgs), $(pkg)/$(notdir $(pkg))-pkg.el) +#$(foreach al, $(single_pkgs), $(eval $(call RULE-srcdeps, $(al)))) +%-pkg.el: %.el + @echo 'Generating description file $@' + @$(EMACS) \ + --eval '(require (quote package))' \ + --eval '(setq b (find-file-noselect "$<"))' \ + --eval '(setq d (with-current-buffer b (package-buffer-info)))' \ + --eval '(package-generate-description-file d "$@")' .PHONY: all-in-place -all-in-place: $(extra_elcs) $(autoloads) # $(single_pkgs) +all-in-place: $(extra_elcs) $(autoloads) $(pkg_descs) # Do them in a sub-make, so that autoloads are done first. $(MAKE) elcs