### target for GCC does not delete 'libgcc.a', because recompiling it
### is rarely necessary and takes a lot of time.
mostlyclean_dirs = src oldXMenu lwlib lib lib-src nt doc/emacs doc/misc \
- doc/lispref doc/lispintro
+ doc/lispref doc/lispintro elpa
$(foreach dir,$(mostlyclean_dirs),$(eval $(call submake_template,$(dir),mostlyclean)))
dirstate = .git/logs/HEAD
VCSWITNESS = $(if $(wildcard $(srcdir)/$(dirstate)),$$(srcdir)/../$(dirstate))
-
-all: all-packages
+all: elpa-update all-packages
../lisp/elpa:
mkdir ../lisp/elpa
mkdir packages
$(ELPA_PATH):
- echo Hello: $(ELPA_PATH)
git clone --mirror https://git.savannah.gnu.org/git/emacs/elpa.git $(ELPA_PATH)
elpa-update: $(VCSWITNESS) $(ELPA_PATH)
cd $(ELPA_PATH);git fetch --all
-directories: packages ../lisp/elpa ../test/lisp/elpa
-
-.PHONY: elpa-update directories
+.PHONY: elpa-update
PACKAGES=
define package_template
- packages/$(1)-$(2): elpa-update directories
- ./bin/extract-package.sh -g $$(ELPA_PATH) -p $(1) -s $(2) $(3)
+ packages/$(1)-$(2): $(ELPA_PATH)
+ ./bin/extract-package.sh -g $(ELPA_PATH) -p $(1) -s $(2) $(3)
$(1): packages/$(1)-$(2)
$$(MAKE) -C packages/$(1)-$(2)/$(1) -f package-makefile.mk deploy PACKAGE=$(1)
+ .PHONY: $(1)
PACKAGES:=$$(PACKAGES) $(1)
endef
all-packages: $(PACKAGES)
- # PACKAGES $(PACKAGES)
clean:
rm -rf packages
function grab_external {
rm -rf packages/$PACKAGE*
mkdir --parents $PACKAGE_LOC
- pushd $GIT_LOC
+ cwd=`pwd`
+ cd $GIT_LOC
git archive $SHA \
- | tar xv -C ../$PACKAGE_LOC
- popd
+ | tar xv -C $cwd/$PACKAGE_LOC
+ cd $cwd
cp --no-clobber bin/package-makefile.mk $PACKAGE_LOC
}
function grab_subtree {
rm -rf packages/*$PACKAGE
mkdir --parents $PACKAGE_LOC
- pushd $GIT_LOC
+ cwd=`pwd`
+ cd $GIT_LOC
git archive $SHA packages/$PACKAGE \
- | tar xv --strip-components=2 -C ../$PACKAGE_LOC
- popd
+ | tar xv --strip-components=2 -C $cwd/$PACKAGE_LOC
+ cd $cwd
cp --no-clobber bin/package-makefile.mk $PACKAGE_LOC
}
TEST:=$(wildcard *-tests.el) $(TEST)
LISP=$(filter-out $(TEST), $(wildcard *.el))
-
LISP_DIR=../../../../lisp/elpa/$(PACKAGE)/
TEST_DIR=../../../../test/lisp/elpa/$(PACKAGE)/
TEST_TARGETS=$(addprefix $(TEST_DIR),$(TEST))
deploy: $(LISP_TARGETS) $(TEST_TARGETS)
- # LISP $(LISP_TARGETS)
- # TEST $(TEST_TARGETS)
define lisp_template
- $(LISP_DIR)$(1): $(1) prepare
+ $(LISP_DIR)$(1): $(1) $(LISP_DIR)
cp $$< $$@
endef
$(foreach prereq, $(LISP), $(eval $(call lisp_template,$(prereq))))
define test_template
- $(TEST_DIR)$(1): $(1) prepare
+ $(TEST_DIR)$(1): $(1) $(TEST_DIR)
cp $$< $$@
endef
$(foreach prereq, $(TEST), $(eval $(call test_template,$(prereq))))
-prepare:
- -mkdir $(LISP_DIR)
- -mkdir $(TEST_DIR)
+$(LISP_DIR):
+ mkdir --parents $(LISP_DIR)
+
+$(TEST_DIR):
+ mkdir --parents $(TEST_DIR)