# Generate a full pathname of the top-level installation directory
top_srcdir := $(subst \,/,$(shell cd))
-# Find out which version of Emacs this is.
-version := ${shell sed -n -e '/^static const char emacs_version/s/^[^"]*\("[^"]*"\).*/\1/p' src/emacs.c}
-
# Q: Do we need to bootstrap?
# A: Only if we find admin/admin.el, i.e. we are building out of
# a VCS-checkout (not a release) and src/b-emacs.exe does not exist.
# compiled lisp files are part of the distribution. (If we are
# bootstrapping, the src target will run Make in `lisp' as well.)
# leim is not included because it is part of the src target.
-all: lib-src src emacs misc lispref lispintro
+all: lib lib-src src emacs misc lispref lispintro
+
+lib: FRC
+ cd lib
+ $(MAKE) top_srcdir=${top_srcdir} version=${version}
+ cd ..
-lib-src: FRC
+lib-src: lib FRC
cd lib-src
$(MAKE) top_srcdir=${top_srcdir} version=${version}
cd ..
# file src/foo.c forces dumping a new bootstrap-emacs, then re-byte-compiling
# all preloaded elisp files, and only then dump the actual src/emacs, which
# is not wrong, but is overkill in 99.99% of the cases.
-src: FRC
+src: lib lib-src FRC
cd src
$(MAKE) top_srcdir=${top_srcdir} BOOTSTRAPEMACS="${boot}"
djecho -s '/-geometry/s,^.*,set environment HOME $(top_srcdir),' \
@echo "We don't have any tests for GNU Emacs yet."
clean mostlyclean:
+ cd lib
+ $(MAKE) $(MFLAGS) $@
+ cd ..
cd lib-src
$(MAKE) $(MFLAGS) $@
cd ..
$(MAKE) $(MFLAGS) $@
if exist bootlisp rm -f bootlisp
cd ..
+ cd lib
+ $(MAKE) $(MFLAGS) $@
+ cd ..
cd lib-src
$(MAKE) $(MFLAGS) $@
cd ..
cd src
$(MAKE) $(MFLAGS) $@
cd ..
+ cd lib
+ $(MAKE) $(MFLAGS) $@
+ cd ..
cd lib-src
$(MAKE) $(MFLAGS) $@
cd ..
.PHONY: bootstrap
bootstrap-clean: FRC
+ cd lib
+ $(MAKE) $(MFLAGS) $@
+ cd ..
cd src
$(MAKE) $(MFLAGS) $@
cd ..