view lisp/makefile.nt @ 38514:10482dd382e7

* viper-ex.el (ex-token-list,ex-cmd-execute): Revamped, courtesy of Scott Bronson. (ex-cmd-assoc,ex-compile,ex-cmd-one-letr): New functions. (viper-check-sub,viper-get-ex-command,viper-execute-ex-command): Deleted functions. (viper-get-ex-com-subr,viper-ex,ex-mark): Changed to use the new ex-token-list. (viper-get-ex-address-subr): convert registers to char data type. * viper-util.el (viper-int-to-char,viper-char-equal): new functions. (viper-memq-char): use viper-int-to-char. (viper-file-checked-in-p): use vc-locking-user, if vc doesn't have vc-locking-state. (viper-read-key): use viper-read-key-sequence. * viper.el (viper-major-mode-modifier-list): added inferior-emacs-lisp-mode. (this-major-mode-requires-vi-state): new function that uses simple heuristics to decide if vi state is appropriate. (set-viper-state-in-major-mode): use this-major-mode-requires-vi-state. (viper-non-hook-settings): don't advise read-key-sequence. (viper-read-key-sequence): new function that replaces the previously used advice to read-key-sequence. * viper-cmd.el (viper-test-com-defun,viper-exec-change, viper-exec-Change,viper-execute-com,viper-insert,viper-append, viper-Append,viper-Insert,viper-open-line,viper-Open-line, viper-open-line-at-point,viper-substitute,viper-overwrite, viper-replace-char-subr,viper-forward-word,viper-forward-Word): got rid of the negative character hack. (viper-escape-to-state,viper-replace-state-exit-cmd): use viper-read-key-sequence. (viper-envelop-ESC-key): no need for ad-get-orig-definition. (viper-minibuffer-standard-hook,viper-read-string-with-history): don't override existing minibuffer-setup-hook. (viper-mark-point,viper-goto-mark-subr,viper-brac-function): convert registers to char data type. (viper-autoindent): use viper-indent-line. * viper-keym.el: use viper-exec-key-in-emacs. * viper.texi: Added credits, new commands, like :make. * ediff-util.el: Copyright years. (ediff-choose-syntax-table): New function. (ediff-setup): Use ediff-choose-syntax-table. (ediff-file-checked-out-p,ediff-file-checked-in-p): check if vc-state is available. (ediff-make-temp-file): use ediff-coding-system-for-write. * ediff-init.el (ediff-with-syntax-table): New macro, uses with-syntax-table. (ediff-coding-system-for-read): from ediff-diff.el (ediff-coding-system-for-write): new variable. (ediff-highest-priority): fixed the bug having to do with disappearing overlays. (ediff-file-remote-p): use file-remote-p, if available. (ediff-listable-file): new function. (ediff-file-attributes): use ediff-listable-file. * ediff-mult.el (ediff-meta-insert-file-info1): use ediff-listable-file. * ediff-ptch.el (ediff-prompt-for-patch-file): use ediff-coding-system-for-read. (ediff-patch-file-internal): use ediff-coding-system-for-write. * ediff-diff.el (ediff-coding-system-for-read): moved to ediff-init.el. (ediff-match-diff3-line,ediff-get-diff3-group): improved pattern. * ediff.el: Date of last update, copyright years. * ediff-wind (ediff-setup-control-frame): Nill->nil. * ediff.texi: added clarifications, acknowledgements.
author Michael Kifer <kifer@cs.stonybrook.edu>
date Sat, 21 Jul 2001 05:28:24 +0000
parents c96ec3fcc61b
children 9d0586dac8a8
line wrap: on
line source

#  Hacked up Nmake makefile for GNU Emacs
#   Geoff Voelker (voelker@cs.washington.edu)
#  Copyright (c) 1994 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 2, 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., 59 Temple Place - Suite 330,
#  Boston, MA 02111-1307, USA.
#

!include ..\nt\makefile.def

all:

#lisp=$(MAKEDIR:\=/)
lisp=.

# You can specify a different executable on the make command line,
# e.g. "make EMACS=../src/emacs ...".

EMACS = ..\bin\emacs.exe

# Command line flags for Emacs.  This must include --multibyte,
# otherwise some files will not compile.

EMACSOPT = -batch --no-init-file --no-site-file --multibyte

lisptagsfiles1 = $(lisp)/*.el
lisptagsfiles2 = $(lisp)/*/*.el
ETAGS = ..\lib-src\$(BLD)\etags

# Files which should not be compiled.
# - emacs-lisp/cl-specs.el:  only contains `def-edebug-spec's so there's
#   no point compiling it, although it doesn't hurt.

