### @configure_input@
-# Copyright (C) 2010-2013 Free Software Foundation, Inc.
+# Copyright (C) 2010-2015 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
SHELL = @SHELL@
srcdir = @srcdir@
-abs_srcdir = @abs_srcdir@
VPATH = $(srcdir)
+SEPCHAR = @SEPCHAR@
+
+# Empty for all systems except MinGW, where xargs needs an explicit
+# limitation.
+XARGS_LIMIT = @XARGS_LIMIT@
+
# We never change directory before running Emacs, so a relative file
# name is fine, and makes life easier. If we need to change
# directory, we can use emacs --chdir.
EMACS = ../../src/emacs
# Command line flags for Emacs.
-EMACSOPT = -batch --no-site-file --no-site-lisp
+# Apparently MSYS bash would convert "-L :" to "-L ;" anyway,
+# but we might as well be explicit.
+EMACSOPT = -batch --no-site-file --no-site-lisp -L "$(SEPCHAR)$(srcdir)"
# Extra flags to pass to the byte compiler.
BYTE_COMPILE_EXTRA_FLAGS =
# The actual Emacs command run in the targets below.
-emacs = EMACSLOADPATH="$(abs_srcdir)/../../lisp:$(abs_srcdir)" LC_ALL=C "$(EMACS)" $(EMACSOPT)
+# Prevent any setting of EMACSLOADPATH in user environment causing problems.
+emacs = EMACSLOADPATH= LC_ALL=C EMACS_TEST_DIRECTORY=$(srcdir) "$(EMACS)" $(EMACSOPT)
# Common command to find subdirectories
-setwins=subdirs=`find . -type d -print`; \
- for file in $$subdirs; do \
- case $$file in */.* | */.*/* | */=* | ./data* ) ;; \
+setwins=for file in `find $(srcdir) -type d -print`; do \
+ case $$file in $(srcdir)*/data* | $(srcdir)*/flymake* ) ;; \
*) wins="$$wins$${wins:+ }$$file" ;; \
esac; \
done
# 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 $(XARGS_LIMIT) 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 \
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; \
els="$$els $$el"; \
done; \
echo Testing $$els; \
- cd "$$thisdir"; \
- $(emacs) --chdir $(srcdir) $$args -f ert-run-tests-batch-and-exit
+ $(emacs) $$args -f ert-run-tests-batch-and-exit
# Makefile ends here.