# Top-level Makefile for Emacs under MS-DOS/DJGPP v2.0 or higher. -*-makefile-*- # # make all to compile and build Emacs. # make install to install it. # 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 realclean # Delete everything from the current directory that can be # reconstructed with this Makefile. This typically includes # everything deleted by distclean, plus more: 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/command 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 '/(defconst emacs-version/s/^[^"]*\("[^"]*"\).*/\1/p' lisp/version.el} all: lib-src src man lib-src: FRC cd lib-src $(MAKE) top_srcdir=${top_srcdir} version=${version} cd .. src: FRC cd src $(MAKE) top_srcdir=${top_srcdir} redir -o gdb.sed echo '/-geometry/s,^.*,set environment HOME $(top_srcdir),' redir -oa gdb.sed echo '/environment *TERM/s/^.*/set environment TERM internal/' redir -oa gdb.sed echo '/x_error_quitter/s/^.*/set environment NAME root/' redir -o gdb.tmp sed -f gdb.sed _gdbinit redir -oa gdb.tmp echo 'set environment USER root' redir -oa gdb.tmp echo 'set environment EMACSPATH $(top_srcdir)/bin' redir -oa gdb.tmp echo 'set environment SHELL $(subst \,/,$(COMSPEC))' redir -oa gdb.tmp echo '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: FRC cd man $(MAKE) top_srcdir=${top_srcdir} cd .. install: all if not exist bin\nul md bin cd lib-src if exist hexl.exe mv -f hexl.exe ../bin if exist etags.exe mv -f etags.exe ../bin if exist ctags.exe mv -f ctags.exe ../bin if exist b2m.exe mv -f b2m.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 .. FRC: TAGS tags: lib-src FRC cd lib-src if exist etags.exe mv -f etags.exe ../bin cd .. cd lisp ../bin/etags [a-zA-Z]*.el [a-zA-Z]*/[a-zA-Z]*.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/TAGS check: @echo "We don't have any tests for GNU Emacs yet." clean: cd lib-src $(MAKE) clean cd .. cd src $(MAKE) clean cd .. cd oldxmenu -$(MAKE) clean cd .. cd leim if exist Makefile redir $(MAKE) clean cd ..