DONTCOMPILE = \
	$(lisp)/bindings.el \
	$(lisp)/cus-load.el \
	$(lisp)/cus-start.el \
	$(lisp)/emacs-lisp/cl-specs.el \
	$(lisp)/eshell/esh-maint.el \
	$(lisp)/eshell/esh-groups.el \
	$(lisp)/finder-inf.el \
	$(lisp)/forms-d2.el \
	$(lisp)/forms-pass.el \
	$(lisp)/generic-x.el \
	$(lisp)/international/latin-1.el \
	$(lisp)/international/latin-2.el \
	$(lisp)/international/latin-3.el \
	$(lisp)/international/latin-4.el \
	$(lisp)/international/latin-5.el \
	$(lisp)/international/latin-8.el \
	$(lisp)/international/latin-9.el \
	$(lisp)/international/mule-conf.el \
	$(lisp)/loaddefs.el \
	$(lisp)/loadup.el \
	$(lisp)/mail/blessmail.el \
	$(lisp)/mail/sc.el \
	$(lisp)/patcomp.el \
	$(lisp)/paths.el \
	$(lisp)/play/bruce.el \
	$(lisp)/subdirs.el \
	$(lisp)/term/internal.el \
	$(lisp)/version.el

# Files to compile before others during a bootstrap.  This is done
# to speed up the bootstrap process.

COMPILE_FIRST = \
	$(lisp)/emacs-lisp/byte-opt.el \
	$(lisp)/emacs-lisp/bytecomp.el \
	$(lisp)/subr.el

# The actual Emacs command run in the targets below.

emacs = $(EMACS) $(EMACSOPT)

# Common command to find subdirectories

# setwins=subdirs=`find $$wd -type d -print`; \
# 	for file in $$subdirs; do \
# 	   case $$file in */Old | */RCS | */CVS | */CVS/* | */=* ) ;; \
# 		*) wins="$$wins $$file" ;; \
# 	   esac; \
#         done

# Have to define the list of subdirs manually
WINS=\
	calendar \
	emacs-lisp \
	emulation \
	eshell \
	gnus \
	international \
	language \
	mail \
	net \
	play \
	progmodes \
	term \
	textmodes

doit:

cus-load.el:
	touch $@
custom-deps: cus-load.el doit
	@echo Directories: $(WINS)
	$(emacs) -l cus-dep --eval "(setq find-file-hooks nil)" -f custom-make-dependencies $(lisp) $(WINS)

