# 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 Free Software Foundation, Inc.# This file is part of GNU Emacs.# GNU Emacs is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 3, or (at your option)# any later version.# GNU Emacs is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.# You should have received a copy of the GNU General Public License# along with GNU Emacs; see the file COPYING. If not, write to# the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,# Boston, MA 02110-1301, USA.# make all to compile and build Emacs.# make install to install it (installs in-place, in `bin' subdir of top dir).# make TAGS to update tags tables.## make clean or make mostlyclean# Delete all files from the current directory that are normally# created by building the program. Don't delete the files that# record the configuration. Also preserve files that could be made# by building, but normally aren't because the distribution comes# with them.## Delete `.dvi' files here if they are not part of the distribution.## make distclean# Delete all files from the current directory that are created by# configuring or building the program. If you have unpacked the# source and built the program without creating any other files,# `make distclean' should leave only the files that were in the# distribution.## make maintainer-clean# Delete everything from the current directory that can be# reconstructed with this Makefile. This typically includes# everything deleted by distclean, plus more: *.elc files,# C source files produced by Bison, tags tables, info files,# and so on.## make extraclean# Still more severe - delete backup and autosave files, too.# This gork is required for those who use a Unix-style shell, and# have SHELL in the environment pointing to it. Here we force# Make to use COMMAND.COM instead. This Makefile won't work otherwise.# (The /xyzzy directory is used to minimize the chance that someone# actually has such a directory with an incompatible command.com. We# used to have /dos there, but some Windows installations have an old# version of DOS stashed in that directory, and command.com from there# won't run on Windows, complaining about "Incorrect DOS version".# Make will look up PATH for the shell executable, so the directory name# is not important.)SHELL=/xyzzy/commandMAKESHELL=/xyzzy/command# Generate a full pathname of the top-level installation directorytop_srcdir := $(subst \,/,$(shell cd))# Find out which version of Emacs this is.version := ${shell sed -n -e '/(defconst emacs-version/s/^[^"]*\("[^"]*"\).*/\1/p' lisp/version.el}all: maybe_bootstrap lib-src src man lispref lispintrolib-src: FRC cd lib-src $(MAKE) top_srcdir=${top_srcdir} version=${version} cd ..src: FRC cd src $(MAKE) top_srcdir=${top_srcdir} djecho -s '/-geometry/s,^.*,set environment HOME $(top_srcdir),' \ '/environment *TERM/s/^.*/set environment TERM internal/' \ '/x_error_quitter/s/^.*/set environment NAME root/' >gdb.sed sed -f gdb.sed _gdbinit >gdb.tmp djecho -a gdb.tmp -s 'set environment USER root' \ 'set environment EMACSPATH $(top_srcdir)/bin' \ 'set environment SHELL $(subst \,/,$(COMSPEC))' \ 'set environment PATH $(subst \,/,$(PATH))' update gdb.tmp gdb.ini rm -f gdb.tmp gdb.sed cd .. if exist leim\Makefile redir $(MAKE) -C leim top_srcdir=${top_srcdir}man lispref lispintro: FRC cd $@ $(MAKE) top_srcdir=${top_srcdir} info cd ..install: all if not exist bin\nul md bin cd lib-src command.com /c >/dev/null for %p in (hexl etags ctags b2m ebrowse) do\ if exist %p.exe mv -f %p.exe ../bin if exist fns.el update fns.el ../bin/fns.el cd .. cd src stubify emacs stubedit emacs.exe minstack=512k mv -f emacs.exe ../bin/ cd .. djecho -s "(if (fboundp 'normal-top-level-add-subdirs-to-load-path)" \ " (normal-top-level-add-subdirs-to-load-path))" \ > ./subdirs.el if not exist .\site-lisp\subdirs.el \ update ./subdirs.el ./site-lisp/subdirs.el rm -f ./subdirs.elFRC:# We cannot use [a-zA-Z]* like the mainline distribution does, because# that causes all file names to be returned in upper-case on DOS...TAGS tags: lib-src FRC cd lib-src if exist etags.exe mv -f etags.exe ../bin cd .. cd lisp ../bin/etags .../*.el cd .. cd src ../bin/etags --include=../lisp/TAGS \ '--regex=/[ ]*DEFVAR_[A-Z_ (]+"\([^"]+\)"/' *.c *.h s/msdos.h m/intel386.h cd .. ./bin/etags --include=src/TAGScheck: @echo "We don't have any tests for GNU Emacs yet."clean mostlyclean: cd lib-src $(MAKE) $(MFLAGS) $@ cd .. cd src $(MAKE) $(MFLAGS) $@ cd .. cd oldxmenu -$(MAKE) $(MFLAGS) $@ cd .. cd man -$(MAKE) $(MFLAGS) $@ cd .. cd lispref -$(MAKE) $(MFLAGS) $@ cd .. cd lispintro -$(MAKE) $(MFLAGS) $@ cd .. cd leim if exist Makefile redir $(MAKE) $(MFLAGS) $@ cd .. -$(MAKE) $(MFLAGS) $@top_distclean=rm -f Makefile */Makefile src/_gdbinitdistclean maintainer-clean: FRC cd src $(MAKE) $(MFLAGS) $@ cd .. cd oldxmenu -$(MAKE) $(MFLAGS) $@ cd .. cd lib-src $(MAKE) $(MFLAGS) $@ cd .. cd man -$(MAKE) $(MFLAGS) $@ cd .. cd lispref -$(MAKE) $(MFLAGS) $@ cd .. cd lispintro -$(MAKE) $(MFLAGS) $@ cd .. cd leim if exist Makefile redir $(MAKE) $(MFLAGS) $@ cd .. cd lisp $(MAKE) $(MFLAGS) $@ cd .. ${top_distclean}extraclean: cd src $(MAKE) $(MFLAGS) $@ cd .. cd oldxmenu -$(MAKE) $(MFLAGS) $@ cd .. cd lib-src $(MAKE) $(MFLAGS) $@ cd .. cd man -$(MAKE) $(MFLAGS) $@ cd .. cd lispref -$(MAKE) $(MFLAGS) $@ cd .. cd lispintro -$(MAKE) $(MFLAGS) $@ cd .. cd leim if exist Makefile redir $(MAKE) $(MFLAGS) $@ cd .. cd lisp $(MAKE) $(MFLAGS) $@ cd .. ${top_distclean} -rm -f *~ #*.PHONY: bootstrap bootstrap-lisp-1 bootstrap-src bootstrap-lisp bootstrap-clean.PHONY: maybe_bootstrap bootfastmaybe_bootstrap: @if not exist lisp\abbrev.elc djecho \ "Some *.elc files are missing. You should do a `make bootstrap'." @if not exist lisp\abbrev.elc redir -e /dev/null -oe redir fail-this-make.exebootstrap: bootstrap-clean-before bootstrap-lisp-1 bootstrap-src bootstrap-lisp bootstrap-clean-after all info cd lisp; $(MAKE) $(MFLAGS) bootstrap-after; cd ..bootfast: bootstrap-clean-before bootstrap-src bootstrap-lisp bootstrap-clean-after all info cd lisp; $(MAKE) $(MFLAGS) bootstrap-after; cd ..bootstrap-lisp-1: cd lisp; $(MAKE) $(MFLAGS) bootstrap-clean; cd ..bootstrap-lisp: cd lisp; $(MAKE) $(MFLAGS) bootstrap EMACS=${top_srcdir}/src/b-emacs.exe lisp=${top_srcdir}/lisp; cd ..bootstrap-src: cd src; $(MAKE) $(MFLAGS) bootstrap; cd ..### Used for `bootstrap' to avoid deleting existing dumped Emacs executables.bootstrap-clean-before: FRC cd src; $(MAKE) $(MFLAGS) mostlyclean; cd .. cd lib-src; $(MAKE) $(MFLAGS) clean; cd .. -cd man; $(MAKE) $(MFLAGS) clean; cd .. -cd lispref; $(MAKE) $(MFLAGS) clean; cd .. -cd lispintro; $(MAKE) $(MFLAGS) clean; cd .. cd leim; if exist Makefile redir $(MAKE) $(MFLAGS) clean; cd ..bootstrap-clean-after: cd src; $(MAKE) $(MFLAGS) mostlyclean; cd ..# arch-tag: 6fee5130-4c53-46c6-93d3-d0ea852298b9