X-Git-Url: https://code.delx.au/gnu-emacs/blobdiff_plain/67ab0163d67fbfeb41c37c8a259f27eeef965520..1dd4f26ab6c1f14628d9fcf03b0cca7e54d52302:/msdos/mainmake.v2 diff --git a/msdos/mainmake.v2 b/msdos/mainmake.v2 index 2e389b15bc..98716ac5a3 100644 --- a/msdos/mainmake.v2 +++ b/msdos/mainmake.v2 @@ -1,6 +1,6 @@ # Top-level Makefile for Emacs under MS-DOS/DJGPP v2.0 or higher. -*-makefile-*- -# Copyright (C) 1996-2011 Free Software Foundation, Inc. +# Copyright (C) 1996-2016 Free Software Foundation, Inc. # This file is part of GNU Emacs. @@ -63,16 +63,14 @@ MAKESHELL=/xyzzy/command # 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 msdos/autogen/Makefile.in, 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 msdos/autogen/Makefile.in),) ifeq ($(wildcard src/b-emacs.exe),) boot := b-emacs.exe endif @@ -82,11 +80,16 @@ 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 @@ -98,9 +101,9 @@ lib-src: FRC # 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 @@ -130,7 +133,6 @@ install: all 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/ @@ -159,8 +161,7 @@ TAGS tags: lib-src FRC cd src ../bin/etags --include=../lisp/TAGS \ --regex='/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' \ - $(CURDIR)/src/*.c $(CURDIR)/src/*.h \ - $(CURDIR)/src/s/msdos.h $(CURDIR)/src/m/intel386.h + $(CURDIR)/src/*.c $(CURDIR)/src/*.h cd .. ./bin/etags --include=src/TAGS @@ -168,6 +169,9 @@ check: @echo "We don't have any tests for GNU Emacs yet." clean mostlyclean: + cd lib + $(MAKE) $(MFLAGS) $@ + cd .. cd lib-src $(MAKE) $(MFLAGS) $@ cd .. @@ -199,6 +203,9 @@ distclean maintainer-clean: FRC $(MAKE) $(MFLAGS) $@ if exist bootlisp rm -f bootlisp cd .. + cd lib + $(MAKE) $(MFLAGS) $@ + cd .. cd lib-src $(MAKE) $(MFLAGS) $@ cd .. @@ -228,6 +235,9 @@ extraclean: cd src $(MAKE) $(MFLAGS) $@ cd .. + cd lib + $(MAKE) $(MFLAGS) $@ + cd .. cd lib-src $(MAKE) $(MFLAGS) $@ cd .. @@ -257,6 +267,9 @@ extraclean: .PHONY: bootstrap bootstrap-clean: FRC + cd lib + -$(MAKE) $(MFLAGS) maintainer-clean + cd .. cd src $(MAKE) $(MFLAGS) $@ cd .. @@ -285,4 +298,3 @@ bootstrap-clean: FRC bootstrap: bootstrap-clean FRC command.com /e:2048 /c config msdos $(MAKE) $(MFLAGS) info all -