# 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 $@'
$(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)\")"
#$(foreach al, $(single_pkgs), $(eval $(call RULE-srcdeps, $(al))))
%-pkg.el: %.el
@echo 'Generating description file $@'
- $(EMACS) \
+ @$(EMACS) \
--eval '(require (quote package))' \
--eval '(setq b (find-file-noselect "$<"))' \
--eval '(setq d (with-current-buffer b (package-buffer-info)))' \
.PHONY: all-in-place
all-in-place: $(extra_elcs) $(autoloads) $(pkg_descs)
- echo Descs = $(pkg_descs)
# Do them in a sub-make, so that autoloads are done first.
$(MAKE) elcs