view nt/makefile.nt @ 50357:e5a09c97e444

Include blockinput.h. (Vx_resource_name, Vx_resource_class, Qx_frame_parameter) (Qx_resource_name, Qface_set_after_frame_default): Define vars here. (Qauto_raise, Qauto_lower, ...): Define all frame parameter related vars here. (struct frame_parm_table, frame_parms): New table for describing frame parameters and their associated Q-variable. The order of the parameters corresponds to the sequence of the frame_parm_handlers table in redisplay_interface. (x_fullscreen_move, x_set_frame_parameters) (x_report_frame_params, x_set_fullscreen, x_set_line_spacing) (x_set_screen_gamma, x_set_font, x_set_fringe_width) (x_set_border_width, x_set_internal_border_width, x_set_visibility) (x_set_autoraise, x_set_autolower, x_set_unsplittable) (x_set_vertical_scroll_bars, x_set_scroll_bar_width, x_icon_type): Generic functions for processing of frame parameters. (validate_x_resource_name, xrdb_get_resource, Fx_get_resource) (display_x_get_resource, x_get_resource_string): Functions for generic access to X resources. (x_get_arg, x_frame_get_arg, x_frame_get_and_record_arg) (x_default_parameter, Fx_parse_geometry): Functions for generic access to frame parameters. (x_figure_window_size): Generic calculation of frame size. Fixed to add space needed for tool bar. Also setup size_hint_flags. (syms_of_frame): Intern and staticpro frame parameter variables. Defvar_lisp Vx_resource_class and Vx_resource_name here. Defsubr Sx_get_resource and Sx_parse_geometry.
author Kim F. Storm <storm@cua.dk>
date Mon, 31 Mar 2003 20:33:58 +0000
parents 23a1cea22d13
children 695cf19ef79e
line wrap: on
line source

#
#  Top level makefile for building GNU Emacs on Windows NT
#  Copyright (c) 1993-2000 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.
#
#   Geoff Voelker (voelker@cs.washington.edu)	11-20-93
#						  9-6-94
!include makefile.def

ALL		= addpm ddeclient runemacs cmdproxy addsection preprep
!if $(MSVCNT11)
TRES		= $(BLD)\emacs.res
!else
TRES		= $(BLD)\emacs.rbj
!endif

addpm:		  $(BLD) $(BLD)\addpm.exe
$(BLD)\addpm.obj: addpm.c
$(BLD)\addpm.exe: $(BLD)\addpm.obj
		  $(LINK) -out:$@ -subsystem:console -entry:mainCRTStartup \
		  $(SYS_LDFLAGS) $** $(BASE_LIBS) $(ADVAPI32) user32.lib

ddeclient:	  $(BLD) $(BLD)\ddeclient.exe
$(BLD)\ddeclient.obj: ddeclient.c
$(BLD)\ddeclient.exe: $(BLD)\ddeclient.obj
		  $(LINK) -out:$@ -subsystem:console -entry:mainCRTStartup \
		  $(SYS_LDFLAGS) $** $(BASE_LIBS) $(ADVAPI32) user32.lib

cmdproxy:	  $(BLD) $(BLD)\cmdproxy.exe
$(BLD)\cmdproxy.obj: cmdproxy.c
$(BLD)\cmdproxy.exe: $(BLD)\cmdproxy.obj
		  $(LINK) -out:$@ -subsystem:console -entry:mainCRTStartup \
		  $(SYS_LDFLAGS) $** $(BASE_LIBS) user32.lib

addsection:	  $(BLD) $(BLD)\addsection.exe
$(BLD)\addsection.obj: addsection.c
$(BLD)\addsection.exe: $(BLD)\addsection.obj
		  $(LINK) -debug:full -out:$@ -subsystem:console -entry:mainCRTStartup \
		  $(SYS_LDFLAGS) $** $(BASE_LIBS) user32.lib

preprep:	  $(BLD) $(BLD)\preprep.exe
$(BLD)\preprep.obj: preprep.c
$(BLD)\preprep.exe: $(BLD)\preprep.obj
		  $(LINK) -debug:full -out:$@ -subsystem:console -entry:mainCRTStartup \
		  $(SYS_LDFLAGS) $** $(BASE_LIBS)

#
# The resource file.  NT 3.10 requires the use of cvtres; even though
# it is not necessary on later versions, it is still ok to use it.
#
$(TRES):	emacs.rc
		$(RC) -Fo$(BLD)\emacs.res $**
!if !$(MSVCNT11)
		$(CVTRES) -r -$(ARCH) -o $@ $(BLD)\emacs.res
!endif

runemacs:	  $(BLD) $(BLD)\runemacs.exe
$(BLD)\runemacs.obj: runemacs.c
$(BLD)\runemacs.exe: $(BLD)\runemacs.obj $(TRES)
		  $(LINK) -out:$@ -subsystem:windows -entry:WinMainCRTStartup \
		  $(SYS_LDFLAGS) $** $(BASE_LIBS) $(ADVAPI32) user32.lib

# Since Windows 95 does not support multiple commands on one command line
# (e.g., in for loops), we cannot use for loops any more.
# SUBDIRS	      = lib-src src lisp

#
# Build emacs
#
BUILD_CMD	= $(MAKE) $(MFLAGS) -f makefile.nt all
all:		$(BLD) $(ALL)
		cd ..\lib-src
		$(BUILD_CMD)
		cd ..\src
		$(BUILD_CMD)
		cd ..\lisp
		$(BUILD_CMD)
		cd ..\leim
		if exist makefile.nt $(BUILD_CMD)
		cd ..\nt