finder-inf.el:
	echo (provide 'finder-inf)>> $@

finder-data: finder-inf.el doit
	@echo Directories: $(WINS)
	$(emacs) -l finder -f finder-compile-keywords-make-dist $(lisp) $(WINS)

loaddefs.el:
	echo ;;; loaddefs.el --- automatically extracted autoloads> $@
	echo ;;; Code:>> $@
	echo >> $@
	echo ;;; Local Variables:>> $@
	echo ;;; version-control: never>> $@
	echo ;;; no-byte-compile: t>> $@
	echo ;;; no-update-autoloads: t>> $@
	echo ;;; End:>> $@
	echo ;;; loaddefs.el ends here>> $@

autoloads: loaddefs.el doit
	@echo Directories: $(WINS)
	$(emacs) -l autoload --eval "(setq find-file-hooks nil generated-autoload-file \"$(lisp)/loaddefs.el\")" -f batch-update-autoloads $(lisp) $(WINS)

subdirs.el:
	$(MAKE) $(MFLAGS) -f makefile.nt update-subdirs
update-subdirs: doit
	@set QWINS=
	@for %d in ($(WINS)) do if not (%d)==(term) set QWINS=%QWINS% "%d"
	echo ;; In load-path, after this directory should come> subdirs.el
	echo ;; certain of its subdirectories.  Here we specify them.>> subdirs.el
	echo (normal-top-level-add-to-load-path '(%QWINS%))>> subdirs.el

updates: update-subdirs autoloads finder-data custom-deps

TAGS: $(lisptagsfiles1) $(lisptagsfiles2)
	$(ETAGS) $(lisptagsfiles1) $(lisptagsfiles2)

TAGS-LISP: $(lispsource)$(lisptagsfiles1) $(lispsource)$(lisptagsfiles2)
	$(ETAGS) -o TAGS-LISP $(lispsource)$(lisptagsfiles1) $(lispsource)$(lisptagsfiles2)

.SUFFIXES: .elc .el

.el.elc:
	-$(emacs) -f batch-byte-compile $<

$(DONTCOMPILE:.el=.elc):
	-$(DEL) $@

# Compile all Lisp files, except those from DONTCOMPILE.  This
# compiles files unconditionally.  All .elc files are made writable
# before compilation in case we checked out read-only (CVS option -r).
# Files MUST be compiled one by one.  If we compile several files in a
# row we can't make sure that the compilation environment is clean.
# We also set the load-path of the Emacs used for compilation to the
# current directory and its subdirectories, to make sure require's and
# load's in the files being compiled find the right files.

compile-files: subdirs.el doit
#	-for %f in ($(lisp) $(WINS)) do for %g in (%f\*.elc) do @attrib -r %g
	for %f in ($(COMPILE_FIRST)) do $(emacs) -f batch-byte-compile %f
	for %f in ($(lisp) $(WINS)) do for %g in (%f/*.el) do $(emacs) -f batch-byte-compile %f/%g

# Backup compiled Lisp files in elc.tar.gz.  If that file already
# exists, make a backup of it.

backup-compiled-files:
	-mv $(lisp)/elc.tar.gz $(lisp)/elc.tar.gz~
	-tar czf $(lisp)/elc.tar.gz $(lisp)/*.elc $(lisp)/*/*.elc

# Compile Lisp files, but save old compiled files first.

compile: backup-compiled-files compile-files

# Recompile all Lisp files which are newer than their .elc files.
# Note that this doesn't create .elc files.  It only recompiles if an
# .elc is present.

recompile: doit
	$(emacs) -f batch-byte-recompile-directory .

# Prepare a bootstrap in the lisp subdirectory.  Build loaddefs.el,
# because it's not sure it's up-to-date, and if it's not, that might
# lead to errors during the bootstrap because something fails to
# autoload as expected.  Remove compiled Lisp files so that
# bootstrap-emacs will be built from sources only.

bootstrap-clean:
	if exist $(EMACS) $(MAKE) $(MFLAGS) -f makefile.nt autoloads
	-for %f in ($(lisp) $(WINS)) do for %g in (%f\*.elc) do @$(DEL) %g

# Generate/update files for the bootstrap process.

bootstrap: autoloads compile-files custom-deps

#
# Assuming INSTALL_DIR is defined, copy the elisp files to it
# Windows 95 makes this harder than it should be.
#
install:
	- mkdir $(INSTALL_DIR)\lisp
	- $(DEL) .\same-dir.tst
	- $(DEL) $(INSTALL_DIR)\lisp\same-dir.tst
	echo SameDirTest > $(INSTALL_DIR)\lisp\same-dir.tst
!ifdef COPY_LISP_SOURCE
	if not exist .\same-dir.tst $(CP_DIR) . $(INSTALL_DIR)\lisp
!else
	if not exist .\same-dir.tst $(CP_DIR) *.elc $(INSTALL_DIR)\lisp
	if not exist .\same-dir.tst $(CP) cus-load.el $(INSTALL_DIR)\lisp
	if not exist .\same-dir.tst $(CP) forms*.el $(INSTALL_DIR)\lisp
	if not exist .\same-dir.tst $(CP) patcomp.el $(INSTALL_DIR)\lisp
	if not exist .\same-dir.tst $(CP) subdirs.el $(INSTALL_DIR)\lisp
	if not exist .\same-dir.tst $(CP) version.el $(INSTALL_DIR)\lisp
	if not exist .\same-dir.tst $(CP) mail\blessmail.el $(INSTALL_DIR)\lisp\mail
	if not exist .\same-dir.tst $(CP) mail\sc.el $(INSTALL_DIR)\lisp\mail
	if not exist .\same-dir.tst $(CP) play\bruce.el $(INSTALL_DIR)\lisp\play
	if not exist .\same-dir.tst $(CP) international\latin-*.el $(INSTALL_DIR)\lisp\international
	if not exist .\same-dir.tst $(CP) international\mule-conf.el $(INSTALL_DIR)\lisp\international
	- $(DEL) $(INSTALL_DIR)\lisp\same-dir.tst
!endif

#
# Maintenance
# 
clean:
	- $(DEL) *~ term\*~
	- $(DEL) *.orig *.rej *.crlf
	- $(DEL) emacs-lisp\*.orig emacs-lisp\*.rej emacs-lisp\*.crlf
	- $(DEL) emulation\*.orig emulation\*.rej emulation\*.crlf
	- $(DEL) gnus\*.orig gnus\*.rej gnus\*.crlf
	- $(DEL) international\*.orig international\*.rej international\*.crlf
	- $(DEL) language\*.orig language\*.rej language\*.crlf
	- $(DEL) mail\*.orig mail\*.rej mail\*.crlf
	- $(DEL) play\*.orig play\*.rej play\*.crlf
	- $(DEL) progmodes\*.orig progmodes\*.rej progmodes\*.crlf
	- $(DEL) term\*.orig term\*.rej term\*.crlf
	- $(DEL) textmodes\*.orig textmodes\*.rej textmodes\*.crlf
	- $(DEL_TREE) deleted