Update to xf86-video-vmware 11.0.3

This commit is contained in:
matthieu 2011-05-07 08:46:13 +00:00
parent 9c27e33916
commit a50e5961de
30 changed files with 2067 additions and 228 deletions

View File

@ -1,3 +1,129 @@
commit 30ac6eaf64aa4831025555b72b65843686a35094
Author: Jesse Adkins <jesserayadkins@gmail.com>
Date: Tue Sep 28 13:29:52 2010 -0700
Purge cvs tags.
Signed-off-by: Jesse Adkins <jesserayadkins@gmail.com>
Signed-off-by: Alan Coopersmith <alan.coopersmith@oracle.com>
commit 083a663bbb186bfb854eda3b9f33d7fc24252ec5
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date: Thu Sep 16 10:08:12 2010 +0200
Make the modinfo string contain an optional subpatch number
The idea is that the build system assigns this number if needed.
As an example it might be the commit number since the last version tag.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
commit 5a2206c328caaed95daf91aff9220d3a51b492bd
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date: Thu Sep 16 09:58:07 2010 +0200
Make sure we build on 1.4.99.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
commit da0f931b90833c7f706ace24b0c9dff2672f1e97
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date: Wed Sep 8 09:57:35 2010 +0200
vmwlegacy: Fix a segfault in vmwareCursorCloseScreen.
The segfault occured because the named function was using resources that
were already taken down, because VMWARECloseScreen was called very late
in the CloseScreen callchain.
Make sure we wrap the CloseScreen pointers late in ScreenInit to avoid this.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
commit 03dca39afa06da04472d56ec4888f010186c6a13
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date: Tue Sep 7 21:55:28 2010 +0200
vmwlegacy: A number of Xv fixes
Properly init and uninit the port private clipboxes on setup and end.
Clear the port private clipboxes on video stop, to force re-painting
of the colorkey when the stream is resumed.
Make sure the colorkey is painted *before* the overlay is flushed. Some
host implementations seem picky about this.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
commit dfb062e024dfd20789ee8d43c7f94640faa5ea9f
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date: Tue Sep 7 12:17:46 2010 +0200
vmware/vmwlegacy: Silence compilation errors and -warnings.
Silence warnings and errors on various server versions due to incorrect
usage of libc functions.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
commit 12e4577c020c6905d09459d833fd1c5313f1647b
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date: Fri Sep 3 11:19:01 2010 +0200
vmwlegacy: Always scale screen dimensions to the initial DPI on modeswitch.
When we switch mode we usually alter the size in a constant DPI environment
rather than keeping the size constant and alter the DPI.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
commit 81a0a1a37e703296d109022bb76a1291e84064fd
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date: Wed Sep 1 07:58:18 2010 +0200
vmware: Handle chain-loader failures gracefully.
If the vmwlegacy driver wasn't present when expected, that would
leave the X server in a confused state. Thus report loading errors properly
back to the X server.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
commit 2a72ea7a1b1519451350e0741d145f513124a208
Author: Gaetan Nadon <memsize@videotron.ca>
Date: Wed Aug 18 10:57:02 2010 -0400
vmwarectrl: rework standalone package as a subdir of driver
vmwarectrl is a unit test client tool for developers.
By default, it is not built unless --enable-vmwarectrl-client is used.
Acked-by: Thomas Hellstrom <thellstrom@vmware.com>
Signed-off-by: Gaetan Nadon <memsize@videotron.ca>
commit f51ca2cb756dcd541a27f0326496f0aadab3f214
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date: Wed Aug 18 11:34:49 2010 +0200
Make the driver build and run without libdrm.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
commit 2e6eca3e7bb19ea69db2cc367c9704c7d657db79
Author: Thomas Hellstrom <thellstrom@vmware.com>
Date: Thu Aug 12 17:43:59 2010 +0200
Only set the first xinerama output as primary.
Signed-off-by: Thomas Hellstrom <thellstrom@vmware.com>
commit 456b74e8778ab0c44e8a70aa45f447ff5c562be3
Author: Adam Jackson <ajax@redhat.com>
Date: Tue Aug 10 11:02:05 2010 -0400
xf86-video-vmware 11.0.2
Signed-off-by: Adam Jackson <ajax@redhat.com>
commit c29d24b2ca598011b84387006f03a9360910707f commit c29d24b2ca598011b84387006f03a9360910707f
Author: Gaetan Nadon <memsize@videotron.ca> Author: Gaetan Nadon <memsize@videotron.ca>
Date: Fri Jul 23 21:02:33 2010 -0400 Date: Fri Jul 23 21:02:33 2010 -0400

View File

@ -0,0 +1,291 @@
Installation Instructions
*************************
Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005,
2006, 2007, 2008 Free Software Foundation, Inc.
This file is free documentation; the Free Software Foundation gives
unlimited permission to copy, distribute and modify it.
Basic Installation
==================
Briefly, the shell commands `./configure; make; make install' should
configure, build, and install this package. The following
more-detailed instructions are generic; see the `README' file for
instructions specific to this package.
The `configure' shell script attempts to guess correct values for
various system-dependent variables used during compilation. It uses
those values to create a `Makefile' in each directory of the package.
It may also create one or more `.h' files containing system-dependent
definitions. Finally, it creates a shell script `config.status' that
you can run in the future to recreate the current configuration, and a
file `config.log' containing compiler output (useful mainly for
debugging `configure').
It can also use an optional file (typically called `config.cache'
and enabled with `--cache-file=config.cache' or simply `-C') that saves
the results of its tests to speed up reconfiguring. Caching is
disabled by default to prevent problems with accidental use of stale
cache files.
If you need to do unusual things to compile the package, please try
to figure out how `configure' could check whether to do them, and mail
diffs or instructions to the address given in the `README' so they can
be considered for the next release. If you are using the cache, and at
some point `config.cache' contains results you don't want to keep, you
may remove or edit it.
The file `configure.ac' (or `configure.in') is used to create
`configure' by a program called `autoconf'. You need `configure.ac' if
you want to change it or regenerate `configure' using a newer version
of `autoconf'.
The simplest way to compile this package is:
1. `cd' to the directory containing the package's source code and type
`./configure' to configure the package for your system.
Running `configure' might take a while. While running, it prints
some messages telling which features it is checking for.
2. Type `make' to compile the package.
3. Optionally, type `make check' to run any self-tests that come with
the package.
4. Type `make install' to install the programs and any data files and
documentation.
5. You can remove the program binaries and object files from the
source code directory by typing `make clean'. To also remove the
files that `configure' created (so you can compile the package for
a different kind of computer), type `make distclean'. There is
also a `make maintainer-clean' target, but that is intended mainly
for the package's developers. If you use it, you may have to get
all sorts of other programs in order to regenerate files that came
with the distribution.
6. Often, you can also type `make uninstall' to remove the installed
files again.
Compilers and Options
=====================
Some systems require unusual options for compilation or linking that
the `configure' script does not know about. Run `./configure --help'
for details on some of the pertinent environment variables.
You can give `configure' initial values for configuration parameters
by setting variables in the command line or in the environment. Here
is an example:
./configure CC=c99 CFLAGS=-g LIBS=-lposix
*Note Defining Variables::, for more details.
Compiling For Multiple Architectures
====================================
You can compile the package for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory. To do this, you can use GNU `make'. `cd' to the
directory where you want the object files and executables to go and run
the `configure' script. `configure' automatically checks for the
source code in the directory that `configure' is in and in `..'.
With a non-GNU `make', it is safer to compile the package for one
architecture at a time in the source code directory. After you have
installed the package for one architecture, use `make distclean' before
reconfiguring for another architecture.
On MacOS X 10.5 and later systems, you can create libraries and
executables that work on multiple system types--known as "fat" or
"universal" binaries--by specifying multiple `-arch' options to the
compiler but only a single `-arch' option to the preprocessor. Like
this:
./configure CC="gcc -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CXX="g++ -arch i386 -arch x86_64 -arch ppc -arch ppc64" \
CPP="gcc -E" CXXCPP="g++ -E"
This is not guaranteed to produce working output in all cases, you
may have to build one architecture at a time and combine the results
using the `lipo' tool if you have problems.
Installation Names
==================
By default, `make install' installs the package's commands under
`/usr/local/bin', include files under `/usr/local/include', etc. You
can specify an installation prefix other than `/usr/local' by giving
`configure' the option `--prefix=PREFIX'.
You can specify separate installation prefixes for
architecture-specific files and architecture-independent files. If you
pass the option `--exec-prefix=PREFIX' to `configure', the package uses
PREFIX as the prefix for installing programs and libraries.
Documentation and other data files still use the regular prefix.
In addition, if you use an unusual directory layout you can give
options like `--bindir=DIR' to specify different values for particular
kinds of files. Run `configure --help' for a list of the directories
you can set and what kinds of files go in them.
If the package supports it, you can cause programs to be installed
with an extra prefix or suffix on their names by giving `configure' the
option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
Optional Features
=================
Some packages pay attention to `--enable-FEATURE' options to
`configure', where FEATURE indicates an optional part of the package.
They may also pay attention to `--with-PACKAGE' options, where PACKAGE
is something like `gnu-as' or `x' (for the X Window System). The
`README' should mention any `--enable-' and `--with-' options that the
package recognizes.
For packages that use the X Window System, `configure' can usually
find the X include and library files automatically, but if it doesn't,
you can use the `configure' options `--x-includes=DIR' and
`--x-libraries=DIR' to specify their locations.
Particular systems
==================
On HP-UX, the default C compiler is not ANSI C compatible. If GNU
CC is not installed, it is recommended to use the following options in
order to use an ANSI C compiler:
./configure CC="cc -Ae"
and if that doesn't work, install pre-built binaries of GCC for HP-UX.
On OSF/1 a.k.a. Tru64, some versions of the default C compiler cannot
parse its `<wchar.h>' header file. The option `-nodtk' can be used as
a workaround. If GNU CC is not installed, it is therefore recommended
to try
./configure CC="cc"
and if that doesn't work, try
./configure CC="cc -nodtk"
Specifying the System Type
==========================
There may be some features `configure' cannot figure out
automatically, but needs to determine by the type of machine the package
will run on. Usually, assuming the package is built to be run on the
_same_ architectures, `configure' can figure that out, but if it prints
a message saying it cannot guess the machine type, give it the
`--build=TYPE' option. TYPE can either be a short name for the system
type, such as `sun4', or a canonical name which has the form:
CPU-COMPANY-SYSTEM
where SYSTEM can have one of these forms:
OS KERNEL-OS
See the file `config.sub' for the possible values of each field. If
`config.sub' isn't included in this package, then this package doesn't
need to know the machine type.
If you are _building_ compiler tools for cross-compiling, you should
use the option `--target=TYPE' to select the type of system they will
produce code for.
If you want to _use_ a cross compiler, that generates code for a
platform different from the build platform, you should specify the
"host" platform (i.e., that on which the generated programs will
eventually be run) with `--host=TYPE'.
Sharing Defaults
================
If you want to set default values for `configure' scripts to share,
you can create a site shell script called `config.site' that gives
default values for variables like `CC', `cache_file', and `prefix'.
`configure' looks for `PREFIX/share/config.site' if it exists, then
`PREFIX/etc/config.site' if it exists. Or, you can set the
`CONFIG_SITE' environment variable to the location of the site script.
A warning: not all `configure' scripts look for a site script.
Defining Variables
==================
Variables not defined in a site shell script can be set in the
environment passed to `configure'. However, some packages may run
configure again during the build, and the customized values of these
variables may be lost. In order to avoid this problem, you should set
them in the `configure' command line, using `VAR=value'. For example:
./configure CC=/usr/local2/bin/gcc
causes the specified `gcc' to be used as the C compiler (unless it is
overridden in the site shell script).
Unfortunately, this technique does not work for `CONFIG_SHELL' due to
an Autoconf bug. Until the bug is fixed you can use this workaround:
CONFIG_SHELL=/bin/bash /bin/bash ./configure CONFIG_SHELL=/bin/bash
`configure' Invocation
======================
`configure' recognizes the following options to control how it
operates.
`--help'
`-h'
Print a summary of all of the options to `configure', and exit.
`--help=short'
`--help=recursive'
Print a summary of the options unique to this package's
`configure', and exit. The `short' variant lists options used
only in the top level, while the `recursive' variant lists options
also present in any nested packages.
`--version'
`-V'
Print the version of Autoconf used to generate the `configure'
script, and exit.
`--cache-file=FILE'
Enable the cache: use and save the results of the tests in FILE,
traditionally `config.cache'. FILE defaults to `/dev/null' to
disable caching.
`--config-cache'
`-C'
Alias for `--cache-file=config.cache'.
`--quiet'
`--silent'
`-q'
Do not print messages saying which checks are being made. To
suppress all normal output, redirect it to `/dev/null' (any error
messages will still be shown).
`--srcdir=DIR'
Look for the package's source code in directory DIR. Usually
`configure' can determine that directory automatically.
`--prefix=DIR'
Use DIR as the installation prefix. *Note Installation Names::
for more details, including other options available for fine-tuning
the installation locations.
`--no-create'
`-n'
Run the configure checks, but stop before creating any output
files.
`configure' also accepts some other, not widely useful, options. Run
`configure --help' for more details.

View File

@ -18,7 +18,7 @@
# IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
# CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
SUBDIRS = src man SUBDIRS = src man vmwarectrl
MAINTAINERCLEANFILES = ChangeLog INSTALL MAINTAINERCLEANFILES = ChangeLog INSTALL
.PHONY: ChangeLog INSTALL .PHONY: ChangeLog INSTALL

View File

@ -105,6 +105,8 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@ AWK = @AWK@
BUILD_VMWARECTRL_FALSE = @BUILD_VMWARECTRL_FALSE@
BUILD_VMWARECTRL_TRUE = @BUILD_VMWARECTRL_TRUE@
CC = @CC@ CC = @CC@
CCDEPMODE = @CCDEPMODE@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
@ -122,8 +124,6 @@ DEPDIR = @DEPDIR@
DRIVER_MAN_DIR = @DRIVER_MAN_DIR@ DRIVER_MAN_DIR = @DRIVER_MAN_DIR@
DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@ DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
DRIVER_NAME = @DRIVER_NAME@ DRIVER_NAME = @DRIVER_NAME@
DRM_CFLAGS = @DRM_CFLAGS@
DRM_LIBS = @DRM_LIBS@
DSYMUTIL = @DSYMUTIL@ DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@ ECHO = @ECHO@
ECHO_C = @ECHO_C@ ECHO_C = @ECHO_C@
@ -142,6 +142,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@ LDFLAGS = @LDFLAGS@
LIBDRM_CFLAGS = @LIBDRM_CFLAGS@
LIBDRM_LIBS = @LIBDRM_LIBS@
LIBOBJS = @LIBOBJS@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@ LIBS = @LIBS@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
@ -174,6 +176,8 @@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
STRIP = @STRIP@ STRIP = @STRIP@
VERSION = @VERSION@ VERSION = @VERSION@
X11_CFLAGS = @X11_CFLAGS@
X11_LIBS = @X11_LIBS@
XORG_CFLAGS = @XORG_CFLAGS@ XORG_CFLAGS = @XORG_CFLAGS@
XORG_LIBS = @XORG_LIBS@ XORG_LIBS = @XORG_LIBS@
XORG_MAN_PAGE = @XORG_MAN_PAGE@ XORG_MAN_PAGE = @XORG_MAN_PAGE@
@ -227,7 +231,7 @@ sbindir = @sbindir@
sharedstatedir = @sharedstatedir@ sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@ sysconfdir = @sysconfdir@
target_alias = @target_alias@ target_alias = @target_alias@
SUBDIRS = src man SUBDIRS = src man vmwarectrl
MAINTAINERCLEANFILES = ChangeLog INSTALL MAINTAINERCLEANFILES = ChangeLog INSTALL
all: config.h all: config.h
$(MAKE) $(AM_MAKEFLAGS) all-recursive $(MAKE) $(AM_MAKEFLAGS) all-recursive

View File

