view nt/config.inc.samp @ 5043:d0c14ea98592

various frame-geometry fixes -------------------- ChangeLog entries follow: -------------------- src/ChangeLog addition: 2010-02-15 Ben Wing <ben@xemacs.org> * EmacsFrame.c: * EmacsFrame.c (EmacsFrameResize): * console-msw-impl.h: * console-msw-impl.h (struct mswindows_frame): * console-msw-impl.h (FRAME_MSWINDOWS_TARGET_RECT): * device-tty.c: * device-tty.c (tty_asynch_device_change): * event-msw.c: * event-msw.c (mswindows_wnd_proc): * faces.c (Fface_list): * faces.h: * frame-gtk.c: * frame-gtk.c (gtk_set_initial_frame_size): * frame-gtk.c (gtk_set_frame_size): * frame-msw.c: * frame-msw.c (mswindows_init_frame_1): * frame-msw.c (mswindows_set_frame_size): * frame-msw.c (mswindows_size_frame_internal): * frame-msw.c (msprinter_init_frame_3): * frame.c: * frame.c (enum): * frame.c (Fmake_frame): * frame.c (adjust_frame_size): * frame.c (store_minibuf_frame_prop): * frame.c (Fframe_property): * frame.c (Fframe_properties): * frame.c (Fframe_displayable_pixel_height): * frame.c (Fframe_displayable_pixel_width): * frame.c (internal_set_frame_size): * frame.c (Fset_frame_height): * frame.c (Fset_frame_pixel_height): * frame.c (Fset_frame_displayable_pixel_height): * frame.c (Fset_frame_width): * frame.c (Fset_frame_pixel_width): * frame.c (Fset_frame_displayable_pixel_width): * frame.c (Fset_frame_size): * frame.c (Fset_frame_pixel_size): * frame.c (Fset_frame_displayable_pixel_size): * frame.c (frame_conversion_internal_1): * frame.c (get_frame_displayable_pixel_size): * frame.c (change_frame_size_1): * frame.c (change_frame_size): * frame.c (generate_title_string): * frame.h: * gtk-xemacs.c: * gtk-xemacs.c (gtk_xemacs_size_request): * gtk-xemacs.c (gtk_xemacs_size_allocate): * gtk-xemacs.c (gtk_xemacs_paint): * gutter.c: * gutter.c (update_gutter_geometry): * redisplay.c (end_hold_frame_size_changes): * redisplay.c (redisplay_frame): * toolbar.c: * toolbar.c (update_frame_toolbars_geometry): * window.c: * window.c (frame_pixsize_valid_p): * window.c (check_frame_size): Various fixes to frame geometry to make it a bit easier to understand and fix some bugs. 1. IMPORTANT: Some renamings. Will need to be applied carefully to the carbon repository, in the following order: -- pixel_to_char_size -> pixel_to_frame_unit_size -- char_to_pixel_size -> frame_unit_to_pixel_size -- pixel_to_real_char_size -> pixel_to_char_size -- char_to_real_pixel_size -> char_to_pixel_size -- Reverse second and third arguments of change_frame_size() and change_frame_size_1() to try to make functions consistent in putting width before height. -- Eliminate old round_size_to_char, because it didn't really do anything differently from round_size_to_real_char() -- round_size_to_real_char -> round_size_to_char; any places that called the old round_size_to_char should just call the new one. 2. IMPORTANT FOR CARBON: The set_frame_size() method is now passed sizes in "frame units", like all other frame-sizing functions, rather than some hacked-up combination of char-cell units and total pixel size. This only affects window systems that use "pixelated geometry", and I'm not sure if Carbon is one of them. MS Windows is pixelated, X and GTK are not. For pixelated-geometry systems, the size in set_frame_size() is in displayable pixels rather than total pixels and needs to be converted appropriately; take a look at the changes made to mswindows_set_frame_size() method if necessary. 3. Add a big long comment in frame.c describing how frame geometry works. 4. Remove MS Windows-specific character height and width fields, duplicative and unused. 5. frame-displayable-pixel-* and set-frame-displayable-pixel-* didn't use to work on MS Windows, but they do now. 6. In general, clean up the handling of "pixelated geometry" so that fewer functions have to worry about this. This is really an abomination that should be removed entirely but that will have to happen later. Fix some buggy code in frame_conversion_internal() that happened to "work" because it was countered by oppositely buggy code in change_frame_size(). 7. Clean up some frame-size code in toolbar.c and use functions already provided in frame.c instead of rolling its own. 8. Fix check_frame_size() in window.c, which formerly didn't take pixelated geometry into account.
author Ben Wing <ben@xemacs.org>
date Mon, 15 Feb 2010 22:14:11 -0600
parents 1cecc3e9f0a0
children 8bda66cd0414
line wrap: on
line source

