view lisp/makefile.nt @ 51195:3cbf29813eea

(struct frame): Rename members height to text_lines, width to text_cols, window_height to total_lines, window_width to total_cols, new_height to new_text_lines, new_width to new_text_cols. All uses changed. (struct frame): New members which consolidate common members of x_output, w32_output, and mac_output structures: left_pos, top_pos, pixel_height, pixel_width, x_pixels_diff, y_pixels_diff, win_gravity, size_hint_flags, border_width, internal_border_width, line_height, fringe_cols, left_fringe_width, right_fringe_width, want_fullscreen. All uses changed. (struct frame): New member column_width contaning the canonical column width, analogue to line_height. All uses changed. (struct frame): Rename members scroll_bar_pixel_width to config_scroll_bar_width, and scroll_bar_cols to config_scroll_bar_cols. All uses changed. (struct frame): New member scroll_bar_actual_width which consolidates and renames the vertical_scroll_bar_extra member of x_output, w32_output, and mac_output structures. All uses changed. (FRAME_PIXEL_HEIGHT): Renamed from PIXEL_HEIGHT and moved from x/w32/macterm.h files. All uses changed. Also change code which referred to f->output_data...->pixel_height. (FRAME_PIXEL_WIDTH): Renamed from PIXEL_WIDTH and moved from x/w32/macterm.h files. All uses changed. Also change code which referred to f->output_data...->pixel_width. (FRAME_LINES): Renamed from FRAME_HEIGHT. All uses changed. Also change code which referred to f->height. (FRAME_COLS): Renamed from FRAME_WIDTH. All uses changed. Also change code which referred to f->width. (FRAME_NEW_HEIGHT, FRAME_NEW_WIDTH): Remove macros; change uses to update new_text_lines and new_text_cols members directly. (FRAME_CONFIG_SCROLL_BAR_WIDTH): Renamed from FRAME_SCROLL_BAR_PIXEL_WIDTH. All uses changed. (FRAME_CONFIG_SCROLL_BAR_COLS): Renamed from FRAME_SCROLL_BAR_COLS. All uses changed. (FRAME_LEFT_SCROLL_BAR_COLS, FRAME_RIGHT_SCROLL_BAR_COLS): Renamed from FRAME_LEFT_SCROLL_BAR_WIDTH and FRAME_RIGHT_SCROLL_BAR_WIDTH, resp. All uses changed. (FRAME_SCROLL_BAR_AREA_WIDTH, FRAME_LEFT_SCROLL_BAR_AREA_WIDTH) (FRAME_RIGHT_SCROLL_BAR_AREA_WIDTH): New macros. (FRAME_TOTAL_COLS): Renamed from FRAME_WINDOW_WIDTH. (SET_FRAME_COLS): Renamed from SET_FRAME_WIDTH. (FRAME_TOTAL_COLS_ARG): Renamed from FRAME_WINDOW_WIDTH_ARG. (WINDOW_VERTICAL_SCROLL_BAR_COLUMN): Remove unused macro. (WINDOW_VERTICAL_SCROLL_BAR_HEIGHT): Remove unused macro. (FRAME_LINE_HEIGHT): Renamed from CANON_Y_UNIT. Unconditionally return line_height member (it now has proper value also for non-window frames). (FRAME_COLUMN_WIDTH): Renamed from CANON_X_UNIT. Unconditionally return new column_width member (rather than the default font width). (FRAME_FRINGE_COLS, FRAME_LEFT_FRINGE_WIDTH) (FRAME_RIGHT_FRINGE_WIDTH): Renamed from FRAME_X_... and moved from x/w32/macterm.h files. Unconditionally return corresponding member of frame structure (they now have proper values also for non-window frames). (FRAME_TOTAL_FRINGE_WIDTH): Renamed from FRAME_FRINGE_WIDTH. Calculate return value from left and right widths. (FRAME_INTERNAL_BORDER_WIDTH): Unconditionally return internal_border_width member (has proper value for non-window frame). (FRAME_PIXEL_X_FROM_CANON_X): Renamed from PIXEL_X_FROM_CANON_X. (FRAME_PIXEL_Y_FROM_CANON_Y): Renamed from PIXEL_Y_FROM_CANON_Y. (FRAME_CANON_X_FROM_PIXEL_X): Renamed from CANON_X_FROM_PIXEL_X. (FRAME_CANON_Y_FROM_PIXEL_Y): Renamed from CANON_Y_FROM_PIXEL_Y. (FRAME_LINE_TO_PIXEL_Y): Renamed from CHAR_TO_PIXEL_ROW, consolidated from xterm.h, macterm.h, and w32term.h. (FRAME_COL_TO_PIXEL_X): Renamed from CHAR_TO_PIXEL_COL, consolidated from xterm.h, macterm.h, and w32term.h. (FRAME_TEXT_COLS_TO_PIXEL_WIDTH): Renamed from CHAR_TO_PIXEL_WIDTH consolidated from x/mac/w32term.h. (FRAME_TEXT_LINES_TO_PIXEL_HEIGHT): Renamed from CHAR_TO_PIXEL_HEIGHT consolidated from x/mac/w32term.h. (FRAME_PIXEL_Y_TO_LINE): Renamed from PIXEL_TO_CHAR_ROW consolidated from x/mac/w32term.h. (FRAME_PIXEL_X_TO_COL): Renamed from PIXEL_TO_CHAR_COL consolidated from x/mac/w32term.h. (FRAME_PIXEL_WIDTH_TO_TEXT_COLS): Renamed from PIXEL_TO_CHAR_WIDTH consolidated from x/mac/w32term.h. (FRAME_PIXEL_HEIGHT_TO_TEXT_LINES): Renamed from PIXEL_TO_CHAR_HEIGHT consolidated from x/mac/w32term.h.
author Kim F. Storm <storm@cua.dk>
date Sat, 24 May 2003 21:58:07 +0000
parents e88404e8f2cf
children 695cf19ef79e
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)/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)/patcomp.el \
	$(lisp)/paths.el \
	$(lisp)/play/bruce.el \
	$(lisp)/subdirs.el \
	$(lisp)/term/internal.el \
	$(lisp)/term/AT386.el  \
	$(lisp)/term/apollo.el \
	$(lisp)/term/bobcat.el \
	$(lisp)/term/iris-ansi.el \
	$(lisp)/term/keyswap.el \
	$(lisp)/term/linux.el \
	$(lisp)/term/lk201.el \
	$(lisp)/term/news.el \
	$(lisp)/term/vt102.el \
	$(lisp)/term/vt125.el \
	$(lisp)/term/vt200.el \
	$(lisp)/term/vt201.el \
	$(lisp)/term/vt220.el \
	$(lisp)/term/vt240.el \
	$(lisp)/term/vt300.el \
	$(lisp)/term/vt320.el \
	$(lisp)/term/vt400.el \
	$(lisp)/term/vt420.el \
	$(lisp)/term/wyse50.el \
	$(lisp)/term/xterm.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 \
	mh-e \
	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) cus-start.el $(INSTALL_DIR)\lisp
	if not exist .\same-dir.tst $(CP) emacs-lisp\cl-specs.el $(INSTALL_DIR)\lisp\emacs-lisp
	if not exist .\same-dir.tst $(CP) eshell\esh-maint.el $(INSTALL_DIR)\lisp\eshell
	if not exist .\same-dir.tst $(CP) eshell\esh-groups.el $(INSTALL_DIR)\lisp\eshell
	if not exist .\same-dir.tst $(CP) finder-inf.el $(INSTALL_DIR)\lisp
	if not exist .\same-dir.tst $(CP) forms*.el $(INSTALL_DIR)\lisp
	if not exist .\same-dir.tst $(CP) generic-x.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) 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