@ -7649,7 +7649,7 @@ AC_SUBST([am__untar])
dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure. dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure.
dnl dnl
dnl Copyright 2005-2006 Sun Microsystems, Inc. All rights reserved. dnl Copyright (c) 2005, 2006, Oracle and/or its affiliates. All rights reserved.
dnl dnl
dnl Permission is hereby granted, free of charge, to any person obtaining a dnl Permission is hereby granted, free of charge, to any person obtaining a
dnl copy of this software and associated documentation files (the "Software"), dnl copy of this software and associated documentation files (the "Software"),
@ -7686,7 +7686,7 @@ dnl DEALINGS IN THE SOFTWARE.
# See the "minimum version" comment for each macro you use to see what # See the "minimum version" comment for each macro you use to see what
# version you require. # version you require.
m4_defun([XORG_MACROS_VERSION],[ m4_defun([XORG_MACROS_VERSION],[
m4_define([vers_have], [1.10.0]) m4_define([vers_have], [1.13.0])
m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.]))) m4_define([maj_have], m4_substr(vers_have, 0, m4_index(vers_have, [.])))
m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.]))) m4_define([maj_needed], m4_substr([$1], 0, m4_index([$1], [.])))
m4_if(m4_cmp(maj_have, maj_needed), 0,, m4_if(m4_cmp(maj_have, maj_needed), 0,,
@ -7837,6 +7837,7 @@ MAN_SUBSTS="\
-e 's|__xservername__|Xorg|g' \ -e 's|__xservername__|Xorg|g' \
-e 's|__xconfigfile__|xorg.conf|g' \ -e 's|__xconfigfile__|xorg.conf|g' \
-e 's|__projectroot__|\$(prefix)|g' \ -e 's|__projectroot__|\$(prefix)|g' \
-e 's|__apploaddir__|\$(appdefaultdir)|g' \
-e 's|__appmansuffix__|\$(APP_MAN_SUFFIX)|g' \ -e 's|__appmansuffix__|\$(APP_MAN_SUFFIX)|g' \
-e 's|__drivermansuffix__|\$(DRIVER_MAN_SUFFIX)|g' \ -e 's|__drivermansuffix__|\$(DRIVER_MAN_SUFFIX)|g' \
-e 's|__adminmansuffix__|\$(ADMIN_MAN_SUFFIX)|g' \ -e 's|__adminmansuffix__|\$(ADMIN_MAN_SUFFIX)|g' \
@ -7994,15 +7995,17 @@ AC_SUBST(MAKE_PDF)
AC_SUBST(MAKE_HTML) AC_SUBST(MAKE_HTML)
]) # XORG_CHECK_DOCBOOK ]) # XORG_CHECK_DOCBOOK
# XORG_WITH_XMLTO([MIN-VERSION]) # XORG_WITH_XMLTO([MIN-VERSION], [DEFAULT])
# ---------------- # ----------------
# Minimum version: 1.5.0 # Minimum version: 1.5.0
# Minimum version for optional DEFAULT argument: 1.11.0
# #
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-xmlto option, it allows maximum flexibilty in making decisions # the --with-xmlto option, it allows maximum flexibilty in making decisions
# as whether or not to use the xmlto package. # as whether or not to use the xmlto package. When DEFAULT is not specified,
# --with-xmlto assumes 'auto'.
# #
# Interface to module: # Interface to module:
# HAVE_XMLTO: used in makefiles to conditionally generate documentation # HAVE_XMLTO: used in makefiles to conditionally generate documentation
@ -8019,10 +8022,12 @@ AC_SUBST(MAKE_HTML)
# #
AC_DEFUN([XORG_WITH_XMLTO],[ AC_DEFUN([XORG_WITH_XMLTO],[
AC_ARG_VAR([XMLTO], [Path to xmlto command]) AC_ARG_VAR([XMLTO], [Path to xmlto command])
m4_define([_defopt], m4_default([$2], [auto]))
AC_ARG_WITH(xmlto, AC_ARG_WITH(xmlto,
AS_HELP_STRING([--with-xmlto], AS_HELP_STRING([--with-xmlto],
[Use xmlto to regenerate documentation (default: yes, if installed)]), [Use xmlto to regenerate documentation (default: ]_defopt[)]),
[use_xmlto=$withval], [use_xmlto=auto]) [use_xmlto=$withval], [use_xmlto=]_defopt)
m4_undefine([_defopt])
if test "x$use_xmlto" = x"auto"; then if test "x$use_xmlto" = x"auto"; then
AC_PATH_PROG([XMLTO], [xmlto]) AC_PATH_PROG([XMLTO], [xmlto])
@ -8076,15 +8081,80 @@ AM_CONDITIONAL([HAVE_XMLTO_TEXT], [test $have_xmlto_text = yes])
AM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = yes]) AM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = yes])
]) # XORG_WITH_XMLTO ]) # XORG_WITH_XMLTO
# XORG_WITH_ASCIIDOC([MIN-VERSION]) # XORG_WITH_XSLTPROC([MIN-VERSION], [DEFAULT])
# --------------------------------------------
# Minimum version: 1.12.0
# Minimum version for optional DEFAULT argument: 1.12.0
#
# XSLT (Extensible Stylesheet Language Transformations) is a declarative,
# XML-based language used for the transformation of XML documents.
# The xsltproc command line tool is for applying XSLT stylesheets to XML documents.
# It is used under the cover by xmlto to generate html files from DocBook/XML.
# The XSLT processor is often used as a standalone tool for transformations.
# It should not be assumed that this tool is used only to work with documnetation.
# When DEFAULT is not specified, --with-xsltproc assumes 'auto'.
#
# Interface to module:
# HAVE_XSLTPROC: used in makefiles to conditionally generate documentation
# XSLTPROC: returns the path of the xsltproc program found
# returns the path set by the user in the environment
# --with-xsltproc: 'yes' user instructs the module to use xsltproc
# 'no' user instructs the module not to use xsltproc
# have_xsltproc: returns yes if xsltproc found in PATH or no
#
# If the user sets the value of XSLTPROC, AC_PATH_PROG skips testing the path.
#
AC_DEFUN([XORG_WITH_XSLTPROC],[
AC_ARG_VAR([XSLTPROC], [Path to xsltproc command])
m4_define([_defopt], m4_default([$2], [auto]))
AC_ARG_WITH(xsltproc,
AS_HELP_STRING([--with-xsltproc],
[Use xsltproc for the transformation of XML documents (default: ]_defopt[)]),
[use_xsltproc=$withval], [use_xsltproc=]_defopt)
m4_undefine([_defopt])
if test "x$use_xsltproc" = x"auto"; then
AC_PATH_PROG([XSLTPROC], [xsltproc])
if test "x$XSLTPROC" = "x"; then
AC_MSG_WARN([xsltproc not found - cannot transform XML documents])
have_xsltproc=no
else
have_xsltproc=yes
fi
elif test "x$use_xsltproc" = x"yes" ; then
AC_PATH_PROG([XSLTPROC], [xsltproc])
if test "x$XSLTPROC" = "x"; then
AC_MSG_ERROR([--with-xsltproc=yes specified but xsltproc not found in PATH])
fi
have_xsltproc=yes
elif test "x$use_xsltproc" = x"no" ; then
if test "x$XSLTPROC" != "x"; then
AC_MSG_WARN([ignoring XSLTPROC environment variable since --with-xsltproc=no was specified])
fi
have_xsltproc=no
else
AC_MSG_ERROR([--with-xsltproc expects 'yes' or 'no'])
fi
# Checking for minimum version is not implemented
# but we want to keep the interface consistent with other commands
m4_ifval([$1],[AC_MSG_WARN(Checking for MIN-VERSION is not implemented.)])
AM_CONDITIONAL([HAVE_XSLTPROC], [test "$have_xsltproc" = yes])
]) # XORG_WITH_XSLTPROC
# XORG_WITH_ASCIIDOC([MIN-VERSION], [DEFAULT])
# ---------------- # ----------------
# Minimum version: 1.5.0 # Minimum version: 1.5.0
# Minimum version for optional DEFAULT argument: 1.11.0
# #
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-asciidoc option, it allows maximum flexibilty in making decisions # the --with-asciidoc option, it allows maximum flexibilty in making decisions
# as whether or not to use the asciidoc package. # as whether or not to use the asciidoc package. When DEFAULT is not specified,
# --with-asciidoc assumes 'auto'.
# #
# Interface to module: # Interface to module:
# HAVE_ASCIIDOC: used in makefiles to conditionally generate documentation # HAVE_ASCIIDOC: used in makefiles to conditionally generate documentation
@ -8097,10 +8167,12 @@ AM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = yes])
# #
AC_DEFUN([XORG_WITH_ASCIIDOC],[ AC_DEFUN([XORG_WITH_ASCIIDOC],[
AC_ARG_VAR([ASCIIDOC], [Path to asciidoc command]) AC_ARG_VAR([ASCIIDOC], [Path to asciidoc command])
m4_define([_defopt], m4_default([$2], [auto]))
AC_ARG_WITH(asciidoc, AC_ARG_WITH(asciidoc,
AS_HELP_STRING([--with-asciidoc], AS_HELP_STRING([--with-asciidoc],
[Use asciidoc to regenerate documentation (default: yes, if installed)]), [Use asciidoc to regenerate documentation (default: ]_defopt[)]),
[use_asciidoc=$withval], [use_asciidoc=auto]) [use_asciidoc=$withval], [use_asciidoc=]_defopt)
m4_undefine([_defopt])
if test "x$use_asciidoc" = x"auto"; then if test "x$use_asciidoc" = x"auto"; then
AC_PATH_PROG([ASCIIDOC], [asciidoc]) AC_PATH_PROG([ASCIIDOC], [asciidoc])
@ -8141,15 +8213,17 @@ fi])
AM_CONDITIONAL([HAVE_ASCIIDOC], [test "$have_asciidoc" = yes]) AM_CONDITIONAL([HAVE_ASCIIDOC], [test "$have_asciidoc" = yes])
]) # XORG_WITH_ASCIIDOC ]) # XORG_WITH_ASCIIDOC
# XORG_WITH_DOXYGEN([MIN-VERSION]) # XORG_WITH_DOXYGEN([MIN-VERSION], [DEFAULT])
# -------------------------------- # --------------------------------
# Minimum version: 1.5.0 # Minimum version: 1.5.0
# Minimum version for optional DEFAULT argument: 1.11.0
# #
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-doxygen option, it allows maximum flexibilty in making decisions # the --with-doxygen option, it allows maximum flexibilty in making decisions
# as whether or not to use the doxygen package. # as whether or not to use the doxygen package. When DEFAULT is not specified,
# --with-doxygen assumes 'auto'.
# #
# Interface to module: # Interface to module:
# HAVE_DOXYGEN: used in makefiles to conditionally generate documentation # HAVE_DOXYGEN: used in makefiles to conditionally generate documentation
@ -8162,10 +8236,12 @@ AM_CONDITIONAL([HAVE_ASCIIDOC], [test "$have_asciidoc" = yes])
# #
AC_DEFUN([XORG_WITH_DOXYGEN],[ AC_DEFUN([XORG_WITH_DOXYGEN],[
AC_ARG_VAR([DOXYGEN], [Path to doxygen command]) AC_ARG_VAR([DOXYGEN], [Path to doxygen command])
m4_define([_defopt], m4_default([$2], [auto]))
AC_ARG_WITH(doxygen, AC_ARG_WITH(doxygen,
AS_HELP_STRING([--with-doxygen], AS_HELP_STRING([--with-doxygen],
[Use doxygen to regenerate documentation (default: yes, if installed)]), [Use doxygen to regenerate documentation (default: ]_defopt[)]),
[use_doxygen=$withval], [use_doxygen=auto]) [use_doxygen=$withval], [use_doxygen=]_defopt)
m4_undefine([_defopt])
if test "x$use_doxygen" = x"auto"; then if test "x$use_doxygen" = x"auto"; then
AC_PATH_PROG([DOXYGEN], [doxygen]) AC_PATH_PROG([DOXYGEN], [doxygen])
@ -8206,15 +8282,17 @@ fi])
AM_CONDITIONAL([HAVE_DOXYGEN], [test "$have_doxygen" = yes]) AM_CONDITIONAL([HAVE_DOXYGEN], [test "$have_doxygen" = yes])
]) # XORG_WITH_DOXYGEN ]) # XORG_WITH_DOXYGEN
# XORG_WITH_GROFF # XORG_WITH_GROFF([DEFAULT])
# ---------------- # ----------------
# Minimum version: 1.6.0 # Minimum version: 1.6.0
# Minimum version for optional DEFAULT argument: 1.11.0
# #
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-groff option, it allows maximum flexibilty in making decisions # the --with-groff option, it allows maximum flexibilty in making decisions
# as whether or not to use the groff package. # as whether or not to use the groff package. When DEFAULT is not specified,
# --with-groff assumes 'auto'.
# #
# Interface to module: # Interface to module:
# HAVE_GROFF: used in makefiles to conditionally generate documentation # HAVE_GROFF: used in makefiles to conditionally generate documentation
@ -8243,10 +8321,12 @@ AM_CONDITIONAL([HAVE_DOXYGEN], [test "$have_doxygen" = yes])
# #
AC_DEFUN([XORG_WITH_GROFF],[ AC_DEFUN([XORG_WITH_GROFF],[
AC_ARG_VAR([GROFF], [Path to groff command]) AC_ARG_VAR([GROFF], [Path to groff command])
m4_define([_defopt], m4_default([$1], [auto]))
AC_ARG_WITH(groff, AC_ARG_WITH(groff,
AS_HELP_STRING([--with-groff], AS_HELP_STRING([--with-groff],
[Use groff to regenerate documentation (default: yes, if installed)]), [Use groff to regenerate documentation (default: ]_defopt[)]),
[use_groff=$withval], [use_groff=auto]) [use_groff=$withval], [use_groff=]_defopt)
m4_undefine([_defopt])
if test "x$use_groff" = x"auto"; then if test "x$use_groff" = x"auto"; then
AC_PATH_PROG([GROFF], [groff]) AC_PATH_PROG([GROFF], [groff])
@ -8309,15 +8389,17 @@ AM_CONDITIONAL([HAVE_GROFF_MM], [test "$groff_mm_works" = yes])
AM_CONDITIONAL([HAVE_GROFF_HTML], [test "$have_groff_html" = yes]) AM_CONDITIONAL([HAVE_GROFF_HTML], [test "$have_groff_html" = yes])
]) # XORG_WITH_GROFF ]) # XORG_WITH_GROFF
# XORG_WITH_FOP # XORG_WITH_FOP([DEFAULT])
# ---------------- # ----------------
# Minimum version: 1.6.0 # Minimum version: 1.6.0
# Minimum version for optional DEFAULT argument: 1.11.0
# #
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-fop option, it allows maximum flexibilty in making decisions # the --with-fop option, it allows maximum flexibilty in making decisions
# as whether or not to use the fop package. # as whether or not to use the fop package. When DEFAULT is not specified,
# --with-fop assumes 'auto'.
# #
# Interface to module: # Interface to module:
# HAVE_FOP: used in makefiles to conditionally generate documentation # HAVE_FOP: used in makefiles to conditionally generate documentation
@ -8330,10 +8412,12 @@ AM_CONDITIONAL([HAVE_GROFF_HTML], [test "$have_groff_html" = yes])
# #
AC_DEFUN([XORG_WITH_FOP],[ AC_DEFUN([XORG_WITH_FOP],[
AC_ARG_VAR([FOP], [Path to fop command]) AC_ARG_VAR([FOP], [Path to fop command])
m4_define([_defopt], m4_default([$1], [auto]))
AC_ARG_WITH(fop, AC_ARG_WITH(fop,
AS_HELP_STRING([--with-fop], AS_HELP_STRING([--with-fop],
[Use fop to regenerate documentation (default: yes, if installed)]), [Use fop to regenerate documentation (default: ]_defopt[)]),
[use_fop=$withval], [use_fop=auto]) [use_fop=$withval], [use_fop=]_defopt)
m4_undefine([_defopt])
if test "x$use_fop" = x"auto"; then if test "x$use_fop" = x"auto"; then
AC_PATH_PROG([FOP], [fop]) AC_PATH_PROG([FOP], [fop])
@ -8360,15 +8444,17 @@ fi
AM_CONDITIONAL([HAVE_FOP], [test "$have_fop" = yes]) AM_CONDITIONAL([HAVE_FOP], [test "$have_fop" = yes])
]) # XORG_WITH_FOP ]) # XORG_WITH_FOP
# XORG_WITH_PS2PDF # XORG_WITH_PS2PDF([DEFAULT])
# ---------------- # ----------------
# Minimum version: 1.6.0 # Minimum version: 1.6.0
# Minimum version for optional DEFAULT argument: 1.11.0
# #
# Documentation tools are not always available on all platforms and sometimes # Documentation tools are not always available on all platforms and sometimes
# not at the appropriate level. This macro enables a module to test for the # not at the appropriate level. This macro enables a module to test for the
# presence of the tool and obtain it's path in separate variables. Coupled with # presence of the tool and obtain it's path in separate variables. Coupled with
# the --with-ps2pdf option, it allows maximum flexibilty in making decisions # the --with-ps2pdf option, it allows maximum flexibilty in making decisions
# as whether or not to use the ps2pdf package. # as whether or not to use the ps2pdf package. When DEFAULT is not specified,
# --with-ps2pdf assumes 'auto'.
# #
# Interface to module: # Interface to module:
# HAVE_PS2PDF: used in makefiles to conditionally generate documentation # HAVE_PS2PDF: used in makefiles to conditionally generate documentation
@ -8381,10 +8467,12 @@ AM_CONDITIONAL([HAVE_FOP], [test "$have_fop" = yes])
# #
AC_DEFUN([XORG_WITH_PS2PDF],[ AC_DEFUN([XORG_WITH_PS2PDF],[
AC_ARG_VAR([PS2PDF], [Path to ps2pdf command]) AC_ARG_VAR([PS2PDF], [Path to ps2pdf command])
m4_define([_defopt], m4_default([$1], [auto]))
AC_ARG_WITH(ps2pdf, AC_ARG_WITH(ps2pdf,
AS_HELP_STRING([--with-ps2pdf], AS_HELP_STRING([--with-ps2pdf],
[Use ps2pdf to regenerate documentation (default: yes, if installed)]), [Use ps2pdf to regenerate documentation (default: ]_defopt[)]),
[use_ps2pdf=$withval], [use_ps2pdf=auto]) [use_ps2pdf=$withval], [use_ps2pdf=]_defopt)
m4_undefine([_defopt])
if test "x$use_ps2pdf" = x"auto"; then if test "x$use_ps2pdf" = x"auto"; then
AC_PATH_PROG([PS2PDF], [ps2pdf]) AC_PATH_PROG([PS2PDF], [ps2pdf])
@ -8435,14 +8523,12 @@ AM_CONDITIONAL([HAVE_PS2PDF], [test "$have_ps2pdf" = yes])
# parm1: specify the default value, yes or no. # parm1: specify the default value, yes or no.
# #
AC_DEFUN([XORG_ENABLE_DOCS],[ AC_DEFUN([XORG_ENABLE_DOCS],[
default=$1 m4_define([docs_default], m4_default([$1], [yes]))
if test "x$default" = x ; then
default="yes"
fi
AC_ARG_ENABLE(docs, AC_ARG_ENABLE(docs,
AS_HELP_STRING([--enable-docs], AS_HELP_STRING([--enable-docs],
[Enable building the documentation (default: yes)]), [Enable building the documentation (default: ]docs_default[)]),
[build_docs=$enableval], [build_docs=$default]) [build_docs=$enableval], [build_docs=]docs_default)
m4_undefine([docs_default])
AM_CONDITIONAL(ENABLE_DOCS, [test x$build_docs = xyes]) AM_CONDITIONAL(ENABLE_DOCS, [test x$build_docs = xyes])
AC_MSG_CHECKING([whether to build documentation]) AC_MSG_CHECKING([whether to build documentation])
AC_MSG_RESULT([$build_docs]) AC_MSG_RESULT([$build_docs])
@ -8470,14 +8556,12 @@ AC_MSG_RESULT([$build_docs])
# parm1: specify the default value, yes or no. # parm1: specify the default value, yes or no.
# #
AC_DEFUN([XORG_ENABLE_DEVEL_DOCS],[ AC_DEFUN([XORG_ENABLE_DEVEL_DOCS],[
devel_default=$1 m4_define([devel_default], m4_default([$1], [yes]))
if test "x$devel_default" = x ; then
devel_default="yes"
fi
AC_ARG_ENABLE(devel-docs, AC_ARG_ENABLE(devel-docs,
AS_HELP_STRING([--enable-devel-docs], AS_HELP_STRING([--enable-devel-docs],
[Enable building the developer documentation (default: yes)]), [Enable building the developer documentation (default: ]devel_default[)]),
[build_devel_docs=$enableval], [build_devel_docs=$devel_default]) [build_devel_docs=$enableval], [build_devel_docs=]devel_default)
m4_undefine([devel_default])
AM_CONDITIONAL(ENABLE_DEVEL_DOCS, [test x$build_devel_docs = xyes]) AM_CONDITIONAL(ENABLE_DEVEL_DOCS, [test x$build_devel_docs = xyes])
AC_MSG_CHECKING([whether to build developer documentation]) AC_MSG_CHECKING([whether to build developer documentation])
AC_MSG_RESULT([$build_devel_docs]) AC_MSG_RESULT([$build_devel_docs])
@ -8505,19 +8589,205 @@ AC_MSG_RESULT([$build_devel_docs])
# parm1: specify the default value, yes or no. # parm1: specify the default value, yes or no.
# #
AC_DEFUN([XORG_ENABLE_SPECS],[ AC_DEFUN([XORG_ENABLE_SPECS],[
spec_default=$1 m4_define([spec_default], m4_default([$1], [yes]))
if test "x$spec_default" = x ; then
spec_default="yes"
fi
AC_ARG_ENABLE(specs, AC_ARG_ENABLE(specs,
AS_HELP_STRING([--enable-specs], AS_HELP_STRING([--enable-specs],
[Enable building the specs (default: yes)]), [Enable building the specs (default: ]spec_default[)]),
[build_specs=$enableval], [build_specs=$spec_default]) [build_specs=$enableval], [build_specs=]spec_default)
m4_undefine([spec_default])
AM_CONDITIONAL(ENABLE_SPECS, [test x$build_specs = xyes]) AM_CONDITIONAL(ENABLE_SPECS, [test x$build_specs = xyes])
AC_MSG_CHECKING([whether to build functional specifications]) AC_MSG_CHECKING([whether to build functional specifications])
AC_MSG_RESULT([$build_specs]) AC_MSG_RESULT([$build_specs])
]) # XORG_ENABLE_SPECS ]) # XORG_ENABLE_SPECS
# XORG_ENABLE_UNIT_TESTS (enable_unit_tests=auto)
# ----------------------------------------------
# Minimum version: 1.13.0
#
# This macro enables a builder to enable/disable unit testing
# It makes no assumption about the test cases implementation
# Test cases may or may not use Automake "Support for test suites"
# They may or may not use the software utility library GLib
#
# When used in conjunction with XORG_WITH_GLIB, use both AM_CONDITIONAL
# ENABLE_UNIT_TESTS and HAVE_GLIB. Not all unit tests may use glib.
# The variable enable_unit_tests is used by other macros in this file.
#
# Interface to module:
# ENABLE_UNIT_TESTS: used in makefiles to conditionally build tests
# enable_unit_tests: used in configure.ac for additional configuration
# --enable-unit-tests: 'yes' user instructs the module to build tests
# 'no' user instructs the module not to build tests
# parm1: specify the default value, yes or no.
#
AC_DEFUN([XORG_ENABLE_UNIT_TESTS],[
AC_BEFORE([$0], [XORG_WITH_GLIB])
AC_BEFORE([$0], [XORG_LD_WRAP])
m4_define([_defopt], m4_default([$1], [auto]))
AC_ARG_ENABLE(unit-tests, AS_HELP_STRING([--enable-unit-tests],
[Enable building unit test cases (default: ]_defopt[)]),
[enable_unit_tests=$enableval], [enable_unit_tests=]_defopt)
m4_undefine([_defopt])
AM_CONDITIONAL(ENABLE_UNIT_TESTS, [test "x$enable_unit_tests" != xno])
AC_MSG_CHECKING([whether to build unit test cases])
AC_MSG_RESULT([$enable_unit_tests])
]) # XORG_ENABLE_UNIT_TESTS
# XORG_WITH_GLIB([MIN-VERSION], [DEFAULT])
# ----------------------------------------
# Minimum version: 1.13.0
#
# GLib is a library which provides advanced data structures and functions.
# This macro enables a module to test for the presence of Glib.
#
# When used with ENABLE_UNIT_TESTS, it is assumed GLib is used for unit testing.
# Otherwise the value of $enable_unit_tests is blank.
#
# Interface to module:
# HAVE_GLIB: used in makefiles to conditionally build targets
# with_glib: used in configure.ac to know if GLib has been found
# --with-glib: 'yes' user instructs the module to use glib
# 'no' user instructs the module not to use glib
#
AC_DEFUN([XORG_WITH_GLIB],[
AC_REQUIRE([PKG_PROG_PKG_CONFIG])
m4_define([_defopt], m4_default([$2], [auto]))
AC_ARG_WITH(glib, AS_HELP_STRING([--with-glib],
[Use GLib library for unit testing (default: ]_defopt[)]),
[with_glib=$withval], [with_glib=]_defopt)
m4_undefine([_defopt])
have_glib=no
# Do not probe GLib if user explicitly disabled unit testing
if test "x$enable_unit_tests" != x"no"; then
# Do not probe GLib if user explicitly disabled it
if test "x$with_glib" != x"no"; then
m4_ifval(
[$1],
[PKG_CHECK_MODULES([GLIB], [glib-2.0 >= $1], [have_glib=yes], [have_glib=no])],
[PKG_CHECK_MODULES([GLIB], [glib-2.0], [have_glib=yes], [have_glib=no])]
)
fi
fi
# Not having GLib when unit testing has been explicitly requested is an error
if test "x$enable_unit_tests" = x"yes"; then
if test "x$have_glib" = x"no"; then
AC_MSG_ERROR([--enable-unit-tests=yes specified but glib-2.0 not found])
fi
fi
# Having unit testing disabled when GLib has been explicitly requested is an error
if test "x$enable_unit_tests" = x"no"; then
if test "x$with_glib" = x"yes"; then
AC_MSG_ERROR([--enable-unit-tests=yes specified but glib-2.0 not found])
fi
fi
# Not having GLib when it has been explicitly requested is an error
if test "x$with_glib" = x"yes"; then
if test "x$have_glib" = x"no"; then
AC_MSG_ERROR([--with-glib=yes specified but glib-2.0 not found])
fi
fi
AM_CONDITIONAL([HAVE_GLIB], [test "$have_glib" = yes])
]) # XORG_WITH_GLIB
# XORG_LD_WRAP
# ------------
# Minimum version: 1.13.0
#
# Check if linker supports -wrap, passed via compiler flags
#
# When used with ENABLE_UNIT_TESTS, it is assumed -wrap is used for unit testing.
# Otherwise the value of $enable_unit_tests is blank.
#
AC_DEFUN([XORG_LD_WRAP],[
XORG_CHECK_LINKER_FLAGS([-Wl,-wrap,exit],[have_ld_wrap=yes],[have_ld_wrap=no])
# Not having ld wrap when unit testing has been explicitly requested is an error
if test "x$enable_unit_tests" = x"yes"; then
if test "x$have_ld_wrap" = x"no"; then
AC_MSG_ERROR([--enable-unit-tests=yes specified but ld -wrap support is not available])
fi
fi
AM_CONDITIONAL([HAVE_LD_WRAP], [test "$have_ld_wrap" = yes])
#
]) # XORG_LD_WRAP
# XORG_CHECK_LINKER_FLAGS
# -----------------------
# SYNOPSIS
#
# XORG_CHECK_LINKER_FLAGS(FLAGS, [ACTION-SUCCESS], [ACTION-FAILURE])
#
# DESCRIPTION
#
# Check whether the given linker FLAGS work with the current language's
# linker, or whether they give an error.
#
# ACTION-SUCCESS/ACTION-FAILURE are shell commands to execute on
# success/failure.
#
# NOTE: Based on AX_CHECK_COMPILER_FLAGS.
#
# LICENSE
#
# Copyright (c) 2009 Mike Frysinger <vapier@gentoo.org>
# Copyright (c) 2009 Steven G. Johnson <stevenj@alum.mit.edu>
# Copyright (c) 2009 Matteo Frigo
#
# This program 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 3 of the License, or (at your
# option) any later version.
#
# This program 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 this program. If not, see <http://www.gnu.org/licenses/>.
#
# As a special exception, the respective Autoconf Macro's copyright owner
# gives unlimited permission to copy, distribute and modify the configure
# scripts that are the output of Autoconf when processing the Macro. You
# need not follow the terms of the GNU General Public License when using
# or distributing such scripts, even though portions of the text of the
# Macro appear in them. The GNU General Public License (GPL) does govern
# all other use of the material that constitutes the Autoconf Macro.
#
# This special exception to the GPL applies to versions of the Autoconf
# Macro released by the Autoconf Archive. When you make and distribute a
# modified version of the Autoconf Macro, you may extend this special
# exception to the GPL to apply to your modified version as well.#
AC_DEFUN([XORG_CHECK_LINKER_FLAGS],
[AC_MSG_CHECKING([whether the linker accepts $1])
dnl Some hackery here since AC_CACHE_VAL can't handle a non-literal varname:
AS_LITERAL_IF([$1],
[AC_CACHE_VAL(AS_TR_SH(xorg_cv_linker_flags_[$1]), [
ax_save_FLAGS=$LDFLAGS
LDFLAGS="$1"
AC_LINK_IFELSE([AC_LANG_PROGRAM()],
AS_TR_SH(xorg_cv_linker_flags_[$1])=yes,
AS_TR_SH(xorg_cv_linker_flags_[$1])=no)
LDFLAGS=$ax_save_FLAGS])],
[ax_save_FLAGS=$LDFLAGS
LDFLAGS="$1"
AC_LINK_IFELSE([AC_LANG_PROGRAM()],
eval AS_TR_SH(xorg_cv_linker_flags_[$1])=yes,
eval AS_TR_SH(xorg_cv_linker_flags_[$1])=no)
LDFLAGS=$ax_save_FLAGS])
eval xorg_check_linker_flags=$AS_TR_SH(xorg_cv_linker_flags_[$1])
AC_MSG_RESULT($xorg_check_linker_flags)
if test "x$xorg_check_linker_flags" = xyes; then
m4_default([$2], :)
else
m4_default([$3], :)
fi
]) # XORG_CHECK_LINKER_FLAGS
# XORG_CHECK_MALLOC_ZERO # XORG_CHECK_MALLOC_ZERO
# ---------------------- # ----------------------
# Minimum version: 1.0.0 # Minimum version: 1.0.0
@ -8534,18 +8804,16 @@ AC_ARG_ENABLE(malloc0returnsnull,
AC_MSG_CHECKING([whether malloc(0) returns NULL]) AC_MSG_CHECKING([whether malloc(0) returns NULL])
if test "x$MALLOC_ZERO_RETURNS_NULL" = xauto; then if test "x$MALLOC_ZERO_RETURNS_NULL" = xauto; then
AC_RUN_IFELSE([ AC_RUN_IFELSE([AC_LANG_PROGRAM([
char *malloc(); #include <stdlib.h>
char *realloc(); ],[
char *calloc();
main() {
char *m0, *r0, *c0, *p; char *m0, *r0, *c0, *p;
m0 = malloc(0); m0 = malloc(0);
p = malloc(10); p = malloc(10);
r0 = realloc(p,0); r0 = realloc(p,0);
c0 = calloc(0); c0 = calloc(0,10);
exit(m0 == 0 || r0 == 0 || c0 == 0 ? 0 : 1); exit((m0 == 0 || r0 == 0 || c0 == 0) ? 0 : 1);
}], ])],
[MALLOC_ZERO_RETURNS_NULL=yes], [MALLOC_ZERO_RETURNS_NULL=yes],
[MALLOC_ZERO_RETURNS_NULL=no], [MALLOC_ZERO_RETURNS_NULL=no],
[MALLOC_ZERO_RETURNS_NULL=yes]) [MALLOC_ZERO_RETURNS_NULL=yes])

View File

@ -8,6 +8,9 @@
/* Define to 1 if you have the <inttypes.h> header file. */ /* Define to 1 if you have the <inttypes.h> header file. */
#undef HAVE_INTTYPES_H #undef HAVE_INTTYPES_H
/* Has libdrm */
#undef HAVE_LIBDRM
/* Define to 1 if you have the <memory.h> header file. */ /* Define to 1 if you have the <memory.h> header file. */
#undef HAVE_MEMORY_H #undef HAVE_MEMORY_H
@ -41,6 +44,9 @@
/* Has version 1.2.0 or greater of the Xserver */ /* Has version 1.2.0 or greater of the Xserver */
#undef HAVE_XORG_SERVER_1_2_0 #undef HAVE_XORG_SERVER_1_2_0
/* Has version 1.5.0 or greater of the Xserver */
#undef HAVE_XORG_SERVER_1_5_0
/* Has version 1.7.0 or greater of the Xserver */ /* Has version 1.7.0 or greater of the Xserver */
#undef HAVE_XORG_SERVER_1_7_0 #undef HAVE_XORG_SERVER_1_7_0

View File

@ -1,6 +1,6 @@
#! /bin/sh #! /bin/sh
# Guess values for system-dependent variables and create Makefiles. # Guess values for system-dependent variables and create Makefiles.
# Generated by GNU Autoconf 2.62 for xf86-video-vmware 11.0.2. # Generated by GNU Autoconf 2.62 for xf86-video-vmware 11.0.3.
# #
# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>. # Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>.
# #
@ -750,8 +750,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package. # Identity of this package.
PACKAGE_NAME='xf86-video-vmware' PACKAGE_NAME='xf86-video-vmware'
PACKAGE_TARNAME='xf86-video-vmware' PACKAGE_TARNAME='xf86-video-vmware'
PACKAGE_VERSION='11.0.2' PACKAGE_VERSION='11.0.3'
PACKAGE_STRING='xf86-video-vmware 11.0.2' PACKAGE_STRING='xf86-video-vmware 11.0.3'
PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg' PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg'
ac_unique_file="Makefile.am" ac_unique_file="Makefile.am"
@ -916,10 +916,14 @@ F77
FFLAGS FFLAGS
ac_ct_F77 ac_ct_F77
LIBTOOL LIBTOOL
BUILD_VMWARECTRL_TRUE
BUILD_VMWARECTRL_FALSE
XORG_CFLAGS XORG_CFLAGS
XORG_LIBS XORG_LIBS
DRM_CFLAGS LIBDRM_CFLAGS
DRM_LIBS LIBDRM_LIBS
X11_CFLAGS
X11_LIBS
PCIACCESS_CFLAGS PCIACCESS_CFLAGS
PCIACCESS_LIBS PCIACCESS_LIBS
XSERVER_LIBPCIACCESS_TRUE XSERVER_LIBPCIACCESS_TRUE
@ -942,6 +946,7 @@ enable_libtool_lock
with_pic with_pic
with_tags with_tags
with_xorg_module_dir with_xorg_module_dir
enable_vmwarectrl_client
' '
ac_precious_vars='build_alias ac_precious_vars='build_alias
host_alias host_alias
@ -961,8 +966,10 @@ F77
FFLAGS FFLAGS
XORG_CFLAGS XORG_CFLAGS
XORG_LIBS XORG_LIBS
DRM_CFLAGS LIBDRM_CFLAGS
DRM_LIBS LIBDRM_LIBS
X11_CFLAGS
X11_LIBS
PCIACCESS_CFLAGS PCIACCESS_CFLAGS
PCIACCESS_LIBS' PCIACCESS_LIBS'
@ -1517,7 +1524,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing. # Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh. # This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF cat <<_ACEOF
\`configure' configures xf86-video-vmware 11.0.2 to adapt to many kinds of systems. \`configure' configures xf86-video-vmware 11.0.3 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]... Usage: $0 [OPTION]... [VAR=VALUE]...
@ -1588,7 +1595,7 @@ fi
if test -n "$ac_init_help"; then if test -n "$ac_init_help"; then
case $ac_init_help in case $ac_init_help in
short | recursive ) echo "Configuration of xf86-video-vmware 11.0.2:";; short | recursive ) echo "Configuration of xf86-video-vmware 11.0.3:";;
esac esac
cat <<\_ACEOF cat <<\_ACEOF
@ -1608,6 +1615,8 @@ Optional Features:
--enable-fast-install[=PKGS] --enable-fast-install[=PKGS]
optimize for fast installation [default=yes] optimize for fast installation [default=yes]
--disable-libtool-lock avoid locking (might break parallel builds) --disable-libtool-lock avoid locking (might break parallel builds)
--enable-vmwarectrl-client
Enable vmwarectrl client (default: disabled)
Optional Packages: Optional Packages:
--with-PACKAGE[=ARG] use PACKAGE [ARG=yes] --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]
@ -1637,8 +1646,11 @@ Some influential environment variables:
FFLAGS Fortran 77 compiler flags FFLAGS Fortran 77 compiler flags
XORG_CFLAGS C compiler flags for XORG, overriding pkg-config XORG_CFLAGS C compiler flags for XORG, overriding pkg-config
XORG_LIBS linker flags for XORG, overriding pkg-config XORG_LIBS linker flags for XORG, overriding pkg-config
DRM_CFLAGS C compiler flags for DRM, overriding pkg-config LIBDRM_CFLAGS
DRM_LIBS linker flags for DRM, overriding pkg-config C compiler flags for LIBDRM, overriding pkg-config
LIBDRM_LIBS linker flags for LIBDRM, overriding pkg-config
X11_CFLAGS C compiler flags for X11, overriding pkg-config
X11_LIBS linker flags for X11, overriding pkg-config
PCIACCESS_CFLAGS PCIACCESS_CFLAGS
C compiler flags for PCIACCESS, overriding pkg-config C compiler flags for PCIACCESS, overriding pkg-config
PCIACCESS_LIBS PCIACCESS_LIBS
@ -1710,7 +1722,7 @@ fi
test -n "$ac_init_help" && exit $ac_status test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then if $ac_init_version; then
cat <<\_ACEOF cat <<\_ACEOF
xf86-video-vmware configure 11.0.2 xf86-video-vmware configure 11.0.3
generated by GNU Autoconf 2.62 generated by GNU Autoconf 2.62
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@ -1724,7 +1736,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake. running configure, to aid debugging if configure makes a mistake.
It was created by xf86-video-vmware $as_me 11.0.2, which was It was created by xf86-video-vmware $as_me 11.0.3, which was
generated by GNU Autoconf 2.62. Invocation command line was generated by GNU Autoconf 2.62. Invocation command line was
$ $0 $@ $ $0 $@
@ -2378,7 +2390,7 @@ fi
# Define the identity of the package. # Define the identity of the package.
PACKAGE='xf86-video-vmware' PACKAGE='xf86-video-vmware'
VERSION='11.0.2' VERSION='11.0.3'
cat >>confdefs.h <<_ACEOF cat >>confdefs.h <<_ACEOF
@ -5104,6 +5116,7 @@ MAN_SUBSTS="\
-e 's|__xservername__|Xorg|g' \ -e 's|__xservername__|Xorg|g' \
-e 's|__xconfigfile__|xorg.conf|g' \ -e 's|__xconfigfile__|xorg.conf|g' \
-e 's|__projectroot__|\$(prefix)|g' \ -e 's|__projectroot__|\$(prefix)|g' \
-e 's|__apploaddir__|\$(appdefaultdir)|g' \
-e 's|__appmansuffix__|\$(APP_MAN_SUFFIX)|g' \ -e 's|__appmansuffix__|\$(APP_MAN_SUFFIX)|g' \
-e 's|__drivermansuffix__|\$(DRIVER_MAN_SUFFIX)|g' \ -e 's|__drivermansuffix__|\$(DRIVER_MAN_SUFFIX)|g' \
-e 's|__adminmansuffix__|\$(ADMIN_MAN_SUFFIX)|g' \ -e 's|__adminmansuffix__|\$(ADMIN_MAN_SUFFIX)|g' \
@ -5681,7 +5694,7 @@ ia64-*-hpux*)
;; ;;
*-*-irix6*) *-*-irix6*)
# Find out which ABI we are using. # Find out which ABI we are using.
echo '#line 5684 "configure"' > conftest.$ac_ext echo '#line 5697 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5 if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5 (eval $ac_compile) 2>&5
ac_status=$? ac_status=$?
@ -8304,11 +8317,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:8307: $lt_compile\"" >&5) (eval echo "\"\$as_me:8320: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err) (eval "$lt_compile" 2>conftest.err)
ac_status=$? ac_status=$?
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:8311: \$? = $ac_status" >&5 echo "$as_me:8324: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output. # So say no if there are warnings other than the usual output.
@ -8594,11 +8607,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:8597: $lt_compile\"" >&5) (eval echo "\"\$as_me:8610: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err) (eval "$lt_compile" 2>conftest.err)
ac_status=$? ac_status=$?
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:8601: \$? = $ac_status" >&5 echo "$as_me:8614: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output. # So say no if there are warnings other than the usual output.
@ -8698,11 +8711,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:8701: $lt_compile\"" >&5) (eval echo "\"\$as_me:8714: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err) (eval "$lt_compile" 2>out/conftest.err)
ac_status=$? ac_status=$?
cat out/conftest.err >&5 cat out/conftest.err >&5
echo "$as_me:8705: \$? = $ac_status" >&5 echo "$as_me:8718: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext if (exit $ac_status) && test -s out/conftest2.$ac_objext
then then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
@ -11098,7 +11111,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 11101 "configure" #line 11114 "configure"
#include "confdefs.h" #include "confdefs.h"
#if HAVE_DLFCN_H #if HAVE_DLFCN_H
@ -11198,7 +11211,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2 lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<EOF cat > conftest.$ac_ext <<EOF
#line 11201 "configure" #line 11214 "configure"
#include "confdefs.h" #include "confdefs.h"
#if HAVE_DLFCN_H #if HAVE_DLFCN_H
@ -13607,11 +13620,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:13610: $lt_compile\"" >&5) (eval echo "\"\$as_me:13623: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err) (eval "$lt_compile" 2>conftest.err)
ac_status=$? ac_status=$?
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:13614: \$? = $ac_status" >&5 echo "$as_me:13627: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output. # So say no if there are warnings other than the usual output.
@ -13711,11 +13724,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:13714: $lt_compile\"" >&5) (eval echo "\"\$as_me:13727: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err) (eval "$lt_compile" 2>out/conftest.err)
ac_status=$? ac_status=$?
cat out/conftest.err >&5 cat out/conftest.err >&5
echo "$as_me:13718: \$? = $ac_status" >&5 echo "$as_me:13731: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext if (exit $ac_status) && test -s out/conftest2.$ac_objext
then then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
@ -15294,11 +15307,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:15297: $lt_compile\"" >&5) (eval echo "\"\$as_me:15310: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err) (eval "$lt_compile" 2>conftest.err)
ac_status=$? ac_status=$?
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:15301: \$? = $ac_status" >&5 echo "$as_me:15314: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output. # So say no if there are warnings other than the usual output.
@ -15398,11 +15411,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:15401: $lt_compile\"" >&5) (eval echo "\"\$as_me:15414: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err) (eval "$lt_compile" 2>out/conftest.err)
ac_status=$? ac_status=$?
cat out/conftest.err >&5 cat out/conftest.err >&5
echo "$as_me:15405: \$? = $ac_status" >&5 echo "$as_me:15418: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext if (exit $ac_status) && test -s out/conftest2.$ac_objext
then then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
@ -17613,11 +17626,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:17616: $lt_compile\"" >&5) (eval echo "\"\$as_me:17629: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err) (eval "$lt_compile" 2>conftest.err)
ac_status=$? ac_status=$?
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:17620: \$? = $ac_status" >&5 echo "$as_me:17633: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output. # So say no if there are warnings other than the usual output.
@ -17903,11 +17916,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:17906: $lt_compile\"" >&5) (eval echo "\"\$as_me:17919: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err) (eval "$lt_compile" 2>conftest.err)
ac_status=$? ac_status=$?
cat conftest.err >&5 cat conftest.err >&5
echo "$as_me:17910: \$? = $ac_status" >&5 echo "$as_me:17923: \$? = $ac_status" >&5
if (exit $ac_status) && test -s "$ac_outfile"; then if (exit $ac_status) && test -s "$ac_outfile"; then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
# So say no if there are warnings other than the usual output. # So say no if there are warnings other than the usual output.
@ -18007,11 +18020,11 @@ else
-e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \ -e 's:.*FLAGS}\{0,1\} :&$lt_compiler_flag :; t' \
-e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \ -e 's: [^ ]*conftest\.: $lt_compiler_flag&:; t' \
-e 's:$: $lt_compiler_flag:'` -e 's:$: $lt_compiler_flag:'`
(eval echo "\"\$as_me:18010: $lt_compile\"" >&5) (eval echo "\"\$as_me:18023: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err) (eval "$lt_compile" 2>out/conftest.err)
ac_status=$? ac_status=$?
cat out/conftest.err >&5 cat out/conftest.err >&5
echo "$as_me:18014: \$? = $ac_status" >&5 echo "$as_me:18027: \$? = $ac_status" >&5
if (exit $ac_status) && test -s out/conftest2.$ac_objext if (exit $ac_status) && test -s out/conftest2.$ac_objext
then then
# The compiler can only warn and ignore the option if not recognized # The compiler can only warn and ignore the option if not recognized
@ -20838,6 +20851,25 @@ else
fi fi
# Define a configure option to build the vmwarectrl client tool
# Check whether --enable-vmwarectrl-client was given.
if test "${enable_vmwarectrl_client+set}" = set; then
enableval=$enable_vmwarectrl_client; VMWARECTRL=$enableval
else
VMWARECTRL=no
fi
if test "x$VMWARECTRL" = xyes; then
BUILD_VMWARECTRL_TRUE=
BUILD_VMWARECTRL_FALSE='#'
else
BUILD_VMWARECTRL_TRUE='#'
BUILD_VMWARECTRL_FALSE=
fi
# Store the list of server defined optional extensions in REQUIRED_MODULES # Store the list of server defined optional extensions in REQUIRED_MODULES
@ -21254,12 +21286,12 @@ $as_echo "yes" >&6; }
fi fi
pkg_failed=no pkg_failed=no
{ $as_echo "$as_me:$LINENO: checking for DRM" >&5 { $as_echo "$as_me:$LINENO: checking for LIBDRM" >&5
$as_echo_n "checking for DRM... " >&6; } $as_echo_n "checking for LIBDRM... " >&6; }
if test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG"; then
if test -n "$DRM_CFLAGS"; then if test -n "$LIBDRM_CFLAGS"; then
pkg_cv_DRM_CFLAGS="$DRM_CFLAGS" pkg_cv_LIBDRM_CFLAGS="$LIBDRM_CFLAGS"
else else
if test -n "$PKG_CONFIG" && \ if test -n "$PKG_CONFIG" && \
{ ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libdrm\"") >&5 { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libdrm\"") >&5
@ -21267,7 +21299,7 @@ if test -n "$PKG_CONFIG"; then
ac_status=$? ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then (exit $ac_status); }; then
pkg_cv_DRM_CFLAGS=`$PKG_CONFIG --cflags "libdrm" 2>/dev/null` pkg_cv_LIBDRM_CFLAGS=`$PKG_CONFIG --cflags "libdrm" 2>/dev/null`
else else
pkg_failed=yes pkg_failed=yes
fi fi
@ -21276,8 +21308,8 @@ else
pkg_failed=untried pkg_failed=untried
fi fi
if test -n "$PKG_CONFIG"; then if test -n "$PKG_CONFIG"; then
if test -n "$DRM_LIBS"; then if test -n "$LIBDRM_LIBS"; then
pkg_cv_DRM_LIBS="$DRM_LIBS" pkg_cv_LIBDRM_LIBS="$LIBDRM_LIBS"
else else
if test -n "$PKG_CONFIG" && \ if test -n "$PKG_CONFIG" && \
{ ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libdrm\"") >&5 { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"libdrm\"") >&5
@ -21285,7 +21317,7 @@ if test -n "$PKG_CONFIG"; then
ac_status=$? ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then (exit $ac_status); }; then
pkg_cv_DRM_LIBS=`$PKG_CONFIG --libs "libdrm" 2>/dev/null` pkg_cv_LIBDRM_LIBS=`$PKG_CONFIG --libs "libdrm" 2>/dev/null`
else else
pkg_failed=yes pkg_failed=yes
fi fi
@ -21304,64 +21336,28 @@ else
_pkg_short_errors_supported=no _pkg_short_errors_supported=no
fi fi
if test $_pkg_short_errors_supported = yes; then if test $_pkg_short_errors_supported = yes; then
DRM_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libdrm"` LIBDRM_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "libdrm"`
else else
DRM_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libdrm"` LIBDRM_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "libdrm"`
fi fi
# Put the nasty error message in config.log where it belongs # Put the nasty error message in config.log where it belongs
echo "$DRM_PKG_ERRORS" >&5 echo "$LIBDRM_PKG_ERRORS" >&5
{ { $as_echo "$as_me:$LINENO: error: Package requirements (libdrm) were not met: { $as_echo "$as_me:$LINENO: result: no" >&5
$as_echo "no" >&6; }
$DRM_PKG_ERRORS echo "Will not try support for 3D or kernel modesetting."
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables DRM_CFLAGS
and DRM_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
" >&5
$as_echo "$as_me: error: Package requirements (libdrm) were not met:
$DRM_PKG_ERRORS
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables DRM_CFLAGS
and DRM_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
" >&2;}
{ (exit 1); exit 1; }; }
elif test $pkg_failed = untried; then elif test $pkg_failed = untried; then
{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it echo "Will not try support for 3D or kernel modesetting."
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
Alternatively, you may set the environment variables DRM_CFLAGS
and DRM_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.
See \`config.log' for more details." >&5
$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
Alternatively, you may set the environment variables DRM_CFLAGS
and DRM_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.
See \`config.log' for more details." >&2;}
{ (exit 1); exit 1; }; }
else else
DRM_CFLAGS=$pkg_cv_DRM_CFLAGS LIBDRM_CFLAGS=$pkg_cv_LIBDRM_CFLAGS
DRM_LIBS=$pkg_cv_DRM_LIBS LIBDRM_LIBS=$pkg_cv_LIBDRM_LIBS
{ $as_echo "$as_me:$LINENO: result: yes" >&5 { $as_echo "$as_me:$LINENO: result: yes" >&5
$as_echo "yes" >&6; } $as_echo "yes" >&6; }
:
cat >>confdefs.h <<\_ACEOF
#define HAVE_LIBDRM 1
_ACEOF
fi fi
if test -n "$PKG_CONFIG" && \ if test -n "$PKG_CONFIG" && \
@ -21403,6 +21399,19 @@ _ACEOF
fi fi
if test -n "$PKG_CONFIG" && \
{ ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xorg-server >= 1.4.99\"") >&5
($PKG_CONFIG --exists --print-errors "xorg-server >= 1.4.99") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
cat >>confdefs.h <<\_ACEOF
#define HAVE_XORG_SERVER_1_5_0 1
_ACEOF
fi
if test -n "$PKG_CONFIG" && \ if test -n "$PKG_CONFIG" && \
{ ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xorg-server >= 1.7.0\"") >&5 { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xorg-server >= 1.7.0\"") >&5
($PKG_CONFIG --exists --print-errors "xorg-server >= 1.7.0") 2>&5 ($PKG_CONFIG --exists --print-errors "xorg-server >= 1.7.0") 2>&5
@ -21416,6 +21425,119 @@ _ACEOF
fi fi
# Obtain compiler/linker options for the vmwarectrl client tool
pkg_failed=no
{ $as_echo "$as_me:$LINENO: checking for X11" >&5
$as_echo_n "checking for X11... " >&6; }
if test -n "$PKG_CONFIG"; then
if test -n "$X11_CFLAGS"; then
pkg_cv_X11_CFLAGS="$X11_CFLAGS"
else
if test -n "$PKG_CONFIG" && \
{ ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"x11 xext\"") >&5
($PKG_CONFIG --exists --print-errors "x11 xext") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
pkg_cv_X11_CFLAGS=`$PKG_CONFIG --cflags "x11 xext" 2>/dev/null`
else
pkg_failed=yes
fi
fi
else
pkg_failed=untried
fi
if test -n "$PKG_CONFIG"; then
if test -n "$X11_LIBS"; then
pkg_cv_X11_LIBS="$X11_LIBS"
else
if test -n "$PKG_CONFIG" && \
{ ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"x11 xext\"") >&5
($PKG_CONFIG --exists --print-errors "x11 xext") 2>&5
ac_status=$?
$as_echo "$as_me:$LINENO: \$? = $ac_status" >&5
(exit $ac_status); }; then
pkg_cv_X11_LIBS=`$PKG_CONFIG --libs "x11 xext" 2>/dev/null`
else
pkg_failed=yes
fi
fi
else
pkg_failed=untried
fi
if test $pkg_failed = yes; then
if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then
_pkg_short_errors_supported=yes
else
_pkg_short_errors_supported=no
fi
if test $_pkg_short_errors_supported = yes; then
X11_PKG_ERRORS=`$PKG_CONFIG --short-errors --errors-to-stdout --print-errors "x11 xext"`
else
X11_PKG_ERRORS=`$PKG_CONFIG --errors-to-stdout --print-errors "x11 xext"`
fi
# Put the nasty error message in config.log where it belongs
echo "$X11_PKG_ERRORS" >&5
{ { $as_echo "$as_me:$LINENO: error: Package requirements (x11 xext) were not met:
$X11_PKG_ERRORS
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables X11_CFLAGS
and X11_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
" >&5
$as_echo "$as_me: error: Package requirements (x11 xext) were not met:
$X11_PKG_ERRORS
Consider adjusting the PKG_CONFIG_PATH environment variable if you
installed software in a non-standard prefix.
Alternatively, you may set the environment variables X11_CFLAGS
and X11_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
" >&2;}
{ (exit 1); exit 1; }; }
elif test $pkg_failed = untried; then
{ { $as_echo "$as_me:$LINENO: error: The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
Alternatively, you may set the environment variables X11_CFLAGS
and X11_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.
See \`config.log' for more details." >&5
$as_echo "$as_me: error: The pkg-config script could not be found or is too old. Make sure it
is in your PATH or set the PKG_CONFIG environment variable to the full
path to pkg-config.
Alternatively, you may set the environment variables X11_CFLAGS
and X11_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
To get pkg-config, see <http://www.freedesktop.org/software/pkgconfig>.
See \`config.log' for more details." >&2;}
{ (exit 1); exit 1; }; }
else
X11_CFLAGS=$pkg_cv_X11_CFLAGS
X11_LIBS=$pkg_cv_X11_LIBS
{ $as_echo "$as_me:$LINENO: result: yes" >&5
$as_echo "yes" >&6; }
:
fi
# Checks for libraries. # Checks for libraries.
save_CFLAGS="$CFLAGS" save_CFLAGS="$CFLAGS"
@ -21612,7 +21734,7 @@ fi
DRIVER_NAME=vmware DRIVER_NAME=vmware
ac_config_files="$ac_config_files Makefile src/Makefile man/Makefile" ac_config_files="$ac_config_files Makefile src/Makefile vmwarectrl/Makefile man/Makefile"
cat >confcache <<\_ACEOF cat >confcache <<\_ACEOF
# This file is a shell script that caches the results of configure # This file is a shell script that caches the results of configure
@ -21739,6 +21861,13 @@ $as_echo "$as_me: error: conditional \"am__fastdepCXX\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;} Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; } { (exit 1); exit 1; }; }
fi fi
if test -z "${BUILD_VMWARECTRL_TRUE}" && test -z "${BUILD_VMWARECTRL_FALSE}"; then
{ { $as_echo "$as_me:$LINENO: error: conditional \"BUILD_VMWARECTRL\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
$as_echo "$as_me: error: conditional \"BUILD_VMWARECTRL\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
if test -z "${XSERVER_LIBPCIACCESS_TRUE}" && test -z "${XSERVER_LIBPCIACCESS_FALSE}"; then if test -z "${XSERVER_LIBPCIACCESS_TRUE}" && test -z "${XSERVER_LIBPCIACCESS_FALSE}"; then
{ { $as_echo "$as_me:$LINENO: error: conditional \"XSERVER_LIBPCIACCESS\" was never defined. { { $as_echo "$as_me:$LINENO: error: conditional \"XSERVER_LIBPCIACCESS\" was never defined.
Usually this means the macro was only invoked conditionally." >&5 Usually this means the macro was only invoked conditionally." >&5
@ -22068,7 +22197,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their # report actual input values of CONFIG_FILES etc. instead of their
# values after options handling. # values after options handling.
ac_log=" ac_log="
This file was extended by xf86-video-vmware $as_me 11.0.2, which was This file was extended by xf86-video-vmware $as_me 11.0.3, which was
generated by GNU Autoconf 2.62. Invocation command line was generated by GNU Autoconf 2.62. Invocation command line was
CONFIG_FILES = $CONFIG_FILES CONFIG_FILES = $CONFIG_FILES
@ -22121,7 +22250,7 @@ Report bugs to <bug-autoconf@gnu.org>."
_ACEOF _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\ ac_cs_version="\\
xf86-video-vmware config.status 11.0.2 xf86-video-vmware config.status 11.0.3
configured by $0, generated by GNU Autoconf 2.62, configured by $0, generated by GNU Autoconf 2.62,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
@ -22247,6 +22376,7 @@ do
"depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
"Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;
"src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;; "src/Makefile") CONFIG_FILES="$CONFIG_FILES src/Makefile" ;;
"vmwarectrl/Makefile") CONFIG_FILES="$CONFIG_FILES vmwarectrl/Makefile" ;;
"man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;; "man/Makefile") CONFIG_FILES="$CONFIG_FILES man/Makefile" ;;
*) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5

View File

@ -23,7 +23,7 @@
# Initialize Autoconf # Initialize Autoconf
AC_PREREQ([2.60]) AC_PREREQ([2.60])
AC_INIT([xf86-video-vmware], AC_INIT([xf86-video-vmware],
[11.0.2], [11.0.3],
[https://bugs.freedesktop.org/enter_bug.cgi?product=xorg], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],
[xf86-video-vmware]) [xf86-video-vmware])
AC_CONFIG_SRCDIR([Makefile.am]) AC_CONFIG_SRCDIR([Makefile.am])
@ -56,6 +56,13 @@ AC_ARG_WITH(xorg-module-dir,
[moduledir="$withval"], [moduledir="$withval"],
[moduledir="$libdir/xorg/modules"]) [moduledir="$libdir/xorg/modules"])
# Define a configure option to build the vmwarectrl client tool
AC_ARG_ENABLE(vmwarectrl-client,
AS_HELP_STRING([--enable-vmwarectrl-client],
[Enable vmwarectrl client (default: disabled)]),
[VMWARECTRL=$enableval], [VMWARECTRL=no])
AM_CONDITIONAL(BUILD_VMWARECTRL, [test "x$VMWARECTRL" = xyes])
# Store the list of server defined optional extensions in REQUIRED_MODULES # Store the list of server defined optional extensions in REQUIRED_MODULES
XORG_DRIVER_CHECK_EXT(RANDR, randrproto) XORG_DRIVER_CHECK_EXT(RANDR, randrproto)
XORG_DRIVER_CHECK_EXT(RENDER, renderproto) XORG_DRIVER_CHECK_EXT(RENDER, renderproto)
@ -65,7 +72,10 @@ XORG_DRIVER_CHECK_EXT(XV, videoproto)
# Obtain compiler/linker options for the driver dependencies # Obtain compiler/linker options for the driver dependencies
PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.1 xproto fontsproto $REQUIRED_MODULES]) PKG_CHECK_MODULES(XORG, [xorg-server >= 1.0.1 xproto fontsproto $REQUIRED_MODULES])
PKG_CHECK_MODULES(DRM, [libdrm]) PKG_CHECK_MODULES(LIBDRM,
[libdrm],
[AC_DEFINE([HAVE_LIBDRM], 1, [Has libdrm])],
[echo "Will not try support for 3D or kernel modesetting."])
PKG_CHECK_EXISTS([xorg-server >= 1.1.0], PKG_CHECK_EXISTS([xorg-server >= 1.1.0],
[AC_DEFINE([HAVE_XORG_SERVER_1_1_0], 1, [AC_DEFINE([HAVE_XORG_SERVER_1_1_0], 1,
@ -79,10 +89,17 @@ PKG_CHECK_EXISTS([xorg-server >= 1.2.0],
[AC_DEFINE([HAVE_XORG_SERVER_1_2_0], 1, [AC_DEFINE([HAVE_XORG_SERVER_1_2_0], 1,
[Has version 1.2.0 or greater of the Xserver])]) [Has version 1.2.0 or greater of the Xserver])])
PKG_CHECK_EXISTS([xorg-server >= 1.4.99],
[AC_DEFINE([HAVE_XORG_SERVER_1_5_0], 1,
[Has version 1.5.0 or greater of the Xserver])])
PKG_CHECK_EXISTS([xorg-server >= 1.7.0], PKG_CHECK_EXISTS([xorg-server >= 1.7.0],
[AC_DEFINE([HAVE_XORG_SERVER_1_7_0], 1, [AC_DEFINE([HAVE_XORG_SERVER_1_7_0], 1,
[Has version 1.7.0 or greater of the Xserver])]) [Has version 1.7.0 or greater of the Xserver])])
# Obtain compiler/linker options for the vmwarectrl client tool
PKG_CHECK_MODULES(X11, x11 xext)
# Checks for libraries. # Checks for libraries.
save_CFLAGS="$CFLAGS" save_CFLAGS="$CFLAGS"
@ -106,6 +123,7 @@ AC_SUBST([DRIVER_NAME])
AC_CONFIG_FILES([ AC_CONFIG_FILES([
Makefile Makefile
src/Makefile src/Makefile
vmwarectrl/Makefile
man/Makefile man/Makefile
]) ])
AC_OUTPUT AC_OUTPUT

View File

@ -94,6 +94,8 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@ AWK = @AWK@
BUILD_VMWARECTRL_FALSE = @BUILD_VMWARECTRL_FALSE@
BUILD_VMWARECTRL_TRUE = @BUILD_VMWARECTRL_TRUE@
CC = @CC@ CC = @CC@
CCDEPMODE = @CCDEPMODE@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
@ -111,8 +113,6 @@ DEPDIR = @DEPDIR@
DRIVER_MAN_DIR = @DRIVER_MAN_DIR@ DRIVER_MAN_DIR = @DRIVER_MAN_DIR@
DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@ DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
DRIVER_NAME = @DRIVER_NAME@ DRIVER_NAME = @DRIVER_NAME@
DRM_CFLAGS = @DRM_CFLAGS@
DRM_LIBS = @DRM_LIBS@
DSYMUTIL = @DSYMUTIL@ DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@ ECHO = @ECHO@
ECHO_C = @ECHO_C@ ECHO_C = @ECHO_C@
@ -131,6 +131,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@ LDFLAGS = @LDFLAGS@
LIBDRM_CFLAGS = @LIBDRM_CFLAGS@
LIBDRM_LIBS = @LIBDRM_LIBS@
LIBOBJS = @LIBOBJS@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@ LIBS = @LIBS@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
@ -163,6 +165,8 @@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
STRIP = @STRIP@ STRIP = @STRIP@
VERSION = @VERSION@ VERSION = @VERSION@
X11_CFLAGS = @X11_CFLAGS@
X11_LIBS = @X11_LIBS@
XORG_CFLAGS = @XORG_CFLAGS@ XORG_CFLAGS = @XORG_CFLAGS@
XORG_LIBS = @XORG_LIBS@ XORG_LIBS = @XORG_LIBS@
XORG_MAN_PAGE = @XORG_MAN_PAGE@ XORG_MAN_PAGE = @XORG_MAN_PAGE@

View File

@ -54,8 +54,8 @@ vmwlegacy_drv_la_SOURCES = \
vmware_drv_la_LTLIBRARIES = vmware_drv.la vmware_drv_la_LTLIBRARIES = vmware_drv.la
vmware_drv_la_LDFLAGS = -module -avoid-version vmware_drv_la_LDFLAGS = -module -avoid-version
vmware_drv_la_CFLAGS = @XORG_CFLAGS@ @DRM_CFLAGS@ vmware_drv_la_CFLAGS = @XORG_CFLAGS@ @LIBDRM_CFLAGS@
vmware_drv_la_LIBADD = @DRM_LIBS@ vmware_drv_la_LIBADD = @LIBDRM_LIBS@
vmware_drv_ladir = @moduledir@/drivers vmware_drv_ladir = @moduledir@/drivers
vmware_drv_la_SOURCES = \ vmware_drv_la_SOURCES = \

View File

@ -124,6 +124,8 @@ AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@ AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@ AUTOMAKE = @AUTOMAKE@
AWK = @AWK@ AWK = @AWK@
BUILD_VMWARECTRL_FALSE = @BUILD_VMWARECTRL_FALSE@
BUILD_VMWARECTRL_TRUE = @BUILD_VMWARECTRL_TRUE@
CC = @CC@ CC = @CC@
CCDEPMODE = @CCDEPMODE@ CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@ CFLAGS = @CFLAGS@
@ -141,8 +143,6 @@ DEPDIR = @DEPDIR@
DRIVER_MAN_DIR = @DRIVER_MAN_DIR@ DRIVER_MAN_DIR = @DRIVER_MAN_DIR@
DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@ DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
DRIVER_NAME = @DRIVER_NAME@ DRIVER_NAME = @DRIVER_NAME@
DRM_CFLAGS = @DRM_CFLAGS@
DRM_LIBS = @DRM_LIBS@
DSYMUTIL = @DSYMUTIL@ DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@ ECHO = @ECHO@
ECHO_C = @ECHO_C@ ECHO_C = @ECHO_C@
@ -161,6 +161,8 @@ INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@ INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@ INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@ LDFLAGS = @LDFLAGS@
LIBDRM_CFLAGS = @LIBDRM_CFLAGS@
LIBDRM_LIBS = @LIBDRM_LIBS@
LIBOBJS = @LIBOBJS@ LIBOBJS = @LIBOBJS@
LIBS = @LIBS@ LIBS = @LIBS@
LIBTOOL = @LIBTOOL@ LIBTOOL = @LIBTOOL@
@ -193,6 +195,8 @@ SET_MAKE = @SET_MAKE@
SHELL = @SHELL@ SHELL = @SHELL@
STRIP = @STRIP@ STRIP = @STRIP@
VERSION = @VERSION@ VERSION = @VERSION@
X11_CFLAGS = @X11_CFLAGS@
X11_LIBS = @X11_LIBS@
XORG_CFLAGS = @XORG_CFLAGS@ XORG_CFLAGS = @XORG_CFLAGS@
XORG_LIBS = @XORG_LIBS@ XORG_LIBS = @XORG_LIBS@
XORG_MAN_PAGE = @XORG_MAN_PAGE@ XORG_MAN_PAGE = @XORG_MAN_PAGE@
@ -275,8 +279,8 @@ vmwlegacy_drv_la_SOURCES = \
vmware_drv_la_LTLIBRARIES = vmware_drv.la vmware_drv_la_LTLIBRARIES = vmware_drv.la
vmware_drv_la_LDFLAGS = -module -avoid-version vmware_drv_la_LDFLAGS = -module -avoid-version
vmware_drv_la_CFLAGS = @XORG_CFLAGS@ @DRM_CFLAGS@ vmware_drv_la_CFLAGS = @XORG_CFLAGS@ @LIBDRM_CFLAGS@
vmware_drv_la_LIBADD = @DRM_LIBS@ vmware_drv_la_LIBADD = @LIBDRM_LIBS@
vmware_drv_ladir = @moduledir@/drivers vmware_drv_ladir = @moduledir@/drivers
vmware_drv_la_SOURCES = \ vmware_drv_la_SOURCES = \
vmwaremodule.c vmwaremodule.c

View File

@ -1,4 +1,3 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vmware/bits2pixels.c,v 1.1 2001/04/05 19:29:43 dawes Exp $ */
/* ********************************************************** /* **********************************************************
* Copyright (C) 1999-2001 VMware, Inc. * Copyright (C) 1999-2001 VMware, Inc.
* All Rights Reserved * All Rights Reserved

View File

@ -1,8 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vmware/bits2pixels.h,v 1.2 2002/12/11 17:07:58 dawes Exp $ */
/* ********************************************************** /* **********************************************************
* Copyright (C) 1999-2001 VMware, Inc. * Copyright (C) 1999-2001 VMware, Inc.
* All Rights Reserved * All Rights Reserved
* Id: bits2pixels.h,v 1.4 2001/01/26 23:32:15 yoel Exp $
* **********************************************************/ * **********************************************************/
/* /*

View File

@ -1,8 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vmware/guest_os.h,v 1.1 2001/04/05 19:29:44 dawes Exp $ */
/* ********************************************************* /* *********************************************************
* Copyright (C) 1999-2001 VMware, Inc. * Copyright (C) 1999-2001 VMware, Inc.
* All Rights Reserved * All Rights Reserved
* Id: guest_os.h,v 1.5 2001/01/26 23:32:15 yoel Exp $
* **********************************************************/ * **********************************************************/
#ifndef _GUEST_OS_H_ #ifndef _GUEST_OS_H_

View File

@ -1,3 +1,2 @@
/* This space intentionally left blank. */ /* This space intentionally left blank. */
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vmware/includeCheck.h,v 1.3 2002/10/16 22:12:53 alanh Exp $ */

View File

@ -2,7 +2,6 @@
/* ********************************************************** /* **********************************************************
* Copyright (C) 1998-2001 VMware, Inc. * Copyright (C) 1998-2001 VMware, Inc.
* All Rights Reserved * All Rights Reserved
* $Id: svga_limits.h,v 1.1.1.1 2006/11/26 20:21:18 matthieu Exp $
* **********************************************************/ * **********************************************************/
/* /*

View File

@ -1,8 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vmware/vm_basic_types.h,v 1.5 2002/01/07 20:38:29 dawes Exp $ */
/* ********************************************************** /* **********************************************************
* Copyright (C) 1998-2001 VMware, Inc. * Copyright (C) 1998-2001 VMware, Inc.
* All Rights Reserved * All Rights Reserved
* Id: vm_basic_types.h,v 1.9 2001/02/14 22:22:53 bennett Exp $
* **********************************************************/ * **********************************************************/
/* /*

View File

@ -1,8 +1,6 @@
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vmware/vm_device_version.h,v 1.1 2001/04/05 19:29:44 dawes Exp $ */
/* ********************************************************** /* **********************************************************
* Copyright (C) 1998-2001 VMware, Inc. * Copyright (C) 1998-2001 VMware, Inc.
* All Rights Reserved * All Rights Reserved
* Id: vm_device_version.h,v 1.2 2001/01/26 21:53:27 yoel Exp $
* **********************************************************/ * **********************************************************/

View File

@ -6,7 +6,6 @@
char rcsId_vmware[] = char rcsId_vmware[] =
"Id: vmware.c,v 1.11 2001/02/23 02:10:39 yoel Exp $"; "Id: vmware.c,v 1.11 2001/02/23 02:10:39 yoel Exp $";
#endif #endif
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vmware/vmware.c,v 1.18 2003/09/24 02:43:31 dawes Exp $ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
@ -41,6 +40,11 @@ char rcsId_vmware[] =
#include "vm_device_version.h" #include "vm_device_version.h"
#include "svga_modes.h" #include "svga_modes.h"
#ifndef HAVE_XORG_SERVER_1_5_0
#include <xf86_ansic.h>
#include <xf86_libc.h>
#endif
#ifdef HaveDriverFuncs #ifdef HaveDriverFuncs
#define VMWARE_DRIVER_FUNC HaveDriverFuncs #define VMWARE_DRIVER_FUNC HaveDriverFuncs
#else #else
@ -74,6 +78,8 @@ char rcsId_vmware[] =
#error "PCI_VENDOR_VMWARE is wrong, update it from vm_device_version.h" #error "PCI_VENDOR_VMWARE is wrong, update it from vm_device_version.h"
#endif #endif
#define VMWARE_INCHTOMM 25.4
/* /*
* This is the only way I know to turn a #define of an integer constant into * This is the only way I know to turn a #define of an integer constant into
* a constant string. * a constant string.
@ -94,12 +100,21 @@ static const char VMWAREBuildStr[] = "VMware Guest X Server "
/* /*
* Standard four digit version string expected by VMware Tools installer. * Standard four digit version string expected by VMware Tools installer.
* As the driver's version is only {major, minor, patchlevel}, simply append an * As the driver's version is only {major, minor, patchlevel},
* extra zero for the fourth digit. * The fourth digit may describe the commit number relative to the
* last version tag as output from `git describe`
*/ */
#ifdef __GNUC__ #ifdef __GNUC__
const char vmwlegacy_drv_modinfo[] __attribute__((section(".modinfo"),unused)) = #ifdef VMW_SUBPATCH
"version=" VMWARE_DRIVER_VERSION_STRING ".0"; const char vmwlegacy_drv_modinfo[]
__attribute__((section(".modinfo"),unused)) =
"version=" VMWARE_DRIVER_VERSION_STRING "." VMW_STRING(VMW_SUBPATCH);
#else
const char vmwlegacy_drv_modinfo[]
__attribute__((section(".modinfo"),unused)) =
"version=" VMWARE_DRIVER_VERSION_STRING ".0";
#endif /*VMW_SUBPATCH*/
#endif #endif
static SymTabRec VMWAREChipsets[] = { static SymTabRec VMWAREChipsets[] = {
@ -245,7 +260,7 @@ static void
VMWAREFreeRec(ScrnInfoPtr pScrn) VMWAREFreeRec(ScrnInfoPtr pScrn)
{ {
if (pScrn->driverPrivate) { if (pScrn->driverPrivate) {
xfree(pScrn->driverPrivate); free(pScrn->driverPrivate);
pScrn->driverPrivate = NULL; pScrn->driverPrivate = NULL;
} }
} }
@ -558,7 +573,7 @@ VMWAREParseTopologyString(ScrnInfoPtr pScrn,
numOutputs, width, height, x, y); numOutputs, width, height, x, y);
numOutputs++; numOutputs++;
extents = xrealloc(extents, numOutputs * sizeof (xXineramaScreenInfo)); extents = realloc(extents, numOutputs * sizeof (xXineramaScreenInfo));
extents[numOutputs - 1].x_org = x; extents[numOutputs - 1].x_org = x;
extents[numOutputs - 1].y_org = y; extents[numOutputs - 1].y_org = y;
extents[numOutputs - 1].width = width; extents[numOutputs - 1].width = width;
@ -571,7 +586,7 @@ VMWAREParseTopologyString(ScrnInfoPtr pScrn,
error: error:
xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Parsing static Xinerama topology: Failed.\n"); xf86DrvMsg(pScrn->scrnIndex, X_INFO, "Parsing static Xinerama topology: Failed.\n");
xfree(extents); free(extents);
extents = NULL; extents = NULL;
numOutputs = 0; numOutputs = 0;
@ -875,7 +890,7 @@ VMWAREPreInit(ScrnInfoPtr pScrn, int flags)
#endif #endif
xf86CollectOptions(pScrn, NULL); xf86CollectOptions(pScrn, NULL);
if (!(options = xalloc(sizeof(VMWAREOptions)))) if (!(options = malloc(sizeof(VMWAREOptions))))
return FALSE; return FALSE;
memcpy(options, VMWAREOptions, sizeof(VMWAREOptions)); memcpy(options, VMWAREOptions, sizeof(VMWAREOptions));
xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, options); xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, options);
@ -907,7 +922,7 @@ VMWAREPreInit(ScrnInfoPtr pScrn, int flags)
pScrn->videoRam = pVMWARE->videoRam / 1024; pScrn->videoRam = pVMWARE->videoRam / 1024;
pScrn->memPhysBase = pVMWARE->memPhysBase; pScrn->memPhysBase = pVMWARE->memPhysBase;
xfree(options); free(options);
{ {
Gamma zeros = { 0.0, 0.0, 0.0 }; Gamma zeros = { 0.0, 0.0, 0.0 };
@ -920,7 +935,7 @@ VMWAREPreInit(ScrnInfoPtr pScrn, int flags)
/* print error message */ /* print error message */
VMWAREFreeRec(pScrn); VMWAREFreeRec(pScrn);
if (i > 0) { if (i > 0) {
xfree(pciList); free(pciList);
} }
return FALSE; return FALSE;
} }
@ -1216,7 +1231,7 @@ vmwareNextXineramaState(VMWAREPtr pVMWARE)
*/ */
if (pVMWARE->xinerama && !pVMWARE->xineramaStatic) { if (pVMWARE->xinerama && !pVMWARE->xineramaStatic) {
if (pVMWARE->xineramaNextState) { if (pVMWARE->xineramaNextState) {
xfree(pVMWARE->xineramaState); free(pVMWARE->xineramaState);
pVMWARE->xineramaState = pVMWARE->xineramaNextState; pVMWARE->xineramaState = pVMWARE->xineramaNextState;
pVMWARE->xineramaNumOutputs = pVMWARE->xineramaNextNumOutputs; pVMWARE->xineramaNumOutputs = pVMWARE->xineramaNextNumOutputs;
@ -1231,14 +1246,14 @@ vmwareNextXineramaState(VMWAREPtr pVMWARE)
* follow a VMwareCtrlDoSetTopology call. * follow a VMwareCtrlDoSetTopology call.
*/ */
VMWAREXineramaPtr basicState = VMWAREXineramaPtr basicState =
(VMWAREXineramaPtr)xcalloc(1, sizeof (VMWAREXineramaRec)); (VMWAREXineramaPtr)calloc(1, sizeof (VMWAREXineramaRec));
if (basicState) { if (basicState) {
basicState->x_org = 0; basicState->x_org = 0;
basicState->y_org = 0; basicState->y_org = 0;
basicState->width = vmwareReg->svga_reg_width; basicState->width = vmwareReg->svga_reg_width;
basicState->height = vmwareReg->svga_reg_height; basicState->height = vmwareReg->svga_reg_height;
xfree(pVMWARE->xineramaState); free(pVMWARE->xineramaState);
pVMWARE->xineramaState = basicState; pVMWARE->xineramaState = basicState;
pVMWARE->xineramaNumOutputs = 1; pVMWARE->xineramaNumOutputs = 1;
} }
@ -1258,7 +1273,7 @@ vmwareNextXineramaState(VMWAREPtr pVMWARE)
for (i = 0; i < pVMWARE->xineramaNumOutputs; i++) { for (i = 0; i < pVMWARE->xineramaNumOutputs; i++) {
vmwareWriteReg(pVMWARE, SVGA_REG_DISPLAY_ID, i); vmwareWriteReg(pVMWARE, SVGA_REG_DISPLAY_ID, i);
vmwareWriteReg(pVMWARE, SVGA_REG_DISPLAY_IS_PRIMARY, TRUE); vmwareWriteReg(pVMWARE, SVGA_REG_DISPLAY_IS_PRIMARY, i == 0);
vmwareWriteReg(pVMWARE, SVGA_REG_DISPLAY_POSITION_X, vmwareWriteReg(pVMWARE, SVGA_REG_DISPLAY_POSITION_X,
xineramaState[i].x_org); xineramaState[i].x_org);
vmwareWriteReg(pVMWARE, SVGA_REG_DISPLAY_POSITION_Y, vmwareWriteReg(pVMWARE, SVGA_REG_DISPLAY_POSITION_Y,
@ -1486,10 +1501,10 @@ VMWAREAddDisplayMode(ScrnInfoPtr pScrn,
{ {
DisplayModeRec *mode; DisplayModeRec *mode;
mode = xalloc(sizeof(DisplayModeRec)); mode = malloc(sizeof(DisplayModeRec));
memset(mode, 0, sizeof *mode); memset(mode, 0, sizeof *mode);
mode->name = xalloc(strlen(name) + 1); mode->name = malloc(strlen(name) + 1);
strcpy(mode->name, name); strcpy(mode->name, name);
mode->status = MODE_OK; mode->status = MODE_OK;
mode->type = M_T_DEFAULT; mode->type = M_T_DEFAULT;
@ -1557,7 +1572,6 @@ vmwareIsRegionEqual(const RegionPtr reg1,
return TRUE; return TRUE;
} }
#if VMWARE_DRIVER_FUNC #if VMWARE_DRIVER_FUNC
static Bool static Bool
VMWareDriverFunc(ScrnInfoPtr pScrn, VMWareDriverFunc(ScrnInfoPtr pScrn,
@ -1585,8 +1599,10 @@ VMWareDriverFunc(ScrnInfoPtr pScrn,
* keep the DPI constant. * keep the DPI constant.
*/ */
if (modemm && modemm->mode) { if (modemm && modemm->mode) {
modemm->mmWidth *= modemm->mode->HDisplay / (double)(modemm->virtX); modemm->mmWidth *= (modemm->mode->HDisplay * VMWARE_INCHTOMM +
modemm->mmHeight *= modemm->mode->VDisplay / (double)(modemm->virtY); pScrn->xDpi / 2) / pScrn->xDpi;
modemm->mmHeight *= (modemm->mode->VDisplay * VMWARE_INCHTOMM +
pScrn->yDpi / 2) / pScrn->yDpi;
} }
return TRUE; return TRUE;
default: default:
@ -1611,7 +1627,7 @@ VMWAREScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
xf86CollectOptions(pScrn, NULL); xf86CollectOptions(pScrn, NULL);
if (!(options = xalloc(sizeof(VMWAREOptions)))) if (!(options = malloc(sizeof(VMWAREOptions))))
return FALSE; return FALSE;
memcpy(options, VMWAREOptions, sizeof(VMWAREOptions)); memcpy(options, VMWAREOptions, sizeof(VMWAREOptions));
xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, options); xf86ProcessOptions(pScrn->scrnIndex, pScrn->options, options);
@ -1636,11 +1652,11 @@ VMWAREScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
pVMWARE->xineramaStatic = pVMWARE->xineramaState != NULL; pVMWARE->xineramaStatic = pVMWARE->xineramaState != NULL;
xfree(topology); free(topology);
} }
} }
xfree(options); free(options);
/* Initialise VMWARE_CTRL extension. */ /* Initialise VMWARE_CTRL extension. */
VMwareCtrl_ExtInit(pScrn); VMwareCtrl_ExtInit(pScrn);
@ -1740,12 +1756,9 @@ VMWAREScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
fbPictureInit (pScreen, 0, 0); fbPictureInit (pScreen, 0, 0);
/* /*
* Save the old screen vector, then wrap CloseScreen and * Save the old screen vector.
* set SaveScreen.
*/ */
pVMWARE->ScrnFuncs = *pScreen; pVMWARE->ScrnFuncs = *pScreen;
pScreen->CloseScreen = VMWARECloseScreen;
pScreen->SaveScreen = VMWARESaveScreen;
/* /*
* Set initial black & white colourmap indices. * Set initial black & white colourmap indices.
@ -1856,6 +1869,17 @@ VMWAREScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
} }
} }
/**
* Wrap CloseScreen and SaveScreen. Do this late since we
* want to be first in the callchain, to avoid using resources
* already taken down in CloseScreen.
*/
pVMWARE->ScrnFuncs.CloseScreen = pScreen->CloseScreen;
pVMWARE->ScrnFuncs.SaveScreen = pScreen->SaveScreen;
pScreen->CloseScreen = VMWARECloseScreen;
pScreen->SaveScreen = VMWARESaveScreen;
/* Done */ /* Done */
return TRUE; return TRUE;
@ -1863,8 +1887,17 @@ VMWAREScreenInit(int scrnIndex, ScreenPtr pScreen, int argc, char **argv)
static Bool static Bool
VMWARESwitchMode(int scrnIndex, DisplayModePtr mode, int flags) VMWARESwitchMode(int scrnIndex, DisplayModePtr mode, int flags)
{ {
return VMWAREModeInit(xf86Screens[scrnIndex], mode, TRUE); ScrnInfoPtr pScrn = xf86Screens[scrnIndex];
ScreenPtr pScreen = pScrn->pScreen;
pScreen->mmWidth = (pScreen->width * VMWARE_INCHTOMM +
pScrn->xDpi / 2) / pScrn->xDpi;
pScreen->mmHeight = (pScreen->height * VMWARE_INCHTOMM +
pScrn->yDpi / 2) / pScrn->yDpi;
return VMWAREModeInit(pScrn, mode, TRUE);
} }
static Bool static Bool
@ -1981,7 +2014,7 @@ VMWAREProbe(DriverPtr drv, int flags)
numUsed = xf86MatchPciInstances(VMWARE_NAME, PCI_VENDOR_VMWARE, numUsed = xf86MatchPciInstances(VMWARE_NAME, PCI_VENDOR_VMWARE,
VMWAREChipsets, VMWAREPciChipsets, devSections, VMWAREChipsets, VMWAREPciChipsets, devSections,
numDevSections, drv, &usedChips); numDevSections, drv, &usedChips);
xfree(devSections); free(devSections);
if (numUsed <= 0) if (numUsed <= 0)
return FALSE; return FALSE;
if (flags & PROBE_DETECT) if (flags & PROBE_DETECT)
@ -2011,7 +2044,7 @@ VMWAREProbe(DriverPtr drv, int flags)
foundScreen = TRUE; foundScreen = TRUE;
} }
} }
xfree(usedChips); free(usedChips);
} }
return foundScreen; return foundScreen;
} }

View File

@ -1,9 +1,7 @@
/* ********************************************************** /* **********************************************************
* Copyright (C) 1998-2001 VMware, Inc. * Copyright (C) 1998-2001 VMware, Inc.
* All Rights Reserved * All Rights Reserved
* Id: vmware.h,v 1.6 2001/01/30 18:13:47 bennett Exp $
* **********************************************************/ * **********************************************************/
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vmware/vmware.h,v 1.11 2003/04/13 18:09:27 dawes Exp $ */
#ifndef VMWARE_H #ifndef VMWARE_H
#define VMWARE_H #define VMWARE_H

View File

@ -45,6 +45,10 @@
#include "vmware.h" #include "vmware.h"
#include "vmwarectrlproto.h" #include "vmwarectrlproto.h"
#ifndef HAVE_XORG_SERVER_1_5_0
#include <xf86_ansic.h>
#include <xf86_libc.h>
#endif
/* /*
*---------------------------------------------------------------------------- *----------------------------------------------------------------------------
@ -122,7 +126,7 @@ VMwareCtrlDoSetRes(ScrnInfoPtr pScrn,
VmwareLog(("DoSetRes: %d %d\n", x, y)); VmwareLog(("DoSetRes: %d %d\n", x, y));
if (resetXinerama) { if (resetXinerama) {
xfree(pVMWARE->xineramaNextState); free(pVMWARE->xineramaNextState);
pVMWARE->xineramaNextState = NULL; pVMWARE->xineramaNextState = NULL;
pVMWARE->xineramaNextNumOutputs = 0; pVMWARE->xineramaNextNumOutputs = 0;
} }
@ -276,7 +280,7 @@ VMwareCtrlDoSetTopology(ScrnInfoPtr pScrn,
VmwareLog(("DoSetTopology: %d %d\n", maxX, maxY)); VmwareLog(("DoSetTopology: %d %d\n", maxX, maxY));
xineramaState = (VMWAREXineramaPtr)xcalloc(number, sizeof(VMWAREXineramaRec)); xineramaState = (VMWAREXineramaPtr)calloc(number, sizeof(VMWAREXineramaRec));
if (xineramaState) { if (xineramaState) {
memcpy(xineramaState, extents, number * sizeof (VMWAREXineramaRec)); memcpy(xineramaState, extents, number * sizeof (VMWAREXineramaRec));
@ -289,7 +293,7 @@ VMwareCtrlDoSetTopology(ScrnInfoPtr pScrn,
* will be no mode change. In this case, push it out * will be no mode change. In this case, push it out
* immediately. * immediately.
*/ */
xfree(pVMWARE->xineramaNextState); free(pVMWARE->xineramaNextState);
pVMWARE->xineramaNextState = xineramaState; pVMWARE->xineramaNextState = xineramaState;
pVMWARE->xineramaNextNumOutputs = number; pVMWARE->xineramaNextNumOutputs = number;

View File

@ -6,7 +6,6 @@
char rcsId_vmwarecurs[] = char rcsId_vmwarecurs[] =
"Id: vmwarecurs.c,v 1.5 2001/01/30 23:33:02 bennett Exp $"; "Id: vmwarecurs.c,v 1.5 2001/01/30 23:33:02 bennett Exp $";
#endif #endif
/* $XFree86: xc/programs/Xserver/hw/xfree86/drivers/vmware/vmwarecurs.c,v 1.10 2003/02/04 01:39:53 dawes Exp $ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"

View File

@ -25,12 +25,20 @@
#include <xorg-server.h> #include <xorg-server.h>
#include <xf86.h> #include <xf86.h>
#include <xf86drm.h>
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
#include "config.h" #include "config.h"
#endif #endif
#ifdef HAVE_LIBDRM
#include <xf86drm.h>
#endif
#ifndef HAVE_XORG_SERVER_1_5_0
#include <xf86_ansic.h>
#include <xf86_libc.h>
#endif
/* /*
* Defines and exported module info. * Defines and exported module info.
*/ */
@ -54,12 +62,19 @@
/* /*
* Standard four digit version string expected by VMware Tools installer. * Standard four digit version string expected by VMware Tools installer.
* As the driver's version is only {major, minor, patchlevel}, simply append an * As the driver's version is only {major, minor, patchlevel},
* extra zero for the fourth digit. * the fourth digit may describe the commit number relative to the
* last version tag as output from `git describe`
*/ */
#ifdef __GNUC__ #ifdef __GNUC__
#ifdef VMW_SUBPATCH
const char vmware_drv_modinfo[] __attribute__((section(".modinfo"),unused)) = const char vmware_drv_modinfo[] __attribute__((section(".modinfo"),unused)) =
"version=" VMWARE_DRIVER_VERSION_STRING ".0"; "version=" VMWARE_DRIVER_VERSION_STRING "." VMW_STRING(VMW_SUBPATCH);
#else
const char vmware_drv_modinfo[] __attribute__((section(".modinfo"),unused)) =
"version=" VMWARE_DRIVER_VERSION_STRING ".0";
#endif /*VMW_SUBPATCH*/
#endif #endif
static XF86ModuleVersionInfo vmware_version; static XF86ModuleVersionInfo vmware_version;
@ -80,6 +95,7 @@ extern XF86ModuleData *VMWGFX_MODULE_DATA;
static Bool static Bool
vmware_check_kernel_module() vmware_check_kernel_module()
{ {
#ifdef HAVE_LIBDRM
/* Super simple way of knowing if the kernel driver is loaded */ /* Super simple way of knowing if the kernel driver is loaded */
int ret = drmOpen(VMWGFX_MODULE_NAME, NULL); int ret = drmOpen(VMWGFX_MODULE_NAME, NULL);
if (ret < 0) { if (ret < 0) {
@ -96,11 +112,15 @@ vmware_check_kernel_module()
drmClose(ret); drmClose(ret);
return TRUE; return TRUE;
#else
return FALSE;
#endif /* HAVE_LIBDRM */
} }
static Bool static Bool
vmware_check_vmwgfx_driver(int matched, pointer opts) vmware_check_vmwgfx_driver(int matched, pointer opts)
{ {
#ifdef HAVE_LIBDRM
int major; int minor; int major; int minor;
pointer module; pointer module;
CARD32 version; CARD32 version;
@ -140,10 +160,11 @@ vmware_check_vmwgfx_driver(int matched, pointer opts)
err: err:
/* XXX We should drop the reference on the module here */ /* XXX We should drop the reference on the module here */
#endif /* HAVE_LIBDRM */
return FALSE; return FALSE;
} }
static void static Bool
vmware_chain_module(pointer opts) vmware_chain_module(pointer opts)
{ {
int vmwlegacy_devices; int vmwlegacy_devices;
@ -154,6 +175,7 @@ vmware_chain_module(pointer opts)
GDevPtr *gdevs; GDevPtr *gdevs;
GDevPtr gdev; GDevPtr gdev;
int i; int i;
pointer ret;
vmware_devices = xf86MatchDevice(VMWARE_DRIVER_NAME, &gdevs); vmware_devices = xf86MatchDevice(VMWARE_DRIVER_NAME, &gdevs);
vmwgfx_devices = xf86MatchDevice(VMWGFX_DRIVER_NAME, NULL); vmwgfx_devices = xf86MatchDevice(VMWGFX_DRIVER_NAME, NULL);
@ -178,10 +200,18 @@ vmware_chain_module(pointer opts)
gdev->driver = driver_name; gdev->driver = driver_name;
} }
xfree(gdevs); free(gdevs);
if (!matched) if (!matched) {
xf86LoadOneModule(driver_name, opts); if (xf86LoadOneModule(driver_name, opts) == NULL) {
xf86DrvMsg(-1, X_ERROR, "%s: Unexpected failure while "
"loading the \"%s\" driver. Giving up.\n",
VMWARE_DRIVER_NAME, driver_name);
return FALSE;
}
}
return TRUE;
} }
@ -212,9 +242,13 @@ vmware_setup(pointer module, pointer opts, int *errmaj, int *errmin)
setupDone = 1; setupDone = 1;
/* Chain load the real driver */ /* Chain load the real driver */
vmware_chain_module(opts); if (vmware_chain_module(opts))
return (pointer) 1;
return (pointer) 1; else {
if (errmaj)
*errmaj = LDR_NOSUBENT;
return NULL;
}
} else { } else {
if (errmaj) if (errmaj)
*errmaj = LDR_ONCEONLY; *errmaj = LDR_ONCEONLY;

View File

@ -46,6 +46,11 @@
#include <X11/extensions/Xv.h> #include <X11/extensions/Xv.h>
#ifndef HAVE_XORG_SERVER_1_5_0
#include <xf86_ansic.h>
#include <xf86_libc.h>
#endif
#define MAKE_ATOM(a) MakeAtom(a, sizeof(a) - 1, TRUE) #define MAKE_ATOM(a) MakeAtom(a, sizeof(a) - 1, TRUE)
/* /*
@ -334,7 +339,7 @@ vmwareOffscreenAllocate(VMWAREPtr pVMWARE, uint32 size)
return NULL; return NULL;
} }
memptr = xalloc(sizeof(VMWAREOffscreenRec)); memptr = malloc(sizeof(VMWAREOffscreenRec));
if (!memptr) { if (!memptr) {
return NULL; return NULL;
} }
@ -443,7 +448,7 @@ vmwareVideoInit(ScreenPtr pScreen)
numAdaptors = 1; numAdaptors = 1;
overlayAdaptors = &newAdaptor; overlayAdaptors = &newAdaptor;
} else { } else {
newAdaptors = xalloc((numAdaptors + 1) * newAdaptors = malloc((numAdaptors + 1) *
sizeof(XF86VideoAdaptorPtr*)); sizeof(XF86VideoAdaptorPtr*));
if (!newAdaptors) { if (!newAdaptors) {
xf86XVFreeVideoAdaptorRec(newAdaptor); xf86XVFreeVideoAdaptorRec(newAdaptor);
@ -463,7 +468,7 @@ vmwareVideoInit(ScreenPtr pScreen)
} }
if (newAdaptors) { if (newAdaptors) {
xfree(newAdaptors); free(newAdaptors);
} }
xf86DrvMsg(pScrn->scrnIndex, X_INFO, xf86DrvMsg(pScrn->scrnIndex, X_INFO,
@ -505,6 +510,7 @@ vmwareVideoEnd(ScreenPtr pScreen)
pVid = (VMWAREVideoPtr) &pVMWARE->videoStreams[VMWARE_VID_NUM_PORTS]; pVid = (VMWAREVideoPtr) &pVMWARE->videoStreams[VMWARE_VID_NUM_PORTS];
for (i = 0; i < VMWARE_VID_NUM_PORTS; ++i) { for (i = 0; i < VMWARE_VID_NUM_PORTS; ++i) {
vmwareVideoEndStream(pScrn, &pVid[i]); vmwareVideoEndStream(pScrn, &pVid[i]);
REGION_UNINIT(pScreen, &pVid[i].clipBoxes);
} }
free(pVMWARE->videoStreams); free(pVMWARE->videoStreams);
@ -545,7 +551,7 @@ vmwareVideoSetup(ScrnInfoPtr pScrn)
VmwareLog(("Not enough memory\n")); VmwareLog(("Not enough memory\n"));
return NULL; return NULL;
} }
du = xcalloc(1, VMWARE_VID_NUM_PORTS * du = calloc(1, VMWARE_VID_NUM_PORTS *
(sizeof(DevUnion) + sizeof(VMWAREVideoRec))); (sizeof(DevUnion) + sizeof(VMWAREVideoRec)));
if (!du) { if (!du) {
@ -572,6 +578,7 @@ vmwareVideoSetup(ScrnInfoPtr pScrn)
pPriv[i].flags = SVGA_VIDEO_FLAG_COLORKEY; pPriv[i].flags = SVGA_VIDEO_FLAG_COLORKEY;
pPriv[i].colorKey = VMWARE_VIDEO_COLORKEY; pPriv[i].colorKey = VMWARE_VIDEO_COLORKEY;
pPriv[i].isAutoPaintColorkey = TRUE; pPriv[i].isAutoPaintColorkey = TRUE;
REGION_NULL(pScreen, &pPriv[i].clipBoxes);
adaptor->pPortPrivates[i].ptr = &pPriv[i]; adaptor->pPortPrivates[i].ptr = &pPriv[i];
} }
pVMWARE->videoStreams = du; pVMWARE->videoStreams = du;
@ -666,7 +673,17 @@ vmwareVideoInitStream(ScrnInfoPtr pScrn, VMWAREVideoPtr pVid,
REGION_COPY(pScrn->pScreen, &pVid->clipBoxes, clipBoxes); REGION_COPY(pScrn->pScreen, &pVid->clipBoxes, clipBoxes);
if (pVid->isAutoPaintColorkey) { if (pVid->isAutoPaintColorkey) {
BoxPtr boxes = REGION_RECTS(&pVid->clipBoxes);
int nBoxes = REGION_NUM_RECTS(&pVid->clipBoxes);
xf86XVFillKeyHelper(pScrn->pScreen, pVid->colorKey, clipBoxes); xf86XVFillKeyHelper(pScrn->pScreen, pVid->colorKey, clipBoxes);
/**
* Force update to paint the colorkey before the overlay flush.
*/
while(nBoxes--)
vmwareSendSVGACmdUpdate(pVMWARE, boxes++);
} }
VmwareLog(("Got offscreen region, offset %d, size %d " VmwareLog(("Got offscreen region, offset %d, size %d "
@ -704,7 +721,7 @@ vmwareVideoInitAttributes(ScrnInfoPtr pScrn, VMWAREVideoPtr pVid,
TRACEPOINT TRACEPOINT
fmtData = xcalloc(1, sizeof(VMWAREVideoFmtData)); fmtData = calloc(1, sizeof(VMWAREVideoFmtData));
if (!fmtData) { if (!fmtData) {
return -1; return -1;
} }
@ -836,7 +853,18 @@ vmwareVideoPlay(ScrnInfoPtr pScrn, VMWAREVideoPtr pVid,
if (!vmwareIsRegionEqual(&pVid->clipBoxes, clipBoxes)) { if (!vmwareIsRegionEqual(&pVid->clipBoxes, clipBoxes)) {
REGION_COPY(pScrn->pScreen, &pVid->clipBoxes, clipBoxes); REGION_COPY(pScrn->pScreen, &pVid->clipBoxes, clipBoxes);
if (pVid->isAutoPaintColorkey) { if (pVid->isAutoPaintColorkey) {
BoxPtr boxes = REGION_RECTS(&pVid->clipBoxes);
int nBoxes = REGION_NUM_RECTS(&pVid->clipBoxes);
xf86XVFillKeyHelper(pScrn->pScreen, pVid->colorKey, clipBoxes); xf86XVFillKeyHelper(pScrn->pScreen, pVid->colorKey, clipBoxes);
/**
* Force update to paint the colorkey before the overlay flush.
*/
while(nBoxes--)
vmwareSendSVGACmdUpdate(pVMWARE, boxes++);
} }
} }
@ -1088,6 +1116,9 @@ vmwareStopVideo(ScrnInfoPtr pScrn, pointer data, Bool Cleanup)
if (!vmwareVideoEnabled(pVMWARE)) { if (!vmwareVideoEnabled(pVMWARE)) {
return; return;
} }
REGION_EMPTY(pScrn->pScreen, &pVid->clipBoxes);
if (!Cleanup) { if (!Cleanup) {
VmwareLog(("vmwareStopVideo: Cleanup is FALSE.\n")); VmwareLog(("vmwareStopVideo: Cleanup is FALSE.\n"));
return; return;

View File

@ -43,6 +43,11 @@
#include "vmware.h" #include "vmware.h"
#ifndef HAVE_XORG_SERVER_1_5_0
#include <xf86_ansic.h>
#include <xf86_libc.h>
#endif
/* /*
*---------------------------------------------------------------------------- *----------------------------------------------------------------------------
@ -629,7 +634,7 @@ VMwareXineramaResetProc(ExtensionEntry* extEntry)
VMWAREPtr pVMWARE = VMWAREPTR(pScrn); VMWAREPtr pVMWARE = VMWAREPTR(pScrn);
if (pVMWARE->xineramaState) { if (pVMWARE->xineramaState) {
xfree(pVMWARE->xineramaState); free(pVMWARE->xineramaState);
pVMWARE->xineramaState = NULL; pVMWARE->xineramaState = NULL;
pVMWARE->xineramaNumOutputs = 0; pVMWARE->xineramaNumOutputs = 0;
pVMWARE->xinerama = FALSE; pVMWARE->xinerama = FALSE;

View File

@ -0,0 +1,12 @@
if BUILD_VMWARECTRL
bin_PROGRAMS = vmwarectrl
AM_CPPFLAGS = -I$(top_srcdir)/src
AM_CFLAGS = $(X11_CFLAGS)
AM_LDFLAGS = $(X11_LIBS)
vmwarectrl_SOURCES = vmwarectrl.c libvmwarectrl.c libvmwarectrl.h
endif BUILD_VMWARECTRL

View File

@ -0,0 +1,493 @@
# Makefile.in generated by automake 1.9.6 from Makefile.am.
# @configure_input@
# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
# 2003, 2004, 2005 Free Software Foundation, Inc.
# This Makefile.in is free software; the Free Software Foundation
# gives unlimited permission to copy and/or distribute it,
# with or without modifications, as long as this notice is preserved.
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
# PARTICULAR PURPOSE.
@SET_MAKE@
srcdir = @srcdir@
top_srcdir = @top_srcdir@
VPATH = @srcdir@
pkgdatadir = $(datadir)/@PACKAGE@
pkglibdir = $(libdir)/@PACKAGE@
pkgincludedir = $(includedir)/@PACKAGE@
top_builddir = ..
am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
INSTALL = @INSTALL@
install_sh_DATA = $(install_sh) -c -m 644
install_sh_PROGRAM = $(install_sh) -c
install_sh_SCRIPT = $(install_sh) -c
INSTALL_HEADER = $(INSTALL_DATA)
transform = $(program_transform_name)
NORMAL_INSTALL = :
PRE_INSTALL = :
POST_INSTALL = :
NORMAL_UNINSTALL = :
PRE_UNINSTALL = :
POST_UNINSTALL = :
build_triplet = @build@
host_triplet = @host@
@BUILD_VMWARECTRL_TRUE@bin_PROGRAMS = vmwarectrl$(EXEEXT)
subdir = vmwarectrl
DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/configure.ac
am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
$(ACLOCAL_M4)
mkinstalldirs = $(SHELL) $(install_sh) -d
CONFIG_HEADER = $(top_builddir)/config.h
CONFIG_CLEAN_FILES =
am__installdirs = "$(DESTDIR)$(bindir)"
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(bin_PROGRAMS)
am__vmwarectrl_SOURCES_DIST = vmwarectrl.c libvmwarectrl.c \
libvmwarectrl.h
@BUILD_VMWARECTRL_TRUE@am_vmwarectrl_OBJECTS = vmwarectrl.$(OBJEXT) \
@BUILD_VMWARECTRL_TRUE@ libvmwarectrl.$(OBJEXT)
vmwarectrl_OBJECTS = $(am_vmwarectrl_OBJECTS)
vmwarectrl_LDADD = $(LDADD)
DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)
depcomp = $(SHELL) $(top_srcdir)/depcomp
am__depfiles_maybe = depfiles
COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
$(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
$(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
$(AM_CFLAGS) $(CFLAGS)
CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(vmwarectrl_SOURCES)
DIST_SOURCES = $(am__vmwarectrl_SOURCES_DIST)
ETAGS = etags
CTAGS = ctags
DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
ACLOCAL = @ACLOCAL@
ADMIN_MAN_DIR = @ADMIN_MAN_DIR@
ADMIN_MAN_SUFFIX = @ADMIN_MAN_SUFFIX@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
APP_MAN_DIR = @APP_MAN_DIR@
APP_MAN_SUFFIX = @APP_MAN_SUFFIX@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
AUTOMAKE = @AUTOMAKE@
AWK = @AWK@
BUILD_VMWARECTRL_FALSE = @BUILD_VMWARECTRL_FALSE@
BUILD_VMWARECTRL_TRUE = @BUILD_VMWARECTRL_TRUE@
CC = @CC@
CCDEPMODE = @CCDEPMODE@
CFLAGS = @CFLAGS@
CHANGELOG_CMD = @CHANGELOG_CMD@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CWARNFLAGS = @CWARNFLAGS@
CXX = @CXX@
CXXCPP = @CXXCPP@
CXXDEPMODE = @CXXDEPMODE@
CXXFLAGS = @CXXFLAGS@
CYGPATH_W = @CYGPATH_W@
DEFS = @DEFS@
DEPDIR = @DEPDIR@
DRIVER_MAN_DIR = @DRIVER_MAN_DIR@
DRIVER_MAN_SUFFIX = @DRIVER_MAN_SUFFIX@
DRIVER_NAME = @DRIVER_NAME@
DSYMUTIL = @DSYMUTIL@
ECHO = @ECHO@
ECHO_C = @ECHO_C@
ECHO_N = @ECHO_N@
ECHO_T = @ECHO_T@
EGREP = @EGREP@
EXEEXT = @EXEEXT@
F77 = @F77@
FFLAGS = @FFLAGS@
FILE_MAN_DIR = @FILE_MAN_DIR@
FILE_MAN_SUFFIX = @FILE_MAN_SUFFIX@
GREP = @GREP@
INSTALL_CMD = @INSTALL_CMD@
INSTALL_DATA = @INSTALL_DATA@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
LDFLAGS = @LDFLAGS@
LIBDRM_CFLAGS = @LIBDRM_CFLAGS@
LIBDRM_LIBS = @LIBDRM_LIBS@
LIBOBJS = @LIBOBJS@
LIBS = @LIBS@
LIBTOOL = @LIBTOOL@
LIB_MAN_DIR = @LIB_MAN_DIR@
LIB_MAN_SUFFIX = @LIB_MAN_SUFFIX@
LN_S = @LN_S@
LTLIBOBJS = @LTLIBOBJS@
MAINT = @MAINT@
MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
MAKEINFO = @MAKEINFO@
MAN_SUBSTS = @MAN_SUBSTS@
MISC_MAN_DIR = @MISC_MAN_DIR@
MISC_MAN_SUFFIX = @MISC_MAN_SUFFIX@
NMEDIT = @NMEDIT@
OBJEXT = @OBJEXT@
PACKAGE = @PACKAGE@
PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
PACKAGE_NAME = @PACKAGE_NAME@
PACKAGE_STRING = @PACKAGE_STRING@
PACKAGE_TARNAME = @PACKAGE_TARNAME@
PACKAGE_VERSION = @PACKAGE_VERSION@
PATH_SEPARATOR = @PATH_SEPARATOR@
PCIACCESS_CFLAGS = @PCIACCESS_CFLAGS@
PCIACCESS_LIBS = @PCIACCESS_LIBS@
PKG_CONFIG = @PKG_CONFIG@
RANLIB = @RANLIB@
SED = @SED@
SET_MAKE = @SET_MAKE@
SHELL = @SHELL@
STRIP = @STRIP@
VERSION = @VERSION@
X11_CFLAGS = @X11_CFLAGS@
X11_LIBS = @X11_LIBS@
XORG_CFLAGS = @XORG_CFLAGS@
XORG_LIBS = @XORG_LIBS@
XORG_MAN_PAGE = @XORG_MAN_PAGE@
XSERVER_LIBPCIACCESS_FALSE = @XSERVER_LIBPCIACCESS_FALSE@
XSERVER_LIBPCIACCESS_TRUE = @XSERVER_LIBPCIACCESS_TRUE@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
ac_ct_F77 = @ac_ct_F77@
am__fastdepCC_FALSE = @am__fastdepCC_FALSE@
am__fastdepCC_TRUE = @am__fastdepCC_TRUE@
am__fastdepCXX_FALSE = @am__fastdepCXX_FALSE@
am__fastdepCXX_TRUE = @am__fastdepCXX_TRUE@
am__include = @am__include@
am__leading_dot = @am__leading_dot@
am__quote = @am__quote@
am__tar = @am__tar@
am__untar = @am__untar@
bindir = @bindir@
build = @build@
build_alias = @build_alias@
build_cpu = @build_cpu@
build_os = @build_os@
build_vendor = @build_vendor@
datadir = @datadir@
datarootdir = @datarootdir@
docdir = @docdir@
dvidir = @dvidir@
exec_prefix = @exec_prefix@
host = @host@
host_alias = @host_alias@
host_cpu = @host_cpu@
host_os = @host_os@
host_vendor = @host_vendor@
htmldir = @htmldir@
includedir = @includedir@
infodir = @infodir@
install_sh = @install_sh@
libdir = @libdir@
libexecdir = @libexecdir@
localedir = @localedir@
localstatedir = @localstatedir@
mandir = @mandir@
mkdir_p = @mkdir_p@
moduledir = @moduledir@
oldincludedir = @oldincludedir@
pdfdir = @pdfdir@
prefix = @prefix@
program_transform_name = @program_transform_name@
psdir = @psdir@
sbindir = @sbindir@
sharedstatedir = @sharedstatedir@
sysconfdir = @sysconfdir@
target_alias = @target_alias@
@BUILD_VMWARECTRL_TRUE@AM_CPPFLAGS = -I$(top_srcdir)/src
@BUILD_VMWARECTRL_TRUE@AM_CFLAGS = $(X11_CFLAGS)
@BUILD_VMWARECTRL_TRUE@AM_LDFLAGS = $(X11_LIBS)
@BUILD_VMWARECTRL_TRUE@vmwarectrl_SOURCES = vmwarectrl.c libvmwarectrl.c libvmwarectrl.h
all: all-am
.SUFFIXES:
.SUFFIXES: .c .lo .o .obj
$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
@for dep in $?; do \
case '$(am__configure_deps)' in \
*$$dep*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
&& exit 0; \
exit 1;; \
esac; \
done; \
echo ' cd $(top_srcdir) && $(AUTOMAKE) --foreign vmwarectrl/Makefile'; \
cd $(top_srcdir) && \
$(AUTOMAKE) --foreign vmwarectrl/Makefile
.PRECIOUS: Makefile
Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
@case '$?' in \
*config.status*) \
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
*) \
echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
esac;
$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
@list='$(bin_PROGRAMS)'; for p in $$list; do \
p1=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
if test -f $$p \
|| test -f $$p1 \
; then \
f=`echo "$$p1" | sed 's,^.*/,,;$(transform);s/$$/$(EXEEXT)/'`; \
echo " $(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) '$$p' '$(DESTDIR)$(bindir)/$$f'"; \
$(INSTALL_PROGRAM_ENV) $(LIBTOOL) --mode=install $(binPROGRAMS_INSTALL) "$$p" "$(DESTDIR)$(bindir)/$$f" || exit 1; \
else :; fi; \
done
uninstall-binPROGRAMS:
@$(NORMAL_UNINSTALL)
@list='$(bin_PROGRAMS)'; for p in $$list; do \
f=`echo "$$p" | sed 's,^.*/,,;s/$(EXEEXT)$$//;$(transform);s/$$/$(EXEEXT)/'`; \
echo " rm -f '$(DESTDIR)$(bindir)/$$f'"; \
rm -f "$(DESTDIR)$(bindir)/$$f"; \
done
clean-binPROGRAMS:
@list='$(bin_PROGRAMS)'; for p in $$list; do \
f=`echo $$p|sed 's/$(EXEEXT)$$//'`; \
echo " rm -f $$p $$f"; \
rm -f $$p $$f ; \
done
vmwarectrl$(EXEEXT): $(vmwarectrl_OBJECTS) $(vmwarectrl_DEPENDENCIES)
@rm -f vmwarectrl$(EXEEXT)
$(LINK) $(vmwarectrl_LDFLAGS) $(vmwarectrl_OBJECTS) $(vmwarectrl_LDADD) $(LIBS)
mostlyclean-compile:
-rm -f *.$(OBJEXT)
distclean-compile:
-rm -f *.tab.c
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/libvmwarectrl.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/vmwarectrl.Po@am__quote@
.c.o:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c $<
.c.obj:
@am__fastdepCC_TRUE@ if $(COMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ `$(CYGPATH_W) '$<'`; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Po"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=no @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(COMPILE) -c `$(CYGPATH_W) '$<'`
.c.lo:
@am__fastdepCC_TRUE@ if $(LTCOMPILE) -MT $@ -MD -MP -MF "$(DEPDIR)/$*.Tpo" -c -o $@ $<; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/$*.Tpo" "$(DEPDIR)/$*.Plo"; else rm -f "$(DEPDIR)/$*.Tpo"; exit 1; fi
@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='$<' object='$@' libtool=yes @AMDEPBACKSLASH@
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(LTCOMPILE) -c -o $@ $<
mostlyclean-libtool:
-rm -f *.lo
clean-libtool:
-rm -rf .libs _libs
distclean-libtool:
-rm -f libtool
uninstall-info-am:
ID: $(HEADERS) $(SOURCES) $(LISP) $(TAGS_FILES)
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
mkid -fID $$unique
tags: TAGS
TAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
if test -z "$(ETAGS_ARGS)$$tags$$unique"; then :; else \
test -n "$$unique" || unique=$$empty_fix; \
$(ETAGS) $(ETAGSFLAGS) $(AM_ETAGSFLAGS) $(ETAGS_ARGS) \
$$tags $$unique; \
fi
ctags: CTAGS
CTAGS: $(HEADERS) $(SOURCES) $(TAGS_DEPENDENCIES) \
$(TAGS_FILES) $(LISP)
tags=; \
here=`pwd`; \
list='$(SOURCES) $(HEADERS) $(LISP) $(TAGS_FILES)'; \
unique=`for i in $$list; do \
if test -f "$$i"; then echo $$i; else echo $(srcdir)/$$i; fi; \
done | \
$(AWK) ' { files[$$0] = 1; } \
END { for (i in files) print i; }'`; \
test -z "$(CTAGS_ARGS)$$tags$$unique" \
|| $(CTAGS) $(CTAGSFLAGS) $(AM_CTAGSFLAGS) $(CTAGS_ARGS) \
$$tags $$unique
GTAGS:
here=`$(am__cd) $(top_builddir) && pwd` \
&& cd $(top_srcdir) \
&& gtags -i $(GTAGS_ARGS) $$here
distclean-tags:
-rm -f TAGS ID GTAGS GRTAGS GSYMS GPATH tags
distdir: $(DISTFILES)
@srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`; \
topsrcdirstrip=`echo "$(top_srcdir)" | sed 's|.|.|g'`; \
list='$(DISTFILES)'; for file in $$list; do \
case $$file in \
$(srcdir)/*) file=`echo "$$file" | sed "s|^$$srcdirstrip/||"`;; \
$(top_srcdir)/*) file=`echo "$$file" | sed "s|^$$topsrcdirstrip/|$(top_builddir)/|"`;; \
esac; \
if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
dir=`echo "$$file" | sed -e 's,/[^/]*$$,,'`; \
if test "$$dir" != "$$file" && test "$$dir" != "."; then \
dir="/$$dir"; \
$(mkdir_p) "$(distdir)$$dir"; \
else \
dir=''; \
fi; \
if test -d $$d/$$file; then \
if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
cp -pR $(srcdir)/$$file $(distdir)$$dir || exit 1; \
fi; \
cp -pR $$d/$$file $(distdir)$$dir || exit 1; \
else \
test -f $(distdir)/$$file \
|| cp -p $$d/$$file $(distdir)/$$file \
|| exit 1; \
fi; \
done
check-am: all-am
check: check-am
all-am: Makefile $(PROGRAMS)
installdirs:
for dir in "$(DESTDIR)$(bindir)"; do \
test -z "$$dir" || $(mkdir_p) "$$dir"; \
done
install: install-am
install-exec: install-exec-am
install-data: install-data-am
uninstall: uninstall-am
install-am: all-am
@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
installcheck: installcheck-am
install-strip:
$(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
`test -z '$(STRIP)' || \
echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
mostlyclean-generic:
clean-generic:
distclean-generic:
-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
maintainer-clean-generic:
@echo "This command is intended for maintainers to use"
@echo "it deletes files that may require special tools to rebuild."
clean: clean-am
clean-am: clean-binPROGRAMS clean-generic clean-libtool mostlyclean-am
distclean: distclean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
distclean-am: clean-am distclean-compile distclean-generic \
distclean-libtool distclean-tags
dvi: dvi-am
dvi-am:
html: html-am
info: info-am
info-am:
install-data-am:
install-exec-am: install-binPROGRAMS
install-info: install-info-am
install-man:
installcheck-am:
maintainer-clean: maintainer-clean-am
-rm -rf ./$(DEPDIR)
-rm -f Makefile
maintainer-clean-am: distclean-am maintainer-clean-generic
mostlyclean: mostlyclean-am
mostlyclean-am: mostlyclean-compile mostlyclean-generic \
mostlyclean-libtool
pdf: pdf-am
pdf-am:
ps: ps-am
ps-am:
uninstall-am: uninstall-binPROGRAMS uninstall-info-am
.PHONY: CTAGS GTAGS all all-am check check-am clean clean-binPROGRAMS \
clean-generic clean-libtool ctags distclean distclean-compile \
distclean-generic distclean-libtool distclean-tags distdir dvi \
dvi-am html html-am info info-am install install-am \
install-binPROGRAMS install-data install-data-am install-exec \
install-exec-am install-info install-info-am install-man \
install-strip installcheck installcheck-am installdirs \
maintainer-clean maintainer-clean-generic mostlyclean \
mostlyclean-compile mostlyclean-generic mostlyclean-libtool \
pdf pdf-am ps ps-am tags uninstall uninstall-am \
uninstall-binPROGRAMS uninstall-info-am
# Tell versions [3.59,3.63) of GNU make to not export all variables.
# Otherwise a system limit (for SysV at least) may be exceeded.
.NOEXPORT:

View File

@ -0,0 +1,267 @@
/*
* Copyright 2006 by VMware, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of the copyright holder(s)
* and author(s) shall not be used in advertising or otherwise to promote
* the sale, use or other dealings in this Software without prior written
* authorization from the copyright holder(s) and author(s).
*/
/*
* libvmwarectrl.c --
*
* The VMWARE_CTRL client library.
*/
#include <X11/Xlibint.h>
#include "libvmwarectrl.h"
#include "vmwarectrlproto.h"
#include <X11/extensions/Xext.h>
#include <X11/extensions/extutil.h>
/*
* Static data and functions.
*/
static XExtensionInfo _vmwarectrl_info_data;
static XExtensionInfo *vmwarectrl_info = &_vmwarectrl_info_data;
static char *vmwarectrl_extension_name = VMWARE_CTRL_PROTOCOL_NAME;
#define VMwareCtrlCheckExtension(dpy, i, val) \
XextCheckExtension(dpy, i, vmwarectrl_extension_name, val)
static int close_display(Display *dpy, XExtCodes *codes);
static /* const */ XExtensionHooks vmwarectrl_extension_hooks = {
NULL, /* create_gc */
NULL, /* copy_gc */
NULL, /* flush_gc */
NULL, /* free_gc */
NULL, /* create_font */
NULL, /* free_font */
close_display, /* close_display */
NULL, /* wire_to_event */
NULL, /* event_to_wire */
NULL, /* error */
NULL, /* error_string */
};
static XEXT_GENERATE_CLOSE_DISPLAY (close_display, vmwarectrl_info)
static XEXT_GENERATE_FIND_DISPLAY (find_display, vmwarectrl_info,
vmwarectrl_extension_name,
&vmwarectrl_extension_hooks,
0, NULL)
/*
*----------------------------------------------------------------------------
*
* VMwareCtrl_QueryExtension --
*
* Standard QueryExtension implementation. Not very interesting for
* VMWARE_CTRL as it doesn't define any events or errors.
*
* Results:
* True if information is successfully retrieved. False otherwise.
*
* Side effects:
* None.
*
*----------------------------------------------------------------------------
*/
Bool
VMwareCtrl_QueryExtension(Display *dpy, // IN:
int *event_basep, // OUT:
int *error_basep) // OUT:
{
XExtDisplayInfo *info = find_display(dpy);
if (XextHasExtension(info)) {
*event_basep = info->codes->first_event;
*error_basep = info->codes->first_error;
return True;
} else {
return False;
}
}
/*
*----------------------------------------------------------------------------
*
* VMwareCtrl_QueryVersion --
*
* Send the QueryVersion command to the driver and return the results.
*
* Results:
* True if information is successfully retrieved. False otherwise.
*
* Side effects:
* None.
*
*----------------------------------------------------------------------------
*/
Bool
VMwareCtrl_QueryVersion(Display *dpy, // IN:
int *majorVersion, // OUT:
int *minorVersion) // OUT:
{
xVMwareCtrlQueryVersionReply rep;
xVMwareCtrlQueryVersionReq *req;
XExtDisplayInfo *info = find_display(dpy);
Bool ret = False;
VMwareCtrlCheckExtension(dpy, info, False);
LockDisplay(dpy);
GetReq(VMwareCtrlQueryVersion, req);
req->reqType = info->codes->major_opcode;
req->VMwareCtrlReqType = X_VMwareCtrlQueryVersion;
if (!_XReply(dpy, (xReply *)&rep, 0, xFalse)) {
goto exit;
}
*majorVersion = rep.majorVersion;
*minorVersion = rep.minorVersion;
ret = True;
exit:
UnlockDisplay(dpy);
SyncHandle();
return ret;
}
/*
*----------------------------------------------------------------------------
*
* VMwareCtrl_SetRes --
*
* Send the SetRes command to the driver.
*
* Results:
* True if the resolution was set. False otherwise.
*
* Side effects:
* None.
*
*----------------------------------------------------------------------------
*/
Bool
VMwareCtrl_SetRes(Display *dpy, // IN:
int screen, // IN:
int x, // IN:
int y) // IN:
{
xVMwareCtrlSetResReply rep;
xVMwareCtrlSetResReq *req;
XExtDisplayInfo *info = find_display(dpy);
Bool ret = False;
VMwareCtrlCheckExtension(dpy, info, False);
LockDisplay(dpy);
GetReq(VMwareCtrlSetRes, req);
req->reqType = info->codes->major_opcode;
req->VMwareCtrlReqType = X_VMwareCtrlSetRes;
req->screen = screen;
req->x = x;
req->y = y;
if (!_XReply(dpy, (xReply *)&rep,
(SIZEOF(xVMwareCtrlSetResReply) - SIZEOF(xReply)) >> 2,
xFalse)) {
goto exit;
}
ret = True;
exit:
UnlockDisplay(dpy);
SyncHandle();
return ret;
}
/*
*----------------------------------------------------------------------------
*
* VMwareCtrl_SetTopology --
*
* Send the SetTopology command to the driver.
*
* Results:
* True if the resolution and xinerama topology were set. False otherwise.
*
* Side effects:
* None.
*
*----------------------------------------------------------------------------
*/
Bool
VMwareCtrl_SetTopology(Display *dpy, // IN:
int screen, // IN:
xXineramaScreenInfo extents[], // IN:
int number) // IN:
{
xVMwareCtrlSetTopologyReply rep;
xVMwareCtrlSetTopologyReq *req;
XExtDisplayInfo *info = find_display(dpy);
Bool ret = False;
long len;
VMwareCtrlCheckExtension(dpy, info, False);
LockDisplay(dpy);
GetReq(VMwareCtrlSetTopology, req);
req->reqType = info->codes->major_opcode;
req->VMwareCtrlReqType = X_VMwareCtrlSetTopology;
req->screen = screen;
req->number = number;
len = ((long) number) << 1;
SetReqLen(req, len, len);
len <<= 2;
_XSend(dpy, (char *)extents, len);
if (!_XReply(dpy, (xReply *)&rep,
(SIZEOF(xVMwareCtrlSetTopologyReply) - SIZEOF(xReply)) >> 2,
xFalse)) {
goto exit;
}
ret = True;
exit:
UnlockDisplay(dpy);
SyncHandle();
return ret;
}

View File

@ -0,0 +1,47 @@
/*
* Copyright 2006 by VMware, Inc.
*
* Permission is hereby granted, free of charge, to any person obtaining a
* copy of this software and associated documentation files (the "Software"),
* to deal in the Software without restriction, including without limitation
* the rights to use, copy, modify, merge, publish, distribute, sublicense,
* and/or sell copies of the Software, and to permit persons to whom the
* Software is furnished to do so, subject to the following conditions:
*
* The above copyright notice and this permission notice shall be included in
* all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
* THE COPYRIGHT HOLDER(S) OR AUTHOR(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR
* OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
* ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
* OTHER DEALINGS IN THE SOFTWARE.
*
* Except as contained in this notice, the name of the copyright holder(s)
* and author(s) shall not be used in advertising or otherwise to promote
* the sale, use or other dealings in this Software without prior written
* authorization from the copyright holder(s) and author(s).
*/
/*
* libvmwarectrl.c --
*
* The VMWARE_CTRL client library.
*/
#ifndef _LIB_VMWARE_CTRL_H_
#define _LIB_VMWARE_CTRL_H_
#include <X11/X.h>
#include <X11/Xmd.h>
#include <X11/extensions/panoramiXproto.h>
Bool VMwareCtrl_QueryExtension(Display *dpy, int *event_basep, int *error_basep);
Bool VMwareCtrl_QueryVersion(Display *dpy, int *majorVersion, int *minorVersion);
Bool VMwareCtrl_SetRes(Display *dpy, int screen, int x, int y);
Bool VMwareCtrl_SetTopology(Display *dpy, int screen, xXineramaScreenInfo[], int number);
#endif /* _LIB_VMWARE_CTRL_H_ */

View File

@ -0,0 +1,76 @@
#include <stdio.h>
#include <X11/Xlib.h>
#include <X11/Xlibint.h>
#include <X11/Xproto.h>
#include <X11/extensions/panoramiXproto.h>
#include <string.h>
#include <stdlib.h>
#include "libvmwarectrl.h"
int
main (int argc, char **argv)
{
Display *dpy;
char *displayName = NULL;
int screen;
int major, minor;
dpy = XOpenDisplay(displayName);
if (!dpy) {
printf("Could not open default X Display\n");
exit(EXIT_FAILURE);
}
screen = DefaultScreen(dpy);
if (VMwareCtrl_QueryVersion(dpy, &major, &minor)) {
printf("Got Extension version %d.%d\n", major, minor);
} else {
printf("VMWARE_CTRL Extension not found.\n");
exit(EXIT_FAILURE);
}
if (argc >= 2) {
if (strcmp(argv[1], "setres") == 0) {
int x, y;
if (argc < 4) {
printf("Setres needs x and y too\n");
exit(EXIT_FAILURE);
}
x = atoi(argv[2]);
y = atoi(argv[3]);
if (VMwareCtrl_SetRes(dpy, screen, x, y)) {
printf("Set Res was successful\n");
} else {
printf("Set Res failed\n");
}
} else if (strcmp(argv[1], "settopology") == 0) {
xXineramaScreenInfo extents[2];
if (major == 0 && minor < 2) {
printf("VMWARE_CTRL version >= 0.2 is required\n");
exit(EXIT_FAILURE);
}
printf("Requesting hard-coded topology\n");
extents[0].x_org = 0;
extents[0].y_org = 0;
extents[0].width = 800;
extents[0].height = 600;
extents[1].x_org = 800;
extents[1].y_org = 0;
extents[1].width = 800;
extents[1].height = 600;
if (VMwareCtrl_SetTopology(dpy, screen, extents, 2)) {
printf("SetTopology was successful\n");
} else {
printf("SetTopology failed\n");
}
}
}
return EXIT_SUCCESS;
}