# -*- mode: makefile -*-

############################################################################
#                            Install options                               #
############################################################################

INSTALL_DIR=c:\Program Files\XEmacs\XEmacs-$(XEMACS_VERSION_STRING)

# PACKAGE_PREFIX is root of the installed package hierarchies.
# This corresponds to the configure option --with-late-packages.
# See 'Package Hierarchies' in the info for more documentation.
# If you don't set this, XEmacs will attempt to find the packages at runtime.
#PACKAGE_PREFIX=c:\Program Files\XEmacs

############################################################################
#                      Compiled-in features: basic                         #
############################################################################

# Multilingual support.
MULE=0

# Native MS Windows support.
HAVE_MS_WINDOWS=1

# GTK support.  Do NOT set this to 1; this does not currently work.
HAVE_GTK=0
GTK_DIR=

############################################################################
#                  Compiled-in features: graphics formats                  #
############################################################################

# Directory under which the optional libraries are placed.  To make your
# life easy, just grab http://www.xemacs.org/Download/win32/optional-libs.exe
# (a self-installing .ZIP) and unzip them into an appropriate directory
# (by default, c:\src).  This gets you precompiled versions of all of
# the libraries below.
OPTIONAL_LIBRARY_DIR=c:\src

# Set this to enable XPM support (virtually mandatory), and specify
# the directory containing xpm.  Get the library from
# http://ftp.xemacs.org/pub/xemacs/aux/xpm-3.4k.tar.gz, or the latest
# version (note that the library hasn't been updated in years) from
# http://www.inria.fr/koala/lehors/xpm.html.
HAVE_XPM=1
XPM_DIR=$(OPTIONAL_LIBRARY_DIR)\xpm-3.4k

# Set this to enable GIF support, and specify the directory containing giflib.
# Get the latest version from http://sourceforge.net/projects/giflib/.
HAVE_GIF=1
GIF_DIR=$(OPTIONAL_LIBRARY_DIR)\giflib-4.1.6

# Set this to enable PNG support (virtually mandatory), and specify the
# directories containing png and zlib.  Get the latest version of PNG from
# http://www.libpng.org/pub/png/libpng.html.  Get the latest version of ZLIB
# from http://www.gzip.org/zlib/.  NOTE: In order to compile libpng, you will
# have to rename the zlib directory to just `zlib'.  We don't do that here
# so we can preserve the version number, like for the other libraries.
HAVE_PNG=1
PNG_DIR=$(OPTIONAL_LIBRARY_DIR)\libpng-1.2.8
ZLIB_DIR=$(OPTIONAL_LIBRARY_DIR)\zlib-1.2.3

# Set this to enable JPEG support (useful, but not necessary), and specify
# the directory containing jpeg.  Get the latest version from
# http://www.ijg.org/ or ftp://ftp.uu.net/graphics/jpeg/.
HAVE_JPEG=1
JPEG_DIR=$(OPTIONAL_LIBRARY_DIR)\jpeg-6b

# Set this to enable TIFF support (not very important), and specify the
# directory containing tiff.  Get the latest version from
# http://www.remotesensing.org/libtiff/.
HAVE_TIFF=1
TIFF_DIR=$(OPTIONAL_LIBRARY_DIR)\tiff-3.7.3

# Set this to enable XFace support (not very important), and specify the
# directory containing compface.  Get the library from
# http://ftp.xemacs.org/aux/compface-1.5.1.tar.gz.
HAVE_XFACE=1
COMPFACE_DIR=$(OPTIONAL_LIBRARY_DIR)\compface-1.5.1

