### @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@
-abs_top_builddir = @abs_top_builddir@
VPATH = $(srcdir)
-# You can specify a different executable on the make command line,
-# e.g. "make EMACS=../src/emacs ...".
+SEPCHAR = @SEPCHAR@
-# We sometimes change directory before running Emacs (typically when
-# building out-of-tree, we chdir to the source directory), so we need
-# to use an absolute file name.
-EMACS = ${abs_top_builddir}/src/emacs
+# 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
@$(emacs) $(BYTE_COMPILE_EXTRA_FLAGS) -f batch-byte-compile $<
-.PHONY: lisp-compile compile-targets compile-main compile-clean
-
-lisp-compile:
- cd ../../lisp && $(MAKE) $(MFLAGS) compile EMACS="$(EMACS)"
+.PHONY: compile-targets compile-main compile-clean
# TARGETS is set dynamically in the recursive call from `compile-main'.
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 lisp-compile
- @(cd $(srcdir) && $(setwins); \
+compile-main: compile-clean
+ @$(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
- @(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; \
- $(emacs) $$args -f ert-run-tests-batch-and-exit)
+ $(emacs) $$args -f ert-run-tests-batch-and-exit
# Makefile ends here.