X-Git-Url: https://code.delx.au/gnu-emacs-elpa/blobdiff_plain/2d44e7fef7e7388759518cba1a424495119679d1..8949dbefa4aa968f6d762e1faf0d63f719231eaf:/GNUmakefile?ds=sidebyside diff --git a/GNUmakefile b/GNUmakefile index 7d888439b..e35b82d66 100644 --- a/GNUmakefile +++ b/GNUmakefile @@ -15,10 +15,10 @@ check_copyrights: @echo "Compute exceptions >$(CR_EXCEPTIONS)~" @export LANG=C; \ (cd packages; \ - find . -name '*.el' -print0 | \ + find . -name '.git' -prune -o -name '*.el' -print0 | \ xargs -0 grep -L 'Free Software Foundation, Inc' | \ grep -v '\(\.dir-locals\|.-\(pkg\|autoloads\)\)\.el$$'; \ - find . -name '*.el' -print | \ + find . -name '.git' -prune -o -name '*.el' -print | \ while read f; do \ fquoted="$$(echo $$f|tr '|' '_')"; \ sed -n -e '/[Cc]opyright.*, *[1-9][-0-9]*,\?$$/N' \ @@ -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