# Set this to enable bignum support (useful, but not necessary), and specify
# the directory containing GNU MP.  Get the latest version from
# http://www.swox.com/gmp/.
HAVE_BIGNUM=0
BIGNUM_DIR=$(OPTIONAL_LIBRARY_DIR)\gmp-4.1.4

# Set this to enable Berkeley DB support (not very important), and specify
# the directory containing Sleepcat DB.  Get the latest version from
# http://www.sleepycat.com/products/db.shtml.  If you want to use the
# shared-library (DLL) version instead of the static library, set
# BUILD_DATABASE_SHARED to 1.
HAVE_DATABASE=0
BUILD_DATABASE_SHARED=0
DATABASE_DIR=$(OPTIONAL_LIBRARY_DIR)\db-4.3.28

# Set this to enable PostgreSQL support (not very important), and specify
# the directory containing PostgreSQL.  Get the latest version from
# http://www.postgresql.org/.
HAVE_POSTGRESQL=0
POSTGRESQL_DIR=$(OPTIONAL_LIBRARY_DIR)\postgresql-8.0.3

# Set this to enable LDAP support (not very important), and specify
# the directory containing LDAP.  It is not easy to build OpenLDAP under
# native MS Windows, as it is only experimentally supported.  However, there
# is a mailing list for this, which contains postings of recent binaries and
# build patches; see
#
# http://lucas.bergmans.us/hacks/openldap/
#
# Get the latest version of OpenLDAP from http://www.openldap.org/.
HAVE_LDAP=0
LDAP_DIR=$(OPTIONAL_LIBRARY_DIR)\openldap-2.3.4

############################################################################
#                            Build settings                                #
############################################################################

# If you want to the built files to be placed outside of the source tree
# (e.g. this allows you to build multiple versions of XEmacs, with
# different configuration settings, from the same source tree), run
# `make-build-dir' to create a skeleton build tree, giving it the name of a
# path.  This creates the specified directory and the `nt' directory below
# it, copies config.inc (if it exists), config.inc.samp and xemacs.mak into
# the `nt' directory, and modifies the config files to contain the path of
# the source tree in SOURCE_DIR.  This will not overwrite files that
# already exist, so it can safely be run more than once on the same tree.
#
# Running nmake in the skeleton build tree will then build XEmacs in that
# directory tree, using the source files as specified.  The paths of the
# `lisp' and `etc' directories in the source tree will be compiled into the
# executable as "last-resort" values -- i.e. they will be used if you
# simply run the executable as-is, but will not override any local copy of
# the `lisp' and/or `etc' directories that you may have made.
#
# Alternatively, you can just uncomment the line below for BUILD_DIR and
# specify a (possibly non-existent) path.  Running nmake will then put its
# build files into a parallel directory structure underneath the specified
# path, creating the directories as necessary.  The problem with this is
# that the first method above allows you to have a different copy of
# `config.inc' for each build directory, but doing it this way means you
# have only one version of config.inc, and have to manually change it for
# each different build.

# NOTE: These cannot be relative paths.  If you want the source and build to
# be relatives of each other, use $(MAKEROOT) to refer to the root of the
# current tree -- that's one level up from where xemacs.mak is located.

# SOURCE_DIR=c:\src\xemacs\working

# BUILD_DIR=c:\src\xemacs\msbuilds\working

# Set this to specify the location of makeinfo. (If not set, XEmacs will
# attempt to use its built-in, much slower texinfo support when building
# info files.) If you are building XEmacs yourself, you probably have
# Cygwin sitting around already.  If not, you should.  Cygwin provides a
# `makeinfo.exe' in /usr/bin/makeinfo (/usr/bin is virtual, it's /bin in
# the actual file system).
MAKEINFO=c:\cygwin\bin\makeinfo.exe

# Set this to enable debug code in XEmacs that doesn't slow things down,
# and to add debugging information to the executable. (The code that's
# enabled in XEmacs is primarily extra commands that aid in debugging
# problems.  The kind of debugging code that slows things down --
# i.e. internal error-checking -- is controlled by the ERROR_CHECK_ALL
# variable, below.)
DEBUG_XEMACS=1