BOOTSTRAP_CMD	= $(MAKE) $(MFLAGS) -f makefile.nt bootstrap
bootstrap:	$(BLD) $(ALL)
		cd ..\src
		$(BOOTSTRAP_CMD)
		$(BOOTCLEAN_CMD)
		cd ..\lisp
		$(BOOTSTRAP_CMD)
		cd ..\nt

BOOTCLEAN_CMD	= $(MAKE) $(MFLAGS) -f makefile.nt bootstrap-clean
bootstrap-clean:
		cd ..\src
		$(BOOTCLEAN_CMD)
		cd ..\lisp
		$(BOOTCLEAN_CMD)

$(INSTALL_DIR):
		- mkdir $(INSTALL_DIR)

$(INSTALL_DIR)\bin:
		- mkdir $(INSTALL_DIR)\bin

#
# Build and install emacs in INSTALL_DIR
#
INSTALL_CMD	= $(MAKE) -f makefile.nt install
install:	all $(INSTALL_DIR)
		cd ..\lib-src
		$(INSTALL_CMD)
		cd ..\src
		$(INSTALL_CMD)
		cd ..\lisp
		$(INSTALL_CMD)
		cd ..\leim
		if exist makefile.nt $(INSTALL_CMD)
		cd ..\nt
		- $(CP) $(BLD)\addpm.exe $(INSTALL_DIR)\bin
		- $(CP) $(BLD)\ddeclient.exe $(INSTALL_DIR)\bin
		- $(CP) $(BLD)\cmdproxy.exe $(INSTALL_DIR)\bin
		- $(CP) $(BLD)\runemacs.exe $(INSTALL_DIR)\bin
		- $(CP) ..\lib-src\fns-*.el $(INSTALL_DIR)\bin
		- $(ADDPM) $(INSTALL_DIR)
		- $(DEL) ..\same-dir.tst
		- $(DEL) $(INSTALL_DIR)\same-dir.tst
		- mkdir $(INSTALL_DIR)\etc\icons
		- $(CP_DIR) icons $(INSTALL_DIR)\etc\icons
		echo SameDirTest > $(INSTALL_DIR)\same-dir.tst
		if not exist ..\same-dir.tst $(MAKE) -f makefile.nt real_install
		- $(DEL) ..\same-dir.tst
		- $(DEL) $(INSTALL_DIR)\same-dir.tst

#
# This installs executables from ..\bin into the installation directory
# without building anything.
#
fast_install:
		- mkdir $(INSTALL_DIR)\data
		$(CP) ..\lib-src\DOC $(INSTALL_DIR)\etc
		- mkdir $(INSTALL_DIR)\bin
		- $(CP) $(BLD)\addpm.exe $(INSTALL_DIR)\bin
		- $(CP) $(BLD)\ddeclient.exe $(INSTALL_DIR)\bin
		- $(CP) $(BLD)\cmdproxy.exe $(INSTALL_DIR)\bin
		- $(CP) $(BLD)\runemacs.exe $(INSTALL_DIR)\bin
		- $(CP) ..\lib-src\fns-*.el $(INSTALL_DIR)\bin
		- $(DEL) ..\same-dir.tst
		- $(DEL) $(INSTALL_DIR)\same-dir.tst
		echo SameDirTest > $(INSTALL_DIR)\same-dir.tst
		if not exist ..\same-dir.tst $(CP) ..\bin\emacs.exe $(INSTALL_DIR)\bin
		if not exist ..\same-dir.tst $(CP) ..\bin\etags.exe $(INSTALL_DIR)\bin
		if not exist ..\same-dir.tst $(CP) ..\bin\ctags.exe $(INSTALL_DIR)\bin
		if not exist ..\same-dir.tst $(MAKE) -f makefile.nt real_install
		- $(DEL) ..\same-dir.tst
		- $(DEL) $(INSTALL_DIR)\same-dir.tst

real_install:
		- $(DEL) ..\same-dir.tst
		- $(DEL) $(INSTALL_DIR)\same-dir.tst
		echo SameDirTest > $(INSTALL_DIR)\same-dir.tst
		- mkdir $(INSTALL_DIR)\etc
		- mkdir $(INSTALL_DIR)\info
		- mkdir $(INSTALL_DIR)\lock
		- mkdir $(INSTALL_DIR)\data
		- mkdir $(INSTALL_DIR)\site-lisp
		- mkdir $(INSTALL_DIR)\etc\icons
		- $(CP_DIR) icons $(INSTALL_DIR)\etc\icons
		if not exist ..\same-dir.tst $(CP_DIR) ..\etc $(INSTALL_DIR)\etc
		if not exist ..\same-dir.tst $(CP_DIR) ..\info $(INSTALL_DIR)\info
		- $(DEL) ..\same-dir.tst
		- $(DEL) $(INSTALL_DIR)\same-dir.tst

#
# Maintenance
#
CLEAN_CMD	= $(MAKE) -f makefile.nt clean
clean:
		- $(DEL) *~ *.pdb
		- $(DEL) *.orig
		- $(DEL) *.rej
		- $(DEL) *.crlf
		- $(DEL_TREE) deleted
		- $(DEL_TREE) obj
		- $(DEL_TREE) obj-spd
		- $(DEL) ..\etc\DOC ..\etc\DOC-X
		cd ..\lib-src
		$(CLEAN_CMD)
		cd ..\src
		$(CLEAN_CMD)
		cd ..\lisp
		$(CLEAN_CMD)
		cd ..\leim
		if exist makefile.nt $(CLEAN_CMD)
		cd ..\nt

realclean: clean
		- $(DEL_TREE) ..\bin