# Top-level Makefile for Emacs under MS-DOS/DJGPP v2.0 or higher. -*-makefile-*-
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004,
-# 2005, 2006, 2007, 2008, 2009, 2010 Free Software Foundation, Inc.
+# Copyright (C) 1996-2011 Free Software Foundation, Inc.
# This file is part of GNU Emacs.
# 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.
+# A: Only if we find autogen/README, i.e. we are building out of
+# a VCS-checkout (not a release), and src/b-emacs.exe does not exist.
# This avoids building a bootstrap-emacs and recompiling Lisp files
-# when building a pretest/release tarball.
+# when building a pretest/release tarball. Recompiling Lisp files
+# is BAD because lisp/Makefile.in requires a Unixy shell.
boot :=
-ifneq ($(wildcard admin/admin.el),)
+ifneq ($(wildcard autogen/README),)
ifeq ($(wildcard src/b-emacs.exe),)
boot := b-emacs.exe
endif
# 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} all
+ cd ..
-lib-src: FRC
+lib-src: lib FRC
cd lib-src
- $(MAKE) top_srcdir=${top_srcdir} version=${version}
+ $(MAKE) top_srcdir=${top_srcdir} all
cd ..
# Pass to src/Makefile.in an additional BOOTSTRAPEMACS variable which
# 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}"
+ $(MAKE) top_srcdir=${top_srcdir} BOOTSTRAPEMACS="${boot}" all
djecho -s '/-geometry/s,^.*,set environment HOME $(top_srcdir),' \
'/environment *TERM/s/^.*/set environment TERM internal/' \
>gdb.sed
cd lib-src
command.com /c >/dev/null for %p in (hexl etags ctags ebrowse) do\
if exist %p.exe mv -f %p.exe ../bin
- if exist fns.el update fns.el ../bin/fns.el
cd ..
cd src
mv -f emacs.exe ../bin/
@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 ..