# Set this to turn on optimization when compiling.  Normally this should
# be the opposite of DEBUG_XEMACS.
!if $(DEBUG_XEMACS)
OPTIMIZED_BUILD=0
!else
OPTIMIZED_BUILD=1
!endif

# Set this to build with the fastcall calling convention, which uses registers
# instead of the stack and should speed things up a bit
# #### Change to 1 when I check in the ws with support for fastcall
USE_FASTCALL=0

# Set this in order to avoid building against MSVCRTD.dll, since we can't
# ship that DLL and since it requires VC installed on the target computer
BUILD_FOR_SETUP_KIT=0

############################################################################
#                          Development options                             #
############################################################################

# Set this to compile in support for profiling.  If you want line-by-line
# profiling under VC++, you also need debugging turned on.
PROFILE_SUPPORT=0

# Set this to enable support for edit-and-continue under VC++.
# WARNING: This turns on incremental linking, which is known to lead to
# occasional weird crashes in pdump loading.  If that happens, do a
# nmake -f xemacs.mak clean so that temacs.exe and xemacs.exe get removed.
SUPPORT_EDIT_AND_CONTINUE=0

# Uncomment this to turn off or on the error-checking code, which adds
# abundant internal error checking (and slows things down a lot).  Normally,
# leave this alone -- it will be on for beta builds and off for release
# builds.
# ERROR_CHECK_ALL=0

# Uncomment this to turn on or off whether we compile source files as C++
# files.  This turns on additional error checking of various sorts.  Normally,
# leave it alone -- it will be on when ERROR_CHECK_ALL is on.
# CPLUSPLUS_COMPILE=0

# Set this to speed up building, for development purposes.
# WARNING: This may not completely rebuild all targets.  In particular,
# DOC is not rebuilt, and changes to lisp.h and config.h do not trigger
# mass rebuilding.  Other things may also be enabled that are not safe
# for release builds.
QUICK_BUILD=0

# Set this to see exactly which compilation commands are being run (not
# generally recommended).
VERBOSECC=0

# Set this to get nmake to use dependency info (recommended for development).
# Requires cygwin or ActiveState versions of Perl to be installed.
DEPEND=0

# Set this to use the portable dumper for dumping the preloaded Lisp
# routines, instead of the older "unexec" routines in unexnt.c.
USE_PORTABLE_DUMPER=1

# Set this to use the new experimental garbage-collection routines instead
# of the traditional XEmacs garbage-collection routines.
USE_KKCC=1

# Set this to use the new experimental incremental garbage collector
# and the new allocator routines
NEW_GC=0

# Set this to turn on the use of the union type, which gets you improved
# type checking of Lisp_Objects -- they're declared as unions instead of
# ints, and so places where a Lisp_Object is mistakenly passed to a routine
# expecting an int (or vice-versa), or a check is written `if (foo)'
# instead of `if (!NILP (foo))', will be flagged as errors. (All of these
# do NOT lead to the expected results!  Qnil is not represented as 0 [so if
# (foo) will *ALWAYS* be true for a Lisp_Object], and the representation of
# an integer as a Lisp_Object is not just the integer's numeric value, but
# usually 2x the integer +/- 1.)

# There used to be a claim that it simplified debugging.  There may have
# been a grain of truth to this pre-19.8, when there was no lrecord type
# and all objects had a separate type appearing in the tag.  Nowadays,
# however, there is no debugging gain, and in fact frequent debugging *LOSS*,
# since many debuggers don't handle unions very well, and usually there is
# no way to directly specify a union from a debugging prompt.

# Furthermore, release builds should *NOT* be done this way because (a) you
# may get less efficiency, with compilers that can't figure out how to
# optimize the union into a machine word; (b) even worse, the union type
# often triggers compiler bugs, especially when combined with Mule and
# error-checking.  This has been the case with various times using GCC,
# *AND CURRENTLY HAPPENS WITH VC++*, at least when using pdump.  Therefore,
# be warned!
USE_UNION_TYPE=0

# Set this to build XEmacs with the Intel C Compiler.
USE_INTEL_COMPILER=0