Commit 2d748773 authored by Glenn Morris's avatar Glenn Morris
Browse files

Get rid of --chdir usage in test/automated

* test/automated/Makefile.in (EMACSOPT): Move -L here.
(emacs): Set EMACS_TEST_DIRECTORY in the environment.
(setwins): Don't assume called from srcdir.  Remove legacy stuff.
(.el.elc): No more need to pass -L here.
(compile-main): Get rid of sub-shell and cd.
(compile-clean, check): Get rid of cd.
parent d5112380
2013-11-05 Glenn Morris <rgm@gnu.org>
Get rid of --chdir usage.
* automated/Makefile.in (EMACSOPT): Move -L here.
(emacs): Set EMACS_TEST_DIRECTORY in the environment.
(setwins): Don't assume called from srcdir. Remove legacy stuff.
(.el.elc): No more need to pass -L here.
(compile-main): Get rid of sub-shell and cd.
(compile-clean, check): Get rid of cd.
Make it possible to run tests with a different working directory.
* automated/flymake-tests.el (flymake-tests-data-directory): New.
(flymake-tests--current-face): Use flymake-tests-data-directory.
......
......@@ -28,19 +28,20 @@ VPATH = $(srcdir)
EMACS = ../../src/emacs
# Command line flags for Emacs.
EMACSOPT = -batch --no-site-file --no-site-lisp
EMACSOPT = -batch --no-site-file --no-site-lisp -L :$(srcdir)
# Extra flags to pass to the byte compiler.
BYTE_COMPILE_EXTRA_FLAGS =
# The actual Emacs command run in the targets below.
# Prevent any setting of EMACSLOADPATH in user environment causing problems.
emacs = unset EMACSLOADPATH; LC_ALL=C "$(EMACS)" $(EMACSOPT)
emacs = unset EMACSLOADPATH; \
LC_ALL=C EMACS_TEST_DIRECTORY=$(srcdir) "$(EMACS)" $(EMACSOPT)
# Common command to find subdirectories
setwins=subdirs=`find . -type d -print`; \
setwins=subdirs=`find $(srcdir) -type d -print`; \
for file in $$subdirs; do \
case $$file in */.* | */.*/* | */=* | ./data* ) ;; \
case $$file in */data* | */flymake* ) ;; \
*) wins="$$wins$${wins:+ }$$file" ;; \
esac; \
done
......@@ -55,7 +56,7 @@ all: check
.el.elc:
@echo Compiling $<
@$(emacs) -L :$(srcdir) $(BYTE_COMPILE_EXTRA_FLAGS) -f batch-byte-compile $<
@$(emacs) $(BYTE_COMPILE_EXTRA_FLAGS) -f batch-byte-compile $<
.PHONY: compile-targets compile-main compile-clean
......@@ -66,20 +67,20 @@ compile-targets: $(TARGETS)
# Compile all the Elisp files that need it. Beware: it approximates
# `no-byte-compile', so watch out for false-positives!
compile-main: compile-clean
@(cd $(srcdir) && $(setwins); \
@$(setwins); \
els=`echo "$$wins " | sed -e 's|/\./|/|g' -e 's|/\. | |g' -e 's| |/*.el |g'`; \
for el in $$els; do \
test -f $$el || continue; \
test ! -f $${el}c && GREP_OPTIONS= grep '^;.*no-byte-compile: t' $$el > /dev/null && continue; \
echo "$${el}c"; \
done | xargs echo) | \
done | xargs echo | \
while read chunk; do \
$(MAKE) $(MFLAGS) compile-targets EMACS="$(EMACS)" TARGETS="$$chunk"; \
done
# Erase left-over .elc files that do not have a corresponding .el file.
compile-clean:
@cd $(srcdir) && $(setwins); \
@$(setwins); \
elcs=`echo "$$wins " | sed -e 's|/\./|/|g' -e 's|/\. | |g' -e 's| |/*.elc |g'`; \
for el in $$(echo $$elcs | sed -e 's/\.elc/\.el/g'); do \
if test -f "$$el" -o \! -f "$${el}c"; then :; else \
......@@ -101,7 +102,7 @@ maintainer-clean: distclean bootstrap-clean
check: compile-main
@thisdir=`pwd`; cd $(srcdir) && $(setwins); \
@$(setwins); \
pattern=`echo "$$wins " | sed -e 's|/\./|/|g' -e 's|/\. | |g' -e 's| |/*.el |g'`; \
for el in $$pattern; do \
test -f $$el || continue; \
......@@ -109,7 +110,6 @@ check: compile-main
els="$$els $$el"; \
done; \
echo Testing $$els; \
cd "$$thisdir"; \
$(emacs) --chdir $(srcdir) -L :. $$args -f ert-run-tests-batch-and-exit
$(emacs) $$args -f ert-run-tests-batch-and-exit
# Makefile ends here.
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment