EMACSFULL = `echo emacs-${version} | sed '$(TRANSFORM)'`${EXEEXT}
# Subdirectories to make recursively.
-SUBDIR = $(NTDIR) lib lib-src src lisp
+SUBDIR = $(NTDIR) elpa lib lib-src src lisp
# The subdir makefiles created by config.status.
SUBDIR_MAKEFILES_IN = @SUBDIR_MAKEFILES_IN@
./bin/extract-package.sh -s d28cf8632d2691dc93afbb28500126242d37961c -p pabbrev -e
pabbrev: packages/d28cf8632d2691dc93afbb28500126242d37961c-pabbrev
- $(MAKE) -C packages/d28cf8632d2691dc93afbb28500126242d37961c-pabbrev/ -f package-makefile.mk deploy
+ $(MAKE) -C packages/d28cf8632d2691dc93afbb28500126242d37961c-pabbrev/pabbrev -f package-makefile.mk deploy PACKAGE=pabbrev
packages/cba688842ac089ad516155d1b2d6d73826929449-hydra: elpa-update directories
./bin/extract-package.sh -s cba688842ac089ad516155d1b2d6d73826929449 -p hydra
hydra: packages/cba688842ac089ad516155d1b2d6d73826929449-hydra
- $(MAKE) -C packages/cba688842ac089ad516155d1b2d6d73826929449-hydra -f package-makefile.mk deploy
+ $(MAKE) -C packages/cba688842ac089ad516155d1b2d6d73826929449-hydra/hydra -f package-makefile.mk deploy PACKAGE=hydra
+
clean:
rm -rf packages
+ rm -rf ../lisp/elpa
+ rm -rf ../test/lisp/elpa
function grab_external {
rm -rf packages/*$PACKAGE
- mkdir packages/$SHA-$PACKAGE
+ mkdir --parents packages/$SHA-$PACKAGE/$PACKAGE
cd elpa-git
git archive $SHA \
- | tar xv -C ../packages/$SHA-$PACKAGE
+ | tar xv -C ../packages/$SHA-$PACKAGE/$PACKAGE
cd ..
- cp bin/package-makefile.mk packages/$SHA-$PACKAGE
+ cp --no-clobber bin/package-makefile.mk packages/$SHA-$PACKAGE/$PACKAGE/
+}
+
+
+function grab_subtree {
+ rm -rf packages/*$PACKAGE
+ mkdir --parents packages/$SHA-$PACKAGE/$PACKAGE
+ cd elpa-git
+ git archive $SHA \
+ | tar xv -C ../packages/$SHA-$PACKAGE/$PACKAGE
+ cd ..
+ cp --no-clobber bin/package-makefile.mk packages/$SHA-$PACKAGE/$PACKAGE
}
SHA=
exit 0
fi
-exit 1
+grab_subtree
-deploy:
- echo hello `pwd`
+FILE = $(realpath $(lastword $(MAKEFILE_LIST)))
+DIR = $(dir $(FILE))
+DIRS = $(subst /, ,$(DIR))
+PACKAGE=$(lastword $(DIRS))
+
+TEST=$(wildcard *-test.el)
+TEST:=$(wildcard *-tests.el) $(TEST)
+LISP=$(filter-out $(TEST), $(wildcard *.el))
+
+
+LISP_DIR=../../../../lisp/elpa/$(PACKAGE)/
+TEST_DIR=../../../../test/lisp/elpa/$(PACKAGE)/
+
+LISP_TARGETS=$(addprefix $(LISP_DIR),$(LISP))
+TEST_TARGETS=$(addprefix $(TEST_DIR),$(TEST))
+
+deploy: prepare $(LISP_TARGETS) $(TEST_TARGETS)
+ # LISP $(LISP_TARGETS)
+ # TEST $(TEST_TARGETS)
+
+define lisp_template
+ $(LISP_DIR)$(1): $(1)
+ cp $$< $$@
+endef
+
+$(foreach prereq, $(LISP), $(eval $(call lisp_template,$(prereq))))
+
+define test_template
+ $(TEST_DIR)$(1): $(1)
+ cp $$< $$@
+endef
+
+$(foreach prereq, $(TEST), $(eval $(call test_template,$(prereq))))
+
+prepare:
+ -mkdir $(LISP_DIR)
+ -mkdir $(TEST_DIR)
+* Working on
+
+Have package checkout working for external
+Next get it working for non external so we can template
+
+Then how to get the submakes working
+
+
+
+* To Fix
+
+Think we are running git fetch --all on every package. Is there
+something more intelligent we can do here? Lookup VCS Witness
+elsewhere.
+
+* Notes
+
1) Scripting?
Guess we have to use sh