# Build Emacs from a fresh tarball or version-control checkout.
-# Copyright (C) 2011-2013 Free Software Foundation, Inc.
+# Copyright (C) 2011-2016 Free Software Foundation, Inc.
#
# This file is part of GNU Emacs.
#
# Once 'configure' exists, run it.
# Finally, run the actual 'make'.
-default $(filter-out configure Makefile,$(MAKECMDGOALS)): Makefile
+ORDINARY_GOALS = $(filter-out configure Makefile bootstrap,$(MAKECMDGOALS))
+
+default $(ORDINARY_GOALS): Makefile
$(MAKE) -f Makefile $(MAKECMDGOALS)
# Execute in sequence, so that multiple user goals don't conflict.
.NOTPARALLEL:
+# 'all' if a .git subdirectory is present, empty otherwise.
+ALL_IF_GIT = $(subst .git,all,$(wildcard .git))
+
configure:
@echo >&2 'There seems to be no "configure" file in this directory.'
- @echo >&2 'Running ./autogen.sh ...'
- ./autogen.sh
+ @echo >&2 Running ./autogen.sh $(ALL_IF_GIT) ...
+ ./autogen.sh $(ALL_IF_GIT)
@echo >&2 '"configure" file built.'
Makefile: configure
./configure
@echo >&2 'Makefile built.'
+# 'make bootstrap' in a fresh checkout needn't run 'configure' twice.
+bootstrap: Makefile
+ $(MAKE) -f Makefile all
+
+.PHONY: bootstrap default $(ORDINARY_GOALS)
+
endif
endif