diff options
author | marha <marha@users.sourceforge.net> | 2011-09-16 08:40:57 +0200 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2011-09-16 08:40:57 +0200 |
commit | 9d911bc1246139019e555f443e934677a067bc0a (patch) | |
tree | 2af1428f59f88fbcbe4e0ed27a29ff9f3426210a | |
parent | 4095d7af9f50126361eb7b0aeba6869786f63d5c (diff) | |
parent | 18ae1470a8dbcfe369ddf0d7e17e0ea665251ccd (diff) | |
download | vcxsrv-9d911bc1246139019e555f443e934677a067bc0a.tar.gz vcxsrv-9d911bc1246139019e555f443e934677a067bc0a.tar.bz2 vcxsrv-9d911bc1246139019e555f443e934677a067bc0a.zip |
Merge remote-tracking branch 'origin/released'
27 files changed, 4134 insertions, 15271 deletions
diff --git a/X11/extensions/AUTHORS b/X11/extensions/AUTHORS deleted file mode 100644 index 78b329f13..000000000 --- a/X11/extensions/AUTHORS +++ /dev/null @@ -1,2 +0,0 @@ -Keith Packard, HP -Eric Anholt, Intel diff --git a/X11/extensions/COPYING b/X11/extensions/COPYING deleted file mode 100644 index 23135f95a..000000000 --- a/X11/extensions/COPYING +++ /dev/null @@ -1,201 +0,0 @@ -Copyright 1989, 1998 The Open Group - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation. - -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 -OPEN GROUP 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 Open Group 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 Open Group. - - -Copyright (c) 1997 by Silicon Graphics Computer Systems, Inc. -Permission to use, copy, modify, and distribute this -software and its documentation for any purpose and without -fee is hereby granted, provided that the above copyright -notice appear in all copies and that both that copyright -notice and this permission notice appear in supporting -documentation, and that the name of Silicon Graphics not be -used in advertising or publicity pertaining to distribution -of the software without specific prior written permission. -Silicon Graphics makes no representation about the suitability -of this software for any purpose. It is provided "as is" -without any express or implied warranty. -SILICON GRAPHICS DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS -SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY -AND FITNESS FOR A PARTICULAR PURPOSE. IN NO EVENT SHALL SILICON -GRAPHICS BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL -DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, -DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE -OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH -THE USE OR PERFORMANCE OF THIS SOFTWARE. - - -Copyright 1992 Network Computing Devices - -Permission to use, copy, modify, distribute, and sell this software and its -documentation for any purpose is hereby granted without fee, provided that -the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation, and that the name of NCD. not be used in advertising or -publicity pertaining to distribution of the software without specific, -written prior permission. NCD. makes no representations about the -suitability of this software for any purpose. It is provided "as is" -without express or implied warranty. - -NCD. DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING ALL -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO EVENT SHALL NCD. -BE LIABLE FOR ANY SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES -WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION -OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN -CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. - - -Copyright (c) 1994, 1995 Hewlett-Packard Company - -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 HEWLETT-PACKARD COMPANY 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 Hewlett-Packard -Company 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 Hewlett-Packard Company. - - -Copyright (c) 1996 Digital Equipment Corporation, Maynard, Massachusetts. - -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. - -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 -DIGITAL EQUIPMENT CORPORATION BE LIABLE FOR ANY CLAIM, DAMAGES, INCLUDING, -BUT NOT LIMITED TO CONSEQUENTIAL OR INCIDENTAL 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 Digital Equipment Corporation -shall not be used in advertising or otherwise to promote the sale, use or other -dealings in this Software without prior written authorization from Digital -Equipment Corporation. - - -Copyright 1988, 1989, 1990, 1994 Network Computing Devices, Inc. - -Permission to use, copy, modify, distribute, and sell this software and -its documentation for any purpose is hereby granted without fee, provided -that the above copyright notice appear in all copies and that both that -copyright notice and this permission notice appear in supporting -documentation, and that the name Network Computing Devices, Inc. not be -used in advertising or publicity pertaining to distribution of this -software without specific, written prior permission. - -THIS SOFTWARE IS PROVIDED `AS-IS'. NETWORK COMPUTING DEVICES, INC., -DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE, INCLUDING WITHOUT -LIMITATION ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A -PARTICULAR PURPOSE, OR NONINFRINGEMENT. IN NO EVENT SHALL NETWORK -COMPUTING DEVICES, INC., BE LIABLE FOR ANY DAMAGES WHATSOEVER, INCLUDING -SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES, INCLUDING LOSS OF USE, -DATA, OR PROFITS, EVEN IF ADVISED OF THE POSSIBILITY THEREOF, AND -REGARDLESS OF WHETHER IN AN ACTION IN CONTRACT, TORT OR NEGLIGENCE, -ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS -SOFTWARE. - - -Copyright 1991,1993 by Digital Equipment Corporation, Maynard, Massachusetts, -and Olivetti Research Limited, Cambridge, England. - - All Rights Reserved - -Permission to use, copy, modify, and distribute this software and its -documentation for any purpose and without fee is hereby granted, -provided that the above copyright notice appear in all copies and that -both that copyright notice and this permission notice appear in -supporting documentation, and that the names of Digital or Olivetti -not be used in advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - -DIGITAL AND OLIVETTI DISCLAIM ALL WARRANTIES WITH REGARD TO THIS -SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND -FITNESS, IN NO EVENT SHALL THEY BE LIABLE FOR ANY SPECIAL, INDIRECT OR -CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF -USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR -OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR -PERFORMANCE OF THIS SOFTWARE. - - -Copyright 1986, 1987, 1988 by Hewlett-Packard Corporation - -Permission to use, copy, modify, and distribute this -software and its documentation for any purpose and without -fee is hereby granted, provided that the above copyright -notice appear in all copies and that both that copyright -notice and this permission notice appear in supporting -documentation, and that the name of Hewlett-Packard not be used in -advertising or publicity pertaining to distribution of the -software without specific, written prior permission. - -Hewlett-Packard makes no representations about the -suitability of this software for any purpose. It is provided -"as is" without express or implied warranty. - -This software is not subject to any license of the American -Telephone and Telegraph Company or of the Regents of the -University of California. - - -Copyright © 2007-2008 Peter Hutterer - -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 (including the next -paragraph) 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 AUTHORS OR COPYRIGHT HOLDERS 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. diff --git a/X11/extensions/ChangeLog b/X11/extensions/ChangeLog deleted file mode 100644 index 716313832..000000000 --- a/X11/extensions/ChangeLog +++ /dev/null @@ -1,675 +0,0 @@ -commit 35741d9dc745532dc4af37cc07e256392e3880da -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Tue Aug 3 11:03:49 2010 -0400 - - specs: convert protocol geproto.txt to DocBook XML - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit 260da6ca1dec9abde11c064d0aeac01f695a1596 -Author: Matt Dew <matt@osource.org> -Date: Mon Aug 2 15:10:04 2010 -0400 - - specs: convert protocol xtest.ms from xorg-docs to DocBook XML - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit 4240526710d837cf06502521ee58c6a4538c6c0e -Author: Matt Dew <matt@osource.org> -Date: Mon Aug 2 13:43:32 2010 -0400 - - specs: convert protocol buffer.ms from xorg-docs to DocBook XML - - multibuf.xml - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit c86700c0c87de8d6ec7f085d06e9a48558bb5118 -Author: Matt Dew <matt@osource.org> -Date: Mon Aug 2 13:35:26 2010 -0400 - - specs: convert protocol evi.ms from xorg-docs to DocBook XML - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit f825b85bd8bde4b78c6e3d0b05b713e6f48a2ff5 -Author: Matt Dew <matt@osource.org> -Date: Mon Aug 2 13:28:07 2010 -0400 - - specs: convert protocol appgroup.ms from xorg-docs to DocBook XML - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit 99a5fde423a301167cb825edbf718de7af9f1158 -Author: Matt Dew <matt@osource.org> -Date: Mon Aug 2 13:21:31 2010 -0400 - - specs: convert protocol tog-cup.ms from xorg-docs to DocBook XML - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit fc2c585ab9bfe0815a917c897e0b463bf04f8475 -Author: Matt Dew <matt@osource.org> -Date: Mon Aug 2 10:46:54 2010 -0400 - - specs: convert protocol dpms.ms specs from xorg-docs module to DocBook XML - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit 7c9b2197cbb0f787b6330243eb777f612251064d -Author: Matt Dew <matt@osource.org> -Date: Mon Aug 2 10:40:47 2010 -0400 - - specs: convert protocol shm.ms specs from xorg-docs module to DocBook XML - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit cf083a0d35da6665b2aebc6eea4f65009c32411b -Author: Matt Dew <matt@osource.org> -Date: Sun Aug 1 20:41:48 2010 -0400 - - specs: convert protocol shape.ms specs from xorg-docs module to DocBook XML - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit 69996150256954ef71c45ee7727fea96e02f8db2 -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Wed Jun 30 13:39:21 2010 -0400 - - specs: move geproto.txt in the specs directory - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit 3f1718e39c73475fb8384e61b6dc78f313d926f9 -Author: Matt Dew <matt@osource.org> -Date: Wed Jun 30 13:21:28 2010 -0400 - - specs: convert protocol .ms specs from xorg-docs module to DocBook XML - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit c4595fad1d79c0957d3f4dff6ef56d72ae8cc38d -Author: Aaron Plattner <aplattner@nvidia.com> -Date: Tue Mar 30 09:54:26 2010 -0700 - - XGE: Don't reserve an extension event. - - The Generic Event Extension extension uses the "GenericEvent" core event type, - so it doesn't need to also reserve an extension event. - - Signed-off-by: Aaron Plattner <aplattner@nvidia.com> - Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> - -commit 5f2cc1e2b99d45a612204a86583abb386907be04 -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sun Mar 28 19:25:52 2010 -0400 - - config: update AC_PREREQ statement to 2.60 - - Unrelated to the previous patches, the new value simply reflects - the reality that the minimum level for autoconf to configure - all x.org modules is 2.60 dated June 2006. - - ftp://ftp.gnu.org/gnu/autoconf/autoconf-2.60.tar.gz - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit 21f7dc38add3bda551216a0fa6319d9f3f9af99a -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sun Mar 28 19:00:31 2010 -0400 - - config: remove the pkgconfig pc.in file from EXTRA_DIST - - Automake always includes it in the tarball. - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit 650615405c327398b5708787bc19198cbb864d20 -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sun Mar 28 17:51:29 2010 -0400 - - config: install and distribute geproto.txt - - It will now be installed in $docdir in addition - to being distributed in the tarball. - - Signed-off-by: Gaetan Nadon <memsize@videotron.ca> - -commit 37f6affde561251df61c7011f9d1d83b006d2fbe -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sun Nov 22 19:24:48 2009 -0500 - - Makefile.am: add ChangeLog and INSTALL on MAINTAINERCLEANFILES - - Now that the INSTALL file is generated. - Allows running make maintainer-clean. - -commit e9fa939ef8515bca5f8cde85a91b3ae0ae456de7 -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Mon Nov 16 11:13:30 2009 -0500 - - README: file created or updated #24206 - - Contains a set of URLs to freedesktop.org. - -commit 3690603986929a706acd76fc0b33132fe0178129 -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sun Nov 15 19:45:27 2009 -0500 - - Makefile.am: ChangeLog not required: EXTRA_DIST or *CLEANFILES #24432 - - ChangeLog filename is known to Automake and requires no further - coding in the makefile. - -commit e52cb6ef1baa65c1688b3160727214efae57b0e2 -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sun Nov 15 18:31:29 2009 -0500 - - Makefile.am: INSTALL file is missing or incorrect #24206 - - The standard GNU file on building/installing tarball is copied - using the XORG_INSTALL macro contained in XORG_DEFAULT_OPTIONS - Add INSTALL target - -commit bfaecf2a80ef1bcbfa6243fdb1bfc2e335f86a10 -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sun Nov 15 18:11:36 2009 -0500 - - configure.ac: deploy the new XORG_DEFAULT_OPTIONS #24242 - - This macro aggregate a number of existing macros that sets commmon - X.Org components configuration options. It shields the configuration file from - future changes. - -commit 182e739d8ff1f9bb8ddb8fcff8737dabde96c47f -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sun Nov 15 13:55:25 2009 -0500 - - configure.ac: AM_MAINTAINER_MODE missing #24238 - - This turns off maintainer mode build rules in tarballs. - Works in conjunction with autogen.sh --enable-maintainer-mode - -commit 4b0b3afee88fdefaab2d9aa690dc5dc465964316 -Author: Gaetan Nadon <memsize@videotron.ca> -Date: Sat Nov 14 18:26:47 2009 -0500 - - .gitignore: use common defaults with custom section # 24239 - - Using common defaults will reduce errors and maintenance. - Only the very small or inexistent custom section need periodic maintenance - when the structure of the component changes. Do not edit defaults. - -commit 9d5e140111ef0e7e0c9d30d7e0acf8c43a248816 -Author: Keith Packard <keithp@keithp.com> -Date: Tue Nov 3 14:41:33 2009 -0800 - - Allow old servers to build with new headers - - This provides header compatibility back to X server version 1.6 at - least (that's all I tested). - - Signed-off-by: Keith Packard <keithp@keithp.com> - Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> - -commit 987aeb9bd1915a655f31e250ee9c02d04927b150 -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Tue Aug 25 09:30:15 2009 +1000 - - xextproto 7.1.1 - -commit 55a0bbdde9b27b8dbc6e75d41c51af3f92dea6e3 -Author: Eduard Bagrov <ebagrov@linuxtesting.org> -Date: Fri Aug 21 18:48:19 2009 +0200 - - Fix XSyncValueSubtract typo - - X.Org bug#23438 <http://bugs.freedesktop.org/show_bug.cgi?id=23438> - - Signed-off-by: Julien Cristau <jcristau@debian.org> - -commit 23ac4d5235862d51f0cfb080ad2118a9fb181673 -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Wed Aug 5 15:09:11 2009 +1000 - - xextproto 7.1.0 - -commit 5ffa318ddb35308e3a87122bfb3944e3201532ba -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Wed Aug 5 15:06:52 2009 +1000 - - lbxproto: remove debug macro and definition of lbxDebug. - - This should not be in the protocol headers. - - Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> - -commit 5a266968b1ced367df1a47dc9729313c85be0516 -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Wed Jul 22 20:26:35 2009 +1000 - - Bump to 7.0.99.3 - - Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> - -commit d7ead7a591da851f6bb2efecdd35b63836df4ed0 -Author: Magnus Kessler <Magnus.Kessler@gmx.net> -Date: Wed Jul 22 09:37:38 2009 +0100 - - Rename xtest.h to xtestconst.h to avoid a collision with XTest.h on case-insensitive filesystems - - Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> - -commit 2fd05eca7dd501c58b284d9cceb73d6146672b0a -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Tue Jul 21 13:35:58 2009 +1000 - - Bump to 7.0.99.2 - - Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> - -commit a049c37f789f881fad09e60a061488cba2b4072e -Author: Jon TURNEY <jon.turney@dronecode.org.uk> -Date: Mon Jul 20 22:42:59 2009 +0100 - - Rename mitmisc.h to mitmiscconst.h to avoid a collision with MITMisc.h on case-insensitive filesystems - - Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> - -commit 609c3b03fbed24f05d636d98dad9febc7226624c -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Wed Jul 15 16:28:12 2009 +1000 - - Remove RCS tags. - -commit 6e9e47edf97a0bb504b4b65f5ef066f3d5e3d34b -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Wed Jul 15 16:20:13 2009 +1000 - - Bump to 7.0.99.1 - -commit ef8766e44c5cdd1e3ba7ebabf576e2de77f57a09 -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Thu Jun 25 11:43:12 2009 +1000 - - xtestext1: split xtestext1.h header into xtestext1proto.h - -commit a1f0b58efce74176c71070818fa98c25021bb25e -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Thu Jun 25 11:36:22 2009 +1000 - - sync: remove sync.h library header, split into syncconst.h - - Rename syncstr.h to syncproto.h - -commit 35ec2669091197a4e5b3c56d79ea26ae87759b16 -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Thu Jun 25 11:32:29 2009 +1000 - - shape: remove shape.h, split into shapeconst.h - - Rename shapestr.h to shapeproto.h - -commit 7cfdafd5ec565502a40e9e1f5b3edbb2be6aafbc -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Thu Jun 25 11:30:17 2009 +1000 - - security: remove security.h, split into secur.h - - Rename securstr.h to securproto.h - -commit 19f527b4abe17b58dd78ec988a11c8081166cf01 -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Thu Jun 25 11:28:02 2009 +1000 - - multibuf: remove multibuf.h, split into multibufconst.h - -commit 4b7fff5309f3e51e17372e3eaf91ee01c00ffd08 -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Thu Jun 25 11:19:04 2009 +1000 - - remove extutil.h, pure library header - -commit 0af7f152239a0f14fc85acd146845c784bb1cd6a -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Thu Jun 25 11:18:06 2009 +1000 - - dpms: remove dpms.h library header, split into dpmsconst.h - -commit ac0dfab3fe1ae9c9633696825636a4bcfa14dfd6 -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Thu Jun 25 11:14:14 2009 +1000 - - Remove Xext.h and Xge.h - pure library headers. - -commit 413572e112e24aa7a28632e13a8aa15c9fdaa57e -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Thu Jun 25 11:10:01 2009 +1000 - - Xdbe: remove Xdbe.h library header, split into dbe.h - - Rename Xdbeproto to dbeproto.h - -commit d2574e8804a204653bda1786c1ece3437f7901a2 -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Thu Jun 25 11:04:12 2009 +1000 - - Xcup: remove XCup.h library header, split into cup.h - - Rename Xcupstr.h to cupproto.h - -commit 38daa9d8d9d86f3b9df12dd5032959822b7c0a45 -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Thu Jun 25 10:59:10 2009 +1000 - - Xag: remove Xag.h library header, split into Xagconst.h - -commit 8cb2568c4a7df1eb0482009bf9150912e98969e6 -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Thu Jun 25 10:54:21 2009 +1000 - - XTest: remove XTest.h, split into xtest.h and xtestproto.h - - To avoid conflicts, xtest.h uses a XTEST_CONST_H include barrier. - -commit c63abdd1eb7bc1d8ae4e25073ef2f29d94991e2b -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Thu Jun 25 10:46:33 2009 +1000 - - XShm: remove XShm.h library header, split into shm.h, shmproto.h - - Removing Xlib function prototypes. - Move extension name to shm.h - Move protocol request opcodes to shmproto.h - -commit 0adb09e032e3bd56426620b19438be9c0c66dd54 -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Thu Jun 25 10:43:32 2009 +1000 - - XLbx: remove XLbx library headers, split into lbx.h, lbxproto.h - - Remove Xlib function prototypes. - Move extension name into lbx.h, move protocol opcodes into lbxproto.h - -commit 727003b51844dd1bd41b668bedfa92d2bb7ef964 -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Thu Jun 25 10:30:40 2009 +1000 - - XEVI: remove XEVI.h library header, split into EVIproto.h - - Remove Xlib function prototypes. - Move protocol opcodes to EVIproto.h - Move extension name from EVIproto.h into EVI.h - -commit 3770d4bd035e43c8e2228d45184d9d398fccb325 -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Thu Jun 25 10:24:57 2009 +1000 - - MITMisc: remove MITMisc.h library header, split into mitmistproto.h - - Moving extension name from mitmiststr.h into mitmisc.h. - Removing Xlib function prototypes from mitmisc.h. - Moving protocol request opcodes into mitmiscproto.h - - Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net> - -commit 57d09e47d05fce0d6df4060b2eff9a8efcc25b2f -Author: Adam Jackson <ajax@redhat.com> -Date: Wed Jul 15 13:41:36 2009 -0400 - - Remove most LBX headers. - - XLbx.h and lbxstr.h are required for libXext to build, and we're not - allowed to remove API from that. - -commit 7629def0733b82687f2879095451d72e42e13db7 -Author: James Cloos <cloos@jhcloos.com> -Date: Sat Mar 28 14:20:38 2009 -0400 - - C sucks: define XEventClass in terms of unsigned int, not CARD32. - - Apparently pulling in Xmd.h here breaks qt, since they both define an - INT32 type (and incompatible ones even, since Xmd's is unsigned long on - ILP32 because whoever wrote Xmd.h is a C novice). - - (Based on inputproto commit b5cbe2d93f6c0129b8f29da97778f6d1b15c38f9. - Patch submitted to xorg@ in <20090117121713.46bf3332@family.dyweni.com>.) - -commit ac98d8c559dc798f09e35d13f51cb1116c6378bb -Author: Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br> -Date: Thu Jan 29 16:22:20 2009 -0200 - - Bump to libXext Version 7.0.5. - - Add required change to correct #18038 - (patch to avoid gcc warning in libXext) - -commit 8b5b82ec72dd6952d0664655715a0a47951454f4 -Author: Paulo Cesar Pereira de Andrade <pcpa@mandriva.com.br> -Date: Tue Jan 27 20:06:28 2009 -0200 - - Janitor: Correct make distcheck and dont distribute autogen.sh - -commit fa652c6013a5d3ae8106814d97245fdbac3557ac -Author: Julien Cristau <jcristau@debian.org> -Date: Tue Dec 23 16:16:46 2008 +0100 - - Add geproto.txt to EXTRA_DIST - -commit bd7f3e16b5a5520f0abb8c481f23a19219d26c7f -Author: Julien Cristau <jcristau@debian.org> -Date: Tue Dec 23 15:45:13 2008 +0100 - - COPYING: add Peter Hutterer's license and copyright notice - - Taken from Xge.h - -commit e1773d8ad7d36535f856dcb308be9a1b0601c1fc -Author: Peter Hutterer <peter.hutterer@who-t.net> -Date: Thu Dec 18 10:10:42 2008 +1000 - - Bump to 7.0.4 - -commit e7f0c4261c59da82da1c151dd1bd0d143a32906a -Author: Peter Hutterer <peter.hutterer@redhat.com> -Date: Mon Dec 1 14:44:03 2008 +1000 - - Clean up XGE documentation. - -commit b0080664e432f8ee569ce099a536c0232dd64d3e -Author: Peter Hutterer <peter.hutterer@redhat.com> -Date: Mon Dec 1 15:41:16 2008 +1000 - - geproto: remote trailing whitespaces. - -commit f7e5f23e37e62cc0a981d9b002b69d90b8a7daa9 -Author: Peter Hutterer <peter.hutterer@redhat.com> -Date: Fri Sep 26 14:54:19 2008 +0930 - - Xge.h: include Xmd.h for CARD8 - -commit db08133016b421ef12c65db9c4a2819078f01b06 -Author: Peter Hutterer <peter@cs.unisa.edu.au> -Date: Wed May 28 17:18:14 2008 +0930 - - Bump to 7.0.3. - -commit 801650f0d15b4497c63d056559ad98a8ca82f271 -Author: Peter Hutterer <peter@cs.unisa.edu.au> -Date: Mon May 12 17:26:02 2008 +0930 - - Xge: replace copyrights with standard format from xserver COPYING. - -commit 9dc48efe2b3136756613ae00afd706f9a52d6f10 -Merge: 69356e4 a07a30f -Author: Peter Hutterer <peter@cs.unisa.edu.au> -Date: Mon May 12 17:22:14 2008 +0930 - - Merge branch 'master' into xge - -commit a07a30f9922e9768e2cf00cc2e479978242c58a8 -Author: James Cloos <cloos@jhcloos.com> -Date: Thu Dec 6 16:39:10 2007 -0500 - - Replace static ChangeLog with dist-hook to generate from git log - -commit 087c2ccc7e348e530422a578059173c959aa5a78 -Author: James Cloos <cloos@jhcloos.com> -Date: Mon Sep 3 05:54:25 2007 -0400 - - Add *~ to .gitignore to skip patch/emacs droppings - -commit 69356e4165f11f3ed4b377d29df038549191a91e -Author: Peter Hutterer <peter@cs.unisa.edu.au> -Date: Thu May 17 19:40:15 2007 +0930 - - Add XGE header files and protocol description. - -commit 88c24404b44def76a56f52a216a8cf2e0991c3e6 -Author: Alan Coopersmith <alan.coopersmith@sun.com> -Date: Fri Jul 14 18:56:41 2006 -0700 - - renamed: .cvsignore -> .gitignore - -commit a63b4a9d7ebc5929ce9172b10743396cd36addb8 -Author: Alan Coopersmith <Alan.Coopersmith@sun.com> -Date: Tue Jun 27 16:25:22 2006 +0000 - - Remove Xserver API for appgroup extension [Will break Xorg server builds - prior to 2006-06-21 / git commit - 77c947b900faf34f425eef1549d8210c475e093b] - -commit 7bcd3400a8043dee6399680ddc6592747b30f599 -Author: Alan Coopersmith <Alan.Coopersmith@sun.com> -Date: Wed Jun 21 21:20:22 2006 +0000 - - Remove Xserver API for security extension (#ifdef _SECURITY_SERVER) [Will - break Xorg server builds prior to 2006-06-20 / git commit - d44b2a0a57fb89741173c31676af0ccc822387dc] - -commit cb67dc36362b018f3a9faa5c4558ce99dbfb2334 -Author: Kevin E Martin <kem@kem.org> -Date: Thu Dec 15 00:24:39 2005 +0000 - - Update package version number for final X11R7 release candidate. - -commit 9f8dd222022cfafe3ca6467e02232af7d4d7934b -Author: Kevin E Martin <kem@kem.org> -Date: Wed Oct 19 02:48:15 2005 +0000 - - Update package version number for RC1 release. - -commit cba4432f0d088517f2475881e93cf4dda96a7f94 -Author: Eric Anholt <anholt@freebsd.org> -Date: Tue Aug 2 19:19:40 2005 +0000 - - Add basic .cvsignore files for proto modules. - -commit 790de7da644c6f9114a715b99789253a9c79b0a5 -Author: Kevin E Martin <kem@kem.org> -Date: Fri Jul 29 21:22:57 2005 +0000 - - Various changes preparing packages for RC0: - - Verify and update package version numbers as needed - - Implement versioning scheme - - Change bug address to point to bugzilla bug entry form - - Disable loadable i18n in libX11 by default (use --enable-loadable-i18n to - reenable it) - - Fix makedepend to use pkgconfig and pass distcheck - - Update build script to build macros first - - Update modular Xorg version - -commit cf67142f46ec2f754f2b3347b21139b66b7167cf -Author: Adam Jackson <ajax@nwnk.net> -Date: Fri Jun 10 04:01:14 2005 +0000 - - Bug #2799: Input shape. (Keith Packard) - -commit b855e49cf845cf814fa1d8a9abcd65cb14356644 -Author: Adam Jackson <ajax@nwnk.net> -Date: Thu May 19 00:22:40 2005 +0000 - - revert last change, didn't do right thing at all, sorry for the noise - -commit 1e1659043f908d2e648d0ee73f7f33f5fc79813b -Author: Adam Jackson <ajax@nwnk.net> -Date: Thu May 19 00:10:19 2005 +0000 - - Require automake 1.7 in AM_INIT_AUTOMAKE - -commit 1d316d39381cf0981b2f9687cd2f0200c92961ea -Author: Josh Triplett <josh@speakeasy.net> -Date: Wed May 18 08:09:13 2005 +0000 - - Add COPYING file for XExt. Note that there are several similar but - subtly-different licenses included; in particular, there are some - copyright holders with multiple slightly-different licenses included. - -commit f3c7759e6dc671ab6db160e739d00133e9996296 -Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk> -Date: Mon May 9 18:20:06 2005 +0000 - - Change all the protonames from <extension>Ext to <extension>Proto. - -commit 474a31667a8addb29a0f115790df2910400c4081 -Author: Kevin E Martin <kem@kem.org> -Date: Fri May 6 01:46:32 2005 +0000 - - Initial build system files for proto module. - -commit be09530f849ec00001fc0575816030b7a5dde05c -Author: Roland Mainz <roland.mainz@nrubsig.org> -Date: Tue Dec 7 23:37:37 2004 +0000 - - //bugs.freedesktop.org/show_bug.cgi?id=830): Get DPMS header file - (include/extensions/dpms.h) working with C++ applications. Patch by - Kevin DeKorte <kdekorte@yahoo.com> and Roland Mainz - <roland.mainz@nrubsig.org>. - -commit da24110547ed45c08d707dbffb2972f043dbc1b1 -Author: Egbert Eich <eich@suse.de> -Date: Fri Apr 23 18:43:06 2004 +0000 - - Merging XORG-CURRENT into trunk - -commit 8fc2a0fd8ac1b777a35b01d65934ee100b304d20 -Author: Egbert Eich <eich@suse.de> -Date: Sun Mar 14 08:31:36 2004 +0000 - - Importing vendor version xf86-4_4_99_1 on Sun Mar 14 00:26:39 PST 2004 - -commit e7af2a9e4c47a46b3a68a2efebb171dc7872c341 -Author: Egbert Eich <eich@suse.de> -Date: Wed Mar 3 12:10:54 2004 +0000 - - Importing vendor version xf86-4_4_0 on Wed Mar 3 04:09:24 PST 2004 - -commit abb02cac08ca1d7d3a64b361df5d1be6f15c6440 -Author: Egbert Eich <eich@suse.de> -Date: Thu Feb 26 13:35:14 2004 +0000 - - readding XFree86's cvs IDs - -commit c9d6200d559e57f4ca67291213cd282c7437c3c7 -Author: Egbert Eich <eich@suse.de> -Date: Thu Feb 26 09:22:28 2004 +0000 - - Importing vendor version xf86-4_3_99_903 on Wed Feb 26 01:21:00 PST 2004 - -commit 023a09fe640f876478157e5b4cd9cfec1452da4b -Author: Kaleb Keithley <kaleb@freedesktop.org> -Date: Tue Nov 25 19:28:02 2003 +0000 - - XFree86 4.3.99.16 Bring the tree up to date for the Cygwin folks - -commit 343e78e15048e6a25791449bfc7566c07ccddf28 -Author: Kaleb Keithley <kaleb@freedesktop.org> -Date: Fri Nov 14 16:48:43 2003 +0000 - - XFree86 4.3.0.1 - -commit 9a41c9c6452753ac1911a585e59982e8e5186c6b -Author: Kaleb Keithley <kaleb@freedesktop.org> -Date: Fri Nov 14 15:54:35 2003 +0000 - - R6.6 is the Xorg base-line diff --git a/X11/extensions/INSTALL b/X11/extensions/INSTALL deleted file mode 100644 index e69de29bb..000000000 --- a/X11/extensions/INSTALL +++ /dev/null diff --git a/X11/extensions/Makefile.am b/X11/extensions/Makefile.am deleted file mode 100644 index bbe5dd42e..000000000 --- a/X11/extensions/Makefile.am +++ /dev/null @@ -1,59 +0,0 @@ -SUBDIRS=specs - -xextdir = $(includedir)/X11/extensions -xext_HEADERS = \ - dpmsconst.h \ - dpmsproto.h \ - ge.h \ - geproto.h \ - lbx.h \ - lbxproto.h \ - mitmiscconst.h \ - mitmiscproto.h \ - multibufconst.h \ - multibufproto.h \ - secur.h \ - securproto.h \ - shapeconst.h \ - shapeproto.h \ - shm.h \ - shmproto.h \ - syncconst.h \ - syncproto.h \ - ag.h \ - agproto.h \ - cup.h \ - cupproto.h \ - dbe.h \ - dbeproto.h \ - EVI.h \ - EVIproto.h \ - xtestext1proto.h \ - xtestext1const.h \ - xtestconst.h \ - xtestproto.h - -# -# These headers allow old servers to be built with -# new headers -# -compatdir = $(xextdir) -compat_HEADERS = \ - shapestr.h \ - shmstr.h \ - syncstr.h - -pkgconfigdir = $(libdir)/pkgconfig -pkgconfig_DATA = xextproto.pc - -MAINTAINERCLEANFILES = ChangeLog INSTALL - -.PHONY: ChangeLog INSTALL - -INSTALL: - $(INSTALL_CMD) - -ChangeLog: - $(CHANGELOG_CMD) - -dist-hook: ChangeLog INSTALL diff --git a/X11/extensions/NEWS b/X11/extensions/NEWS deleted file mode 100644 index 29b8edd86..000000000 --- a/X11/extensions/NEWS +++ /dev/null @@ -1,2 +0,0 @@ -2004-01-05: Version 1.0 released. -2007-01-09: Version 1.1 released, adding the DamageAdd request.
\ No newline at end of file diff --git a/X11/extensions/README b/X11/extensions/README deleted file mode 100644 index bb6fc790c..000000000 --- a/X11/extensions/README +++ /dev/null @@ -1,42 +0,0 @@ - X Protocol Extensions - -Extension names: - -DOUBLE-BUFFER -DPMS -Extended-Visual-Information -Generic Event Extension -LBX -MIT-SHM -MIT-SUNDRY-NONSTANDARD -Multi-Buffering -SECURITY -SHAPE -SYNC -TOG-CUP -XC-APPGROUP -XTEST - -All questions regarding this software should be directed at the -Xorg mailing list: - - http://lists.freedesktop.org/mailman/listinfo/xorg - -Please submit bug reports to the Xorg bugzilla: - - https://bugs.freedesktop.org/enter_bug.cgi?product=xorg - -The master development code repository can be found at: - - git://anongit.freedesktop.org/git/xorg/proto/xextproto - - http://cgit.freedesktop.org/xorg/proto/xextproto - -For patch submission instructions, see: - - http://www.x.org/wiki/Development/Documentation/SubmittingPatches - -For more information on the git code manager, see: - - http://wiki.x.org/wiki/GitPage - diff --git a/X11/extensions/aclocal.m4 b/X11/extensions/aclocal.m4 deleted file mode 100644 index 6a738bfa2..000000000 --- a/X11/extensions/aclocal.m4 +++ /dev/null @@ -1,2352 +0,0 @@ -# generated automatically by aclocal 1.11.1 -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2007, 2008, 2009 Free Software Foundation, Inc. -# This file 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. - -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -m4_if(m4_defn([AC_AUTOCONF_VERSION]), [2.63],, -[m4_warning([this file was generated for autoconf 2.63. -You have another version of autoconf. It may work, but is not guaranteed to. -If you have problems, you may need to regenerate the build system entirely. -To do so, use the procedure documented by the package, typically `autoreconf'.])]) - -# pkg.m4 - Macros to locate and utilise pkg-config. -*- Autoconf -*- -# -# Copyright © 2004 Scott James Remnant <scott@netsplit.com>. -# -# 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 2 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, write to the Free Software -# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. -# -# As a special exception to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -# PKG_PROG_PKG_CONFIG([MIN-VERSION]) -# ---------------------------------- -AC_DEFUN([PKG_PROG_PKG_CONFIG], -[m4_pattern_forbid([^_?PKG_[A-Z_]+$]) -m4_pattern_allow([^PKG_CONFIG(_PATH)?$]) -AC_ARG_VAR([PKG_CONFIG], [path to pkg-config utility])dnl -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - AC_PATH_TOOL([PKG_CONFIG], [pkg-config]) -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=m4_default([$1], [0.9.0]) - AC_MSG_CHECKING([pkg-config is at least version $_pkg_min_version]) - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) - PKG_CONFIG="" - fi - -fi[]dnl -])# PKG_PROG_PKG_CONFIG - -# PKG_CHECK_EXISTS(MODULES, [ACTION-IF-FOUND], [ACTION-IF-NOT-FOUND]) -# -# Check to see whether a particular set of modules exists. Similar -# to PKG_CHECK_MODULES(), but does not set variables or print errors. -# -# -# Similar to PKG_CHECK_MODULES, make sure that the first instance of -# this or PKG_CHECK_MODULES is called, or make sure to call -# PKG_CHECK_EXISTS manually -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_EXISTS], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -if test -n "$PKG_CONFIG" && \ - AC_RUN_LOG([$PKG_CONFIG --exists --print-errors "$1"]); then - m4_ifval([$2], [$2], [:]) -m4_ifvaln([$3], [else - $3])dnl -fi]) - - -# _PKG_CONFIG([VARIABLE], [COMMAND], [MODULES]) -# --------------------------------------------- -m4_define([_PKG_CONFIG], -[if test -n "$$1"; then - pkg_cv_[]$1="$$1" - elif test -n "$PKG_CONFIG"; then - PKG_CHECK_EXISTS([$3], - [pkg_cv_[]$1=`$PKG_CONFIG --[]$2 "$3" 2>/dev/null`], - [pkg_failed=yes]) - else - pkg_failed=untried -fi[]dnl -])# _PKG_CONFIG - -# _PKG_SHORT_ERRORS_SUPPORTED -# ----------------------------- -AC_DEFUN([_PKG_SHORT_ERRORS_SUPPORTED], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -if $PKG_CONFIG --atleast-pkgconfig-version 0.20; then - _pkg_short_errors_supported=yes -else - _pkg_short_errors_supported=no -fi[]dnl -])# _PKG_SHORT_ERRORS_SUPPORTED - - -# PKG_CHECK_MODULES(VARIABLE-PREFIX, MODULES, [ACTION-IF-FOUND], -# [ACTION-IF-NOT-FOUND]) -# -# -# Note that if there is a possibility the first call to -# PKG_CHECK_MODULES might not happen, you should be sure to include an -# explicit call to PKG_PROG_PKG_CONFIG in your configure.ac -# -# -# -------------------------------------------------------------- -AC_DEFUN([PKG_CHECK_MODULES], -[AC_REQUIRE([PKG_PROG_PKG_CONFIG])dnl -AC_ARG_VAR([$1][_CFLAGS], [C compiler flags for $1, overriding pkg-config])dnl -AC_ARG_VAR([$1][_LIBS], [linker flags for $1, overriding pkg-config])dnl - -pkg_failed=no -AC_MSG_CHECKING([for $1]) - -_PKG_CONFIG([$1][_CFLAGS], [cflags], [$2]) -_PKG_CONFIG([$1][_LIBS], [libs], [$2]) - -m4_define([_PKG_TEXT], [Alternatively, you may set the environment variables $1[]_CFLAGS -and $1[]_LIBS to avoid the need to call pkg-config. -See the pkg-config man page for more details.]) - -if test $pkg_failed = yes; then - _PKG_SHORT_ERRORS_SUPPORTED - if test $_pkg_short_errors_supported = yes; then - $1[]_PKG_ERRORS=`$PKG_CONFIG --short-errors --print-errors "$2" 2>&1` - else - $1[]_PKG_ERRORS=`$PKG_CONFIG --print-errors "$2" 2>&1` - fi - # Put the nasty error message in config.log where it belongs - echo "$$1[]_PKG_ERRORS" >&AS_MESSAGE_LOG_FD - - ifelse([$4], , [AC_MSG_ERROR(dnl -[Package requirements ($2) were not met: - -$$1_PKG_ERRORS - -Consider adjusting the PKG_CONFIG_PATH environment variable if you -installed software in a non-standard prefix. - -_PKG_TEXT -])], - [AC_MSG_RESULT([no]) - $4]) -elif test $pkg_failed = untried; then - ifelse([$4], , [AC_MSG_FAILURE(dnl -[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. - -_PKG_TEXT - -To get pkg-config, see <http://pkg-config.freedesktop.org/>.])], - [$4]) -else - $1[]_CFLAGS=$pkg_cv_[]$1[]_CFLAGS - $1[]_LIBS=$pkg_cv_[]$1[]_LIBS - AC_MSG_RESULT([yes]) - ifelse([$3], , :, [$3]) -fi[]dnl -])# PKG_CHECK_MODULES - -dnl xorg-macros.m4. Generated from xorg-macros.m4.in xorgversion.m4 by configure. -dnl -dnl Copyright 2005-2006 Sun Microsystems, Inc. All rights reserved. -dnl -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 to deal in the Software without restriction, including without limitation -dnl the rights to use, copy, modify, merge, publish, distribute, sublicense, -dnl and/or sell copies of the Software, and to permit persons to whom the -dnl Software is furnished to do so, subject to the following conditions: -dnl -dnl The above copyright notice and this permission notice (including the next -dnl paragraph) shall be included in all copies or substantial portions of the -dnl Software. -dnl -dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -dnl IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -dnl FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL -dnl THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -dnl LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING -dnl FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER -dnl DEALINGS IN THE SOFTWARE. - -# XORG_MACROS_VERSION(required-version) -# ------------------------------------- -# Minimum version: 1.1.0 -# -# If you're using a macro added in Version 1.1 or newer, include this in -# your configure.ac with the minimum required version, such as: -# XORG_MACROS_VERSION(1.1) -# -# To ensure that this macro is defined, also add: -# m4_ifndef([XORG_MACROS_VERSION], -# [m4_fatal([must install xorg-macros 1.1 or later before running autoconf/autogen])]) -# -# -# See the "minimum version" comment for each macro you use to see what -# version you require. -m4_defun([XORG_MACROS_VERSION],[ -m4_define([vers_have], [1.10.0]) -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_if(m4_cmp(maj_have, maj_needed), 0,, - [m4_fatal([xorg-macros major version ]maj_needed[ is required but ]vers_have[ found])]) -m4_if(m4_version_compare(vers_have, [$1]), -1, - [m4_fatal([xorg-macros version $1 or higher is required but ]vers_have[ found])]) -m4_undefine([vers_have]) -m4_undefine([maj_have]) -m4_undefine([maj_needed]) -]) # XORG_MACROS_VERSION - -# XORG_PROG_RAWCPP() -# ------------------ -# Minimum version: 1.0.0 -# -# Find cpp program and necessary flags for use in pre-processing text files -# such as man pages and config files -AC_DEFUN([XORG_PROG_RAWCPP],[ -AC_REQUIRE([AC_PROG_CPP]) -AC_PATH_PROGS(RAWCPP, [cpp], [${CPP}], - [$PATH:/bin:/usr/bin:/usr/lib:/usr/libexec:/usr/ccs/lib:/usr/ccs/lbin:/lib]) - -# Check for flag to avoid builtin definitions - assumes unix is predefined, -# which is not the best choice for supporting other OS'es, but covers most -# of the ones we need for now. -AC_MSG_CHECKING([if $RAWCPP requires -undef]) -AC_LANG_CONFTEST([Does cpp redefine unix ?]) -if test `${RAWCPP} < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then - AC_MSG_RESULT([no]) -else - if test `${RAWCPP} -undef < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then - RAWCPPFLAGS=-undef - AC_MSG_RESULT([yes]) - # under Cygwin unix is still defined even with -undef - elif test `${RAWCPP} -undef -ansi < conftest.$ac_ext | grep -c 'unix'` -eq 1 ; then - RAWCPPFLAGS="-undef -ansi" - AC_MSG_RESULT([yes, with -ansi]) - else - AC_MSG_ERROR([${RAWCPP} defines unix with or without -undef. I don't know what to do.]) - fi -fi -rm -f conftest.$ac_ext - -AC_MSG_CHECKING([if $RAWCPP requires -traditional]) -AC_LANG_CONFTEST([Does cpp preserve "whitespace"?]) -if test `${RAWCPP} < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then - AC_MSG_RESULT([no]) -else - if test `${RAWCPP} -traditional < conftest.$ac_ext | grep -c 'preserve \"'` -eq 1 ; then - RAWCPPFLAGS="${RAWCPPFLAGS} -traditional" - AC_MSG_RESULT([yes]) - else - AC_MSG_ERROR([${RAWCPP} does not preserve whitespace with or without -traditional. I don't know what to do.]) - fi -fi -rm -f conftest.$ac_ext -AC_SUBST(RAWCPPFLAGS) -]) # XORG_PROG_RAWCPP - -# XORG_MANPAGE_SECTIONS() -# ----------------------- -# Minimum version: 1.0.0 -# -# Determine which sections man pages go in for the different man page types -# on this OS - replaces *ManSuffix settings in old Imake *.cf per-os files. -# Not sure if there's any better way than just hardcoding by OS name. -# Override default settings by setting environment variables -# Added MAN_SUBSTS in version 1.8 -# Added AC_PROG_SED in version 1.8 - -AC_DEFUN([XORG_MANPAGE_SECTIONS],[ -AC_REQUIRE([AC_CANONICAL_HOST]) -AC_REQUIRE([AC_PROG_SED]) - -if test x$APP_MAN_SUFFIX = x ; then - APP_MAN_SUFFIX=1 -fi -if test x$APP_MAN_DIR = x ; then - APP_MAN_DIR='$(mandir)/man$(APP_MAN_SUFFIX)' -fi - -if test x$LIB_MAN_SUFFIX = x ; then - LIB_MAN_SUFFIX=3 -fi -if test x$LIB_MAN_DIR = x ; then - LIB_MAN_DIR='$(mandir)/man$(LIB_MAN_SUFFIX)' -fi - -if test x$FILE_MAN_SUFFIX = x ; then - case $host_os in - solaris*) FILE_MAN_SUFFIX=4 ;; - *) FILE_MAN_SUFFIX=5 ;; - esac -fi -if test x$FILE_MAN_DIR = x ; then - FILE_MAN_DIR='$(mandir)/man$(FILE_MAN_SUFFIX)' -fi - -if test x$MISC_MAN_SUFFIX = x ; then - case $host_os in - solaris*) MISC_MAN_SUFFIX=5 ;; - *) MISC_MAN_SUFFIX=7 ;; - esac -fi -if test x$MISC_MAN_DIR = x ; then - MISC_MAN_DIR='$(mandir)/man$(MISC_MAN_SUFFIX)' -fi - -if test x$DRIVER_MAN_SUFFIX = x ; then - case $host_os in - solaris*) DRIVER_MAN_SUFFIX=7 ;; - *) DRIVER_MAN_SUFFIX=4 ;; - esac -fi -if test x$DRIVER_MAN_DIR = x ; then - DRIVER_MAN_DIR='$(mandir)/man$(DRIVER_MAN_SUFFIX)' -fi - -if test x$ADMIN_MAN_SUFFIX = x ; then - case $host_os in - solaris*) ADMIN_MAN_SUFFIX=1m ;; - *) ADMIN_MAN_SUFFIX=8 ;; - esac -fi -if test x$ADMIN_MAN_DIR = x ; then - ADMIN_MAN_DIR='$(mandir)/man$(ADMIN_MAN_SUFFIX)' -fi - - -AC_SUBST([APP_MAN_SUFFIX]) -AC_SUBST([LIB_MAN_SUFFIX]) -AC_SUBST([FILE_MAN_SUFFIX]) -AC_SUBST([MISC_MAN_SUFFIX]) -AC_SUBST([DRIVER_MAN_SUFFIX]) -AC_SUBST([ADMIN_MAN_SUFFIX]) -AC_SUBST([APP_MAN_DIR]) -AC_SUBST([LIB_MAN_DIR]) -AC_SUBST([FILE_MAN_DIR]) -AC_SUBST([MISC_MAN_DIR]) -AC_SUBST([DRIVER_MAN_DIR]) -AC_SUBST([ADMIN_MAN_DIR]) - -XORG_MAN_PAGE="X Version 11" -AC_SUBST([XORG_MAN_PAGE]) -MAN_SUBSTS="\ - -e 's|__vendorversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \ - -e 's|__xorgversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \ - -e 's|__xservername__|Xorg|g' \ - -e 's|__xconfigfile__|xorg.conf|g' \ - -e 's|__projectroot__|\$(prefix)|g' \ - -e 's|__appmansuffix__|\$(APP_MAN_SUFFIX)|g' \ - -e 's|__drivermansuffix__|\$(DRIVER_MAN_SUFFIX)|g' \ - -e 's|__adminmansuffix__|\$(ADMIN_MAN_SUFFIX)|g' \ - -e 's|__libmansuffix__|\$(LIB_MAN_SUFFIX)|g' \ - -e 's|__miscmansuffix__|\$(MISC_MAN_SUFFIX)|g' \ - -e 's|__filemansuffix__|\$(FILE_MAN_SUFFIX)|g'" -AC_SUBST([MAN_SUBSTS]) - -]) # XORG_MANPAGE_SECTIONS - -# XORG_CHECK_SGML_DOCTOOLS([MIN-VERSION]) -# ------------------------ -# Minimum version: 1.7.0 -# -# Defines the variable XORG_SGML_PATH containing the location of X11/defs.ent -# provided by xorg-sgml-doctools, if installed. -AC_DEFUN([XORG_CHECK_SGML_DOCTOOLS],[ -AC_MSG_CHECKING([for X.Org SGML entities m4_ifval([$1],[>= $1])]) -XORG_SGML_PATH= -PKG_CHECK_EXISTS([xorg-sgml-doctools m4_ifval([$1],[>= $1])], - [XORG_SGML_PATH=`$PKG_CONFIG --variable=sgmlrootdir xorg-sgml-doctools`], - [m4_ifval([$1],[:], - [if test x"$cross_compiling" != x"yes" ; then - AC_CHECK_FILE([$prefix/share/sgml/X11/defs.ent], - [XORG_SGML_PATH=$prefix/share/sgml]) - fi]) - ]) - -# Define variables STYLESHEET_SRCDIR and XSL_STYLESHEET containing -# the path and the name of the doc stylesheet -if test "x$XORG_SGML_PATH" != "x" ; then - AC_MSG_RESULT([$XORG_SGML_PATH]) - STYLESHEET_SRCDIR=$XORG_SGML_PATH/X11 - XSL_STYLESHEET=$STYLESHEET_SRCDIR/xorg.xsl -else - AC_MSG_RESULT([no]) -fi - -AC_SUBST(XORG_SGML_PATH) -AC_SUBST(STYLESHEET_SRCDIR) -AC_SUBST(XSL_STYLESHEET) -AM_CONDITIONAL([HAVE_STYLESHEETS], [test "x$XSL_STYLESHEET" != "x"]) -]) # XORG_CHECK_SGML_DOCTOOLS - -# XORG_CHECK_LINUXDOC -# ------------------- -# Minimum version: 1.0.0 -# -# Defines the variable MAKE_TEXT if the necessary tools and -# files are found. $(MAKE_TEXT) blah.sgml will then produce blah.txt. -# Whether or not the necessary tools and files are found can be checked -# with the AM_CONDITIONAL "BUILD_LINUXDOC" -AC_DEFUN([XORG_CHECK_LINUXDOC],[ -AC_REQUIRE([XORG_CHECK_SGML_DOCTOOLS]) -AC_REQUIRE([XORG_WITH_PS2PDF]) - -AC_PATH_PROG(LINUXDOC, linuxdoc) - -AC_MSG_CHECKING([whether to build documentation]) - -if test x$XORG_SGML_PATH != x && test x$LINUXDOC != x ; then - BUILDDOC=yes -else - BUILDDOC=no -fi - -AM_CONDITIONAL(BUILD_LINUXDOC, [test x$BUILDDOC = xyes]) - -AC_MSG_RESULT([$BUILDDOC]) - -AC_MSG_CHECKING([whether to build pdf documentation]) - -if test x$have_ps2pdf != xno && test x$BUILD_PDFDOC != xno; then - BUILDPDFDOC=yes -else - BUILDPDFDOC=no -fi - -AM_CONDITIONAL(BUILD_PDFDOC, [test x$BUILDPDFDOC = xyes]) - -AC_MSG_RESULT([$BUILDPDFDOC]) - -MAKE_TEXT="SGML_SEARCH_PATH=$XORG_SGML_PATH GROFF_NO_SGR=y $LINUXDOC -B txt -f" -MAKE_PS="SGML_SEARCH_PATH=$XORG_SGML_PATH $LINUXDOC -B latex --papersize=letter --output=ps" -MAKE_PDF="$PS2PDF" -MAKE_HTML="SGML_SEARCH_PATH=$XORG_SGML_PATH $LINUXDOC -B html --split=0" - -AC_SUBST(MAKE_TEXT) -AC_SUBST(MAKE_PS) -AC_SUBST(MAKE_PDF) -AC_SUBST(MAKE_HTML) -]) # XORG_CHECK_LINUXDOC - -# XORG_CHECK_DOCBOOK -# ------------------- -# Minimum version: 1.0.0 -# -# Checks for the ability to build output formats from SGML DocBook source. -# For XXX in {TXT, PDF, PS, HTML}, the AM_CONDITIONAL "BUILD_XXXDOC" -# indicates whether the necessary tools and files are found and, if set, -# $(MAKE_XXX) blah.sgml will produce blah.xxx. -AC_DEFUN([XORG_CHECK_DOCBOOK],[ -AC_REQUIRE([XORG_CHECK_SGML_DOCTOOLS]) - -BUILDTXTDOC=no -BUILDPDFDOC=no -BUILDPSDOC=no -BUILDHTMLDOC=no - -AC_PATH_PROG(DOCBOOKPS, docbook2ps) -AC_PATH_PROG(DOCBOOKPDF, docbook2pdf) -AC_PATH_PROG(DOCBOOKHTML, docbook2html) -AC_PATH_PROG(DOCBOOKTXT, docbook2txt) - -AC_MSG_CHECKING([whether to build text documentation]) -if test x$XORG_SGML_PATH != x && test x$DOCBOOKTXT != x && - test x$BUILD_TXTDOC != xno; then - BUILDTXTDOC=yes -fi -AM_CONDITIONAL(BUILD_TXTDOC, [test x$BUILDTXTDOC = xyes]) -AC_MSG_RESULT([$BUILDTXTDOC]) - -AC_MSG_CHECKING([whether to build PDF documentation]) -if test x$XORG_SGML_PATH != x && test x$DOCBOOKPDF != x && - test x$BUILD_PDFDOC != xno; then - BUILDPDFDOC=yes -fi -AM_CONDITIONAL(BUILD_PDFDOC, [test x$BUILDPDFDOC = xyes]) -AC_MSG_RESULT([$BUILDPDFDOC]) - -AC_MSG_CHECKING([whether to build PostScript documentation]) -if test x$XORG_SGML_PATH != x && test x$DOCBOOKPS != x && - test x$BUILD_PSDOC != xno; then - BUILDPSDOC=yes -fi -AM_CONDITIONAL(BUILD_PSDOC, [test x$BUILDPSDOC = xyes]) -AC_MSG_RESULT([$BUILDPSDOC]) - -AC_MSG_CHECKING([whether to build HTML documentation]) -if test x$XORG_SGML_PATH != x && test x$DOCBOOKHTML != x && - test x$BUILD_HTMLDOC != xno; then - BUILDHTMLDOC=yes -fi -AM_CONDITIONAL(BUILD_HTMLDOC, [test x$BUILDHTMLDOC = xyes]) -AC_MSG_RESULT([$BUILDHTMLDOC]) - -MAKE_TEXT="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKTXT" -MAKE_PS="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKPS" -MAKE_PDF="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKPDF" -MAKE_HTML="SGML_SEARCH_PATH=$XORG_SGML_PATH $DOCBOOKHTML" - -AC_SUBST(MAKE_TEXT) -AC_SUBST(MAKE_PS) -AC_SUBST(MAKE_PDF) -AC_SUBST(MAKE_HTML) -]) # XORG_CHECK_DOCBOOK - -# XORG_WITH_XMLTO([MIN-VERSION]) -# ---------------- -# Minimum version: 1.5.0 -# -# 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 -# 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 -# as whether or not to use the xmlto package. -# -# Interface to module: -# HAVE_XMLTO: used in makefiles to conditionally generate documentation -# XMLTO: returns the path of the xmlto program found -# returns the path set by the user in the environment -# --with-xmlto: 'yes' user instructs the module to use xmlto -# 'no' user instructs the module not to use xmlto -# -# Added in version 1.10.0 -# HAVE_XMLTO_TEXT: used in makefiles to conditionally generate text documentation -# xmlto for text output requires either lynx, links, or w3m browsers -# -# If the user sets the value of XMLTO, AC_PATH_PROG skips testing the path. -# -AC_DEFUN([XORG_WITH_XMLTO],[ -AC_ARG_VAR([XMLTO], [Path to xmlto command]) -AC_ARG_WITH(xmlto, - AS_HELP_STRING([--with-xmlto], - [Use xmlto to regenerate documentation (default: yes, if installed)]), - [use_xmlto=$withval], [use_xmlto=auto]) - -if test "x$use_xmlto" = x"auto"; then - AC_PATH_PROG([XMLTO], [xmlto]) - if test "x$XMLTO" = "x"; then - AC_MSG_WARN([xmlto not found - documentation targets will be skipped]) - have_xmlto=no - else - have_xmlto=yes - fi -elif test "x$use_xmlto" = x"yes" ; then - AC_PATH_PROG([XMLTO], [xmlto]) - if test "x$XMLTO" = "x"; then - AC_MSG_ERROR([--with-xmlto=yes specified but xmlto not found in PATH]) - fi - have_xmlto=yes -elif test "x$use_xmlto" = x"no" ; then - if test "x$XMLTO" != "x"; then - AC_MSG_WARN([ignoring XMLTO environment variable since --with-xmlto=no was specified]) - fi - have_xmlto=no -else - AC_MSG_ERROR([--with-xmlto expects 'yes' or 'no']) -fi - -# Test for a minimum version of xmlto, if provided. -m4_ifval([$1], -[if test "$have_xmlto" = yes; then - # scrape the xmlto version - AC_MSG_CHECKING([the xmlto version]) - xmlto_version=`$XMLTO --version 2>/dev/null | cut -d' ' -f3` - AC_MSG_RESULT([$xmlto_version]) - AS_VERSION_COMPARE([$xmlto_version], [$1], - [if test "x$use_xmlto" = xauto; then - AC_MSG_WARN([xmlto version $xmlto_version found, but $1 needed]) - have_xmlto=no - else - AC_MSG_ERROR([xmlto version $xmlto_version found, but $1 needed]) - fi]) -fi]) - -# Test for the ability of xmlto to generate a text target -have_xmlto_text=no -cat > conftest.xml << "EOF" -EOF -AS_IF([test "$have_xmlto" = yes], - [AS_IF([$XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1], - [have_xmlto_text=yes], - [AC_MSG_WARN([xmlto cannot generate text format, this format skipped])])]) -rm -f conftest.xml -AM_CONDITIONAL([HAVE_XMLTO_TEXT], [test $have_xmlto_text = yes]) -AM_CONDITIONAL([HAVE_XMLTO], [test "$have_xmlto" = yes]) -]) # XORG_WITH_XMLTO - -# XORG_WITH_ASCIIDOC([MIN-VERSION]) -# ---------------- -# Minimum version: 1.5.0 -# -# 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 -# 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 -# as whether or not to use the asciidoc package. -# -# Interface to module: -# HAVE_ASCIIDOC: used in makefiles to conditionally generate documentation -# ASCIIDOC: returns the path of the asciidoc program found -# returns the path set by the user in the environment -# --with-asciidoc: 'yes' user instructs the module to use asciidoc -# 'no' user instructs the module not to use asciidoc -# -# If the user sets the value of ASCIIDOC, AC_PATH_PROG skips testing the path. -# -AC_DEFUN([XORG_WITH_ASCIIDOC],[ -AC_ARG_VAR([ASCIIDOC], [Path to asciidoc command]) -AC_ARG_WITH(asciidoc, - AS_HELP_STRING([--with-asciidoc], - [Use asciidoc to regenerate documentation (default: yes, if installed)]), - [use_asciidoc=$withval], [use_asciidoc=auto]) - -if test "x$use_asciidoc" = x"auto"; then - AC_PATH_PROG([ASCIIDOC], [asciidoc]) - if test "x$ASCIIDOC" = "x"; then - AC_MSG_WARN([asciidoc not found - documentation targets will be skipped]) - have_asciidoc=no - else - have_asciidoc=yes - fi -elif test "x$use_asciidoc" = x"yes" ; then - AC_PATH_PROG([ASCIIDOC], [asciidoc]) - if test "x$ASCIIDOC" = "x"; then - AC_MSG_ERROR([--with-asciidoc=yes specified but asciidoc not found in PATH]) - fi - have_asciidoc=yes -elif test "x$use_asciidoc" = x"no" ; then - if test "x$ASCIIDOC" != "x"; then - AC_MSG_WARN([ignoring ASCIIDOC environment variable since --with-asciidoc=no was specified]) - fi - have_asciidoc=no -else - AC_MSG_ERROR([--with-asciidoc expects 'yes' or 'no']) -fi -m4_ifval([$1], -[if test "$have_asciidoc" = yes; then - # scrape the asciidoc version - AC_MSG_CHECKING([the asciidoc version]) - asciidoc_version=`$ASCIIDOC --version 2>/dev/null | cut -d' ' -f2` - AC_MSG_RESULT([$asciidoc_version]) - AS_VERSION_COMPARE([$asciidoc_version], [$1], - [if test "x$use_asciidoc" = xauto; then - AC_MSG_WARN([asciidoc version $asciidoc_version found, but $1 needed]) - have_asciidoc=no - else - AC_MSG_ERROR([asciidoc version $asciidoc_version found, but $1 needed]) - fi]) -fi]) -AM_CONDITIONAL([HAVE_ASCIIDOC], [test "$have_asciidoc" = yes]) -]) # XORG_WITH_ASCIIDOC - -# XORG_WITH_DOXYGEN([MIN-VERSION]) -# -------------------------------- -# Minimum version: 1.5.0 -# -# 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 -# 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 -# as whether or not to use the doxygen package. -# -# Interface to module: -# HAVE_DOXYGEN: used in makefiles to conditionally generate documentation -# DOXYGEN: returns the path of the doxygen program found -# returns the path set by the user in the environment -# --with-doxygen: 'yes' user instructs the module to use doxygen -# 'no' user instructs the module not to use doxygen -# -# If the user sets the value of DOXYGEN, AC_PATH_PROG skips testing the path. -# -AC_DEFUN([XORG_WITH_DOXYGEN],[ -AC_ARG_VAR([DOXYGEN], [Path to doxygen command]) -AC_ARG_WITH(doxygen, - AS_HELP_STRING([--with-doxygen], - [Use doxygen to regenerate documentation (default: yes, if installed)]), - [use_doxygen=$withval], [use_doxygen=auto]) - -if test "x$use_doxygen" = x"auto"; then - AC_PATH_PROG([DOXYGEN], [doxygen]) - if test "x$DOXYGEN" = "x"; then - AC_MSG_WARN([doxygen not found - documentation targets will be skipped]) - have_doxygen=no - else - have_doxygen=yes - fi -elif test "x$use_doxygen" = x"yes" ; then - AC_PATH_PROG([DOXYGEN], [doxygen]) - if test "x$DOXYGEN" = "x"; then - AC_MSG_ERROR([--with-doxygen=yes specified but doxygen not found in PATH]) - fi - have_doxygen=yes -elif test "x$use_doxygen" = x"no" ; then - if test "x$DOXYGEN" != "x"; then - AC_MSG_WARN([ignoring DOXYGEN environment variable since --with-doxygen=no was specified]) - fi - have_doxygen=no -else - AC_MSG_ERROR([--with-doxygen expects 'yes' or 'no']) -fi -m4_ifval([$1], -[if test "$have_doxygen" = yes; then - # scrape the doxygen version - AC_MSG_CHECKING([the doxygen version]) - doxygen_version=`$DOXYGEN --version 2>/dev/null` - AC_MSG_RESULT([$doxygen_version]) - AS_VERSION_COMPARE([$doxygen_version], [$1], - [if test "x$use_doxygen" = xauto; then - AC_MSG_WARN([doxygen version $doxygen_version found, but $1 needed]) - have_doxygen=no - else - AC_MSG_ERROR([doxygen version $doxygen_version found, but $1 needed]) - fi]) -fi]) -AM_CONDITIONAL([HAVE_DOXYGEN], [test "$have_doxygen" = yes]) -]) # XORG_WITH_DOXYGEN - -# XORG_WITH_GROFF -# ---------------- -# Minimum version: 1.6.0 -# -# 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 -# 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 -# as whether or not to use the groff package. -# -# Interface to module: -# HAVE_GROFF: used in makefiles to conditionally generate documentation -# HAVE_GROFF_MM: the memorandum macros (-mm) package -# HAVE_GROFF_MS: the -ms macros package -# GROFF: returns the path of the groff program found -# returns the path set by the user in the environment -# --with-groff: 'yes' user instructs the module to use groff -# 'no' user instructs the module not to use groff -# -# Added in version 1.9.0: -# HAVE_GROFF_HTML: groff has dependencies to output HTML format: -# pnmcut pnmcrop pnmtopng pnmtops from the netpbm package. -# psselect from the psutils package. -# the ghostcript package. Refer to the grohtml man pages -# -# If the user sets the value of GROFF, AC_PATH_PROG skips testing the path. -# -# OS and distros often splits groff in a basic and full package, the former -# having the groff program and the later having devices, fonts and macros -# Checking for the groff executable is not enough. -# -# If macros are missing, we cannot assume that groff is useless, so we don't -# unset HAVE_GROFF or GROFF env variables. -# HAVE_GROFF_?? can never be true while HAVE_GROFF is false. -# -AC_DEFUN([XORG_WITH_GROFF],[ -AC_ARG_VAR([GROFF], [Path to groff command]) -AC_ARG_WITH(groff, - AS_HELP_STRING([--with-groff], - [Use groff to regenerate documentation (default: yes, if installed)]), - [use_groff=$withval], [use_groff=auto]) - -if test "x$use_groff" = x"auto"; then - AC_PATH_PROG([GROFF], [groff]) - if test "x$GROFF" = "x"; then - AC_MSG_WARN([groff not found - documentation targets will be skipped]) - have_groff=no - else - have_groff=yes - fi -elif test "x$use_groff" = x"yes" ; then - AC_PATH_PROG([GROFF], [groff]) - if test "x$GROFF" = "x"; then - AC_MSG_ERROR([--with-groff=yes specified but groff not found in PATH]) - fi - have_groff=yes -elif test "x$use_groff" = x"no" ; then - if test "x$GROFF" != "x"; then - AC_MSG_WARN([ignoring GROFF environment variable since --with-groff=no was specified]) - fi - have_groff=no -else - AC_MSG_ERROR([--with-groff expects 'yes' or 'no']) -fi - -# We have groff, test for the presence of the macro packages -if test "x$have_groff" = x"yes"; then - AC_MSG_CHECKING([for ${GROFF} -ms macros]) - if ${GROFF} -ms -I. /dev/null >/dev/null 2>&1 ; then - groff_ms_works=yes - else - groff_ms_works=no - fi - AC_MSG_RESULT([$groff_ms_works]) - AC_MSG_CHECKING([for ${GROFF} -mm macros]) - if ${GROFF} -mm -I. /dev/null >/dev/null 2>&1 ; then - groff_mm_works=yes - else - groff_mm_works=no - fi - AC_MSG_RESULT([$groff_mm_works]) -fi - -# We have groff, test for HTML dependencies, one command per package -if test "x$have_groff" = x"yes"; then - AC_PATH_PROGS(GS_PATH, [gs gswin32c]) - AC_PATH_PROG(PNMTOPNG_PATH, [pnmtopng]) - AC_PATH_PROG(PSSELECT_PATH, [psselect]) - if test "x$GS_PATH" != "x" -a "x$PNMTOPNG_PATH" != "x" -a "x$PSSELECT_PATH" != "x"; then - have_groff_html=yes - else - have_groff_html=no - AC_MSG_WARN([grohtml dependencies not found - HTML Documentation skipped. Refer to grohtml man pages]) - fi -fi - -# Set Automake conditionals for Makefiles -AM_CONDITIONAL([HAVE_GROFF], [test "$have_groff" = yes]) -AM_CONDITIONAL([HAVE_GROFF_MS], [test "$groff_ms_works" = yes]) -AM_CONDITIONAL([HAVE_GROFF_MM], [test "$groff_mm_works" = yes]) -AM_CONDITIONAL([HAVE_GROFF_HTML], [test "$have_groff_html" = yes]) -]) # XORG_WITH_GROFF - -# XORG_WITH_FOP -# ---------------- -# Minimum version: 1.6.0 -# -# 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 -# 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 -# as whether or not to use the fop package. -# -# Interface to module: -# HAVE_FOP: used in makefiles to conditionally generate documentation -# FOP: returns the path of the fop program found -# returns the path set by the user in the environment -# --with-fop: 'yes' user instructs the module to use fop -# 'no' user instructs the module not to use fop -# -# If the user sets the value of FOP, AC_PATH_PROG skips testing the path. -# -AC_DEFUN([XORG_WITH_FOP],[ -AC_ARG_VAR([FOP], [Path to fop command]) -AC_ARG_WITH(fop, - AS_HELP_STRING([--with-fop], - [Use fop to regenerate documentation (default: yes, if installed)]), - [use_fop=$withval], [use_fop=auto]) - -if test "x$use_fop" = x"auto"; then - AC_PATH_PROG([FOP], [fop]) - if test "x$FOP" = "x"; then - AC_MSG_WARN([fop not found - documentation targets will be skipped]) - have_fop=no - else - have_fop=yes - fi -elif test "x$use_fop" = x"yes" ; then - AC_PATH_PROG([FOP], [fop]) - if test "x$FOP" = "x"; then - AC_MSG_ERROR([--with-fop=yes specified but fop not found in PATH]) - fi - have_fop=yes -elif test "x$use_fop" = x"no" ; then - if test "x$FOP" != "x"; then - AC_MSG_WARN([ignoring FOP environment variable since --with-fop=no was specified]) - fi - have_fop=no -else - AC_MSG_ERROR([--with-fop expects 'yes' or 'no']) -fi -AM_CONDITIONAL([HAVE_FOP], [test "$have_fop" = yes]) -]) # XORG_WITH_FOP - -# XORG_WITH_PS2PDF -# ---------------- -# Minimum version: 1.6.0 -# -# 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 -# 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 -# as whether or not to use the ps2pdf package. -# -# Interface to module: -# HAVE_PS2PDF: used in makefiles to conditionally generate documentation -# PS2PDF: returns the path of the ps2pdf program found -# returns the path set by the user in the environment -# --with-ps2pdf: 'yes' user instructs the module to use ps2pdf -# 'no' user instructs the module not to use ps2pdf -# -# If the user sets the value of PS2PDF, AC_PATH_PROG skips testing the path. -# -AC_DEFUN([XORG_WITH_PS2PDF],[ -AC_ARG_VAR([PS2PDF], [Path to ps2pdf command]) -AC_ARG_WITH(ps2pdf, - AS_HELP_STRING([--with-ps2pdf], - [Use ps2pdf to regenerate documentation (default: yes, if installed)]), - [use_ps2pdf=$withval], [use_ps2pdf=auto]) - -if test "x$use_ps2pdf" = x"auto"; then - AC_PATH_PROG([PS2PDF], [ps2pdf]) - if test "x$PS2PDF" = "x"; then - AC_MSG_WARN([ps2pdf not found - documentation targets will be skipped]) - have_ps2pdf=no - else - have_ps2pdf=yes - fi -elif test "x$use_ps2pdf" = x"yes" ; then - AC_PATH_PROG([PS2PDF], [ps2pdf]) - if test "x$PS2PDF" = "x"; then - AC_MSG_ERROR([--with-ps2pdf=yes specified but ps2pdf not found in PATH]) - fi - have_ps2pdf=yes -elif test "x$use_ps2pdf" = x"no" ; then - if test "x$PS2PDF" != "x"; then - AC_MSG_WARN([ignoring PS2PDF environment variable since --with-ps2pdf=no was specified]) - fi - have_ps2pdf=no -else - AC_MSG_ERROR([--with-ps2pdf expects 'yes' or 'no']) -fi -AM_CONDITIONAL([HAVE_PS2PDF], [test "$have_ps2pdf" = yes]) -]) # XORG_WITH_PS2PDF - -# XORG_ENABLE_DOCS (enable_docs=yes) -# ---------------- -# Minimum version: 1.6.0 -# -# Documentation tools are not always available on all platforms and sometimes -# not at the appropriate level. This macro enables a builder to skip all -# documentation targets except traditional man pages. -# Combined with the specific tool checking macros XORG_WITH_*, it provides -# maximum flexibilty in controlling documentation building. -# Refer to: -# XORG_WITH_XMLTO --with-xmlto -# XORG_WITH_ASCIIDOC --with-asciidoc -# XORG_WITH_DOXYGEN --with-doxygen -# XORG_WITH_FOP --with-fop -# XORG_WITH_GROFF --with-groff -# XORG_WITH_PS2PDF --with-ps2pdf -# -# Interface to module: -# ENABLE_DOCS: used in makefiles to conditionally generate documentation -# --enable-docs: 'yes' user instructs the module to generate docs -# 'no' user instructs the module not to generate docs -# parm1: specify the default value, yes or no. -# -AC_DEFUN([XORG_ENABLE_DOCS],[ -default=$1 -if test "x$default" = x ; then - default="yes" -fi -AC_ARG_ENABLE(docs, - AS_HELP_STRING([--enable-docs], - [Enable building the documentation (default: yes)]), - [build_docs=$enableval], [build_docs=$default]) -AM_CONDITIONAL(ENABLE_DOCS, [test x$build_docs = xyes]) -AC_MSG_CHECKING([whether to build documentation]) -AC_MSG_RESULT([$build_docs]) -]) # XORG_ENABLE_DOCS - -# XORG_ENABLE_DEVEL_DOCS (enable_devel_docs=yes) -# ---------------- -# Minimum version: 1.6.0 -# -# This macro enables a builder to skip all developer documentation. -# Combined with the specific tool checking macros XORG_WITH_*, it provides -# maximum flexibilty in controlling documentation building. -# Refer to: -# XORG_WITH_XMLTO --with-xmlto -# XORG_WITH_ASCIIDOC --with-asciidoc -# XORG_WITH_DOXYGEN --with-doxygen -# XORG_WITH_FOP --with-fop -# XORG_WITH_GROFF --with-groff -# XORG_WITH_PS2PDF --with-ps2pdf -# -# Interface to module: -# ENABLE_DEVEL_DOCS: used in makefiles to conditionally generate developer docs -# --enable-devel-docs: 'yes' user instructs the module to generate developer docs -# 'no' user instructs the module not to generate developer docs -# parm1: specify the default value, yes or no. -# -AC_DEFUN([XORG_ENABLE_DEVEL_DOCS],[ -devel_default=$1 -if test "x$devel_default" = x ; then - devel_default="yes" -fi -AC_ARG_ENABLE(devel-docs, - AS_HELP_STRING([--enable-devel-docs], - [Enable building the developer documentation (default: yes)]), - [build_devel_docs=$enableval], [build_devel_docs=$devel_default]) -AM_CONDITIONAL(ENABLE_DEVEL_DOCS, [test x$build_devel_docs = xyes]) -AC_MSG_CHECKING([whether to build developer documentation]) -AC_MSG_RESULT([$build_devel_docs]) -]) # XORG_ENABLE_DEVEL_DOCS - -# XORG_ENABLE_SPECS (enable_specs=yes) -# ---------------- -# Minimum version: 1.6.0 -# -# This macro enables a builder to skip all functional specification targets. -# Combined with the specific tool checking macros XORG_WITH_*, it provides -# maximum flexibilty in controlling documentation building. -# Refer to: -# XORG_WITH_XMLTO --with-xmlto -# XORG_WITH_ASCIIDOC --with-asciidoc -# XORG_WITH_DOXYGEN --with-doxygen -# XORG_WITH_FOP --with-fop -# XORG_WITH_GROFF --with-groff -# XORG_WITH_PS2PDF --with-ps2pdf -# -# Interface to module: -# ENABLE_SPECS: used in makefiles to conditionally generate specs -# --enable-specs: 'yes' user instructs the module to generate specs -# 'no' user instructs the module not to generate specs -# parm1: specify the default value, yes or no. -# -AC_DEFUN([XORG_ENABLE_SPECS],[ -spec_default=$1 -if test "x$spec_default" = x ; then - spec_default="yes" -fi -AC_ARG_ENABLE(specs, - AS_HELP_STRING([--enable-specs], - [Enable building the specs (default: yes)]), - [build_specs=$enableval], [build_specs=$spec_default]) -AM_CONDITIONAL(ENABLE_SPECS, [test x$build_specs = xyes]) -AC_MSG_CHECKING([whether to build functional specifications]) -AC_MSG_RESULT([$build_specs]) -]) # XORG_ENABLE_SPECS - -# XORG_CHECK_MALLOC_ZERO -# ---------------------- -# Minimum version: 1.0.0 -# -# Defines {MALLOC,XMALLOC,XTMALLOC}_ZERO_CFLAGS appropriately if -# malloc(0) returns NULL. Packages should add one of these cflags to -# their AM_CFLAGS (or other appropriate *_CFLAGS) to use them. -AC_DEFUN([XORG_CHECK_MALLOC_ZERO],[ -AC_ARG_ENABLE(malloc0returnsnull, - AS_HELP_STRING([--enable-malloc0returnsnull], - [malloc(0) returns NULL (default: auto)]), - [MALLOC_ZERO_RETURNS_NULL=$enableval], - [MALLOC_ZERO_RETURNS_NULL=auto]) - -AC_MSG_CHECKING([whether malloc(0) returns NULL]) -if test "x$MALLOC_ZERO_RETURNS_NULL" = xauto; then - AC_RUN_IFELSE([ -char *malloc(); -char *realloc(); -char *calloc(); -main() { - char *m0, *r0, *c0, *p; - m0 = malloc(0); - p = malloc(10); - r0 = realloc(p,0); - c0 = calloc(0); - exit(m0 == 0 || r0 == 0 || c0 == 0 ? 0 : 1); -}], - [MALLOC_ZERO_RETURNS_NULL=yes], - [MALLOC_ZERO_RETURNS_NULL=no], - [MALLOC_ZERO_RETURNS_NULL=yes]) -fi -AC_MSG_RESULT([$MALLOC_ZERO_RETURNS_NULL]) - -if test "x$MALLOC_ZERO_RETURNS_NULL" = xyes; then - MALLOC_ZERO_CFLAGS="-DMALLOC_0_RETURNS_NULL" - XMALLOC_ZERO_CFLAGS=$MALLOC_ZERO_CFLAGS - XTMALLOC_ZERO_CFLAGS="$MALLOC_ZERO_CFLAGS -DXTMALLOC_BC" -else - MALLOC_ZERO_CFLAGS="" - XMALLOC_ZERO_CFLAGS="" - XTMALLOC_ZERO_CFLAGS="" -fi - -AC_SUBST([MALLOC_ZERO_CFLAGS]) -AC_SUBST([XMALLOC_ZERO_CFLAGS]) -AC_SUBST([XTMALLOC_ZERO_CFLAGS]) -]) # XORG_CHECK_MALLOC_ZERO - -# XORG_WITH_LINT() -# ---------------- -# Minimum version: 1.1.0 -# -# This macro enables the use of a tool that flags some suspicious and -# non-portable constructs (likely to be bugs) in C language source code. -# It will attempt to locate the tool and use appropriate options. -# There are various lint type tools on different platforms. -# -# Interface to module: -# LINT: returns the path to the tool found on the platform -# or the value set to LINT on the configure cmd line -# also an Automake conditional -# LINT_FLAGS: an Automake variable with appropriate flags -# -# --with-lint: 'yes' user instructs the module to use lint -# 'no' user instructs the module not to use lint (default) -# -# If the user sets the value of LINT, AC_PATH_PROG skips testing the path. -# If the user sets the value of LINT_FLAGS, they are used verbatim. -# -AC_DEFUN([XORG_WITH_LINT],[ - -AC_ARG_VAR([LINT], [Path to a lint-style command]) -AC_ARG_VAR([LINT_FLAGS], [Flags for the lint-style command]) -AC_ARG_WITH(lint, [AS_HELP_STRING([--with-lint], - [Use a lint-style source code checker (default: disabled)])], - [use_lint=$withval], [use_lint=no]) - -# Obtain platform specific info like program name and options -# The lint program on FreeBSD and NetBSD is different from the one on Solaris -case $host_os in - *linux* | *openbsd* | kfreebsd*-gnu | darwin* | cygwin*) - lint_name=splint - lint_options="-badflag" - ;; - *freebsd* | *netbsd*) - lint_name=lint - lint_options="-u -b" - ;; - *solaris*) - lint_name=lint - lint_options="-u -b -h -erroff=E_INDISTING_FROM_TRUNC2" - ;; -esac - -# Test for the presence of the program (either guessed by the code or spelled out by the user) -if test "x$use_lint" = x"yes" ; then - AC_PATH_PROG([LINT], [$lint_name]) - if test "x$LINT" = "x"; then - AC_MSG_ERROR([--with-lint=yes specified but lint-style tool not found in PATH]) - fi -elif test "x$use_lint" = x"no" ; then - if test "x$LINT" != "x"; then - AC_MSG_WARN([ignoring LINT environment variable since --with-lint=no was specified]) - fi -else - AC_MSG_ERROR([--with-lint expects 'yes' or 'no'. Use LINT variable to specify path.]) -fi - -# User supplied flags override default flags -if test "x$LINT_FLAGS" != "x"; then - lint_options=$LINT_FLAGS -fi - -AC_SUBST([LINT_FLAGS],[$lint_options]) -AM_CONDITIONAL(LINT, [test "x$LINT" != x]) - -]) # XORG_WITH_LINT - -# XORG_LINT_LIBRARY(LIBNAME) -# -------------------------- -# Minimum version: 1.1.0 -# -# Sets up flags for building lint libraries for checking programs that call -# functions in the library. -# -# Interface to module: -# LINTLIB - Automake variable with the name of lint library file to make -# MAKE_LINT_LIB - Automake conditional -# -# --enable-lint-library: - 'yes' user instructs the module to created a lint library -# - 'no' user instructs the module not to create a lint library (default) - -AC_DEFUN([XORG_LINT_LIBRARY],[ -AC_REQUIRE([XORG_WITH_LINT]) -AC_ARG_ENABLE(lint-library, [AS_HELP_STRING([--enable-lint-library], - [Create lint library (default: disabled)])], - [make_lint_lib=$enableval], [make_lint_lib=no]) - -if test "x$make_lint_lib" = x"yes" ; then - LINTLIB=llib-l$1.ln - if test "x$LINT" = "x"; then - AC_MSG_ERROR([Cannot make lint library without --with-lint]) - fi -elif test "x$make_lint_lib" != x"no" ; then - AC_MSG_ERROR([--enable-lint-library expects 'yes' or 'no'.]) -fi - -AC_SUBST(LINTLIB) -AM_CONDITIONAL(MAKE_LINT_LIB, [test x$make_lint_lib != xno]) - -]) # XORG_LINT_LIBRARY - -# XORG_CWARNFLAGS -# --------------- -# Minimum version: 1.2.0 -# -# Defines CWARNFLAGS to enable C compiler warnings. -# -AC_DEFUN([XORG_CWARNFLAGS], [ -AC_REQUIRE([AC_PROG_CC_C99]) -if test "x$GCC" = xyes ; then - CWARNFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \ --Wmissing-declarations -Wnested-externs -fno-strict-aliasing \ --Wbad-function-cast -Wformat=2" - case `$CC -dumpversion` in - 3.4.* | 4.*) - CWARNFLAGS="$CWARNFLAGS -Wold-style-definition -Wdeclaration-after-statement" - ;; - esac -else - AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) - if test "x$SUNCC" = "xyes"; then - CWARNFLAGS="-v" - fi -fi -AC_SUBST(CWARNFLAGS) -]) # XORG_CWARNFLAGS - -# XORG_STRICT_OPTION -# ----------------------- -# Minimum version: 1.3.0 -# -# Add configure option to enable strict compilation -AC_DEFUN([XORG_STRICT_OPTION], [ -# If the module's configure.ac calls AC_PROG_CC later on, CC gets set to C89 -AC_REQUIRE([AC_PROG_CC_C99]) -AC_REQUIRE([XORG_CWARNFLAGS]) - -AC_ARG_ENABLE(strict-compilation, - AS_HELP_STRING([--enable-strict-compilation], - [Enable all warnings from compiler and make them errors (default: disabled)]), - [STRICT_COMPILE=$enableval], [STRICT_COMPILE=no]) -if test "x$STRICT_COMPILE" = "xyes"; then - AC_CHECK_DECL([__SUNPRO_C], [SUNCC="yes"], [SUNCC="no"]) - AC_CHECK_DECL([__INTEL_COMPILER], [INTELCC="yes"], [INTELCC="no"]) - if test "x$GCC" = xyes ; then - STRICT_CFLAGS="-pedantic -Werror" - elif test "x$SUNCC" = "xyes"; then - STRICT_CFLAGS="-errwarn" - elif test "x$INTELCC" = "xyes"; then - STRICT_CFLAGS="-Werror" - fi -fi -CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS" -AC_SUBST([CWARNFLAGS]) -]) # XORG_STRICT_OPTION - -# XORG_DEFAULT_OPTIONS -# -------------------- -# Minimum version: 1.3.0 -# -# Defines default options for X.Org modules. -# -AC_DEFUN([XORG_DEFAULT_OPTIONS], [ -AC_REQUIRE([AC_PROG_INSTALL]) -XORG_CWARNFLAGS -XORG_STRICT_OPTION -XORG_RELEASE_VERSION -XORG_CHANGELOG -XORG_INSTALL -XORG_MANPAGE_SECTIONS -m4_ifdef([AM_SILENT_RULES], [AM_SILENT_RULES([yes])], - [AC_SUBST([AM_DEFAULT_VERBOSITY], [1])]) -]) # XORG_DEFAULT_OPTIONS - -# XORG_INSTALL() -# ---------------- -# Minimum version: 1.4.0 -# -# Defines the variable INSTALL_CMD as the command to copy -# INSTALL from $prefix/share/util-macros. -# -AC_DEFUN([XORG_INSTALL], [ -AC_REQUIRE([PKG_PROG_PKG_CONFIG]) -macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros` -INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \ -mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \ -|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \ -echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)" -AC_SUBST([INSTALL_CMD]) -]) # XORG_INSTALL -dnl Copyright 2005 Red Hat, Inc -dnl -dnl Permission to use, copy, modify, distribute, and sell this software and its -dnl documentation for any purpose is hereby granted without fee, provided that -dnl the above copyright notice appear in all copies and that both that -dnl copyright notice and this permission notice appear in supporting -dnl documentation. -dnl -dnl The above copyright notice and this permission notice shall be included -dnl in all copies or substantial portions of the Software. -dnl -dnl THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -dnl OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -dnl MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -dnl IN NO EVENT SHALL THE OPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR -dnl OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -dnl ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -dnl OTHER DEALINGS IN THE SOFTWARE. -dnl -dnl Except as contained in this notice, the name of the copyright holders shall -dnl not be used in advertising or otherwise to promote the sale, use or -dnl other dealings in this Software without prior written authorization -dnl from the copyright holders. -dnl - -# XORG_RELEASE_VERSION -# -------------------- -# Defines PACKAGE_VERSION_{MAJOR,MINOR,PATCHLEVEL} for modules to use. - -AC_DEFUN([XORG_RELEASE_VERSION],[ - AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MAJOR], - [`echo $PACKAGE_VERSION | cut -d . -f 1`], - [Major version of this package]) - PVM=`echo $PACKAGE_VERSION | cut -d . -f 2 | cut -d - -f 1` - if test "x$PVM" = "x"; then - PVM="0" - fi - AC_DEFINE_UNQUOTED([PACKAGE_VERSION_MINOR], - [$PVM], - [Minor version of this package]) - PVP=`echo $PACKAGE_VERSION | cut -d . -f 3 | cut -d - -f 1` - if test "x$PVP" = "x"; then - PVP="0" - fi - AC_DEFINE_UNQUOTED([PACKAGE_VERSION_PATCHLEVEL], - [$PVP], - [Patch version of this package]) -]) - -# XORG_CHANGELOG() -# ---------------- -# Minimum version: 1.2.0 -# -# Defines the variable CHANGELOG_CMD as the command to generate -# ChangeLog from git. -# -# -AC_DEFUN([XORG_CHANGELOG], [ -CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \ -mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \ -|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \ -echo 'git directory not found: installing possibly empty changelog.' >&2)" -AC_SUBST([CHANGELOG_CMD]) -]) # XORG_CHANGELOG - -# Copyright (C) 2002, 2003, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# -# This file 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. - -# AM_AUTOMAKE_VERSION(VERSION) -# ---------------------------- -# Automake X.Y traces this macro to ensure aclocal.m4 has been -# generated from the m4 files accompanying Automake X.Y. -# (This private macro should not be called outside this file.) -AC_DEFUN([AM_AUTOMAKE_VERSION], -[am__api_version='1.11' -dnl Some users find AM_AUTOMAKE_VERSION and mistake it for a way to -dnl require some minimum version. Point them to the right macro. -m4_if([$1], [1.11.1], [], - [AC_FATAL([Do not call $0, use AM_INIT_AUTOMAKE([$1]).])])dnl -]) - -# _AM_AUTOCONF_VERSION(VERSION) -# ----------------------------- -# aclocal traces this macro to find the Autoconf version. -# This is a private macro too. Using m4_define simplifies -# the logic in aclocal, which can simply ignore this definition. -m4_define([_AM_AUTOCONF_VERSION], []) - -# AM_SET_CURRENT_AUTOMAKE_VERSION -# ------------------------------- -# Call AM_AUTOMAKE_VERSION and AM_AUTOMAKE_VERSION so they can be traced. -# This function is AC_REQUIREd by AM_INIT_AUTOMAKE. -AC_DEFUN([AM_SET_CURRENT_AUTOMAKE_VERSION], -[AM_AUTOMAKE_VERSION([1.11.1])dnl -m4_ifndef([AC_AUTOCONF_VERSION], - [m4_copy([m4_PACKAGE_VERSION], [AC_AUTOCONF_VERSION])])dnl -_AM_AUTOCONF_VERSION(m4_defn([AC_AUTOCONF_VERSION]))]) - -# AM_AUX_DIR_EXPAND -*- Autoconf -*- - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file 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. - -# For projects using AC_CONFIG_AUX_DIR([foo]), Autoconf sets -# $ac_aux_dir to `$srcdir/foo'. In other projects, it is set to -# `$srcdir', `$srcdir/..', or `$srcdir/../..'. -# -# Of course, Automake must honor this variable whenever it calls a -# tool from the auxiliary directory. The problem is that $srcdir (and -# therefore $ac_aux_dir as well) can be either absolute or relative, -# depending on how configure is run. This is pretty annoying, since -# it makes $ac_aux_dir quite unusable in subdirectories: in the top -# source directory, any form will work fine, but in subdirectories a -# relative path needs to be adjusted first. -# -# $ac_aux_dir/missing -# fails when called from a subdirectory if $ac_aux_dir is relative -# $top_srcdir/$ac_aux_dir/missing -# fails if $ac_aux_dir is absolute, -# fails when called from a subdirectory in a VPATH build with -# a relative $ac_aux_dir -# -# The reason of the latter failure is that $top_srcdir and $ac_aux_dir -# are both prefixed by $srcdir. In an in-source build this is usually -# harmless because $srcdir is `.', but things will broke when you -# start a VPATH build or use an absolute $srcdir. -# -# So we could use something similar to $top_srcdir/$ac_aux_dir/missing, -# iff we strip the leading $srcdir from $ac_aux_dir. That would be: -# am_aux_dir='\$(top_srcdir)/'`expr "$ac_aux_dir" : "$srcdir//*\(.*\)"` -# and then we would define $MISSING as -# MISSING="\${SHELL} $am_aux_dir/missing" -# This will work as long as MISSING is not called from configure, because -# unfortunately $(top_srcdir) has no meaning in configure. -# However there are other variables, like CC, which are often used in -# configure, and could therefore not use this "fixed" $ac_aux_dir. -# -# Another solution, used here, is to always expand $ac_aux_dir to an -# absolute PATH. The drawback is that using absolute paths prevent a -# configured tree to be moved without reconfiguration. - -AC_DEFUN([AM_AUX_DIR_EXPAND], -[dnl Rely on autoconf to set up CDPATH properly. -AC_PREREQ([2.50])dnl -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` -]) - -# AM_CONDITIONAL -*- Autoconf -*- - -# Copyright (C) 1997, 2000, 2001, 2003, 2004, 2005, 2006, 2008 -# Free Software Foundation, Inc. -# -# This file 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. - -# serial 9 - -# AM_CONDITIONAL(NAME, SHELL-CONDITION) -# ------------------------------------- -# Define a conditional. -AC_DEFUN([AM_CONDITIONAL], -[AC_PREREQ(2.52)dnl - ifelse([$1], [TRUE], [AC_FATAL([$0: invalid condition: $1])], - [$1], [FALSE], [AC_FATAL([$0: invalid condition: $1])])dnl -AC_SUBST([$1_TRUE])dnl -AC_SUBST([$1_FALSE])dnl -_AM_SUBST_NOTMAKE([$1_TRUE])dnl -_AM_SUBST_NOTMAKE([$1_FALSE])dnl -m4_define([_AM_COND_VALUE_$1], [$2])dnl -if $2; then - $1_TRUE= - $1_FALSE='#' -else - $1_TRUE='#' - $1_FALSE= -fi -AC_CONFIG_COMMANDS_PRE( -[if test -z "${$1_TRUE}" && test -z "${$1_FALSE}"; then - AC_MSG_ERROR([[conditional "$1" was never defined. -Usually this means the macro was only invoked conditionally.]]) -fi])]) - -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2009 -# Free Software Foundation, Inc. -# -# This file 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. - -# serial 10 - -# There are a few dirty hacks below to avoid letting `AC_PROG_CC' be -# written in clear, in which case automake, when reading aclocal.m4, -# will think it sees a *use*, and therefore will trigger all it's -# C support machinery. Also note that it means that autoscan, seeing -# CC etc. in the Makefile, will ask for an AC_PROG_CC use... - - -# _AM_DEPENDENCIES(NAME) -# ---------------------- -# See how the compiler implements dependency checking. -# NAME is "CC", "CXX", "GCJ", or "OBJC". -# We try a few techniques and use that to set a single cache variable. -# -# We don't AC_REQUIRE the corresponding AC_PROG_CC since the latter was -# modified to invoke _AM_DEPENDENCIES(CC); we would have a circular -# dependency, and given that the user is not expected to run this macro, -# just rely on AC_PROG_CC. -AC_DEFUN([_AM_DEPENDENCIES], -[AC_REQUIRE([AM_SET_DEPDIR])dnl -AC_REQUIRE([AM_OUTPUT_DEPENDENCY_COMMANDS])dnl -AC_REQUIRE([AM_MAKE_INCLUDE])dnl -AC_REQUIRE([AM_DEP_TRACK])dnl - -ifelse([$1], CC, [depcc="$CC" am_compiler_list=], - [$1], CXX, [depcc="$CXX" am_compiler_list=], - [$1], OBJC, [depcc="$OBJC" am_compiler_list='gcc3 gcc'], - [$1], UPC, [depcc="$UPC" am_compiler_list=], - [$1], GCJ, [depcc="$GCJ" am_compiler_list='gcc3 gcc'], - [depcc="$$1" am_compiler_list=]) - -AC_CACHE_CHECK([dependency style of $depcc], - [am_cv_$1_dependencies_compiler_type], -[if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_$1_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n ['s/^#*\([a-zA-Z0-9]*\))$/\1/p'] < ./depcomp` - fi - am__universal=false - m4_case([$1], [CC], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac], - [CXX], - [case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac]) - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_$1_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_$1_dependencies_compiler_type=none -fi -]) -AC_SUBST([$1DEPMODE], [depmode=$am_cv_$1_dependencies_compiler_type]) -AM_CONDITIONAL([am__fastdep$1], [ - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_$1_dependencies_compiler_type" = gcc3]) -]) - - -# AM_SET_DEPDIR -# ------------- -# Choose a directory name for dependency files. -# This macro is AC_REQUIREd in _AM_DEPENDENCIES -AC_DEFUN([AM_SET_DEPDIR], -[AC_REQUIRE([AM_SET_LEADING_DOT])dnl -AC_SUBST([DEPDIR], ["${am__leading_dot}deps"])dnl -]) - - -# AM_DEP_TRACK -# ------------ -AC_DEFUN([AM_DEP_TRACK], -[AC_ARG_ENABLE(dependency-tracking, -[ --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors]) -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi -AM_CONDITIONAL([AMDEP], [test "x$enable_dependency_tracking" != xno]) -AC_SUBST([AMDEPBACKSLASH])dnl -_AM_SUBST_NOTMAKE([AMDEPBACKSLASH])dnl -]) - -# Generate code to set up dependency tracking. -*- Autoconf -*- - -# Copyright (C) 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. -# -# This file 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. - -#serial 5 - -# _AM_OUTPUT_DEPENDENCY_COMMANDS -# ------------------------------ -AC_DEFUN([_AM_OUTPUT_DEPENDENCY_COMMANDS], -[{ - # Autoconf 2.62 quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`AS_DIRNAME("$mf")` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`AS_DIRNAME(["$file"])` - AS_MKDIR_P([$dirpart/$fdir]) - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} -])# _AM_OUTPUT_DEPENDENCY_COMMANDS - - -# AM_OUTPUT_DEPENDENCY_COMMANDS -# ----------------------------- -# This macro should only be invoked once -- use via AC_REQUIRE. -# -# This code is only required when automatic dependency tracking -# is enabled. FIXME. This creates each `.P' file that we will -# need in order to bootstrap the dependency handling code. -AC_DEFUN([AM_OUTPUT_DEPENDENCY_COMMANDS], -[AC_CONFIG_COMMANDS([depfiles], - [test x"$AMDEP_TRUE" != x"" || _AM_OUTPUT_DEPENDENCY_COMMANDS], - [AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir"]) -]) - -# Do all the work for Automake. -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, -# 2005, 2006, 2008, 2009 Free Software Foundation, Inc. -# -# This file 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. - -# serial 16 - -# This macro actually does too much. Some checks are only needed if -# your package does certain things. But this isn't really a big deal. - -# AM_INIT_AUTOMAKE(PACKAGE, VERSION, [NO-DEFINE]) -# AM_INIT_AUTOMAKE([OPTIONS]) -# ----------------------------------------------- -# The call with PACKAGE and VERSION arguments is the old style -# call (pre autoconf-2.50), which is being phased out. PACKAGE -# and VERSION should now be passed to AC_INIT and removed from -# the call to AM_INIT_AUTOMAKE. -# We support both call styles for the transition. After -# the next Automake release, Autoconf can make the AC_INIT -# arguments mandatory, and then we can depend on a new Autoconf -# release and drop the old call support. -AC_DEFUN([AM_INIT_AUTOMAKE], -[AC_PREREQ([2.62])dnl -dnl Autoconf wants to disallow AM_ names. We explicitly allow -dnl the ones we care about. -m4_pattern_allow([^AM_[A-Z]+FLAGS$])dnl -AC_REQUIRE([AM_SET_CURRENT_AUTOMAKE_VERSION])dnl -AC_REQUIRE([AC_PROG_INSTALL])dnl -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - AC_SUBST([am__isrc], [' -I$(srcdir)'])_AM_SUBST_NOTMAKE([am__isrc])dnl - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - AC_MSG_ERROR([source directory already configured; run "make distclean" there first]) - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi -AC_SUBST([CYGPATH_W]) - -# Define the identity of the package. -dnl Distinguish between old-style and new-style calls. -m4_ifval([$2], -[m4_ifval([$3], [_AM_SET_OPTION([no-define])])dnl - AC_SUBST([PACKAGE], [$1])dnl - AC_SUBST([VERSION], [$2])], -[_AM_SET_OPTIONS([$1])dnl -dnl Diagnose old-style AC_INIT with new-style AM_AUTOMAKE_INIT. -m4_if(m4_ifdef([AC_PACKAGE_NAME], 1)m4_ifdef([AC_PACKAGE_VERSION], 1), 11,, - [m4_fatal([AC_INIT should be called with package and version arguments])])dnl - AC_SUBST([PACKAGE], ['AC_PACKAGE_TARNAME'])dnl - AC_SUBST([VERSION], ['AC_PACKAGE_VERSION'])])dnl - -_AM_IF_OPTION([no-define],, -[AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [Name of package]) - AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [Version number of package])])dnl - -# Some tools Automake needs. -AC_REQUIRE([AM_SANITY_CHECK])dnl -AC_REQUIRE([AC_ARG_PROGRAM])dnl -AM_MISSING_PROG(ACLOCAL, aclocal-${am__api_version}) -AM_MISSING_PROG(AUTOCONF, autoconf) -AM_MISSING_PROG(AUTOMAKE, automake-${am__api_version}) -AM_MISSING_PROG(AUTOHEADER, autoheader) -AM_MISSING_PROG(MAKEINFO, makeinfo) -AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -AC_REQUIRE([AM_PROG_INSTALL_STRIP])dnl -AC_REQUIRE([AM_PROG_MKDIR_P])dnl -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -AC_REQUIRE([AC_PROG_AWK])dnl -AC_REQUIRE([AC_PROG_MAKE_SET])dnl -AC_REQUIRE([AM_SET_LEADING_DOT])dnl -_AM_IF_OPTION([tar-ustar], [_AM_PROG_TAR([ustar])], - [_AM_IF_OPTION([tar-pax], [_AM_PROG_TAR([pax])], - [_AM_PROG_TAR([v7])])]) -_AM_IF_OPTION([no-dependencies],, -[AC_PROVIDE_IFELSE([AC_PROG_CC], - [_AM_DEPENDENCIES(CC)], - [define([AC_PROG_CC], - defn([AC_PROG_CC])[_AM_DEPENDENCIES(CC)])])dnl -AC_PROVIDE_IFELSE([AC_PROG_CXX], - [_AM_DEPENDENCIES(CXX)], - [define([AC_PROG_CXX], - defn([AC_PROG_CXX])[_AM_DEPENDENCIES(CXX)])])dnl -AC_PROVIDE_IFELSE([AC_PROG_OBJC], - [_AM_DEPENDENCIES(OBJC)], - [define([AC_PROG_OBJC], - defn([AC_PROG_OBJC])[_AM_DEPENDENCIES(OBJC)])])dnl -]) -_AM_IF_OPTION([silent-rules], [AC_REQUIRE([AM_SILENT_RULES])])dnl -dnl The `parallel-tests' driver may need to know about EXEEXT, so add the -dnl `am__EXEEXT' conditional if _AM_COMPILER_EXEEXT was seen. This macro -dnl is hooked onto _AC_COMPILER_EXEEXT early, see below. -AC_CONFIG_COMMANDS_PRE(dnl -[m4_provide_if([_AM_COMPILER_EXEEXT], - [AM_CONDITIONAL([am__EXEEXT], [test -n "$EXEEXT"])])])dnl -]) - -dnl Hook into `_AC_COMPILER_EXEEXT' early to learn its expansion. Do not -dnl add the conditional right here, as _AC_COMPILER_EXEEXT may be further -dnl mangled by Autoconf and run in a shell conditional statement. -m4_define([_AC_COMPILER_EXEEXT], -m4_defn([_AC_COMPILER_EXEEXT])[m4_provide([_AM_COMPILER_EXEEXT])]) - - -# When config.status generates a header, we must update the stamp-h file. -# This file resides in the same directory as the config header -# that is generated. The stamp files are numbered to have different names. - -# Autoconf calls _AC_AM_CONFIG_HEADER_HOOK (when defined) in the -# loop where config.status creates the headers, so we can generate -# our stamp files there. -AC_DEFUN([_AC_AM_CONFIG_HEADER_HOOK], -[# Compute $1's index in $config_headers. -_am_arg=$1 -_am_stamp_count=1 -for _am_header in $config_headers :; do - case $_am_header in - $_am_arg | $_am_arg:* ) - break ;; - * ) - _am_stamp_count=`expr $_am_stamp_count + 1` ;; - esac -done -echo "timestamp for $_am_arg" >`AS_DIRNAME(["$_am_arg"])`/stamp-h[]$_am_stamp_count]) - -# Copyright (C) 2001, 2003, 2005, 2008 Free Software Foundation, Inc. -# -# This file 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. - -# AM_PROG_INSTALL_SH -# ------------------ -# Define $install_sh. -AC_DEFUN([AM_PROG_INSTALL_SH], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -if test x"${install_sh}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi -AC_SUBST(install_sh)]) - -# Copyright (C) 2003, 2005 Free Software Foundation, Inc. -# -# This file 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. - -# serial 2 - -# Check whether the underlying file-system supports filenames -# with a leading dot. For instance MS-DOS doesn't. -AC_DEFUN([AM_SET_LEADING_DOT], -[rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null -AC_SUBST([am__leading_dot])]) - -# Add --enable-maintainer-mode option to configure. -*- Autoconf -*- -# From Jim Meyering - -# Copyright (C) 1996, 1998, 2000, 2001, 2002, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. -# -# This file 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. - -# serial 5 - -# AM_MAINTAINER_MODE([DEFAULT-MODE]) -# ---------------------------------- -# Control maintainer-specific portions of Makefiles. -# Default is to disable them, unless `enable' is passed literally. -# For symmetry, `disable' may be passed as well. Anyway, the user -# can override the default with the --enable/--disable switch. -AC_DEFUN([AM_MAINTAINER_MODE], -[m4_case(m4_default([$1], [disable]), - [enable], [m4_define([am_maintainer_other], [disable])], - [disable], [m4_define([am_maintainer_other], [enable])], - [m4_define([am_maintainer_other], [enable]) - m4_warn([syntax], [unexpected argument to AM@&t@_MAINTAINER_MODE: $1])]) -AC_MSG_CHECKING([whether to am_maintainer_other maintainer-specific portions of Makefiles]) - dnl maintainer-mode's default is 'disable' unless 'enable' is passed - AC_ARG_ENABLE([maintainer-mode], -[ --][am_maintainer_other][-maintainer-mode am_maintainer_other make rules and dependencies not useful - (and sometimes confusing) to the casual installer], - [USE_MAINTAINER_MODE=$enableval], - [USE_MAINTAINER_MODE=]m4_if(am_maintainer_other, [enable], [no], [yes])) - AC_MSG_RESULT([$USE_MAINTAINER_MODE]) - AM_CONDITIONAL([MAINTAINER_MODE], [test $USE_MAINTAINER_MODE = yes]) - MAINT=$MAINTAINER_MODE_TRUE - AC_SUBST([MAINT])dnl -] -) - -AU_DEFUN([jm_MAINTAINER_MODE], [AM_MAINTAINER_MODE]) - -# Check to see how 'make' treats includes. -*- Autoconf -*- - -# Copyright (C) 2001, 2002, 2003, 2005, 2009 Free Software Foundation, Inc. -# -# This file 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. - -# serial 4 - -# AM_MAKE_INCLUDE() -# ----------------- -# Check to see how make treats includes. -AC_DEFUN([AM_MAKE_INCLUDE], -[am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -AC_MSG_CHECKING([for style of include used by $am_make]) -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi -AC_SUBST([am__include]) -AC_SUBST([am__quote]) -AC_MSG_RESULT([$_am_result]) -rm -f confinc confmf -]) - -# Fake the existence of programs that GNU maintainers use. -*- Autoconf -*- - -# Copyright (C) 1997, 1999, 2000, 2001, 2003, 2004, 2005, 2008 -# Free Software Foundation, Inc. -# -# This file 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. - -# serial 6 - -# AM_MISSING_PROG(NAME, PROGRAM) -# ------------------------------ -AC_DEFUN([AM_MISSING_PROG], -[AC_REQUIRE([AM_MISSING_HAS_RUN]) -$1=${$1-"${am_missing_run}$2"} -AC_SUBST($1)]) - - -# AM_MISSING_HAS_RUN -# ------------------ -# Define MISSING if not defined so far and test if it supports --run. -# If it does, set am_missing_run to use it, otherwise, to nothing. -AC_DEFUN([AM_MISSING_HAS_RUN], -[AC_REQUIRE([AM_AUX_DIR_EXPAND])dnl -AC_REQUIRE_AUX_FILE([missing])dnl -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - AC_MSG_WARN([`missing' script is too old or missing]) -fi -]) - -# Copyright (C) 2003, 2004, 2005, 2006 Free Software Foundation, Inc. -# -# This file 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. - -# AM_PROG_MKDIR_P -# --------------- -# Check for `mkdir -p'. -AC_DEFUN([AM_PROG_MKDIR_P], -[AC_PREREQ([2.60])dnl -AC_REQUIRE([AC_PROG_MKDIR_P])dnl -dnl Automake 1.8 to 1.9.6 used to define mkdir_p. We now use MKDIR_P, -dnl while keeping a definition of mkdir_p for backward compatibility. -dnl @MKDIR_P@ is magic: AC_OUTPUT adjusts its value for each Makefile. -dnl However we cannot define mkdir_p as $(MKDIR_P) for the sake of -dnl Makefile.ins that do not define MKDIR_P, so we do our own -dnl adjustment using top_builddir (which is defined more often than -dnl MKDIR_P). -AC_SUBST([mkdir_p], ["$MKDIR_P"])dnl -case $mkdir_p in - [[\\/$]]* | ?:[[\\/]]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac -]) - -# Helper functions for option handling. -*- Autoconf -*- - -# Copyright (C) 2001, 2002, 2003, 2005, 2008 Free Software Foundation, Inc. -# -# This file 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. - -# serial 4 - -# _AM_MANGLE_OPTION(NAME) -# ----------------------- -AC_DEFUN([_AM_MANGLE_OPTION], -[[_AM_OPTION_]m4_bpatsubst($1, [[^a-zA-Z0-9_]], [_])]) - -# _AM_SET_OPTION(NAME) -# ------------------------------ -# Set option NAME. Presently that only means defining a flag for this option. -AC_DEFUN([_AM_SET_OPTION], -[m4_define(_AM_MANGLE_OPTION([$1]), 1)]) - -# _AM_SET_OPTIONS(OPTIONS) -# ---------------------------------- -# OPTIONS is a space-separated list of Automake options. -AC_DEFUN([_AM_SET_OPTIONS], -[m4_foreach_w([_AM_Option], [$1], [_AM_SET_OPTION(_AM_Option)])]) - -# _AM_IF_OPTION(OPTION, IF-SET, [IF-NOT-SET]) -# ------------------------------------------- -# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise. -AC_DEFUN([_AM_IF_OPTION], -[m4_ifset(_AM_MANGLE_OPTION([$1]), [$2], [$3])]) - -# Check to make sure that the build environment is sane. -*- Autoconf -*- - -# Copyright (C) 1996, 1997, 2000, 2001, 2003, 2005, 2008 -# Free Software Foundation, Inc. -# -# This file 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. - -# serial 5 - -# AM_SANITY_CHECK -# --------------- -AC_DEFUN([AM_SANITY_CHECK], -[AC_MSG_CHECKING([whether build environment is sane]) -# Just in case -sleep 1 -echo timestamp > conftest.file -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[[\\\"\#\$\&\'\`$am_lf]]*) - AC_MSG_ERROR([unsafe absolute working directory name]);; -esac -case $srcdir in - *[[\\\"\#\$\&\'\`$am_lf\ \ ]]*) - AC_MSG_ERROR([unsafe srcdir value: `$srcdir']);; -esac - -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$[*]" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$[*]" != "X $srcdir/configure conftest.file" \ - && test "$[*]" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - AC_MSG_ERROR([ls -t appears to fail. Make sure there is not a broken -alias in your environment]) - fi - - test "$[2]" = conftest.file - ) -then - # Ok. - : -else - AC_MSG_ERROR([newly created file is older than distributed files! -Check your system clock]) -fi -AC_MSG_RESULT(yes)]) - -# Copyright (C) 2009 Free Software Foundation, Inc. -# -# This file 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. - -# serial 1 - -# AM_SILENT_RULES([DEFAULT]) -# -------------------------- -# Enable less verbose build rules; with the default set to DEFAULT -# (`yes' being less verbose, `no' or empty being verbose). -AC_DEFUN([AM_SILENT_RULES], -[AC_ARG_ENABLE([silent-rules], -[ --enable-silent-rules less verbose build output (undo: `make V=1') - --disable-silent-rules verbose build output (undo: `make V=0')]) -case $enable_silent_rules in -yes) AM_DEFAULT_VERBOSITY=0;; -no) AM_DEFAULT_VERBOSITY=1;; -*) AM_DEFAULT_VERBOSITY=m4_if([$1], [yes], [0], [1]);; -esac -AC_SUBST([AM_DEFAULT_VERBOSITY])dnl -AM_BACKSLASH='\' -AC_SUBST([AM_BACKSLASH])dnl -_AM_SUBST_NOTMAKE([AM_BACKSLASH])dnl -]) - -# Copyright (C) 2001, 2003, 2005 Free Software Foundation, Inc. -# -# This file 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. - -# AM_PROG_INSTALL_STRIP -# --------------------- -# One issue with vendor `install' (even GNU) is that you can't -# specify the program used to strip binaries. This is especially -# annoying in cross-compiling environments, where the build's strip -# is unlikely to handle the host's binaries. -# Fortunately install-sh will honor a STRIPPROG variable, so we -# always use install-sh in `make install-strip', and initialize -# STRIPPROG with the value of the STRIP variable (set by the user). -AC_DEFUN([AM_PROG_INSTALL_STRIP], -[AC_REQUIRE([AM_PROG_INSTALL_SH])dnl -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -dnl Don't test for $cross_compiling = yes, because it might be `maybe'. -if test "$cross_compiling" != no; then - AC_CHECK_TOOL([STRIP], [strip], :) -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" -AC_SUBST([INSTALL_STRIP_PROGRAM])]) - -# Copyright (C) 2006, 2008 Free Software Foundation, Inc. -# -# This file 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. - -# serial 2 - -# _AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- -# Prevent Automake from outputting VARIABLE = @VARIABLE@ in Makefile.in. -# This macro is traced by Automake. -AC_DEFUN([_AM_SUBST_NOTMAKE]) - -# AM_SUBST_NOTMAKE(VARIABLE) -# --------------------------- -# Public sister of _AM_SUBST_NOTMAKE. -AC_DEFUN([AM_SUBST_NOTMAKE], [_AM_SUBST_NOTMAKE($@)]) - -# Check how to create a tarball. -*- Autoconf -*- - -# Copyright (C) 2004, 2005 Free Software Foundation, Inc. -# -# This file 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. - -# serial 2 - -# _AM_PROG_TAR(FORMAT) -# -------------------- -# Check how to create a tarball in format FORMAT. -# FORMAT should be one of `v7', `ustar', or `pax'. -# -# Substitute a variable $(am__tar) that is a command -# writing to stdout a FORMAT-tarball containing the directory -# $tardir. -# tardir=directory && $(am__tar) > result.tar -# -# Substitute a variable $(am__untar) that extract such -# a tarball read from stdin. -# $(am__untar) < result.tar -AC_DEFUN([_AM_PROG_TAR], -[# Always define AMTAR for backward compatibility. -AM_MISSING_PROG([AMTAR], [tar]) -m4_if([$1], [v7], - [am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -'], - [m4_case([$1], [ustar],, [pax],, - [m4_fatal([Unknown tar format])]) -AC_MSG_CHECKING([how to create a $1 tar archive]) -# Loop over all known methods to create a tar archive until one works. -_am_tools='gnutar m4_if([$1], [ustar], [plaintar]) pax cpio none' -_am_tools=${am_cv_prog_tar_$1-$_am_tools} -# Do not fold the above two line into one, because Tru64 sh and -# Solaris sh will not grok spaces in the rhs of `-'. -for _am_tool in $_am_tools -do - case $_am_tool in - gnutar) - for _am_tar in tar gnutar gtar; - do - AM_RUN_LOG([$_am_tar --version]) && break - done - am__tar="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$$tardir"' - am__tar_="$_am_tar --format=m4_if([$1], [pax], [posix], [$1]) -chf - "'"$tardir"' - am__untar="$_am_tar -xf -" - ;; - plaintar) - # Must skip GNU tar: if it does not support --format= it doesn't create - # ustar tarball either. - (tar --version) >/dev/null 2>&1 && continue - am__tar='tar chf - "$$tardir"' - am__tar_='tar chf - "$tardir"' - am__untar='tar xf -' - ;; - pax) - am__tar='pax -L -x $1 -w "$$tardir"' - am__tar_='pax -L -x $1 -w "$tardir"' - am__untar='pax -r' - ;; - cpio) - am__tar='find "$$tardir" -print | cpio -o -H $1 -L' - am__tar_='find "$tardir" -print | cpio -o -H $1 -L' - am__untar='cpio -i -H $1 -d' - ;; - none) - am__tar=false - am__tar_=false - am__untar=false - ;; - esac - - # If the value was cached, stop now. We just wanted to have am__tar - # and am__untar set. - test -n "${am_cv_prog_tar_$1}" && break - - # tar/untar a dummy directory, and stop if the command works - rm -rf conftest.dir - mkdir conftest.dir - echo GrepMe > conftest.dir/file - AM_RUN_LOG([tardir=conftest.dir && eval $am__tar_ >conftest.tar]) - rm -rf conftest.dir - if test -s conftest.tar; then - AM_RUN_LOG([$am__untar <conftest.tar]) - grep GrepMe conftest.dir/file >/dev/null 2>&1 && break - fi -done -rm -rf conftest.dir - -AC_CACHE_VAL([am_cv_prog_tar_$1], [am_cv_prog_tar_$1=$_am_tool]) -AC_MSG_RESULT([$am_cv_prog_tar_$1])]) -AC_SUBST([am__tar]) -AC_SUBST([am__untar]) -]) # _AM_PROG_TAR - diff --git a/X11/extensions/autogen.sh b/X11/extensions/autogen.sh deleted file mode 100644 index 904cd6746..000000000 --- a/X11/extensions/autogen.sh +++ /dev/null @@ -1,12 +0,0 @@ -#! /bin/sh - -srcdir=`dirname $0` -test -z "$srcdir" && srcdir=. - -ORIGDIR=`pwd` -cd $srcdir - -autoreconf -v --install || exit 1 -cd $ORIGDIR || exit $? - -$srcdir/configure --enable-maintainer-mode "$@" diff --git a/X11/extensions/configure b/X11/extensions/configure deleted file mode 100644 index 3c931549a..000000000 --- a/X11/extensions/configure +++ /dev/null @@ -1,6811 +0,0 @@ -#! /bin/sh -# Guess values for system-dependent variables and create Makefiles. -# Generated by GNU Autoconf 2.63 for XExtProto 7.1.2. -# -# Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>. -# -# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -# This configure script is free software; the Free Software Foundation -# gives unlimited permission to copy, distribute and modify it. -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - - - -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } -fi - -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# CDPATH. -$as_unset CDPATH - - -if test "x$CONFIG_SHELL" = x; then - if (eval ":") 2>/dev/null; then - as_have_required=yes -else - as_have_required=no -fi - - if test $as_have_required = yes && (eval ": -(as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test \$exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=\$LINENO - as_lineno_2=\$LINENO - test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" && - test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; } -") 2> /dev/null; then - : -else - as_candidate_shells= - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - case $as_dir in - /*) - for as_base in sh bash ksh sh5; do - as_candidate_shells="$as_candidate_shells $as_dir/$as_base" - done;; - esac -done -IFS=$as_save_IFS - - - for as_shell in $as_candidate_shells $SHELL; do - # Try only shells that exist, to save several forks. - if { test -f "$as_shell" || test -f "$as_shell.exe"; } && - { ("$as_shell") 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -_ASEOF -}; then - CONFIG_SHELL=$as_shell - as_have_required=yes - if { "$as_shell" 2> /dev/null <<\_ASEOF -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - -: -(as_func_return () { - (exit $1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = "$1" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test $exitcode = 0) || { (exit 1); exit 1; } - -( - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; } - -_ASEOF -}; then - break -fi - -fi - - done - - if test "x$CONFIG_SHELL" != x; then - for as_var in BASH_ENV ENV - do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var - done - export CONFIG_SHELL - exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"} -fi - - - if test $as_have_required = no; then - echo This script requires a shell more modern than all the - echo shells that I found on your system. Please install a - echo modern shell, or manually run the script under such a - echo shell if you do have one. - { (exit 1); exit 1; } -fi - - -fi - -fi - - - -(eval "as_func_return () { - (exit \$1) -} -as_func_success () { - as_func_return 0 -} -as_func_failure () { - as_func_return 1 -} -as_func_ret_success () { - return 0 -} -as_func_ret_failure () { - return 1 -} - -exitcode=0 -if as_func_success; then - : -else - exitcode=1 - echo as_func_success failed. -fi - -if as_func_failure; then - exitcode=1 - echo as_func_failure succeeded. -fi - -if as_func_ret_success; then - : -else - exitcode=1 - echo as_func_ret_success failed. -fi - -if as_func_ret_failure; then - exitcode=1 - echo as_func_ret_failure succeeded. -fi - -if ( set x; as_func_ret_success y && test x = \"\$1\" ); then - : -else - exitcode=1 - echo positional parameters were not saved. -fi - -test \$exitcode = 0") || { - echo No shell found that supports shell functions. - echo Please tell bug-autoconf@gnu.org about your system, - echo including any error possibly output before this message. - echo This can help us improve future autoconf versions. - echo Configuration will now proceed without shell functions. -} - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in --n*) - case `echo 'x\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; - esac;; -*) - ECHO_N='-n';; -esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -as_awk_strverscmp=' - # Use only awk features that work with 7th edition Unix awk (1978). - # My, what an old awk you have, Mr. Solaris! - END { - while (length(v1) && length(v2)) { - # Set d1 to be the next thing to compare from v1, and likewise for d2. - # Normally this is a single character, but if v1 and v2 contain digits, - # compare them as integers and fractions as strverscmp does. - if (v1 ~ /^[0-9]/ && v2 ~ /^[0-9]/) { - # Split v1 and v2 into their leading digit string components d1 and d2, - # and advance v1 and v2 past the leading digit strings. - for (len1 = 1; substr(v1, len1 + 1) ~ /^[0-9]/; len1++) continue - for (len2 = 1; substr(v2, len2 + 1) ~ /^[0-9]/; len2++) continue - d1 = substr(v1, 1, len1); v1 = substr(v1, len1 + 1) - d2 = substr(v2, 1, len2); v2 = substr(v2, len2 + 1) - if (d1 ~ /^0/) { - if (d2 ~ /^0/) { - # Compare two fractions. - while (d1 ~ /^0/ && d2 ~ /^0/) { - d1 = substr(d1, 2); len1-- - d2 = substr(d2, 2); len2-- - } - if (len1 != len2 && ! (len1 && len2 && substr(d1, 1, 1) == substr(d2, 1, 1))) { - # The two components differ in length, and the common prefix - # contains only leading zeros. Consider the longer to be less. - d1 = -len1 - d2 = -len2 - } else { - # Otherwise, compare as strings. - d1 = "x" d1 - d2 = "x" d2 - } - } else { - # A fraction is less than an integer. - exit 1 - } - } else { - if (d2 ~ /^0/) { - # An integer is greater than a fraction. - exit 2 - } else { - # Compare two integers. - d1 += 0 - d2 += 0 - } - } - } else { - # The normal case, without worrying about digits. - d1 = substr(v1, 1, 1); v1 = substr(v1, 2) - d2 = substr(v2, 1, 1); v2 = substr(v2, 2) - } - if (d1 < d2) exit 1 - if (d1 > d2) exit 2 - } - # Beware Solaris /usr/xgp4/bin/awk (at least through Solaris 10), - # which mishandles some comparisons of empty strings to integers. - if (length(v2)) exit 1 - if (length(v1)) exit 2 - } -' - -exec 7<&0 </dev/null 6>&1 - -# Name of the host. -# hostname on some systems (SVR3.2, Linux) returns a bogus exit status, -# so uname gets run too. -ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q` - -# -# Initializations. -# -ac_default_prefix=/usr/local -ac_clean_files= -ac_config_libobj_dir=. -LIBOBJS= -cross_compiling=no -subdirs= -MFLAGS= -MAKEFLAGS= -SHELL=${CONFIG_SHELL-/bin/sh} - -# Identity of this package. -PACKAGE_NAME='XExtProto' -PACKAGE_TARNAME='xextproto' -PACKAGE_VERSION='7.1.2' -PACKAGE_STRING='XExtProto 7.1.2' -PACKAGE_BUGREPORT='https://bugs.freedesktop.org/enter_bug.cgi?product=xorg' - -# Factoring default headers for most tests. -ac_includes_default="\ -#include <stdio.h> -#ifdef HAVE_SYS_TYPES_H -# include <sys/types.h> -#endif -#ifdef HAVE_SYS_STAT_H -# include <sys/stat.h> -#endif -#ifdef STDC_HEADERS -# include <stdlib.h> -# include <stddef.h> -#else -# ifdef HAVE_STDLIB_H -# include <stdlib.h> -# endif -#endif -#ifdef HAVE_STRING_H -# if !defined STDC_HEADERS && defined HAVE_MEMORY_H -# include <memory.h> -# endif -# include <string.h> -#endif -#ifdef HAVE_STRINGS_H -# include <strings.h> -#endif -#ifdef HAVE_INTTYPES_H -# include <inttypes.h> -#endif -#ifdef HAVE_STDINT_H -# include <stdint.h> -#endif -#ifdef HAVE_UNISTD_H -# include <unistd.h> -#endif" - -ac_subst_vars='am__EXEEXT_FALSE -am__EXEEXT_TRUE -LTLIBOBJS -LIBOBJS -HAVE_STYLESHEETS_FALSE -HAVE_STYLESHEETS_TRUE -XSL_STYLESHEET -STYLESHEET_SRCDIR -XORG_SGML_PATH -HAVE_FOP_FALSE -HAVE_FOP_TRUE -FOP -HAVE_XMLTO_FALSE -HAVE_XMLTO_TRUE -HAVE_XMLTO_TEXT_FALSE -HAVE_XMLTO_TEXT_TRUE -XMLTO -ENABLE_SPECS_FALSE -ENABLE_SPECS_TRUE -AM_BACKSLASH -AM_DEFAULT_VERBOSITY -MAN_SUBSTS -XORG_MAN_PAGE -ADMIN_MAN_DIR -DRIVER_MAN_DIR -MISC_MAN_DIR -FILE_MAN_DIR -LIB_MAN_DIR -APP_MAN_DIR -ADMIN_MAN_SUFFIX -DRIVER_MAN_SUFFIX -MISC_MAN_SUFFIX -FILE_MAN_SUFFIX -LIB_MAN_SUFFIX -APP_MAN_SUFFIX -SED -host_os -host_vendor -host_cpu -host -build_os -build_vendor -build_cpu -build -INSTALL_CMD -PKG_CONFIG -CHANGELOG_CMD -CWARNFLAGS -EGREP -GREP -CPP -am__fastdepCC_FALSE -am__fastdepCC_TRUE -CCDEPMODE -AMDEPBACKSLASH -AMDEP_FALSE -AMDEP_TRUE -am__quote -am__include -DEPDIR -OBJEXT -EXEEXT -ac_ct_CC -CPPFLAGS -LDFLAGS -CFLAGS -CC -MAINT -MAINTAINER_MODE_FALSE -MAINTAINER_MODE_TRUE -am__untar -am__tar -AMTAR -am__leading_dot -SET_MAKE -AWK -mkdir_p -MKDIR_P -INSTALL_STRIP_PROGRAM -STRIP -install_sh -MAKEINFO -AUTOHEADER -AUTOMAKE -AUTOCONF -ACLOCAL -VERSION -PACKAGE -CYGPATH_W -am__isrc -INSTALL_DATA -INSTALL_SCRIPT -INSTALL_PROGRAM -target_alias -host_alias -build_alias -LIBS -ECHO_T -ECHO_N -ECHO_C -DEFS -mandir -localedir -libdir -psdir -pdfdir -dvidir -htmldir -infodir -docdir -oldincludedir -includedir -localstatedir -sharedstatedir -sysconfdir -datadir -datarootdir -libexecdir -sbindir -bindir -program_transform_name -prefix -exec_prefix -PACKAGE_BUGREPORT -PACKAGE_STRING -PACKAGE_VERSION -PACKAGE_TARNAME -PACKAGE_NAME -PATH_SEPARATOR -SHELL' -ac_subst_files='' -ac_user_opts=' -enable_option_checking -enable_maintainer_mode -enable_dependency_tracking -enable_strict_compilation -enable_silent_rules -enable_specs -with_xmlto -with_fop -' - ac_precious_vars='build_alias -host_alias -target_alias -CC -CFLAGS -LDFLAGS -LIBS -CPPFLAGS -CPP -PKG_CONFIG -XMLTO -FOP' - - -# Initialize some variables set by options. -ac_init_help= -ac_init_version=false -ac_unrecognized_opts= -ac_unrecognized_sep= -# The variables have the same names as the options, with -# dashes changed to underlines. -cache_file=/dev/null -exec_prefix=NONE -no_create= -no_recursion= -prefix=NONE -program_prefix=NONE -program_suffix=NONE -program_transform_name=s,x,x, -silent= -site= -srcdir= -verbose= -x_includes=NONE -x_libraries=NONE - -# Installation directory options. -# These are left unexpanded so users can "make install exec_prefix=/foo" -# and all the variables that are supposed to be based on exec_prefix -# by default will actually change. -# Use braces instead of parens because sh, perl, etc. also accept them. -# (The list follows the same order as the GNU Coding Standards.) -bindir='${exec_prefix}/bin' -sbindir='${exec_prefix}/sbin' -libexecdir='${exec_prefix}/libexec' -datarootdir='${prefix}/share' -datadir='${datarootdir}' -sysconfdir='${prefix}/etc' -sharedstatedir='${prefix}/com' -localstatedir='${prefix}/var' -includedir='${prefix}/include' -oldincludedir='/usr/include' -docdir='${datarootdir}/doc/${PACKAGE_TARNAME}' -infodir='${datarootdir}/info' -htmldir='${docdir}' -dvidir='${docdir}' -pdfdir='${docdir}' -psdir='${docdir}' -libdir='${exec_prefix}/lib' -localedir='${datarootdir}/locale' -mandir='${datarootdir}/man' - -ac_prev= -ac_dashdash= -for ac_option -do - # If the previous option needs an argument, assign it. - if test -n "$ac_prev"; then - eval $ac_prev=\$ac_option - ac_prev= - continue - fi - - case $ac_option in - *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;; - *) ac_optarg=yes ;; - esac - - # Accept the important Cygnus configure options, so we can diagnose typos. - - case $ac_dashdash$ac_option in - --) - ac_dashdash=yes ;; - - -bindir | --bindir | --bindi | --bind | --bin | --bi) - ac_prev=bindir ;; - -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*) - bindir=$ac_optarg ;; - - -build | --build | --buil | --bui | --bu) - ac_prev=build_alias ;; - -build=* | --build=* | --buil=* | --bui=* | --bu=*) - build_alias=$ac_optarg ;; - - -cache-file | --cache-file | --cache-fil | --cache-fi \ - | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c) - ac_prev=cache_file ;; - -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \ - | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*) - cache_file=$ac_optarg ;; - - --config-cache | -C) - cache_file=config.cache ;; - - -datadir | --datadir | --datadi | --datad) - ac_prev=datadir ;; - -datadir=* | --datadir=* | --datadi=* | --datad=*) - datadir=$ac_optarg ;; - - -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \ - | --dataroo | --dataro | --datar) - ac_prev=datarootdir ;; - -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \ - | --dataroot=* | --dataroo=* | --dataro=* | --datar=*) - datarootdir=$ac_optarg ;; - - -disable-* | --disable-*) - ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=no ;; - - -docdir | --docdir | --docdi | --doc | --do) - ac_prev=docdir ;; - -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*) - docdir=$ac_optarg ;; - - -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv) - ac_prev=dvidir ;; - -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*) - dvidir=$ac_optarg ;; - - -enable-* | --enable-*) - ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"enable_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval enable_$ac_useropt=\$ac_optarg ;; - - -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \ - | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \ - | --exec | --exe | --ex) - ac_prev=exec_prefix ;; - -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \ - | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \ - | --exec=* | --exe=* | --ex=*) - exec_prefix=$ac_optarg ;; - - -gas | --gas | --ga | --g) - # Obsolete; use --with-gas. - with_gas=yes ;; - - -help | --help | --hel | --he | -h) - ac_init_help=long ;; - -help=r* | --help=r* | --hel=r* | --he=r* | -hr*) - ac_init_help=recursive ;; - -help=s* | --help=s* | --hel=s* | --he=s* | -hs*) - ac_init_help=short ;; - - -host | --host | --hos | --ho) - ac_prev=host_alias ;; - -host=* | --host=* | --hos=* | --ho=*) - host_alias=$ac_optarg ;; - - -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht) - ac_prev=htmldir ;; - -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \ - | --ht=*) - htmldir=$ac_optarg ;; - - -includedir | --includedir | --includedi | --included | --include \ - | --includ | --inclu | --incl | --inc) - ac_prev=includedir ;; - -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \ - | --includ=* | --inclu=* | --incl=* | --inc=*) - includedir=$ac_optarg ;; - - -infodir | --infodir | --infodi | --infod | --info | --inf) - ac_prev=infodir ;; - -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*) - infodir=$ac_optarg ;; - - -libdir | --libdir | --libdi | --libd) - ac_prev=libdir ;; - -libdir=* | --libdir=* | --libdi=* | --libd=*) - libdir=$ac_optarg ;; - - -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \ - | --libexe | --libex | --libe) - ac_prev=libexecdir ;; - -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \ - | --libexe=* | --libex=* | --libe=*) - libexecdir=$ac_optarg ;; - - -localedir | --localedir | --localedi | --localed | --locale) - ac_prev=localedir ;; - -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*) - localedir=$ac_optarg ;; - - -localstatedir | --localstatedir | --localstatedi | --localstated \ - | --localstate | --localstat | --localsta | --localst | --locals) - ac_prev=localstatedir ;; - -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \ - | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*) - localstatedir=$ac_optarg ;; - - -mandir | --mandir | --mandi | --mand | --man | --ma | --m) - ac_prev=mandir ;; - -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*) - mandir=$ac_optarg ;; - - -nfp | --nfp | --nf) - # Obsolete; use --without-fp. - with_fp=no ;; - - -no-create | --no-create | --no-creat | --no-crea | --no-cre \ - | --no-cr | --no-c | -n) - no_create=yes ;; - - -no-recursion | --no-recursion | --no-recursio | --no-recursi \ - | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r) - no_recursion=yes ;; - - -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \ - | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \ - | --oldin | --oldi | --old | --ol | --o) - ac_prev=oldincludedir ;; - -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \ - | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \ - | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*) - oldincludedir=$ac_optarg ;; - - -prefix | --prefix | --prefi | --pref | --pre | --pr | --p) - ac_prev=prefix ;; - -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*) - prefix=$ac_optarg ;; - - -program-prefix | --program-prefix | --program-prefi | --program-pref \ - | --program-pre | --program-pr | --program-p) - ac_prev=program_prefix ;; - -program-prefix=* | --program-prefix=* | --program-prefi=* \ - | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*) - program_prefix=$ac_optarg ;; - - -program-suffix | --program-suffix | --program-suffi | --program-suff \ - | --program-suf | --program-su | --program-s) - ac_prev=program_suffix ;; - -program-suffix=* | --program-suffix=* | --program-suffi=* \ - | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*) - program_suffix=$ac_optarg ;; - - -program-transform-name | --program-transform-name \ - | --program-transform-nam | --program-transform-na \ - | --program-transform-n | --program-transform- \ - | --program-transform | --program-transfor \ - | --program-transfo | --program-transf \ - | --program-trans | --program-tran \ - | --progr-tra | --program-tr | --program-t) - ac_prev=program_transform_name ;; - -program-transform-name=* | --program-transform-name=* \ - | --program-transform-nam=* | --program-transform-na=* \ - | --program-transform-n=* | --program-transform-=* \ - | --program-transform=* | --program-transfor=* \ - | --program-transfo=* | --program-transf=* \ - | --program-trans=* | --program-tran=* \ - | --progr-tra=* | --program-tr=* | --program-t=*) - program_transform_name=$ac_optarg ;; - - -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd) - ac_prev=pdfdir ;; - -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*) - pdfdir=$ac_optarg ;; - - -psdir | --psdir | --psdi | --psd | --ps) - ac_prev=psdir ;; - -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*) - psdir=$ac_optarg ;; - - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - silent=yes ;; - - -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb) - ac_prev=sbindir ;; - -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \ - | --sbi=* | --sb=*) - sbindir=$ac_optarg ;; - - -sharedstatedir | --sharedstatedir | --sharedstatedi \ - | --sharedstated | --sharedstate | --sharedstat | --sharedsta \ - | --sharedst | --shareds | --shared | --share | --shar \ - | --sha | --sh) - ac_prev=sharedstatedir ;; - -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \ - | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \ - | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \ - | --sha=* | --sh=*) - sharedstatedir=$ac_optarg ;; - - -site | --site | --sit) - ac_prev=site ;; - -site=* | --site=* | --sit=*) - site=$ac_optarg ;; - - -srcdir | --srcdir | --srcdi | --srcd | --src | --sr) - ac_prev=srcdir ;; - -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*) - srcdir=$ac_optarg ;; - - -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \ - | --syscon | --sysco | --sysc | --sys | --sy) - ac_prev=sysconfdir ;; - -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \ - | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*) - sysconfdir=$ac_optarg ;; - - -target | --target | --targe | --targ | --tar | --ta | --t) - ac_prev=target_alias ;; - -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*) - target_alias=$ac_optarg ;; - - -v | -verbose | --verbose | --verbos | --verbo | --verb) - verbose=yes ;; - - -version | --version | --versio | --versi | --vers | -V) - ac_init_version=: ;; - - -with-* | --with-*) - ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=\$ac_optarg ;; - - -without-* | --without-*) - ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'` - # Reject names that are not valid shell variable names. - expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2 - { (exit 1); exit 1; }; } - ac_useropt_orig=$ac_useropt - ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'` - case $ac_user_opts in - *" -"with_$ac_useropt" -"*) ;; - *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig" - ac_unrecognized_sep=', ';; - esac - eval with_$ac_useropt=no ;; - - --x) - # Obsolete; use --with-x. - with_x=yes ;; - - -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \ - | --x-incl | --x-inc | --x-in | --x-i) - ac_prev=x_includes ;; - -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \ - | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*) - x_includes=$ac_optarg ;; - - -x-libraries | --x-libraries | --x-librarie | --x-librari \ - | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l) - ac_prev=x_libraries ;; - -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \ - | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) - x_libraries=$ac_optarg ;; - - -*) { $as_echo "$as_me: error: unrecognized option: $ac_option -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } - ;; - - *=*) - ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='` - # Reject names that are not valid shell variable names. - expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null && - { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2 - { (exit 1); exit 1; }; } - eval $ac_envvar=\$ac_optarg - export $ac_envvar ;; - - *) - # FIXME: should be removed in autoconf 3.0. - $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2 - expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null && - $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2 - : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option} - ;; - - esac -done - -if test -n "$ac_prev"; then - ac_option=--`echo $ac_prev | sed 's/_/-/g'` - { $as_echo "$as_me: error: missing argument to $ac_option" >&2 - { (exit 1); exit 1; }; } -fi - -if test -n "$ac_unrecognized_opts"; then - case $enable_option_checking in - no) ;; - fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2 - { (exit 1); exit 1; }; } ;; - *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;; - esac -fi - -# Check all directory arguments for consistency. -for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \ - datadir sysconfdir sharedstatedir localstatedir includedir \ - oldincludedir docdir infodir htmldir dvidir pdfdir psdir \ - libdir localedir mandir -do - eval ac_val=\$$ac_var - # Remove trailing slashes. - case $ac_val in - */ ) - ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'` - eval $ac_var=\$ac_val;; - esac - # Be sure to have absolute directory names. - case $ac_val in - [\\/$]* | ?:[\\/]* ) continue;; - NONE | '' ) case $ac_var in *prefix ) continue;; esac;; - esac - { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2 - { (exit 1); exit 1; }; } -done - -# There might be people who depend on the old broken behavior: `$host' -# used to hold the argument of --host etc. -# FIXME: To remove some day. -build=$build_alias -host=$host_alias -target=$target_alias - -# FIXME: To remove some day. -if test "x$host_alias" != x; then - if test "x$build_alias" = x; then - cross_compiling=maybe - $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host. - If a cross compiler is detected then cross compile mode will be used." >&2 - elif test "x$build_alias" != "x$host_alias"; then - cross_compiling=yes - fi -fi - -ac_tool_prefix= -test -n "$host_alias" && ac_tool_prefix=$host_alias- - -test "$silent" = yes && exec 6>/dev/null - - -ac_pwd=`pwd` && test -n "$ac_pwd" && -ac_ls_di=`ls -di .` && -ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` || - { $as_echo "$as_me: error: working directory cannot be determined" >&2 - { (exit 1); exit 1; }; } -test "X$ac_ls_di" = "X$ac_pwd_ls_di" || - { $as_echo "$as_me: error: pwd does not report name of working directory" >&2 - { (exit 1); exit 1; }; } - - -# Find the source files, if location was not specified. -if test -z "$srcdir"; then - ac_srcdir_defaulted=yes - # Try the directory containing this script, then the parent directory. - ac_confdir=`$as_dirname -- "$as_myself" || -$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_myself" : 'X\(//\)[^/]' \| \ - X"$as_myself" : 'X\(//\)$' \| \ - X"$as_myself" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_myself" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - srcdir=$ac_confdir - if test ! -r "$srcdir/$ac_unique_file"; then - srcdir=.. - fi -else - ac_srcdir_defaulted=no -fi -if test ! -r "$srcdir/$ac_unique_file"; then - test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." - { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2 - { (exit 1); exit 1; }; } -fi -ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work" -ac_abs_confdir=`( - cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2 - { (exit 1); exit 1; }; } - pwd)` -# When building in place, set srcdir=. -if test "$ac_abs_confdir" = "$ac_pwd"; then - srcdir=. -fi -# Remove unnecessary trailing slashes from srcdir. -# Double slashes in file names in object file debugging info -# mess up M-x gdb in Emacs. -case $srcdir in -*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;; -esac -for ac_var in $ac_precious_vars; do - eval ac_env_${ac_var}_set=\${${ac_var}+set} - eval ac_env_${ac_var}_value=\$${ac_var} - eval ac_cv_env_${ac_var}_set=\${${ac_var}+set} - eval ac_cv_env_${ac_var}_value=\$${ac_var} -done - -# -# Report the --help message. -# -if test "$ac_init_help" = "long"; then - # 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. - cat <<_ACEOF -\`configure' configures XExtProto 7.1.2 to adapt to many kinds of systems. - -Usage: $0 [OPTION]... [VAR=VALUE]... - -To assign environment variables (e.g., CC, CFLAGS...), specify them as -VAR=VALUE. See below for descriptions of some of the useful variables. - -Defaults for the options are specified in brackets. - -Configuration: - -h, --help display this help and exit - --help=short display options specific to this package - --help=recursive display the short help of all the included packages - -V, --version display version information and exit - -q, --quiet, --silent do not print \`checking...' messages - --cache-file=FILE cache test results in FILE [disabled] - -C, --config-cache alias for \`--cache-file=config.cache' - -n, --no-create do not create output files - --srcdir=DIR find the sources in DIR [configure dir or \`..'] - -Installation directories: - --prefix=PREFIX install architecture-independent files in PREFIX - [$ac_default_prefix] - --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX - [PREFIX] - -By default, \`make install' will install all the files in -\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify -an installation prefix other than \`$ac_default_prefix' using \`--prefix', -for instance \`--prefix=\$HOME'. - -For better control, use the options below. - -Fine tuning of the installation directories: - --bindir=DIR user executables [EPREFIX/bin] - --sbindir=DIR system admin executables [EPREFIX/sbin] - --libexecdir=DIR program executables [EPREFIX/libexec] - --sysconfdir=DIR read-only single-machine data [PREFIX/etc] - --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com] - --localstatedir=DIR modifiable single-machine data [PREFIX/var] - --libdir=DIR object code libraries [EPREFIX/lib] - --includedir=DIR C header files [PREFIX/include] - --oldincludedir=DIR C header files for non-gcc [/usr/include] - --datarootdir=DIR read-only arch.-independent data root [PREFIX/share] - --datadir=DIR read-only architecture-independent data [DATAROOTDIR] - --infodir=DIR info documentation [DATAROOTDIR/info] - --localedir=DIR locale-dependent data [DATAROOTDIR/locale] - --mandir=DIR man documentation [DATAROOTDIR/man] - --docdir=DIR documentation root [DATAROOTDIR/doc/xextproto] - --htmldir=DIR html documentation [DOCDIR] - --dvidir=DIR dvi documentation [DOCDIR] - --pdfdir=DIR pdf documentation [DOCDIR] - --psdir=DIR ps documentation [DOCDIR] -_ACEOF - - cat <<\_ACEOF - -Program names: - --program-prefix=PREFIX prepend PREFIX to installed program names - --program-suffix=SUFFIX append SUFFIX to installed program names - --program-transform-name=PROGRAM run sed PROGRAM on installed program names - -System types: - --build=BUILD configure for building on BUILD [guessed] - --host=HOST cross-compile to build programs to run on HOST [BUILD] -_ACEOF -fi - -if test -n "$ac_init_help"; then - case $ac_init_help in - short | recursive ) echo "Configuration of XExtProto 7.1.2:";; - esac - cat <<\_ACEOF - -Optional Features: - --disable-option-checking ignore unrecognized --enable/--with options - --disable-FEATURE do not include FEATURE (same as --enable-FEATURE=no) - --enable-FEATURE[=ARG] include FEATURE [ARG=yes] - --enable-maintainer-mode enable make rules and dependencies not useful - (and sometimes confusing) to the casual installer - --disable-dependency-tracking speeds up one-time build - --enable-dependency-tracking do not reject slow dependency extractors - --enable-strict-compilation - Enable all warnings from compiler and make them - errors (default: disabled) - --enable-silent-rules less verbose build output (undo: `make V=1') - --disable-silent-rules verbose build output (undo: `make V=0') - --enable-specs Enable building the specs (default: yes) - -Optional Packages: - --with-PACKAGE[=ARG] use PACKAGE [ARG=yes] - --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no) - --with-xmlto Use xmlto to regenerate documentation (default: yes, - if installed) - --with-fop Use fop to regenerate documentation (default: yes, - if installed) - -Some influential environment variables: - CC C compiler command - CFLAGS C compiler flags - LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a - nonstandard directory <lib dir> - LIBS libraries to pass to the linker, e.g. -l<library> - CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if - you have headers in a nonstandard directory <include dir> - CPP C preprocessor - PKG_CONFIG path to pkg-config utility - XMLTO Path to xmlto command - FOP Path to fop command - -Use these variables to override the choices made by `configure' or to help -it to find libraries and programs with nonstandard names/locations. - -Report bugs to <https://bugs.freedesktop.org/enter_bug.cgi?product=xorg>. -_ACEOF -ac_status=$? -fi - -if test "$ac_init_help" = "recursive"; then - # If there are subdirs, report their specific --help. - for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue - test -d "$ac_dir" || - { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } || - continue - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - cd "$ac_dir" || { ac_status=$?; continue; } - # Check for guested configure. - if test -f "$ac_srcdir/configure.gnu"; then - echo && - $SHELL "$ac_srcdir/configure.gnu" --help=recursive - elif test -f "$ac_srcdir/configure"; then - echo && - $SHELL "$ac_srcdir/configure" --help=recursive - else - $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2 - fi || ac_status=$? - cd "$ac_pwd" || { ac_status=$?; break; } - done -fi - -test -n "$ac_init_help" && exit $ac_status -if $ac_init_version; then - cat <<\_ACEOF -XExtProto configure 7.1.2 -generated by GNU Autoconf 2.63 - -Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001, -2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc. -This configure script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it. -_ACEOF - exit -fi -cat >config.log <<_ACEOF -This file contains any messages produced by compilers while -running configure, to aid debugging if configure makes a mistake. - -It was created by XExtProto $as_me 7.1.2, which was -generated by GNU Autoconf 2.63. Invocation command line was - - $ $0 $@ - -_ACEOF -exec 5>>config.log -{ -cat <<_ASUNAME -## --------- ## -## Platform. ## -## --------- ## - -hostname = `(hostname || uname -n) 2>/dev/null | sed 1q` -uname -m = `(uname -m) 2>/dev/null || echo unknown` -uname -r = `(uname -r) 2>/dev/null || echo unknown` -uname -s = `(uname -s) 2>/dev/null || echo unknown` -uname -v = `(uname -v) 2>/dev/null || echo unknown` - -/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown` -/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown` - -/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown` -/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown` -/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown` -/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown` -/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown` -/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown` -/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown` - -_ASUNAME - -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - $as_echo "PATH: $as_dir" -done -IFS=$as_save_IFS - -} >&5 - -cat >&5 <<_ACEOF - - -## ----------- ## -## Core tests. ## -## ----------- ## - -_ACEOF - - -# Keep a trace of the command line. -# Strip out --no-create and --no-recursion so they do not pile up. -# Strip out --silent because we don't want to record it for future runs. -# Also quote any args containing shell meta-characters. -# Make two passes to allow for proper duplicate-argument suppression. -ac_configure_args= -ac_configure_args0= -ac_configure_args1= -ac_must_keep_next=false -for ac_pass in 1 2 -do - for ac_arg - do - case $ac_arg in - -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil) - continue ;; - *\'*) - ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - case $ac_pass in - 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;; - 2) - ac_configure_args1="$ac_configure_args1 '$ac_arg'" - if test $ac_must_keep_next = true; then - ac_must_keep_next=false # Got value, back to normal. - else - case $ac_arg in - *=* | --config-cache | -C | -disable-* | --disable-* \ - | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \ - | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \ - | -with-* | --with-* | -without-* | --without-* | --x) - case "$ac_configure_args0 " in - "$ac_configure_args1"*" '$ac_arg' "* ) continue ;; - esac - ;; - -* ) ac_must_keep_next=true ;; - esac - fi - ac_configure_args="$ac_configure_args '$ac_arg'" - ;; - esac - done -done -$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; } -$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; } - -# When interrupted or exit'd, cleanup temporary files, and complete -# config.log. We remove comments because anyway the quotes in there -# would cause problems or look ugly. -# WARNING: Use '\'' to represent an apostrophe within the trap. -# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug. -trap 'exit_status=$? - # Save into config.log some information that might help in debugging. - { - echo - - cat <<\_ASBOX -## ---------------- ## -## Cache variables. ## -## ---------------- ## -_ASBOX - echo - # The following way of writing the cache mishandles newlines in values, -( - for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) $as_unset $ac_var ;; - esac ;; - esac - done - (set) 2>&1 | - case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - sed -n \ - "s/'\''/'\''\\\\'\'''\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p" - ;; #( - *) - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) - echo - - cat <<\_ASBOX -## ----------------- ## -## Output variables. ## -## ----------------- ## -_ASBOX - echo - for ac_var in $ac_subst_vars - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - - if test -n "$ac_subst_files"; then - cat <<\_ASBOX -## ------------------- ## -## File substitutions. ## -## ------------------- ## -_ASBOX - echo - for ac_var in $ac_subst_files - do - eval ac_val=\$$ac_var - case $ac_val in - *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;; - esac - $as_echo "$ac_var='\''$ac_val'\''" - done | sort - echo - fi - - if test -s confdefs.h; then - cat <<\_ASBOX -## ----------- ## -## confdefs.h. ## -## ----------- ## -_ASBOX - echo - cat confdefs.h - echo - fi - test "$ac_signal" != 0 && - $as_echo "$as_me: caught signal $ac_signal" - $as_echo "$as_me: exit $exit_status" - } >&5 - rm -f core *.core core.conftest.* && - rm -f -r conftest* confdefs* conf$$* $ac_clean_files && - exit $exit_status -' 0 -for ac_signal in 1 2 13 15; do - trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal -done -ac_signal=0 - -# confdefs.h avoids OS command line length limits that DEFS can exceed. -rm -f -r conftest* confdefs.h - -# Predefined preprocessor variables. - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_NAME "$PACKAGE_NAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_TARNAME "$PACKAGE_TARNAME" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION "$PACKAGE_VERSION" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_STRING "$PACKAGE_STRING" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT" -_ACEOF - - -# Let the site file select an alternate cache file if it wants to. -# Prefer an explicitly selected file to automatically selected ones. -ac_site_file1=NONE -ac_site_file2=NONE -if test -n "$CONFIG_SITE"; then - ac_site_file1=$CONFIG_SITE -elif test "x$prefix" != xNONE; then - ac_site_file1=$prefix/share/config.site - ac_site_file2=$prefix/etc/config.site -else - ac_site_file1=$ac_default_prefix/share/config.site - ac_site_file2=$ac_default_prefix/etc/config.site -fi -for ac_site_file in "$ac_site_file1" "$ac_site_file2" -do - test "x$ac_site_file" = xNONE && continue - if test -r "$ac_site_file"; then - { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5 -$as_echo "$as_me: loading site script $ac_site_file" >&6;} - sed 's/^/| /' "$ac_site_file" >&5 - . "$ac_site_file" - fi -done - -if test -r "$cache_file"; then - # Some versions of bash will fail to source /dev/null (special - # files actually), so we avoid doing that. - if test -f "$cache_file"; then - { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5 -$as_echo "$as_me: loading cache $cache_file" >&6;} - case $cache_file in - [\\/]* | ?:[\\/]* ) . "$cache_file";; - *) . "./$cache_file";; - esac - fi -else - { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5 -$as_echo "$as_me: creating cache $cache_file" >&6;} - >$cache_file -fi - -# Check that the precious variables saved in the cache have kept the same -# value. -ac_cache_corrupted=false -for ac_var in $ac_precious_vars; do - eval ac_old_set=\$ac_cv_env_${ac_var}_set - eval ac_new_set=\$ac_env_${ac_var}_set - eval ac_old_val=\$ac_cv_env_${ac_var}_value - eval ac_new_val=\$ac_env_${ac_var}_value - case $ac_old_set,$ac_new_set in - set,) - { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,set) - { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5 -$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;} - ac_cache_corrupted=: ;; - ,);; - *) - if test "x$ac_old_val" != "x$ac_new_val"; then - # differences in whitespace do not lead to failure. - ac_old_val_w=`echo x $ac_old_val` - ac_new_val_w=`echo x $ac_new_val` - if test "$ac_old_val_w" != "$ac_new_val_w"; then - { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5 -$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;} - ac_cache_corrupted=: - else - { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5 -$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;} - eval $ac_var=\$ac_old_val - fi - { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5 -$as_echo "$as_me: former value: \`$ac_old_val'" >&2;} - { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5 -$as_echo "$as_me: current value: \`$ac_new_val'" >&2;} - fi;; - esac - # Pass precious variables to config.status. - if test "$ac_new_set" = set; then - case $ac_new_val in - *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;; - *) ac_arg=$ac_var=$ac_new_val ;; - esac - case " $ac_configure_args " in - *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy. - *) ac_configure_args="$ac_configure_args '$ac_arg'" ;; - esac - fi -done -if $ac_cache_corrupted; then - { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} - { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5 -$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;} - { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5 -$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;} - { (exit 1); exit 1; }; } -fi - - - - - - - - - - - - - - - - - - - - - - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -am__api_version='1.11' - -ac_aux_dir= -for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do - if test -f "$ac_dir/install-sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install-sh -c" - break - elif test -f "$ac_dir/install.sh"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/install.sh -c" - break - elif test -f "$ac_dir/shtool"; then - ac_aux_dir=$ac_dir - ac_install_sh="$ac_aux_dir/shtool install -c" - break - fi -done -if test -z "$ac_aux_dir"; then - { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5 -$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;} - { (exit 1); exit 1; }; } -fi - -# These three variables are undocumented and unsupported, -# and are intended to be withdrawn in a future Autoconf release. -# They can cause serious problems if a builder's source tree is in a directory -# whose full name contains unusual characters. -ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var. -ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var. -ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var. - - -# Find a good install program. We prefer a C program (faster), -# so one script is as good as another. But avoid the broken or -# incompatible versions: -# SysV /etc/install, /usr/sbin/install -# SunOS /usr/etc/install -# IRIX /sbin/install -# AIX /bin/install -# AmigaOS /C/install, which installs bootblocks on floppy discs -# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag -# AFS /usr/afsws/bin/install, which mishandles nonexistent args -# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff" -# OS/2's system install, which has a completely different semantic -# ./install, which can be erroneously created by make from ./install.sh. -# Reject install programs that cannot install multiple files. -{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5 -$as_echo_n "checking for a BSD-compatible install... " >&6; } -if test -z "$INSTALL"; then -if test "${ac_cv_path_install+set}" = set; then - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - # Account for people who put trailing slashes in PATH elements. -case $as_dir/ in - ./ | .// | /cC/* | \ - /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \ - ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \ - /usr/ucb/* ) ;; - *) - # OSF1 and SCO ODT 3.0 have their own names for install. - # Don't use installbsd from OSF since it installs stuff as root - # by default. - for ac_prog in ginstall scoinst install; do - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then - if test $ac_prog = install && - grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # AIX install. It has an incompatible calling convention. - : - elif test $ac_prog = install && - grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then - # program-specific install script used by HP pwplus--don't use. - : - else - rm -rf conftest.one conftest.two conftest.dir - echo one > conftest.one - echo two > conftest.two - mkdir conftest.dir - if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" && - test -s conftest.one && test -s conftest.two && - test -s conftest.dir/conftest.one && - test -s conftest.dir/conftest.two - then - ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c" - break 3 - fi - fi - fi - done - done - ;; -esac - -done -IFS=$as_save_IFS - -rm -rf conftest.one conftest.two conftest.dir - -fi - if test "${ac_cv_path_install+set}" = set; then - INSTALL=$ac_cv_path_install - else - # As a last resort, use the slow shell script. Don't cache a - # value for INSTALL within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - INSTALL=$ac_install_sh - fi -fi -{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5 -$as_echo "$INSTALL" >&6; } - -# Use test -z because SunOS4 sh mishandles braces in ${var-val}. -# It thinks the first close brace ends the variable substitution. -test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}' - -test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}' - -test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644' - -{ $as_echo "$as_me:$LINENO: checking whether build environment is sane" >&5 -$as_echo_n "checking whether build environment is sane... " >&6; } -# Just in case -sleep 1 -echo timestamp > conftest.file -# Reject unsafe characters in $srcdir or the absolute working directory -# name. Accept space and tab only in the latter. -am_lf=' -' -case `pwd` in - *[\\\"\#\$\&\'\`$am_lf]*) - { { $as_echo "$as_me:$LINENO: error: unsafe absolute working directory name" >&5 -$as_echo "$as_me: error: unsafe absolute working directory name" >&2;} - { (exit 1); exit 1; }; };; -esac -case $srcdir in - *[\\\"\#\$\&\'\`$am_lf\ \ ]*) - { { $as_echo "$as_me:$LINENO: error: unsafe srcdir value: \`$srcdir'" >&5 -$as_echo "$as_me: error: unsafe srcdir value: \`$srcdir'" >&2;} - { (exit 1); exit 1; }; };; -esac - -# Do `set' in a subshell so we don't clobber the current shell's -# arguments. Must try -L first in case configure is actually a -# symlink; some systems play weird games with the mod time of symlinks -# (eg FreeBSD returns the mod time of the symlink's containing -# directory). -if ( - set X `ls -Lt "$srcdir/configure" conftest.file 2> /dev/null` - if test "$*" = "X"; then - # -L didn't work. - set X `ls -t "$srcdir/configure" conftest.file` - fi - rm -f conftest.file - if test "$*" != "X $srcdir/configure conftest.file" \ - && test "$*" != "X conftest.file $srcdir/configure"; then - - # If neither matched, then we have a broken ls. This can happen - # if, for instance, CONFIG_SHELL is bash and it inherits a - # broken ls alias from the environment. This has actually - # happened. Such a system could not be considered "sane". - { { $as_echo "$as_me:$LINENO: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&5 -$as_echo "$as_me: error: ls -t appears to fail. Make sure there is not a broken -alias in your environment" >&2;} - { (exit 1); exit 1; }; } - fi - - test "$2" = conftest.file - ) -then - # Ok. - : -else - { { $as_echo "$as_me:$LINENO: error: newly created file is older than distributed files! -Check your system clock" >&5 -$as_echo "$as_me: error: newly created file is older than distributed files! -Check your system clock" >&2;} - { (exit 1); exit 1; }; } -fi -{ $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } -test "$program_prefix" != NONE && - program_transform_name="s&^&$program_prefix&;$program_transform_name" -# Use a double $ so make ignores it. -test "$program_suffix" != NONE && - program_transform_name="s&\$&$program_suffix&;$program_transform_name" -# Double any \ or $. -# By default was `s,x,x', remove it if useless. -ac_script='s/[\\$]/&&/g;s/;s,x,x,$//' -program_transform_name=`$as_echo "$program_transform_name" | sed "$ac_script"` - -# expand $ac_aux_dir to an absolute path -am_aux_dir=`cd $ac_aux_dir && pwd` - -if test x"${MISSING+set}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - MISSING="\${SHELL} \"$am_aux_dir/missing\"" ;; - *) - MISSING="\${SHELL} $am_aux_dir/missing" ;; - esac -fi -# Use eval to expand $SHELL -if eval "$MISSING --run true"; then - am_missing_run="$MISSING --run " -else - am_missing_run= - { $as_echo "$as_me:$LINENO: WARNING: \`missing' script is too old or missing" >&5 -$as_echo "$as_me: WARNING: \`missing' script is too old or missing" >&2;} -fi - -if test x"${install_sh}" != xset; then - case $am_aux_dir in - *\ * | *\ *) - install_sh="\${SHELL} '$am_aux_dir/install-sh'" ;; - *) - install_sh="\${SHELL} $am_aux_dir/install-sh" - esac -fi - -# Installed binaries are usually stripped using `strip' when the user -# run `make install-strip'. However `strip' might not be the right -# tool to use in cross-compilation environments, therefore Automake -# will honor the `STRIP' environment variable to overrule this program. -if test "$cross_compiling" != no; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}strip", so it can be a program name with args. -set dummy ${ac_tool_prefix}strip; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_STRIP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$STRIP"; then - ac_cv_prog_STRIP="$STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_STRIP="${ac_tool_prefix}strip" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -STRIP=$ac_cv_prog_STRIP -if test -n "$STRIP"; then - { $as_echo "$as_me:$LINENO: result: $STRIP" >&5 -$as_echo "$STRIP" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_STRIP"; then - ac_ct_STRIP=$STRIP - # Extract the first word of "strip", so it can be a program name with args. -set dummy strip; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_STRIP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_STRIP"; then - ac_cv_prog_ac_ct_STRIP="$ac_ct_STRIP" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_STRIP="strip" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_STRIP=$ac_cv_prog_ac_ct_STRIP -if test -n "$ac_ct_STRIP"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_STRIP" >&5 -$as_echo "$ac_ct_STRIP" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_STRIP" = x; then - STRIP=":" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - STRIP=$ac_ct_STRIP - fi -else - STRIP="$ac_cv_prog_STRIP" -fi - -fi -INSTALL_STRIP_PROGRAM="\$(install_sh) -c -s" - -{ $as_echo "$as_me:$LINENO: checking for a thread-safe mkdir -p" >&5 -$as_echo_n "checking for a thread-safe mkdir -p... " >&6; } -if test -z "$MKDIR_P"; then - if test "${ac_cv_path_mkdir+set}" = set; then - $as_echo_n "(cached) " >&6 -else - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/opt/sfw/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in mkdir gmkdir; do - for ac_exec_ext in '' $ac_executable_extensions; do - { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; } || continue - case `"$as_dir/$ac_prog$ac_exec_ext" --version 2>&1` in #( - 'mkdir (GNU coreutils) '* | \ - 'mkdir (coreutils) '* | \ - 'mkdir (fileutils) '4.1*) - ac_cv_path_mkdir=$as_dir/$ac_prog$ac_exec_ext - break 3;; - esac - done - done -done -IFS=$as_save_IFS - -fi - - if test "${ac_cv_path_mkdir+set}" = set; then - MKDIR_P="$ac_cv_path_mkdir -p" - else - # As a last resort, use the slow shell script. Don't cache a - # value for MKDIR_P within a source directory, because that will - # break other packages using the cache if that directory is - # removed, or if the value is a relative name. - test -d ./--version && rmdir ./--version - MKDIR_P="$ac_install_sh -d" - fi -fi -{ $as_echo "$as_me:$LINENO: result: $MKDIR_P" >&5 -$as_echo "$MKDIR_P" >&6; } - -mkdir_p="$MKDIR_P" -case $mkdir_p in - [\\/$]* | ?:[\\/]*) ;; - */*) mkdir_p="\$(top_builddir)/$mkdir_p" ;; -esac - -for ac_prog in gawk mawk nawk awk -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_AWK+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$AWK"; then - ac_cv_prog_AWK="$AWK" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_AWK="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -AWK=$ac_cv_prog_AWK -if test -n "$AWK"; then - { $as_echo "$as_me:$LINENO: result: $AWK" >&5 -$as_echo "$AWK" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$AWK" && break -done - -{ $as_echo "$as_me:$LINENO: checking whether ${MAKE-make} sets \$(MAKE)" >&5 -$as_echo_n "checking whether ${MAKE-make} sets \$(MAKE)... " >&6; } -set x ${MAKE-make} -ac_make=`$as_echo "$2" | sed 's/+/p/g; s/[^a-zA-Z0-9_]/_/g'` -if { as_var=ac_cv_prog_make_${ac_make}_set; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.make <<\_ACEOF -SHELL = /bin/sh -all: - @echo '@@@%%%=$(MAKE)=@@@%%%' -_ACEOF -# GNU make sometimes prints "make[1]: Entering...", which would confuse us. -case `${MAKE-make} -f conftest.make 2>/dev/null` in - *@@@%%%=?*=@@@%%%*) - eval ac_cv_prog_make_${ac_make}_set=yes;; - *) - eval ac_cv_prog_make_${ac_make}_set=no;; -esac -rm -f conftest.make -fi -if eval test \$ac_cv_prog_make_${ac_make}_set = yes; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - SET_MAKE= -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - SET_MAKE="MAKE=${MAKE-make}" -fi - -rm -rf .tst 2>/dev/null -mkdir .tst 2>/dev/null -if test -d .tst; then - am__leading_dot=. -else - am__leading_dot=_ -fi -rmdir .tst 2>/dev/null - -if test "`cd $srcdir && pwd`" != "`pwd`"; then - # Use -I$(srcdir) only when $(srcdir) != ., so that make's output - # is not polluted with repeated "-I." - am__isrc=' -I$(srcdir)' - # test to see if srcdir already configured - if test -f $srcdir/config.status; then - { { $as_echo "$as_me:$LINENO: error: source directory already configured; run \"make distclean\" there first" >&5 -$as_echo "$as_me: error: source directory already configured; run \"make distclean\" there first" >&2;} - { (exit 1); exit 1; }; } - fi -fi - -# test whether we have cygpath -if test -z "$CYGPATH_W"; then - if (cygpath --version) >/dev/null 2>/dev/null; then - CYGPATH_W='cygpath -w' - else - CYGPATH_W=echo - fi -fi - - -# Define the identity of the package. - PACKAGE='xextproto' - VERSION='7.1.2' - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE "$PACKAGE" -_ACEOF - - -cat >>confdefs.h <<_ACEOF -#define VERSION "$VERSION" -_ACEOF - -# Some tools Automake needs. - -ACLOCAL=${ACLOCAL-"${am_missing_run}aclocal-${am__api_version}"} - - -AUTOCONF=${AUTOCONF-"${am_missing_run}autoconf"} - - -AUTOMAKE=${AUTOMAKE-"${am_missing_run}automake-${am__api_version}"} - - -AUTOHEADER=${AUTOHEADER-"${am_missing_run}autoheader"} - - -MAKEINFO=${MAKEINFO-"${am_missing_run}makeinfo"} - -# We need awk for the "check" target. The system "awk" is bad on -# some platforms. -# Always define AMTAR for backward compatibility. - -AMTAR=${AMTAR-"${am_missing_run}tar"} - -am__tar='${AMTAR} chof - "$$tardir"'; am__untar='${AMTAR} xf -' - - - - - - -{ $as_echo "$as_me:$LINENO: checking whether to enable maintainer-specific portions of Makefiles" >&5 -$as_echo_n "checking whether to enable maintainer-specific portions of Makefiles... " >&6; } - # Check whether --enable-maintainer-mode was given. -if test "${enable_maintainer_mode+set}" = set; then - enableval=$enable_maintainer_mode; USE_MAINTAINER_MODE=$enableval -else - USE_MAINTAINER_MODE=no -fi - - { $as_echo "$as_me:$LINENO: result: $USE_MAINTAINER_MODE" >&5 -$as_echo "$USE_MAINTAINER_MODE" >&6; } - if test $USE_MAINTAINER_MODE = yes; then - MAINTAINER_MODE_TRUE= - MAINTAINER_MODE_FALSE='#' -else - MAINTAINER_MODE_TRUE='#' - MAINTAINER_MODE_FALSE= -fi - - MAINT=$MAINTAINER_MODE_TRUE - - - -# Require xorg-macros minimum of 1.10 for DocBook XML documentation - - - - - - - - - - - -DEPDIR="${am__leading_dot}deps" - -ac_config_commands="$ac_config_commands depfiles" - - -am_make=${MAKE-make} -cat > confinc << 'END' -am__doit: - @echo this is the am__doit target -.PHONY: am__doit -END -# If we don't find an include directive, just comment out the code. -{ $as_echo "$as_me:$LINENO: checking for style of include used by $am_make" >&5 -$as_echo_n "checking for style of include used by $am_make... " >&6; } -am__include="#" -am__quote= -_am_result=none -# First try GNU make style include. -echo "include confinc" > confmf -# Ignore all kinds of additional output from `make'. -case `$am_make -s -f confmf 2> /dev/null` in #( -*the\ am__doit\ target*) - am__include=include - am__quote= - _am_result=GNU - ;; -esac -# Now try BSD make style include. -if test "$am__include" = "#"; then - echo '.include "confinc"' > confmf - case `$am_make -s -f confmf 2> /dev/null` in #( - *the\ am__doit\ target*) - am__include=.include - am__quote="\"" - _am_result=BSD - ;; - esac -fi - - -{ $as_echo "$as_me:$LINENO: result: $_am_result" >&5 -$as_echo "$_am_result" >&6; } -rm -f confinc confmf - -# Check whether --enable-dependency-tracking was given. -if test "${enable_dependency_tracking+set}" = set; then - enableval=$enable_dependency_tracking; -fi - -if test "x$enable_dependency_tracking" != xno; then - am_depcomp="$ac_aux_dir/depcomp" - AMDEPBACKSLASH='\' -fi - if test "x$enable_dependency_tracking" != xno; then - AMDEP_TRUE= - AMDEP_FALSE='#' -else - AMDEP_TRUE='#' - AMDEP_FALSE= -fi - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args. -set dummy ${ac_tool_prefix}gcc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}gcc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_prog_CC"; then - ac_ct_CC=$CC - # Extract the first word of "gcc", so it can be a program name with args. -set dummy gcc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="gcc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -else - CC="$ac_cv_prog_CC" -fi - -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args. -set dummy ${ac_tool_prefix}cc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="${ac_tool_prefix}cc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - fi -fi -if test -z "$CC"; then - # Extract the first word of "cc", so it can be a program name with args. -set dummy cc; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else - ac_prog_rejected=no -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then - ac_prog_rejected=yes - continue - fi - ac_cv_prog_CC="cc" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -if test $ac_prog_rejected = yes; then - # We found a bogon in the path, so make sure we never use it. - set dummy $ac_cv_prog_CC - shift - if test $# != 0; then - # We chose a different compiler from the bogus one. - # However, it has the same basename, so the bogon will be chosen - # first if we set CC to just the basename; use the full file name. - shift - ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@" - fi -fi -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$CC"; then - if test -n "$ac_tool_prefix"; then - for ac_prog in cl.exe - do - # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args. -set dummy $ac_tool_prefix$ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$CC"; then - ac_cv_prog_CC="$CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_CC="$ac_tool_prefix$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -CC=$ac_cv_prog_CC -if test -n "$CC"; then - { $as_echo "$as_me:$LINENO: result: $CC" >&5 -$as_echo "$CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$CC" && break - done -fi -if test -z "$CC"; then - ac_ct_CC=$CC - for ac_prog in cl.exe -do - # Extract the first word of "$ac_prog", so it can be a program name with args. -set dummy $ac_prog; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_prog_ac_ct_CC+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -n "$ac_ct_CC"; then - ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test. -else -as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_prog_ac_ct_CC="$ac_prog" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - -fi -fi -ac_ct_CC=$ac_cv_prog_ac_ct_CC -if test -n "$ac_ct_CC"; then - { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5 -$as_echo "$ac_ct_CC" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - test -n "$ac_ct_CC" && break -done - - if test "x$ac_ct_CC" = x; then - CC="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - CC=$ac_ct_CC - fi -fi - -fi - - -test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: no acceptable C compiler found in \$PATH -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } - -# Provide some information about the compiler. -$as_echo "$as_me:$LINENO: checking for C compiler version" >&5 -set X $ac_compile -ac_compiler=$2 -{ (ac_try="$ac_compiler --version >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler --version >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -v >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -v >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } -{ (ac_try="$ac_compiler -V >&5" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compiler -V >&5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } - -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out" -# Try to create an executable without -o first, disregard a.out. -# It will help us diagnose broken compilers, and finding out an intuition -# of exeext. -{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5 -$as_echo_n "checking for C compiler default output file name... " >&6; } -ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'` - -# The possible output files: -ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*" - -ac_rmfiles= -for ac_file in $ac_files -do - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - * ) ac_rmfiles="$ac_rmfiles $ac_file";; - esac -done -rm -f $ac_rmfiles - -if { (ac_try="$ac_link_default" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link_default") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # Autoconf-2.13 could set the ac_cv_exeext variable to `no'. -# So ignore a value of `no', otherwise this would lead to `EXEEXT = no' -# in a Makefile. We should not override ac_cv_exeext if it was cached, -# so that the user can short-circuit this test for compilers unknown to -# Autoconf. -for ac_file in $ac_files '' -do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) - ;; - [ab].out ) - # We found the default executable, but exeext='' is most - # certainly right. - break;; - *.* ) - if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no; - then :; else - ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - fi - # We set ac_cv_exeext here because the later test for it is not - # safe: cross compilers may not add the suffix if given an `-o' - # argument, so we may need to know it at that point already. - # Even if this section looks crufty: it has the advantage of - # actually working. - break;; - * ) - break;; - esac -done -test "$ac_cv_exeext" = no && ac_cv_exeext= - -else - ac_file='' -fi - -{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5 -$as_echo "$ac_file" >&6; } -if test -z "$ac_file"; then - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: C compiler cannot create executables -See \`config.log' for more details." >&2;} - { (exit 77); exit 77; }; }; } -fi - -ac_exeext=$ac_cv_exeext - -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5 -$as_echo_n "checking whether the C compiler works... " >&6; } -# FIXME: These cross compiler hacks should be removed for Autoconf 3.0 -# If not cross compiling, check that we can run a simple program. -if test "$cross_compiling" != yes; then - if { ac_try='./$ac_file' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - cross_compiling=no - else - if test "$cross_compiling" = maybe; then - cross_compiling=yes - else - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot run C compiled programs. -If you meant to cross compile, use \`--host'. -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } - fi - fi -fi -{ $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - -rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out -ac_clean_files=$ac_clean_files_save -# Check that the compiler produces executables we can run. If not, either -# the compiler is broken, or we cross compile. -{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5 -$as_echo_n "checking whether we are cross compiling... " >&6; } -{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5 -$as_echo "$cross_compiling" >&6; } - -{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5 -$as_echo_n "checking for suffix of executables... " >&6; } -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - # If both `conftest.exe' and `conftest' are `present' (well, observable) -# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will -# work properly (i.e., refer to `conftest.exe'), while it won't with -# `rm'. -for ac_file in conftest.exe conftest conftest.*; do - test -f "$ac_file" || continue - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;; - *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'` - break;; - * ) break;; - esac -done -else - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } -fi - -rm -f conftest$ac_cv_exeext -{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5 -$as_echo "$ac_cv_exeext" >&6; } - -rm -f conftest.$ac_ext -EXEEXT=$ac_cv_exeext -ac_exeext=$EXEEXT -{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5 -$as_echo_n "checking for suffix of object files... " >&6; } -if test "${ac_cv_objext+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.o conftest.obj -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - for ac_file in conftest.o conftest.obj conftest.*; do - test -f "$ac_file" || continue; - case $ac_file in - *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;; - *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'` - break;; - esac -done -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } -fi - -rm -f conftest.$ac_cv_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5 -$as_echo "$ac_cv_objext" >&6; } -OBJEXT=$ac_cv_objext -ac_objext=$OBJEXT -{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5 -$as_echo_n "checking whether we are using the GNU C compiler... " >&6; } -if test "${ac_cv_c_compiler_gnu+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ -#ifndef __GNUC__ - choke me -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_compiler_gnu=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_compiler_gnu=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -ac_cv_c_compiler_gnu=$ac_compiler_gnu - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5 -$as_echo "$ac_cv_c_compiler_gnu" >&6; } -if test $ac_compiler_gnu = yes; then - GCC=yes -else - GCC= -fi -ac_test_CFLAGS=${CFLAGS+set} -ac_save_CFLAGS=$CFLAGS -{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5 -$as_echo_n "checking whether $CC accepts -g... " >&6; } -if test "${ac_cv_prog_cc_g+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_save_c_werror_flag=$ac_c_werror_flag - ac_c_werror_flag=yes - ac_cv_prog_cc_g=no - CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - CFLAGS="" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_c_werror_flag=$ac_save_c_werror_flag - CFLAGS="-g" - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_g=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - ac_c_werror_flag=$ac_save_c_werror_flag -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5 -$as_echo "$ac_cv_prog_cc_g" >&6; } -if test "$ac_test_CFLAGS" = set; then - CFLAGS=$ac_save_CFLAGS -elif test $ac_cv_prog_cc_g = yes; then - if test "$GCC" = yes; then - CFLAGS="-g -O2" - else - CFLAGS="-g" - fi -else - if test "$GCC" = yes; then - CFLAGS="-O2" - else - CFLAGS= - fi -fi -{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5 -$as_echo_n "checking for $CC option to accept ISO C89... " >&6; } -if test "${ac_cv_prog_cc_c89+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c89=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <stdarg.h> -#include <stdio.h> -#include <sys/types.h> -#include <sys/stat.h> -/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */ -struct buf { int x; }; -FILE * (*rcsopen) (struct buf *, struct stat *, int); -static char *e (p, i) - char **p; - int i; -{ - return p[i]; -} -static char *f (char * (*g) (char **, int), char **p, ...) -{ - char *s; - va_list v; - va_start (v,p); - s = g (p, va_arg (v,int)); - va_end (v); - return s; -} - -/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has - function prototypes and stuff, but not '\xHH' hex character constants. - These don't provoke an error unfortunately, instead are silently treated - as 'x'. The following induces an error, until -std is added to get - proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an - array size at least. It's necessary to write '\x00'==0 to get something - that's true only with -std. */ -int osf4_cc_array ['\x00' == 0 ? 1 : -1]; - -/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters - inside strings and character constants. */ -#define FOO(x) 'x' -int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1]; - -int test (int i, double x); -struct s1 {int (*f) (int a);}; -struct s2 {int (*f) (double a);}; -int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int); -int argc; -char **argv; -int -main () -{ -return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1]; - ; - return 0; -} -_ACEOF -for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \ - -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__" -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_c89=$ac_arg -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c89" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c89" in - x) - { $as_echo "$as_me:$LINENO: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:$LINENO: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c89" - { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5 -$as_echo "$ac_cv_prog_cc_c89" >&6; } ;; -esac - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - -depcc="$CC" am_compiler_list= - -{ $as_echo "$as_me:$LINENO: checking dependency style of $depcc" >&5 -$as_echo_n "checking dependency style of $depcc... " >&6; } -if test "${am_cv_CC_dependencies_compiler_type+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -z "$AMDEP_TRUE" && test -f "$am_depcomp"; then - # We make a subdir and do the tests there. Otherwise we can end up - # making bogus files that we don't know about and never remove. For - # instance it was reported that on HP-UX the gcc test will end up - # making a dummy file named `D' -- because `-MD' means `put the output - # in D'. - mkdir conftest.dir - # Copy depcomp to subdir because otherwise we won't find it if we're - # using a relative directory. - cp "$am_depcomp" conftest.dir - cd conftest.dir - # We will build objects and dependencies in a subdirectory because - # it helps to detect inapplicable dependency modes. For instance - # both Tru64's cc and ICC support -MD to output dependencies as a - # side effect of compilation, but ICC will put the dependencies in - # the current directory while Tru64 will put them in the object - # directory. - mkdir sub - - am_cv_CC_dependencies_compiler_type=none - if test "$am_compiler_list" = ""; then - am_compiler_list=`sed -n 's/^#*\([a-zA-Z0-9]*\))$/\1/p' < ./depcomp` - fi - am__universal=false - case " $depcc " in #( - *\ -arch\ *\ -arch\ *) am__universal=true ;; - esac - - for depmode in $am_compiler_list; do - # Setup a source with many dependencies, because some compilers - # like to wrap large dependency lists on column 80 (with \), and - # we should not choose a depcomp mode which is confused by this. - # - # We need to recreate these files for each test, as the compiler may - # overwrite some of them when testing with obscure command lines. - # This happens at least with the AIX C compiler. - : > sub/conftest.c - for i in 1 2 3 4 5 6; do - echo '#include "conftst'$i'.h"' >> sub/conftest.c - # Using `: > sub/conftst$i.h' creates only sub/conftst1.h with - # Solaris 8's {/usr,}/bin/sh. - touch sub/conftst$i.h - done - echo "${am__include} ${am__quote}sub/conftest.Po${am__quote}" > confmf - - # We check with `-c' and `-o' for the sake of the "dashmstdout" - # mode. It turns out that the SunPro C++ compiler does not properly - # handle `-M -o', and we need to detect this. Also, some Intel - # versions had trouble with output in subdirs - am__obj=sub/conftest.${OBJEXT-o} - am__minus_obj="-o $am__obj" - case $depmode in - gcc) - # This depmode causes a compiler race in universal mode. - test "$am__universal" = false || continue - ;; - nosideeffect) - # after this tag, mechanisms are not by side-effect, so they'll - # only be used when explicitly requested - if test "x$enable_dependency_tracking" = xyes; then - continue - else - break - fi - ;; - msvisualcpp | msvcmsys) - # This compiler won't grok `-c -o', but also, the minuso test has - # not run yet. These depmodes are late enough in the game, and - # so weak that their functioning should not be impacted. - am__obj=conftest.${OBJEXT-o} - am__minus_obj= - ;; - none) break ;; - esac - if depmode=$depmode \ - source=sub/conftest.c object=$am__obj \ - depfile=sub/conftest.Po tmpdepfile=sub/conftest.TPo \ - $SHELL ./depcomp $depcc -c $am__minus_obj sub/conftest.c \ - >/dev/null 2>conftest.err && - grep sub/conftst1.h sub/conftest.Po > /dev/null 2>&1 && - grep sub/conftst6.h sub/conftest.Po > /dev/null 2>&1 && - grep $am__obj sub/conftest.Po > /dev/null 2>&1 && - ${MAKE-make} -s -f confmf > /dev/null 2>&1; then - # icc doesn't choke on unknown options, it will just issue warnings - # or remarks (even with -Werror). So we grep stderr for any message - # that says an option was ignored or not supported. - # When given -MP, icc 7.0 and 7.1 complain thusly: - # icc: Command line warning: ignoring option '-M'; no argument required - # The diagnosis changed in icc 8.0: - # icc: Command line remark: option '-MP' not supported - if (grep 'ignoring option' conftest.err || - grep 'not supported' conftest.err) >/dev/null 2>&1; then :; else - am_cv_CC_dependencies_compiler_type=$depmode - break - fi - fi - done - - cd .. - rm -rf conftest.dir -else - am_cv_CC_dependencies_compiler_type=none -fi - -fi -{ $as_echo "$as_me:$LINENO: result: $am_cv_CC_dependencies_compiler_type" >&5 -$as_echo "$am_cv_CC_dependencies_compiler_type" >&6; } -CCDEPMODE=depmode=$am_cv_CC_dependencies_compiler_type - - if - test "x$enable_dependency_tracking" != xno \ - && test "$am_cv_CC_dependencies_compiler_type" = gcc3; then - am__fastdepCC_TRUE= - am__fastdepCC_FALSE='#' -else - am__fastdepCC_TRUE='#' - am__fastdepCC_FALSE= -fi - - - { $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C99" >&5 -$as_echo_n "checking for $CC option to accept ISO C99... " >&6; } -if test "${ac_cv_prog_cc_c99+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_cv_prog_cc_c99=no -ac_save_CC=$CC -cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <stdarg.h> -#include <stdbool.h> -#include <stdlib.h> -#include <wchar.h> -#include <stdio.h> - -// Check varargs macros. These examples are taken from C99 6.10.3.5. -#define debug(...) fprintf (stderr, __VA_ARGS__) -#define showlist(...) puts (#__VA_ARGS__) -#define report(test,...) ((test) ? puts (#test) : printf (__VA_ARGS__)) -static void -test_varargs_macros (void) -{ - int x = 1234; - int y = 5678; - debug ("Flag"); - debug ("X = %d\n", x); - showlist (The first, second, and third items.); - report (x>y, "x is %d but y is %d", x, y); -} - -// Check long long types. -#define BIG64 18446744073709551615ull -#define BIG32 4294967295ul -#define BIG_OK (BIG64 / BIG32 == 4294967297ull && BIG64 % BIG32 == 0) -#if !BIG_OK - your preprocessor is broken; -#endif -#if BIG_OK -#else - your preprocessor is broken; -#endif -static long long int bignum = -9223372036854775807LL; -static unsigned long long int ubignum = BIG64; - -struct incomplete_array -{ - int datasize; - double data[]; -}; - -struct named_init { - int number; - const wchar_t *name; - double average; -}; - -typedef const char *ccp; - -static inline int -test_restrict (ccp restrict text) -{ - // See if C++-style comments work. - // Iterate through items via the restricted pointer. - // Also check for declarations in for loops. - for (unsigned int i = 0; *(text+i) != '\0'; ++i) - continue; - return 0; -} - -// Check varargs and va_copy. -static void -test_varargs (const char *format, ...) -{ - va_list args; - va_start (args, format); - va_list args_copy; - va_copy (args_copy, args); - - const char *str; - int number; - float fnumber; - - while (*format) - { - switch (*format++) - { - case 's': // string - str = va_arg (args_copy, const char *); - break; - case 'd': // int - number = va_arg (args_copy, int); - break; - case 'f': // float - fnumber = va_arg (args_copy, double); - break; - default: - break; - } - } - va_end (args_copy); - va_end (args); -} - -int -main () -{ - - // Check bool. - _Bool success = false; - - // Check restrict. - if (test_restrict ("String literal") == 0) - success = true; - char *restrict newvar = "Another string"; - - // Check varargs. - test_varargs ("s, d' f .", "string", 65, 34.234); - test_varargs_macros (); - - // Check flexible array members. - struct incomplete_array *ia = - malloc (sizeof (struct incomplete_array) + (sizeof (double) * 10)); - ia->datasize = 10; - for (int i = 0; i < ia->datasize; ++i) - ia->data[i] = i * 1.234; - - // Check named initializers. - struct named_init ni = { - .number = 34, - .name = L"Test wide string", - .average = 543.34343, - }; - - ni.number = 58; - - int dynamic_array[ni.number]; - dynamic_array[ni.number - 1] = 543; - - // work around unused variable warnings - return (!success || bignum == 0LL || ubignum == 0uLL || newvar[0] == 'x' - || dynamic_array[ni.number - 1] != 543); - - ; - return 0; -} -_ACEOF -for ac_arg in '' -std=gnu99 -std=c99 -c99 -AC99 -xc99=all -qlanglvl=extc99 -do - CC="$ac_save_CC $ac_arg" - rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_prog_cc_c99=$ac_arg -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - -fi - -rm -f core conftest.err conftest.$ac_objext - test "x$ac_cv_prog_cc_c99" != "xno" && break -done -rm -f conftest.$ac_ext -CC=$ac_save_CC - -fi -# AC_CACHE_VAL -case "x$ac_cv_prog_cc_c99" in - x) - { $as_echo "$as_me:$LINENO: result: none needed" >&5 -$as_echo "none needed" >&6; } ;; - xno) - { $as_echo "$as_me:$LINENO: result: unsupported" >&5 -$as_echo "unsupported" >&6; } ;; - *) - CC="$CC $ac_cv_prog_cc_c99" - { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c99" >&5 -$as_echo "$ac_cv_prog_cc_c99" >&6; } ;; -esac - - - - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu -{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5 -$as_echo_n "checking how to run the C preprocessor... " >&6; } -# On Suns, sometimes $CPP names a directory. -if test -n "$CPP" && test -d "$CPP"; then - CPP= -fi -if test -z "$CPP"; then - if test "${ac_cv_prog_CPP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - # Double quotes because CPP needs to be expanded - for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp" - do - ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - # <limits.h> exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - Syntax error -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi - -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <ac_nonexistent.h> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - # Broken: success on invalid input. -continue -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi - -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - break -fi - - done - ac_cv_prog_CPP=$CPP - -fi - CPP=$ac_cv_prog_CPP -else - ac_cv_prog_CPP=$CPP -fi -{ $as_echo "$as_me:$LINENO: result: $CPP" >&5 -$as_echo "$CPP" >&6; } -ac_preproc_ok=false -for ac_c_preproc_warn_flag in '' yes -do - # Use a header file that comes with gcc, so configuring glibc - # with a fresh cross-compiler works. - # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since - # <limits.h> exists even on freestanding compilers. - # On the NeXT, cc -E runs the code through the compiler's parser, - # not just through cpp. "Syntax error" is here to catch this case. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#ifdef __STDC__ -# include <limits.h> -#else -# include <assert.h> -#endif - Syntax error -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - : -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Broken: fails on valid input. -continue -fi - -rm -f conftest.err conftest.$ac_ext - - # OK, works on sane cases. Now check whether nonexistent headers - # can be detected and how. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <ac_nonexistent.h> -_ACEOF -if { (ac_try="$ac_cpp conftest.$ac_ext" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } >/dev/null && { - test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" || - test ! -s conftest.err - }; then - # Broken: success on invalid input. -continue -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - # Passes both tests. -ac_preproc_ok=: -break -fi - -rm -f conftest.err conftest.$ac_ext - -done -# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped. -rm -f conftest.err conftest.$ac_ext -if $ac_preproc_ok; then - : -else - { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5 -$as_echo "$as_me: error: in \`$ac_pwd':" >&2;} -{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&5 -$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check -See \`config.log' for more details." >&2;} - { (exit 1); exit 1; }; }; } -fi - -ac_ext=c -ac_cpp='$CPP $CPPFLAGS' -ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5' -ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5' -ac_compiler_gnu=$ac_cv_c_compiler_gnu - - -{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5 -$as_echo_n "checking for grep that handles long lines and -e... " >&6; } -if test "${ac_cv_path_GREP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test -z "$GREP"; then - ac_path_GREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in grep ggrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue -# Check for GNU ac_path_GREP and select it if it is found. - # Check for GNU $ac_path_GREP -case `"$ac_path_GREP" --version 2>&1` in -*GNU*) - ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'GREP' >> "conftest.nl" - "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` - if test $ac_count -gt ${ac_path_GREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_GREP="$ac_path_GREP" - ac_path_GREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_GREP_found && break 3 - done - done -done -IFS=$as_save_IFS - if test -z "$ac_cv_path_GREP"; then - { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } - fi -else - ac_cv_path_GREP=$GREP -fi - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5 -$as_echo "$ac_cv_path_GREP" >&6; } - GREP="$ac_cv_path_GREP" - - -{ $as_echo "$as_me:$LINENO: checking for egrep" >&5 -$as_echo_n "checking for egrep... " >&6; } -if test "${ac_cv_path_EGREP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if echo a | $GREP -E '(a|b)' >/dev/null 2>&1 - then ac_cv_path_EGREP="$GREP -E" - else - if test -z "$EGREP"; then - ac_path_EGREP_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in egrep; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue -# Check for GNU ac_path_EGREP and select it if it is found. - # Check for GNU $ac_path_EGREP -case `"$ac_path_EGREP" --version 2>&1` in -*GNU*) - ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo 'EGREP' >> "conftest.nl" - "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` - if test $ac_count -gt ${ac_path_EGREP_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_EGREP="$ac_path_EGREP" - ac_path_EGREP_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_EGREP_found && break 3 - done - done -done -IFS=$as_save_IFS - if test -z "$ac_cv_path_EGREP"; then - { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5 -$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;} - { (exit 1); exit 1; }; } - fi -else - ac_cv_path_EGREP=$EGREP -fi - - fi -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5 -$as_echo "$ac_cv_path_EGREP" >&6; } - EGREP="$ac_cv_path_EGREP" - - -{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5 -$as_echo_n "checking for ANSI C header files... " >&6; } -if test "${ac_cv_header_stdc+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <stdlib.h> -#include <stdarg.h> -#include <string.h> -#include <float.h> - -int -main () -{ - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_header_stdc=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_header_stdc=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext - -if test $ac_cv_header_stdc = yes; then - # SunOS 4.x string.h does not declare mem*, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <string.h> - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "memchr" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI. - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <stdlib.h> - -_ACEOF -if (eval "$ac_cpp conftest.$ac_ext") 2>&5 | - $EGREP "free" >/dev/null 2>&1; then - : -else - ac_cv_header_stdc=no -fi -rm -f conftest* - -fi - -if test $ac_cv_header_stdc = yes; then - # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi. - if test "$cross_compiling" = yes; then - : -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -#include <ctype.h> -#include <stdlib.h> -#if ((' ' & 0x0FF) == 0x020) -# define ISLOWER(c) ('a' <= (c) && (c) <= 'z') -# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c)) -#else -# define ISLOWER(c) \ - (('a' <= (c) && (c) <= 'i') \ - || ('j' <= (c) && (c) <= 'r') \ - || ('s' <= (c) && (c) <= 'z')) -# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c)) -#endif - -#define XOR(e, f) (((e) && !(f)) || (!(e) && (f))) -int -main () -{ - int i; - for (i = 0; i < 256; i++) - if (XOR (islower (i), ISLOWER (i)) - || toupper (i) != TOUPPER (i)) - return 2; - return 0; -} -_ACEOF -rm -f conftest$ac_exeext -if { (ac_try="$ac_link" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_link") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { ac_try='./conftest$ac_exeext' - { (case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_try") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; }; then - : -else - $as_echo "$as_me: program exited with status $ac_status" >&5 -$as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - -( exit $ac_status ) -ac_cv_header_stdc=no -fi -rm -rf conftest.dSYM -rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext -fi - - -fi -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5 -$as_echo "$ac_cv_header_stdc" >&6; } -if test $ac_cv_header_stdc = yes; then - -cat >>confdefs.h <<\_ACEOF -#define STDC_HEADERS 1 -_ACEOF - -fi - -# On IRIX 5.3, sys/types and inttypes.h are conflicting. - - - - - - - - - -for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \ - inttypes.h stdint.h unistd.h -do -as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh` -{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5 -$as_echo_n "checking for $ac_header... " >&6; } -if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default - -#include <$ac_header> -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - eval "$as_ac_Header=yes" -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - eval "$as_ac_Header=no" -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -ac_res=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - { $as_echo "$as_me:$LINENO: result: $ac_res" >&5 -$as_echo "$ac_res" >&6; } -as_val=`eval 'as_val=${'$as_ac_Header'} - $as_echo "$as_val"'` - if test "x$as_val" = x""yes; then - cat >>confdefs.h <<_ACEOF -#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1 -_ACEOF - -fi - -done - - - - -if test "x$ac_cv_env_PKG_CONFIG_set" != "xset"; then - if test -n "$ac_tool_prefix"; then - # Extract the first word of "${ac_tool_prefix}pkg-config", so it can be a program name with args. -set dummy ${ac_tool_prefix}pkg-config; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_PKG_CONFIG+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_PKG_CONFIG="$PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - ;; -esac -fi -PKG_CONFIG=$ac_cv_path_PKG_CONFIG -if test -n "$PKG_CONFIG"; then - { $as_echo "$as_me:$LINENO: result: $PKG_CONFIG" >&5 -$as_echo "$PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - -fi -if test -z "$ac_cv_path_PKG_CONFIG"; then - ac_pt_PKG_CONFIG=$PKG_CONFIG - # Extract the first word of "pkg-config", so it can be a program name with args. -set dummy pkg-config; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_ac_pt_PKG_CONFIG+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $ac_pt_PKG_CONFIG in - [\\/]* | ?:[\\/]*) - ac_cv_path_ac_pt_PKG_CONFIG="$ac_pt_PKG_CONFIG" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_ac_pt_PKG_CONFIG="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - ;; -esac -fi -ac_pt_PKG_CONFIG=$ac_cv_path_ac_pt_PKG_CONFIG -if test -n "$ac_pt_PKG_CONFIG"; then - { $as_echo "$as_me:$LINENO: result: $ac_pt_PKG_CONFIG" >&5 -$as_echo "$ac_pt_PKG_CONFIG" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - if test "x$ac_pt_PKG_CONFIG" = x; then - PKG_CONFIG="" - else - case $cross_compiling:$ac_tool_warned in -yes:) -{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5 -$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;} -ac_tool_warned=yes ;; -esac - PKG_CONFIG=$ac_pt_PKG_CONFIG - fi -else - PKG_CONFIG="$ac_cv_path_PKG_CONFIG" -fi - -fi -if test -n "$PKG_CONFIG"; then - _pkg_min_version=0.9.0 - { $as_echo "$as_me:$LINENO: checking pkg-config is at least version $_pkg_min_version" >&5 -$as_echo_n "checking pkg-config is at least version $_pkg_min_version... " >&6; } - if $PKG_CONFIG --atleast-pkgconfig-version $_pkg_min_version; then - { $as_echo "$as_me:$LINENO: result: yes" >&5 -$as_echo "yes" >&6; } - else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } - PKG_CONFIG="" - fi - -fi -# Make sure we can run config.sub. -$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 || - { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5 -$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;} - { (exit 1); exit 1; }; } - -{ $as_echo "$as_me:$LINENO: checking build system type" >&5 -$as_echo_n "checking build system type... " >&6; } -if test "${ac_cv_build+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_build_alias=$build_alias -test "x$ac_build_alias" = x && - ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"` -test "x$ac_build_alias" = x && - { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5 -$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;} - { (exit 1); exit 1; }; } -ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` || - { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5 -$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;} - { (exit 1); exit 1; }; } - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5 -$as_echo "$ac_cv_build" >&6; } -case $ac_cv_build in -*-*-*) ;; -*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5 -$as_echo "$as_me: error: invalid value of canonical build" >&2;} - { (exit 1); exit 1; }; };; -esac -build=$ac_cv_build -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_build -shift -build_cpu=$1 -build_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -build_os=$* -IFS=$ac_save_IFS -case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:$LINENO: checking host system type" >&5 -$as_echo_n "checking host system type... " >&6; } -if test "${ac_cv_host+set}" = set; then - $as_echo_n "(cached) " >&6 -else - if test "x$host_alias" = x; then - ac_cv_host=$ac_cv_build -else - ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` || - { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5 -$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;} - { (exit 1); exit 1; }; } -fi - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5 -$as_echo "$ac_cv_host" >&6; } -case $ac_cv_host in -*-*-*) ;; -*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5 -$as_echo "$as_me: error: invalid value of canonical host" >&2;} - { (exit 1); exit 1; }; };; -esac -host=$ac_cv_host -ac_save_IFS=$IFS; IFS='-' -set x $ac_cv_host -shift -host_cpu=$1 -host_vendor=$2 -shift; shift -# Remember, the first character of IFS is used to create $*, -# except with old shells: -host_os=$* -IFS=$ac_save_IFS -case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac - - -{ $as_echo "$as_me:$LINENO: checking for a sed that does not truncate output" >&5 -$as_echo_n "checking for a sed that does not truncate output... " >&6; } -if test "${ac_cv_path_SED+set}" = set; then - $as_echo_n "(cached) " >&6 -else - ac_script=s/aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa/bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb/ - for ac_i in 1 2 3 4 5 6 7; do - ac_script="$ac_script$as_nl$ac_script" - done - echo "$ac_script" 2>/dev/null | sed 99q >conftest.sed - $as_unset ac_script || ac_script= - if test -z "$SED"; then - ac_path_SED_found=false - # Loop through the user's path and test for each of PROGNAME-LIST - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_prog in sed gsed; do - for ac_exec_ext in '' $ac_executable_extensions; do - ac_path_SED="$as_dir/$ac_prog$ac_exec_ext" - { test -f "$ac_path_SED" && $as_test_x "$ac_path_SED"; } || continue -# Check for GNU ac_path_SED and select it if it is found. - # Check for GNU $ac_path_SED -case `"$ac_path_SED" --version 2>&1` in -*GNU*) - ac_cv_path_SED="$ac_path_SED" ac_path_SED_found=:;; -*) - ac_count=0 - $as_echo_n 0123456789 >"conftest.in" - while : - do - cat "conftest.in" "conftest.in" >"conftest.tmp" - mv "conftest.tmp" "conftest.in" - cp "conftest.in" "conftest.nl" - $as_echo '' >> "conftest.nl" - "$ac_path_SED" -f conftest.sed < "conftest.nl" >"conftest.out" 2>/dev/null || break - diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break - ac_count=`expr $ac_count + 1` - if test $ac_count -gt ${ac_path_SED_max-0}; then - # Best one so far, save it but keep looking for a better one - ac_cv_path_SED="$ac_path_SED" - ac_path_SED_max=$ac_count - fi - # 10*(2^10) chars as input seems more than enough - test $ac_count -gt 10 && break - done - rm -f conftest.in conftest.tmp conftest.nl conftest.out;; -esac - - $ac_path_SED_found && break 3 - done - done -done -IFS=$as_save_IFS - if test -z "$ac_cv_path_SED"; then - { { $as_echo "$as_me:$LINENO: error: no acceptable sed could be found in \$PATH" >&5 -$as_echo "$as_me: error: no acceptable sed could be found in \$PATH" >&2;} - { (exit 1); exit 1; }; } - fi -else - ac_cv_path_SED=$SED -fi - -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_SED" >&5 -$as_echo "$ac_cv_path_SED" >&6; } - SED="$ac_cv_path_SED" - rm -f conftest.sed - - - - - -if test "x$GCC" = xyes ; then - CWARNFLAGS="-Wall -Wpointer-arith -Wstrict-prototypes -Wmissing-prototypes \ --Wmissing-declarations -Wnested-externs -fno-strict-aliasing \ --Wbad-function-cast -Wformat=2" - case `$CC -dumpversion` in - 3.4.* | 4.*) - CWARNFLAGS="$CWARNFLAGS -Wold-style-definition -Wdeclaration-after-statement" - ;; - esac -else - { $as_echo "$as_me:$LINENO: checking whether __SUNPRO_C is declared" >&5 -$as_echo_n "checking whether __SUNPRO_C is declared... " >&6; } -if test "${ac_cv_have_decl___SUNPRO_C+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -#ifndef __SUNPRO_C - (void) __SUNPRO_C; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_have_decl___SUNPRO_C=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_have_decl___SUNPRO_C=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl___SUNPRO_C" >&5 -$as_echo "$ac_cv_have_decl___SUNPRO_C" >&6; } -if test "x$ac_cv_have_decl___SUNPRO_C" = x""yes; then - SUNCC="yes" -else - SUNCC="no" -fi - - if test "x$SUNCC" = "xyes"; then - CWARNFLAGS="-v" - fi -fi - - - -# If the module's configure.ac calls AC_PROG_CC later on, CC gets set to C89 - - - -# Check whether --enable-strict-compilation was given. -if test "${enable_strict_compilation+set}" = set; then - enableval=$enable_strict_compilation; STRICT_COMPILE=$enableval -else - STRICT_COMPILE=no -fi - -if test "x$STRICT_COMPILE" = "xyes"; then - { $as_echo "$as_me:$LINENO: checking whether __SUNPRO_C is declared" >&5 -$as_echo_n "checking whether __SUNPRO_C is declared... " >&6; } -if test "${ac_cv_have_decl___SUNPRO_C+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -#ifndef __SUNPRO_C - (void) __SUNPRO_C; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_have_decl___SUNPRO_C=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_have_decl___SUNPRO_C=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl___SUNPRO_C" >&5 -$as_echo "$ac_cv_have_decl___SUNPRO_C" >&6; } -if test "x$ac_cv_have_decl___SUNPRO_C" = x""yes; then - SUNCC="yes" -else - SUNCC="no" -fi - - { $as_echo "$as_me:$LINENO: checking whether __INTEL_COMPILER is declared" >&5 -$as_echo_n "checking whether __INTEL_COMPILER is declared... " >&6; } -if test "${ac_cv_have_decl___INTEL_COMPILER+set}" = set; then - $as_echo_n "(cached) " >&6 -else - cat >conftest.$ac_ext <<_ACEOF -/* confdefs.h. */ -_ACEOF -cat confdefs.h >>conftest.$ac_ext -cat >>conftest.$ac_ext <<_ACEOF -/* end confdefs.h. */ -$ac_includes_default -int -main () -{ -#ifndef __INTEL_COMPILER - (void) __INTEL_COMPILER; -#endif - - ; - return 0; -} -_ACEOF -rm -f conftest.$ac_objext -if { (ac_try="$ac_compile" -case "(($ac_try" in - *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;; - *) ac_try_echo=$ac_try;; -esac -eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\"" -$as_echo "$ac_try_echo") >&5 - (eval "$ac_compile") 2>conftest.er1 - ac_status=$? - grep -v '^ *+' conftest.er1 >conftest.err - rm -f conftest.er1 - cat conftest.err >&5 - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); } && { - test -z "$ac_c_werror_flag" || - test ! -s conftest.err - } && test -s conftest.$ac_objext; then - ac_cv_have_decl___INTEL_COMPILER=yes -else - $as_echo "$as_me: failed program was:" >&5 -sed 's/^/| /' conftest.$ac_ext >&5 - - ac_cv_have_decl___INTEL_COMPILER=no -fi - -rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext -fi -{ $as_echo "$as_me:$LINENO: result: $ac_cv_have_decl___INTEL_COMPILER" >&5 -$as_echo "$ac_cv_have_decl___INTEL_COMPILER" >&6; } -if test "x$ac_cv_have_decl___INTEL_COMPILER" = x""yes; then - INTELCC="yes" -else - INTELCC="no" -fi - - if test "x$GCC" = xyes ; then - STRICT_CFLAGS="-pedantic -Werror" - elif test "x$SUNCC" = "xyes"; then - STRICT_CFLAGS="-errwarn" - elif test "x$INTELCC" = "xyes"; then - STRICT_CFLAGS="-Werror" - fi -fi -CWARNFLAGS="$CWARNFLAGS $STRICT_CFLAGS" - - - - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION_MAJOR `echo $PACKAGE_VERSION | cut -d . -f 1` -_ACEOF - - PVM=`echo $PACKAGE_VERSION | cut -d . -f 2 | cut -d - -f 1` - if test "x$PVM" = "x"; then - PVM="0" - fi - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION_MINOR $PVM -_ACEOF - - PVP=`echo $PACKAGE_VERSION | cut -d . -f 3 | cut -d - -f 1` - if test "x$PVP" = "x"; then - PVP="0" - fi - -cat >>confdefs.h <<_ACEOF -#define PACKAGE_VERSION_PATCHLEVEL $PVP -_ACEOF - - - -CHANGELOG_CMD="(GIT_DIR=\$(top_srcdir)/.git git log > \$(top_srcdir)/.changelog.tmp && \ -mv \$(top_srcdir)/.changelog.tmp \$(top_srcdir)/ChangeLog) \ -|| (rm -f \$(top_srcdir)/.changelog.tmp; touch \$(top_srcdir)/ChangeLog; \ -echo 'git directory not found: installing possibly empty changelog.' >&2)" - - - - -macros_datadir=`$PKG_CONFIG --print-errors --variable=pkgdatadir xorg-macros` -INSTALL_CMD="(cp -f "$macros_datadir/INSTALL" \$(top_srcdir)/.INSTALL.tmp && \ -mv \$(top_srcdir)/.INSTALL.tmp \$(top_srcdir)/INSTALL) \ -|| (rm -f \$(top_srcdir)/.INSTALL.tmp; touch \$(top_srcdir)/INSTALL; \ -echo 'util-macros \"pkgdatadir\" from xorg-macros.pc not found: installing possibly empty INSTALL.' >&2)" - - - - - - -if test x$APP_MAN_SUFFIX = x ; then - APP_MAN_SUFFIX=1 -fi -if test x$APP_MAN_DIR = x ; then - APP_MAN_DIR='$(mandir)/man$(APP_MAN_SUFFIX)' -fi - -if test x$LIB_MAN_SUFFIX = x ; then - LIB_MAN_SUFFIX=3 -fi -if test x$LIB_MAN_DIR = x ; then - LIB_MAN_DIR='$(mandir)/man$(LIB_MAN_SUFFIX)' -fi - -if test x$FILE_MAN_SUFFIX = x ; then - case $host_os in - solaris*) FILE_MAN_SUFFIX=4 ;; - *) FILE_MAN_SUFFIX=5 ;; - esac -fi -if test x$FILE_MAN_DIR = x ; then - FILE_MAN_DIR='$(mandir)/man$(FILE_MAN_SUFFIX)' -fi - -if test x$MISC_MAN_SUFFIX = x ; then - case $host_os in - solaris*) MISC_MAN_SUFFIX=5 ;; - *) MISC_MAN_SUFFIX=7 ;; - esac -fi -if test x$MISC_MAN_DIR = x ; then - MISC_MAN_DIR='$(mandir)/man$(MISC_MAN_SUFFIX)' -fi - -if test x$DRIVER_MAN_SUFFIX = x ; then - case $host_os in - solaris*) DRIVER_MAN_SUFFIX=7 ;; - *) DRIVER_MAN_SUFFIX=4 ;; - esac -fi -if test x$DRIVER_MAN_DIR = x ; then - DRIVER_MAN_DIR='$(mandir)/man$(DRIVER_MAN_SUFFIX)' -fi - -if test x$ADMIN_MAN_SUFFIX = x ; then - case $host_os in - solaris*) ADMIN_MAN_SUFFIX=1m ;; - *) ADMIN_MAN_SUFFIX=8 ;; - esac -fi -if test x$ADMIN_MAN_DIR = x ; then - ADMIN_MAN_DIR='$(mandir)/man$(ADMIN_MAN_SUFFIX)' -fi - - - - - - - - - - - - - - - -XORG_MAN_PAGE="X Version 11" - -MAN_SUBSTS="\ - -e 's|__vendorversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \ - -e 's|__xorgversion__|\"\$(PACKAGE_STRING)\" \"\$(XORG_MAN_PAGE)\"|' \ - -e 's|__xservername__|Xorg|g' \ - -e 's|__xconfigfile__|xorg.conf|g' \ - -e 's|__projectroot__|\$(prefix)|g' \ - -e 's|__appmansuffix__|\$(APP_MAN_SUFFIX)|g' \ - -e 's|__drivermansuffix__|\$(DRIVER_MAN_SUFFIX)|g' \ - -e 's|__adminmansuffix__|\$(ADMIN_MAN_SUFFIX)|g' \ - -e 's|__libmansuffix__|\$(LIB_MAN_SUFFIX)|g' \ - -e 's|__miscmansuffix__|\$(MISC_MAN_SUFFIX)|g' \ - -e 's|__filemansuffix__|\$(FILE_MAN_SUFFIX)|g'" - - - -# Check whether --enable-silent-rules was given. -if test "${enable_silent_rules+set}" = set; then - enableval=$enable_silent_rules; -fi - -case $enable_silent_rules in -yes) AM_DEFAULT_VERBOSITY=0;; -no) AM_DEFAULT_VERBOSITY=1;; -*) AM_DEFAULT_VERBOSITY=0;; -esac -AM_BACKSLASH='\' - - - -spec_default= -if test "x$spec_default" = x ; then - spec_default="yes" -fi -# Check whether --enable-specs was given. -if test "${enable_specs+set}" = set; then - enableval=$enable_specs; build_specs=$enableval -else - build_specs=$spec_default -fi - - if test x$build_specs = xyes; then - ENABLE_SPECS_TRUE= - ENABLE_SPECS_FALSE='#' -else - ENABLE_SPECS_TRUE='#' - ENABLE_SPECS_FALSE= -fi - -{ $as_echo "$as_me:$LINENO: checking whether to build functional specifications" >&5 -$as_echo_n "checking whether to build functional specifications... " >&6; } -{ $as_echo "$as_me:$LINENO: result: $build_specs" >&5 -$as_echo "$build_specs" >&6; } - - - - -# Check whether --with-xmlto was given. -if test "${with_xmlto+set}" = set; then - withval=$with_xmlto; use_xmlto=$withval -else - use_xmlto=auto -fi - - -if test "x$use_xmlto" = x"auto"; then - # Extract the first word of "xmlto", so it can be a program name with args. -set dummy xmlto; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_XMLTO+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $XMLTO in - [\\/]* | ?:[\\/]*) - ac_cv_path_XMLTO="$XMLTO" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_XMLTO="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - ;; -esac -fi -XMLTO=$ac_cv_path_XMLTO -if test -n "$XMLTO"; then - { $as_echo "$as_me:$LINENO: result: $XMLTO" >&5 -$as_echo "$XMLTO" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "x$XMLTO" = "x"; then - { $as_echo "$as_me:$LINENO: WARNING: xmlto not found - documentation targets will be skipped" >&5 -$as_echo "$as_me: WARNING: xmlto not found - documentation targets will be skipped" >&2;} - have_xmlto=no - else - have_xmlto=yes - fi -elif test "x$use_xmlto" = x"yes" ; then - # Extract the first word of "xmlto", so it can be a program name with args. -set dummy xmlto; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_XMLTO+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $XMLTO in - [\\/]* | ?:[\\/]*) - ac_cv_path_XMLTO="$XMLTO" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_XMLTO="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - ;; -esac -fi -XMLTO=$ac_cv_path_XMLTO -if test -n "$XMLTO"; then - { $as_echo "$as_me:$LINENO: result: $XMLTO" >&5 -$as_echo "$XMLTO" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "x$XMLTO" = "x"; then - { { $as_echo "$as_me:$LINENO: error: --with-xmlto=yes specified but xmlto not found in PATH" >&5 -$as_echo "$as_me: error: --with-xmlto=yes specified but xmlto not found in PATH" >&2;} - { (exit 1); exit 1; }; } - fi - have_xmlto=yes -elif test "x$use_xmlto" = x"no" ; then - if test "x$XMLTO" != "x"; then - { $as_echo "$as_me:$LINENO: WARNING: ignoring XMLTO environment variable since --with-xmlto=no was specified" >&5 -$as_echo "$as_me: WARNING: ignoring XMLTO environment variable since --with-xmlto=no was specified" >&2;} - fi - have_xmlto=no -else - { { $as_echo "$as_me:$LINENO: error: --with-xmlto expects 'yes' or 'no'" >&5 -$as_echo "$as_me: error: --with-xmlto expects 'yes' or 'no'" >&2;} - { (exit 1); exit 1; }; } -fi - -# Test for a minimum version of xmlto, if provided. -if test "$have_xmlto" = yes; then - # scrape the xmlto version - { $as_echo "$as_me:$LINENO: checking the xmlto version" >&5 -$as_echo_n "checking the xmlto version... " >&6; } - xmlto_version=`$XMLTO --version 2>/dev/null | cut -d' ' -f3` - { $as_echo "$as_me:$LINENO: result: $xmlto_version" >&5 -$as_echo "$xmlto_version" >&6; } - as_arg_v1=$xmlto_version -as_arg_v2=0.0.20 -awk "$as_awk_strverscmp" v1="$as_arg_v1" v2="$as_arg_v2" /dev/null -case $? in -1) if test "x$use_xmlto" = xauto; then - { $as_echo "$as_me:$LINENO: WARNING: xmlto version $xmlto_version found, but 0.0.20 needed" >&5 -$as_echo "$as_me: WARNING: xmlto version $xmlto_version found, but 0.0.20 needed" >&2;} - have_xmlto=no - else - { { $as_echo "$as_me:$LINENO: error: xmlto version $xmlto_version found, but 0.0.20 needed" >&5 -$as_echo "$as_me: error: xmlto version $xmlto_version found, but 0.0.20 needed" >&2;} - { (exit 1); exit 1; }; } - fi;; -0) ;; -2) ;; -esac -fi - -# Test for the ability of xmlto to generate a text target -have_xmlto_text=no -cat > conftest.xml << "EOF" -EOF -if test "$have_xmlto" = yes; then - if $XMLTO --skip-validation txt conftest.xml >/dev/null 2>&1; then - have_xmlto_text=yes -else - { $as_echo "$as_me:$LINENO: WARNING: xmlto cannot generate text format, this format skipped" >&5 -$as_echo "$as_me: WARNING: xmlto cannot generate text format, this format skipped" >&2;} -fi - -fi - -rm -f conftest.xml - if test $have_xmlto_text = yes; then - HAVE_XMLTO_TEXT_TRUE= - HAVE_XMLTO_TEXT_FALSE='#' -else - HAVE_XMLTO_TEXT_TRUE='#' - HAVE_XMLTO_TEXT_FALSE= -fi - - if test "$have_xmlto" = yes; then - HAVE_XMLTO_TRUE= - HAVE_XMLTO_FALSE='#' -else - HAVE_XMLTO_TRUE='#' - HAVE_XMLTO_FALSE= -fi - - - - - -# Check whether --with-fop was given. -if test "${with_fop+set}" = set; then - withval=$with_fop; use_fop=$withval -else - use_fop=auto -fi - - -if test "x$use_fop" = x"auto"; then - # Extract the first word of "fop", so it can be a program name with args. -set dummy fop; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_FOP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $FOP in - [\\/]* | ?:[\\/]*) - ac_cv_path_FOP="$FOP" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_FOP="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - ;; -esac -fi -FOP=$ac_cv_path_FOP -if test -n "$FOP"; then - { $as_echo "$as_me:$LINENO: result: $FOP" >&5 -$as_echo "$FOP" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "x$FOP" = "x"; then - { $as_echo "$as_me:$LINENO: WARNING: fop not found - documentation targets will be skipped" >&5 -$as_echo "$as_me: WARNING: fop not found - documentation targets will be skipped" >&2;} - have_fop=no - else - have_fop=yes - fi -elif test "x$use_fop" = x"yes" ; then - # Extract the first word of "fop", so it can be a program name with args. -set dummy fop; ac_word=$2 -{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5 -$as_echo_n "checking for $ac_word... " >&6; } -if test "${ac_cv_path_FOP+set}" = set; then - $as_echo_n "(cached) " >&6 -else - case $FOP in - [\\/]* | ?:[\\/]*) - ac_cv_path_FOP="$FOP" # Let the user override the test with a path. - ;; - *) - as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - for ac_exec_ext in '' $ac_executable_extensions; do - if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then - ac_cv_path_FOP="$as_dir/$ac_word$ac_exec_ext" - $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5 - break 2 - fi -done -done -IFS=$as_save_IFS - - ;; -esac -fi -FOP=$ac_cv_path_FOP -if test -n "$FOP"; then - { $as_echo "$as_me:$LINENO: result: $FOP" >&5 -$as_echo "$FOP" >&6; } -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - if test "x$FOP" = "x"; then - { { $as_echo "$as_me:$LINENO: error: --with-fop=yes specified but fop not found in PATH" >&5 -$as_echo "$as_me: error: --with-fop=yes specified but fop not found in PATH" >&2;} - { (exit 1); exit 1; }; } - fi - have_fop=yes -elif test "x$use_fop" = x"no" ; then - if test "x$FOP" != "x"; then - { $as_echo "$as_me:$LINENO: WARNING: ignoring FOP environment variable since --with-fop=no was specified" >&5 -$as_echo "$as_me: WARNING: ignoring FOP environment variable since --with-fop=no was specified" >&2;} - fi - have_fop=no -else - { { $as_echo "$as_me:$LINENO: error: --with-fop expects 'yes' or 'no'" >&5 -$as_echo "$as_me: error: --with-fop expects 'yes' or 'no'" >&2;} - { (exit 1); exit 1; }; } -fi - if test "$have_fop" = yes; then - HAVE_FOP_TRUE= - HAVE_FOP_FALSE='#' -else - HAVE_FOP_TRUE='#' - HAVE_FOP_FALSE= -fi - - - -{ $as_echo "$as_me:$LINENO: checking for X.Org SGML entities >= 1.5" >&5 -$as_echo_n "checking for X.Org SGML entities >= 1.5... " >&6; } -XORG_SGML_PATH= -if test -n "$PKG_CONFIG" && \ - { ($as_echo "$as_me:$LINENO: \$PKG_CONFIG --exists --print-errors \"xorg-sgml-doctools >= 1.5\"") >&5 - ($PKG_CONFIG --exists --print-errors "xorg-sgml-doctools >= 1.5") 2>&5 - ac_status=$? - $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5 - (exit $ac_status); }; then - XORG_SGML_PATH=`$PKG_CONFIG --variable=sgmlrootdir xorg-sgml-doctools` -else - : - -fi - -# Define variables STYLESHEET_SRCDIR and XSL_STYLESHEET containing -# the path and the name of the doc stylesheet -if test "x$XORG_SGML_PATH" != "x" ; then - { $as_echo "$as_me:$LINENO: result: $XORG_SGML_PATH" >&5 -$as_echo "$XORG_SGML_PATH" >&6; } - STYLESHEET_SRCDIR=$XORG_SGML_PATH/X11 - XSL_STYLESHEET=$STYLESHEET_SRCDIR/xorg.xsl -else - { $as_echo "$as_me:$LINENO: result: no" >&5 -$as_echo "no" >&6; } -fi - - - - - if test "x$XSL_STYLESHEET" != "x"; then - HAVE_STYLESHEETS_TRUE= - HAVE_STYLESHEETS_FALSE='#' -else - HAVE_STYLESHEETS_TRUE='#' - HAVE_STYLESHEETS_FALSE= -fi - - - -ac_config_files="$ac_config_files Makefile specs/Makefile xextproto.pc" - -cat >confcache <<\_ACEOF -# This file is a shell script that caches the results of configure -# tests run on this system so they can be shared between configure -# scripts and configure runs, see configure's option --config-cache. -# It is not useful on other systems. If it contains results you don't -# want to keep, you may remove or edit it. -# -# config.status only pays attention to the cache file if you give it -# the --recheck option to rerun configure. -# -# `ac_cv_env_foo' variables (set or unset) will be overridden when -# loading this file, other *unset* `ac_cv_foo' will be assigned the -# following values. - -_ACEOF - -# The following way of writing the cache mishandles newlines in values, -# but we know of no workaround that is simple, portable, and efficient. -# So, we kill variables containing newlines. -# Ultrix sh set writes to stderr and can't be redirected directly, -# and sets the high bit in the cache file unless we assign to the vars. -( - for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do - eval ac_val=\$$ac_var - case $ac_val in #( - *${as_nl}*) - case $ac_var in #( - *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5 -$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;; - esac - case $ac_var in #( - _ | IFS | as_nl) ;; #( - BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #( - *) $as_unset $ac_var ;; - esac ;; - esac - done - - (set) 2>&1 | - case $as_nl`(ac_space=' '; set) 2>&1` in #( - *${as_nl}ac_space=\ *) - # `set' does not quote correctly, so add quotes (double-quote - # substitution turns \\\\ into \\, and sed turns \\ into \). - sed -n \ - "s/'/'\\\\''/g; - s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p" - ;; #( - *) - # `set' quotes correctly as required by POSIX, so do not add quotes. - sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" - ;; - esac | - sort -) | - sed ' - /^ac_cv_env_/b end - t clear - :clear - s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/ - t end - s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/ - :end' >>confcache -if diff "$cache_file" confcache >/dev/null 2>&1; then :; else - if test -w "$cache_file"; then - test "x$cache_file" != "x/dev/null" && - { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5 -$as_echo "$as_me: updating cache $cache_file" >&6;} - cat confcache >$cache_file - else - { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5 -$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;} - fi -fi -rm -f confcache - -test "x$prefix" = xNONE && prefix=$ac_default_prefix -# Let make expand exec_prefix. -test "x$exec_prefix" = xNONE && exec_prefix='${prefix}' - -# Transform confdefs.h into DEFS. -# Protect against shell expansion while executing Makefile rules. -# Protect against Makefile macro expansion. -# -# If the first sed substitution is executed (which looks for macros that -# take arguments), then branch to the quote section. Otherwise, -# look for a macro that doesn't take arguments. -ac_script=' -:mline -/\\$/{ - N - s,\\\n,, - b mline -} -t clear -:clear -s/^[ ]*#[ ]*define[ ][ ]*\([^ (][^ (]*([^)]*)\)[ ]*\(.*\)/-D\1=\2/g -t quote -s/^[ ]*#[ ]*define[ ][ ]*\([^ ][^ ]*\)[ ]*\(.*\)/-D\1=\2/g -t quote -b any -:quote -s/[ `~#$^&*(){}\\|;'\''"<>?]/\\&/g -s/\[/\\&/g -s/\]/\\&/g -s/\$/$$/g -H -:any -${ - g - s/^\n// - s/\n/ /g - p -} -' -DEFS=`sed -n "$ac_script" confdefs.h` - - -ac_libobjs= -ac_ltlibobjs= -for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue - # 1. Remove the extension, and $U if already installed. - ac_script='s/\$U\././;s/\.o$//;s/\.obj$//' - ac_i=`$as_echo "$ac_i" | sed "$ac_script"` - # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR - # will be set to the directory where LIBOBJS objects are built. - ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext" - ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo' -done -LIBOBJS=$ac_libobjs - -LTLIBOBJS=$ac_ltlibobjs - - - if test -n "$EXEEXT"; then - am__EXEEXT_TRUE= - am__EXEEXT_FALSE='#' -else - am__EXEEXT_TRUE='#' - am__EXEEXT_FALSE= -fi - -if test -z "${MAINTAINER_MODE_TRUE}" && test -z "${MAINTAINER_MODE_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${AMDEP_TRUE}" && test -z "${AMDEP_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"AMDEP\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${am__fastdepCC_TRUE}" && test -z "${am__fastdepCC_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"am__fastdepCC\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${ENABLE_SPECS_TRUE}" && test -z "${ENABLE_SPECS_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"ENABLE_SPECS\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"ENABLE_SPECS\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${HAVE_XMLTO_TEXT_TRUE}" && test -z "${HAVE_XMLTO_TEXT_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_XMLTO_TEXT\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"HAVE_XMLTO_TEXT\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${HAVE_XMLTO_TRUE}" && test -z "${HAVE_XMLTO_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_XMLTO\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"HAVE_XMLTO\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${HAVE_FOP_TRUE}" && test -z "${HAVE_FOP_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_FOP\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"HAVE_FOP\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi -if test -z "${HAVE_STYLESHEETS_TRUE}" && test -z "${HAVE_STYLESHEETS_FALSE}"; then - { { $as_echo "$as_me:$LINENO: error: conditional \"HAVE_STYLESHEETS\" was never defined. -Usually this means the macro was only invoked conditionally." >&5 -$as_echo "$as_me: error: conditional \"HAVE_STYLESHEETS\" was never defined. -Usually this means the macro was only invoked conditionally." >&2;} - { (exit 1); exit 1; }; } -fi - -: ${CONFIG_STATUS=./config.status} -ac_write_fail=0 -ac_clean_files_save=$ac_clean_files -ac_clean_files="$ac_clean_files $CONFIG_STATUS" -{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: creating $CONFIG_STATUS" >&6;} -cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -#! $SHELL -# Generated by $as_me. -# Run this file to recreate the current configuration. -# Compiler output produced by configure, useful for debugging -# configure, is in config.log if it exists. - -debug=false -ac_cs_recheck=false -ac_cs_silent=false -SHELL=\${CONFIG_SHELL-$SHELL} -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -## --------------------- ## -## M4sh Initialization. ## -## --------------------- ## - -# Be more Bourne compatible -DUALCASE=1; export DUALCASE # for MKS sh -if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then - emulate sh - NULLCMD=: - # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which - # is contrary to our usage. Disable this feature. - alias -g '${1+"$@"}'='"$@"' - setopt NO_GLOB_SUBST -else - case `(set -o) 2>/dev/null` in - *posix*) set -o posix ;; -esac - -fi - - - - -# PATH needs CR -# Avoid depending upon Character Ranges. -as_cr_letters='abcdefghijklmnopqrstuvwxyz' -as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ' -as_cr_Letters=$as_cr_letters$as_cr_LETTERS -as_cr_digits='0123456789' -as_cr_alnum=$as_cr_Letters$as_cr_digits - -as_nl=' -' -export as_nl -# Printing a long string crashes Solaris 7 /usr/bin/printf. -as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\' -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo -as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo -if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then - as_echo='printf %s\n' - as_echo_n='printf %s' -else - if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then - as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"' - as_echo_n='/usr/ucb/echo -n' - else - as_echo_body='eval expr "X$1" : "X\\(.*\\)"' - as_echo_n_body='eval - arg=$1; - case $arg in - *"$as_nl"*) - expr "X$arg" : "X\\(.*\\)$as_nl"; - arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;; - esac; - expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl" - ' - export as_echo_n_body - as_echo_n='sh -c $as_echo_n_body as_echo' - fi - export as_echo_body - as_echo='sh -c $as_echo_body as_echo' -fi - -# The user is always right. -if test "${PATH_SEPARATOR+set}" != set; then - PATH_SEPARATOR=: - (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && { - (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 || - PATH_SEPARATOR=';' - } -fi - -# Support unset when possible. -if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then - as_unset=unset -else - as_unset=false -fi - - -# IFS -# We need space, tab and new line, in precisely that order. Quoting is -# there to prevent editors from complaining about space-tab. -# (If _AS_PATH_WALK were called with IFS unset, it would disable word -# splitting by setting IFS to empty value.) -IFS=" "" $as_nl" - -# Find who we are. Look in the path if we contain no directory separator. -case $0 in - *[\\/]* ) as_myself=$0 ;; - *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR -for as_dir in $PATH -do - IFS=$as_save_IFS - test -z "$as_dir" && as_dir=. - test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break -done -IFS=$as_save_IFS - - ;; -esac -# We did not find ourselves, most probably we were run as `sh COMMAND' -# in which case we are not to be found in the path. -if test "x$as_myself" = x; then - as_myself=$0 -fi -if test ! -f "$as_myself"; then - $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2 - { (exit 1); exit 1; } -fi - -# Work around bugs in pre-3.0 UWIN ksh. -for as_var in ENV MAIL MAILPATH -do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var -done -PS1='$ ' -PS2='> ' -PS4='+ ' - -# NLS nuisances. -LC_ALL=C -export LC_ALL -LANGUAGE=C -export LANGUAGE - -# Required to use basename. -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then - as_basename=basename -else - as_basename=false -fi - - -# Name of the executable. -as_me=`$as_basename -- "$0" || -$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \ - X"$0" : 'X\(//\)$' \| \ - X"$0" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X/"$0" | - sed '/^.*\/\([^/][^/]*\)\/*$/{ - s//\1/ - q - } - /^X\/\(\/\/\)$/{ - s//\1/ - q - } - /^X\/\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - -# CDPATH. -$as_unset CDPATH - - - - as_lineno_1=$LINENO - as_lineno_2=$LINENO - test "x$as_lineno_1" != "x$as_lineno_2" && - test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || { - - # Create $as_me.lineno as a copy of $as_myself, but with $LINENO - # uniformly replaced by the line number. The first 'sed' inserts a - # line-number line after each line using $LINENO; the second 'sed' - # does the real work. The second script uses 'N' to pair each - # line-number line with the line containing $LINENO, and appends - # trailing '-' during substitution so that $LINENO is not a special - # case at line end. - # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the - # scripts with optimization help from Paolo Bonzini. Blame Lee - # E. McMahon (1931-1989) for sed's syntax. :-) - sed -n ' - p - /[$]LINENO/= - ' <$as_myself | - sed ' - s/[$]LINENO.*/&-/ - t lineno - b - :lineno - N - :loop - s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/ - t loop - s/-\n.*// - ' >$as_me.lineno && - chmod +x "$as_me.lineno" || - { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2 - { (exit 1); exit 1; }; } - - # Don't try to exec as it changes $[0], causing all sort of problems - # (the dirname of $[0] is not the place where we might find the - # original and so on. Autoconf is especially sensitive to this). - . "./$as_me.lineno" - # Exit status is that of the last command. - exit -} - - -if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then - as_dirname=dirname -else - as_dirname=false -fi - -ECHO_C= ECHO_N= ECHO_T= -case `echo -n x` in --n*) - case `echo 'x\c'` in - *c*) ECHO_T=' ';; # ECHO_T is single tab character. - *) ECHO_C='\c';; - esac;; -*) - ECHO_N='-n';; -esac -if expr a : '\(a\)' >/dev/null 2>&1 && - test "X`expr 00001 : '.*\(...\)'`" = X001; then - as_expr=expr -else - as_expr=false -fi - -rm -f conf$$ conf$$.exe conf$$.file -if test -d conf$$.dir; then - rm -f conf$$.dir/conf$$.file -else - rm -f conf$$.dir - mkdir conf$$.dir 2>/dev/null -fi -if (echo >conf$$.file) 2>/dev/null; then - if ln -s conf$$.file conf$$ 2>/dev/null; then - as_ln_s='ln -s' - # ... but there are two gotchas: - # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail. - # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable. - # In both cases, we have to default to `cp -p'. - ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || - as_ln_s='cp -p' - elif ln conf$$.file conf$$ 2>/dev/null; then - as_ln_s=ln - else - as_ln_s='cp -p' - fi -else - as_ln_s='cp -p' -fi -rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file -rmdir conf$$.dir 2>/dev/null - -if mkdir -p . 2>/dev/null; then - as_mkdir_p=: -else - test -d ./-p && rmdir ./-p - as_mkdir_p=false -fi - -if test -x / >/dev/null 2>&1; then - as_test_x='test -x' -else - if ls -dL / >/dev/null 2>&1; then - as_ls_L_option=L - else - as_ls_L_option= - fi - as_test_x=' - eval sh -c '\'' - if test -d "$1"; then - test -d "$1/."; - else - case $1 in - -*)set "./$1";; - esac; - case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in - ???[sx]*):;;*)false;;esac;fi - '\'' sh - ' -fi -as_executable_p=$as_test_x - -# Sed expression to map a string onto a valid CPP name. -as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'" - -# Sed expression to map a string onto a valid variable name. -as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'" - - -exec 6>&1 - -# Save the log message, to keep $[0] and so on meaningful, and to -# report actual input values of CONFIG_FILES etc. instead of their -# values after options handling. -ac_log=" -This file was extended by XExtProto $as_me 7.1.2, which was -generated by GNU Autoconf 2.63. Invocation command line was - - CONFIG_FILES = $CONFIG_FILES - CONFIG_HEADERS = $CONFIG_HEADERS - CONFIG_LINKS = $CONFIG_LINKS - CONFIG_COMMANDS = $CONFIG_COMMANDS - $ $0 $@ - -on `(hostname || uname -n) 2>/dev/null | sed 1q` -" - -_ACEOF - -case $ac_config_files in *" -"*) set x $ac_config_files; shift; ac_config_files=$*;; -esac - - - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# Files that config.status was made for. -config_files="$ac_config_files" -config_commands="$ac_config_commands" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -ac_cs_usage="\ -\`$as_me' instantiates files from templates according to the -current configuration. - -Usage: $0 [OPTION]... [FILE]... - - -h, --help print this help, then exit - -V, --version print version number and configuration settings, then exit - -q, --quiet, --silent - do not print progress messages - -d, --debug don't remove temporary files - --recheck update $as_me by reconfiguring in the same conditions - --file=FILE[:TEMPLATE] - instantiate the configuration file FILE - -Configuration files: -$config_files - -Configuration commands: -$config_commands - -Report bugs to <bug-autoconf@gnu.org>." - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_cs_version="\\ -XExtProto config.status 7.1.2 -configured by $0, generated by GNU Autoconf 2.63, - with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\" - -Copyright (C) 2008 Free Software Foundation, Inc. -This config.status script is free software; the Free Software Foundation -gives unlimited permission to copy, distribute and modify it." - -ac_pwd='$ac_pwd' -srcdir='$srcdir' -INSTALL='$INSTALL' -MKDIR_P='$MKDIR_P' -AWK='$AWK' -test -n "\$AWK" || AWK=awk -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# The default lists apply if the user does not specify any file. -ac_need_defaults=: -while test $# != 0 -do - case $1 in - --*=*) - ac_option=`expr "X$1" : 'X\([^=]*\)='` - ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'` - ac_shift=: - ;; - *) - ac_option=$1 - ac_optarg=$2 - ac_shift=shift - ;; - esac - - case $ac_option in - # Handling of the options. - -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r) - ac_cs_recheck=: ;; - --version | --versio | --versi | --vers | --ver | --ve | --v | -V ) - $as_echo "$ac_cs_version"; exit ;; - --debug | --debu | --deb | --de | --d | -d ) - debug=: ;; - --file | --fil | --fi | --f ) - $ac_shift - case $ac_optarg in - *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;; - esac - CONFIG_FILES="$CONFIG_FILES '$ac_optarg'" - ac_need_defaults=false;; - --he | --h | --help | --hel | -h ) - $as_echo "$ac_cs_usage"; exit ;; - -q | -quiet | --quiet | --quie | --qui | --qu | --q \ - | -silent | --silent | --silen | --sile | --sil | --si | --s) - ac_cs_silent=: ;; - - # This is an error. - -*) { $as_echo "$as_me: error: unrecognized option: $1 -Try \`$0 --help' for more information." >&2 - { (exit 1); exit 1; }; } ;; - - *) ac_config_targets="$ac_config_targets $1" - ac_need_defaults=false ;; - - esac - shift -done - -ac_configure_extra_args= - -if $ac_cs_silent; then - exec 6>/dev/null - ac_configure_extra_args="$ac_configure_extra_args --silent" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -if \$ac_cs_recheck; then - set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion - shift - \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6 - CONFIG_SHELL='$SHELL' - export CONFIG_SHELL - exec "\$@" -fi - -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -exec 5>>config.log -{ - echo - sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX -## Running $as_me. ## -_ASBOX - $as_echo "$ac_log" -} >&5 - -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -# -# INIT-COMMANDS -# -AMDEP_TRUE="$AMDEP_TRUE" ac_aux_dir="$ac_aux_dir" - -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 - -# Handling of arguments. -for ac_config_target in $ac_config_targets -do - case $ac_config_target in - "depfiles") CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;; - "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;; - "specs/Makefile") CONFIG_FILES="$CONFIG_FILES specs/Makefile" ;; - "xextproto.pc") CONFIG_FILES="$CONFIG_FILES xextproto.pc" ;; - - *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5 -$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;} - { (exit 1); exit 1; }; };; - esac -done - - -# If the user did not use the arguments to specify the items to instantiate, -# then the envvar interface is used. Set only those that are not. -# We use the long form for the default assignment because of an extremely -# bizarre bug on SunOS 4.1.3. -if $ac_need_defaults; then - test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files - test "${CONFIG_COMMANDS+set}" = set || CONFIG_COMMANDS=$config_commands -fi - -# Have a temporary directory for convenience. Make it in the build tree -# simply because there is no reason against having it here, and in addition, -# creating and moving files from /tmp can sometimes cause problems. -# Hook for its removal unless debugging. -# Note that there is a small window in which the directory will not be cleaned: -# after its creation but before its name has been assigned to `$tmp'. -$debug || -{ - tmp= - trap 'exit_status=$? - { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status -' 0 - trap '{ (exit 1); exit 1; }' 1 2 13 15 -} -# Create a (secure) tmp directory for tmp files. - -{ - tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` && - test -n "$tmp" && test -d "$tmp" -} || -{ - tmp=./conf$$-$RANDOM - (umask 077 && mkdir "$tmp") -} || -{ - $as_echo "$as_me: cannot create a temporary directory in ." >&2 - { (exit 1); exit 1; } -} - -# Set up the scripts for CONFIG_FILES section. -# No need to generate them if there are no CONFIG_FILES. -# This happens for instance with `./config.status config.h'. -if test -n "$CONFIG_FILES"; then - - -ac_cr='
' -ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null` -if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then - ac_cs_awk_cr='\\r' -else - ac_cs_awk_cr=$ac_cr -fi - -echo 'BEGIN {' >"$tmp/subs1.awk" && -_ACEOF - - -{ - echo "cat >conf$$subs.awk <<_ACEOF" && - echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' && - echo "_ACEOF" -} >conf$$subs.sh || - { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } -ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'` -ac_delim='%!_!# ' -for ac_last_try in false false false false false :; do - . ./conf$$subs.sh || - { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } - - ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X` - if test $ac_delim_n = $ac_delim_num; then - break - elif $ac_last_try; then - { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } - else - ac_delim="$ac_delim!$ac_delim _$ac_delim!! " - fi -done -rm -f conf$$subs.sh - -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -cat >>"\$tmp/subs1.awk" <<\\_ACAWK && -_ACEOF -sed -n ' -h -s/^/S["/; s/!.*/"]=/ -p -g -s/^[^!]*!// -:repl -t repl -s/'"$ac_delim"'$// -t delim -:nl -h -s/\(.\{148\}\).*/\1/ -t more1 -s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/ -p -n -b repl -:more1 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t nl -:delim -h -s/\(.\{148\}\).*/\1/ -t more2 -s/["\\]/\\&/g; s/^/"/; s/$/"/ -p -b -:more2 -s/["\\]/\\&/g; s/^/"/; s/$/"\\/ -p -g -s/.\{148\}// -t delim -' <conf$$subs.awk | sed ' -/^[^""]/{ - N - s/\n// -} -' >>$CONFIG_STATUS || ac_write_fail=1 -rm -f conf$$subs.awk -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -_ACAWK -cat >>"\$tmp/subs1.awk" <<_ACAWK && - for (key in S) S_is_set[key] = 1 - FS = "" - -} -{ - line = $ 0 - nfields = split(line, field, "@") - substed = 0 - len = length(field[1]) - for (i = 2; i < nfields; i++) { - key = field[i] - keylen = length(key) - if (S_is_set[key]) { - value = S[key] - line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3) - len += length(value) + length(field[++i]) - substed = 1 - } else - len += 1 + keylen - } - - print line -} - -_ACAWK -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then - sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g" -else - cat -fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \ - || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5 -$as_echo "$as_me: error: could not setup config files machinery" >&2;} - { (exit 1); exit 1; }; } -_ACEOF - -# VPATH may cause trouble with some makes, so we remove $(srcdir), -# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and -# trailing colons and then remove the whole line if VPATH becomes empty -# (actually we leave an empty line to preserve line numbers). -if test "x$srcdir" = x.; then - ac_vpsub='/^[ ]*VPATH[ ]*=/{ -s/:*\$(srcdir):*/:/ -s/:*\${srcdir}:*/:/ -s/:*@srcdir@:*/:/ -s/^\([^=]*=[ ]*\):*/\1/ -s/:*$// -s/^[^=]*=[ ]*$// -}' -fi - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -fi # test -n "$CONFIG_FILES" - - -eval set X " :F $CONFIG_FILES :C $CONFIG_COMMANDS" -shift -for ac_tag -do - case $ac_tag in - :[FHLC]) ac_mode=$ac_tag; continue;; - esac - case $ac_mode$ac_tag in - :[FHL]*:*);; - :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5 -$as_echo "$as_me: error: invalid tag $ac_tag" >&2;} - { (exit 1); exit 1; }; };; - :[FH]-) ac_tag=-:-;; - :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; - esac - ac_save_IFS=$IFS - IFS=: - set x $ac_tag - IFS=$ac_save_IFS - shift - ac_file=$1 - shift - - case $ac_mode in - :L) ac_source=$1;; - :[FH]) - ac_file_inputs= - for ac_f - do - case $ac_f in - -) ac_f="$tmp/stdin";; - *) # Look for the file first in the build tree, then in the source tree - # (if the path is not absolute). The absolute path cannot be DOS-style, - # because $ac_f cannot contain `:'. - test -f "$ac_f" || - case $ac_f in - [\\/$]*) false;; - *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";; - esac || - { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5 -$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;} - { (exit 1); exit 1; }; };; - esac - case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac - ac_file_inputs="$ac_file_inputs '$ac_f'" - done - - # Let's still pretend it is `configure' which instantiates (i.e., don't - # use $as_me), people would be surprised to read: - # /* config.h. Generated by config.status. */ - configure_input='Generated from '` - $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g' - `' by configure.' - if test x"$ac_file" != x-; then - configure_input="$ac_file. $configure_input" - { $as_echo "$as_me:$LINENO: creating $ac_file" >&5 -$as_echo "$as_me: creating $ac_file" >&6;} - fi - # Neutralize special characters interpreted by sed in replacement strings. - case $configure_input in #( - *\&* | *\|* | *\\* ) - ac_sed_conf_input=`$as_echo "$configure_input" | - sed 's/[\\\\&|]/\\\\&/g'`;; #( - *) ac_sed_conf_input=$configure_input;; - esac - - case $ac_tag in - *:-:* | *:-) cat >"$tmp/stdin" \ - || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 -$as_echo "$as_me: error: could not create $ac_file" >&2;} - { (exit 1); exit 1; }; } ;; - esac - ;; - esac - - ac_dir=`$as_dirname -- "$ac_file" || -$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$ac_file" : 'X\(//\)[^/]' \| \ - X"$ac_file" : 'X\(//\)$' \| \ - X"$ac_file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$ac_file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - { as_dir="$ac_dir" - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} - { (exit 1); exit 1; }; }; } - ac_builddir=. - -case "$ac_dir" in -.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;; -*) - ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'` - # A ".." for each directory in $ac_dir_suffix. - ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'` - case $ac_top_builddir_sub in - "") ac_top_builddir_sub=. ac_top_build_prefix= ;; - *) ac_top_build_prefix=$ac_top_builddir_sub/ ;; - esac ;; -esac -ac_abs_top_builddir=$ac_pwd -ac_abs_builddir=$ac_pwd$ac_dir_suffix -# for backward compatibility: -ac_top_builddir=$ac_top_build_prefix - -case $srcdir in - .) # We are building in place. - ac_srcdir=. - ac_top_srcdir=$ac_top_builddir_sub - ac_abs_top_srcdir=$ac_pwd ;; - [\\/]* | ?:[\\/]* ) # Absolute name. - ac_srcdir=$srcdir$ac_dir_suffix; - ac_top_srcdir=$srcdir - ac_abs_top_srcdir=$srcdir ;; - *) # Relative name. - ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix - ac_top_srcdir=$ac_top_build_prefix$srcdir - ac_abs_top_srcdir=$ac_pwd/$srcdir ;; -esac -ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix - - - case $ac_mode in - :F) - # - # CONFIG_FILE - # - - case $INSTALL in - [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;; - *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;; - esac - ac_MKDIR_P=$MKDIR_P - case $MKDIR_P in - [\\/$]* | ?:[\\/]* ) ;; - */*) ac_MKDIR_P=$ac_top_build_prefix$MKDIR_P ;; - esac -_ACEOF - -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -# If the template does not know about datarootdir, expand it. -# FIXME: This hack should be removed a few years after 2.60. -ac_datarootdir_hack=; ac_datarootdir_seen= - -ac_sed_dataroot=' -/datarootdir/ { - p - q -} -/@datadir@/p -/@docdir@/p -/@infodir@/p -/@localedir@/p -/@mandir@/p -' -case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in -*datarootdir*) ac_datarootdir_seen=yes;; -*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*) - { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5 -$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;} -_ACEOF -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 - ac_datarootdir_hack=' - s&@datadir@&$datadir&g - s&@docdir@&$docdir&g - s&@infodir@&$infodir&g - s&@localedir@&$localedir&g - s&@mandir@&$mandir&g - s&\\\${datarootdir}&$datarootdir&g' ;; -esac -_ACEOF - -# Neutralize VPATH when `$srcdir' = `.'. -# Shell code in configure.ac might set extrasub. -# FIXME: do we really want to maintain this feature? -cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1 -ac_sed_extra="$ac_vpsub -$extrasub -_ACEOF -cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 -:t -/@[a-zA-Z_][a-zA-Z_0-9]*@/!b -s|@configure_input@|$ac_sed_conf_input|;t t -s&@top_builddir@&$ac_top_builddir_sub&;t t -s&@top_build_prefix@&$ac_top_build_prefix&;t t -s&@srcdir@&$ac_srcdir&;t t -s&@abs_srcdir@&$ac_abs_srcdir&;t t -s&@top_srcdir@&$ac_top_srcdir&;t t -s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t -s&@builddir@&$ac_builddir&;t t -s&@abs_builddir@&$ac_abs_builddir&;t t -s&@abs_top_builddir@&$ac_abs_top_builddir&;t t -s&@INSTALL@&$ac_INSTALL&;t t -s&@MKDIR_P@&$ac_MKDIR_P&;t t -$ac_datarootdir_hack -" -eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \ - || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 -$as_echo "$as_me: error: could not create $ac_file" >&2;} - { (exit 1); exit 1; }; } - -test -z "$ac_datarootdir_hack$ac_datarootdir_seen" && - { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } && - { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } && - { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&5 -$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir' -which seems to be undefined. Please make sure it is defined." >&2;} - - rm -f "$tmp/stdin" - case $ac_file in - -) cat "$tmp/out" && rm -f "$tmp/out";; - *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";; - esac \ - || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5 -$as_echo "$as_me: error: could not create $ac_file" >&2;} - { (exit 1); exit 1; }; } - ;; - - - :C) { $as_echo "$as_me:$LINENO: executing $ac_file commands" >&5 -$as_echo "$as_me: executing $ac_file commands" >&6;} - ;; - esac - - - case $ac_file$ac_mode in - "depfiles":C) test x"$AMDEP_TRUE" != x"" || { - # Autoconf 2.62 quotes --file arguments for eval, but not when files - # are listed without --file. Let's play safe and only enable the eval - # if we detect the quoting. - case $CONFIG_FILES in - *\'*) eval set x "$CONFIG_FILES" ;; - *) set x $CONFIG_FILES ;; - esac - shift - for mf - do - # Strip MF so we end up with the name of the file. - mf=`echo "$mf" | sed -e 's/:.*$//'` - # Check whether this is an Automake generated Makefile or not. - # We used to match only the files named `Makefile.in', but - # some people rename them; so instead we look at the file content. - # Grep'ing the first line is not enough: some people post-process - # each Makefile.in and add a new line on top of each file to say so. - # Grep'ing the whole file is not good either: AIX grep has a line - # limit of 2048, but all sed's we know have understand at least 4000. - if sed -n 's,^#.*generated by automake.*,X,p' "$mf" | grep X >/dev/null 2>&1; then - dirpart=`$as_dirname -- "$mf" || -$as_expr X"$mf" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$mf" : 'X\(//\)[^/]' \| \ - X"$mf" : 'X\(//\)$' \| \ - X"$mf" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$mf" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - else - continue - fi - # Extract the definition of DEPDIR, am__include, and am__quote - # from the Makefile without running `make'. - DEPDIR=`sed -n 's/^DEPDIR = //p' < "$mf"` - test -z "$DEPDIR" && continue - am__include=`sed -n 's/^am__include = //p' < "$mf"` - test -z "am__include" && continue - am__quote=`sed -n 's/^am__quote = //p' < "$mf"` - # When using ansi2knr, U may be empty or an underscore; expand it - U=`sed -n 's/^U = //p' < "$mf"` - # Find all dependency output files, they are included files with - # $(DEPDIR) in their names. We invoke sed twice because it is the - # simplest approach to changing $(DEPDIR) to its actual value in the - # expansion. - for file in `sed -n " - s/^$am__include $am__quote\(.*(DEPDIR).*\)$am__quote"'$/\1/p' <"$mf" | \ - sed -e 's/\$(DEPDIR)/'"$DEPDIR"'/g' -e 's/\$U/'"$U"'/g'`; do - # Make sure the directory exists. - test -f "$dirpart/$file" && continue - fdir=`$as_dirname -- "$file" || -$as_expr X"$file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$file" : 'X\(//\)[^/]' \| \ - X"$file" : 'X\(//\)$' \| \ - X"$file" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$file" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - { as_dir=$dirpart/$fdir - case $as_dir in #( - -*) as_dir=./$as_dir;; - esac - test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || { - as_dirs= - while :; do - case $as_dir in #( - *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'( - *) as_qdir=$as_dir;; - esac - as_dirs="'$as_qdir' $as_dirs" - as_dir=`$as_dirname -- "$as_dir" || -$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$as_dir" : 'X\(//\)[^/]' \| \ - X"$as_dir" : 'X\(//\)$' \| \ - X"$as_dir" : 'X\(/\)' \| . 2>/dev/null || -$as_echo X"$as_dir" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q'` - test -d "$as_dir" && break - done - test -z "$as_dirs" || eval "mkdir $as_dirs" - } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5 -$as_echo "$as_me: error: cannot create directory $as_dir" >&2;} - { (exit 1); exit 1; }; }; } - # echo "creating $dirpart/$file" - echo '# dummy' > "$dirpart/$file" - done - done -} - ;; - - esac -done # for ac_tag - - -{ (exit 0); exit 0; } -_ACEOF -chmod +x $CONFIG_STATUS -ac_clean_files=$ac_clean_files_save - -test $ac_write_fail = 0 || - { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5 -$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;} - { (exit 1); exit 1; }; } - - -# configure is writing to config.log, and then calls config.status. -# config.status does its own redirection, appending to config.log. -# Unfortunately, on DOS this fails, as config.log is still kept open -# by configure, so config.status won't be able to write to it; its -# output is simply discarded. So we exec the FD to /dev/null, -# effectively closing config.log, so it can be properly (re)opened and -# appended to by config.status. When coming back to configure, we -# need to make the FD available again. -if test "$no_create" != yes; then - ac_cs_success=: - ac_config_status_args= - test "$silent" = yes && - ac_config_status_args="$ac_config_status_args --quiet" - exec 5>/dev/null - $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false - exec 5>>config.log - # Use ||, not &&, to avoid exiting from the if with $? = 1, which - # would make configure fail if this is the last instruction. - $ac_cs_success || { (exit 1); exit 1; } -fi -if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then - { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5 -$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} -fi - diff --git a/X11/extensions/configure.ac b/X11/extensions/configure.ac deleted file mode 100644 index 6c6824885..000000000 --- a/X11/extensions/configure.ac +++ /dev/null @@ -1,19 +0,0 @@ -AC_PREREQ([2.60]) -AC_INIT([XExtProto], [7.2.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg]) -AM_INIT_AUTOMAKE([foreign dist-bzip2]) -AM_MAINTAINER_MODE - -# Require xorg-macros minimum of 1.12 for DocBook external references -m4_ifndef([XORG_MACROS_VERSION], - [m4_fatal([must install xorg-macros 1.12 or later before running autoconf/autogen])]) -XORG_MACROS_VERSION(1.12) -XORG_DEFAULT_OPTIONS -XORG_ENABLE_SPECS -XORG_WITH_XMLTO(0.0.22) -XORG_WITH_FOP -XORG_WITH_XSLTPROC -XORG_CHECK_SGML_DOCTOOLS(1.8) - -AC_OUTPUT([Makefile - specs/Makefile - xextproto.pc]) diff --git a/X11/extensions/docbook.am b/X11/extensions/docbook.am deleted file mode 100644 index 2ffb7e60a..000000000 --- a/X11/extensions/docbook.am +++ /dev/null @@ -1,97 +0,0 @@ -# -# Generate output formats for a single DocBook/XML with/without chapters -# -# Variables set by the calling Makefile: -# shelfdir: the location where the docs/specs are installed. Typically $(docdir) -# docbook: the main DocBook/XML file, no chapters, appendix or image files -# chapters: all files pulled in by an XInclude statement and images. -# - -# -# This makefile is intended for Users Documentation and Functional Specifications. -# Do not use for Developer Documentation which is not installed and does not require olink. -# Refer to http://www.x.org/releases/X11R7.6/doc/xorg-docs/ReleaseNotes.html#id2584393 -# for an explanation on documents classification. -# - -# DocBook/XML generated output formats to be installed -shelf_DATA = - -# DocBook/XML file with chapters, appendix and images it includes -dist_shelf_DATA = $(docbook) $(chapters) - -if HAVE_XMLTO -# -# Generate DocBook/XML output formats with or without stylesheets -# - -# Stylesheets are available if the package xorg-sgml-doctools is installed -if HAVE_STYLESHEETS - -# The location where all cross reference databases are installed -sgmldbsdir = $(XORG_SGML_PATH)/X11/dbs -masterdb = "$(sgmldbsdir)/masterdb$(suffix $@).xml" -XMLTO_FLAGS = \ - --searchpath "$(XORG_SGML_PATH)/X11" \ - --stringparam target.database.document=$(masterdb) \ - --stringparam current.docid="$(<:.xml=)" \ - --stringparam collect.xref.targets="no" - -XMLTO_XHTML_FLAGS = \ - -x $(STYLESHEET_SRCDIR)/xorg-xhtml.xsl \ - --stringparam html.stylesheet=$(STYLESHEET_SRCDIR)/xorg.css - -XMLTO_FO_FLAGS = \ - -x $(STYLESHEET_SRCDIR)/xorg-fo.xsl -endif HAVE_STYLESHEETS - -shelf_DATA += $(docbook:.xml=.html) -%.html: %.xml $(chapters) - $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) $(XMLTO_XHTML_FLAGS) xhtml-nochunks $< - -if HAVE_FOP -shelf_DATA += $(docbook:.xml=.pdf) $(docbook:.xml=.ps) -%.pdf: %.xml $(chapters) - $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) $(XMLTO_FO_FLAGS) --with-fop pdf $< -%.ps: %.xml $(chapters) - $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) $(XMLTO_FO_FLAGS) --with-fop ps $< -endif HAVE_FOP - -if HAVE_XMLTO_TEXT -shelf_DATA += $(docbook:.xml=.txt) -%.txt: %.xml $(chapters) - $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) $(XMLTO_XHTML_FLAGS) txt $< -endif HAVE_XMLTO_TEXT - -# -# Generate documents cross-reference target databases -# - -# This is only possible if the xorg-sgml-doctools package is installed -if HAVE_STYLESHEETS -if HAVE_XSLTPROC - -# DocBook/XML generated document cross-reference database -shelf_DATA += $(docbook:.xml=.html.db) $(docbook:.xml=.fo.db) - -# Generate DocBook/XML document cross-reference database -# Flags for the XSL Transformation processor generating xref target databases -XSLTPROC_FLAGS = \ - --path "$(XORG_SGML_PATH)/X11" \ - --stringparam targets.filename "$@" \ - --stringparam collect.xref.targets "only" \ - --nonet --xinclude - -%.html.db: %.xml $(chapters) - $(AM_V_GEN)$(XSLTPROC) $(XSLTPROC_FLAGS) \ - http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl $< - -%.fo.db: %.xml $(chapters) - $(AM_V_GEN)$(XSLTPROC) $(XSLTPROC_FLAGS) \ - http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl $< - -endif HAVE_XSLTPROC -endif HAVE_STYLESHEETS -endif HAVE_XMLTO - -CLEANFILES = $(shelf_DATA) diff --git a/X11/extensions/install-sh b/X11/extensions/install-sh deleted file mode 100644 index 6781b987b..000000000 --- a/X11/extensions/install-sh +++ /dev/null @@ -1,520 +0,0 @@ -#!/bin/sh -# install - install a program, script, or datafile - -scriptversion=2009-04-28.21; # UTC - -# This originates from X11R5 (mit/util/scripts/install.sh), which was -# later released in X11R6 (xc/config/util/install.sh) with the -# following copyright and license. -# -# Copyright (C) 1994 X Consortium -# -# 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 -# X CONSORTIUM BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN -# AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNEC- -# TION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# -# Except as contained in this notice, the name of the X Consortium shall not -# be used in advertising or otherwise to promote the sale, use or other deal- -# ings in this Software without prior written authorization from the X Consor- -# tium. -# -# -# FSF changes to this file are in the public domain. -# -# Calling this script install-sh is preferred over install.sh, to prevent -# `make' implicit rules from creating a file called install from it -# when there is no Makefile. -# -# This script is compatible with the BSD install script, but was written -# from scratch. - -nl=' -' -IFS=" "" $nl" - -# set DOITPROG to echo to test this script - -# Don't use :- since 4.3BSD and earlier shells don't like it. -doit=${DOITPROG-} -if test -z "$doit"; then - doit_exec=exec -else - doit_exec=$doit -fi - -# Put in absolute file names if you don't have them in your path; -# or use environment vars. - -chgrpprog=${CHGRPPROG-chgrp} -chmodprog=${CHMODPROG-chmod} -chownprog=${CHOWNPROG-chown} -cmpprog=${CMPPROG-cmp} -cpprog=${CPPROG-cp} -mkdirprog=${MKDIRPROG-mkdir} -mvprog=${MVPROG-mv} -rmprog=${RMPROG-rm} -stripprog=${STRIPPROG-strip} - -posix_glob='?' -initialize_posix_glob=' - test "$posix_glob" != "?" || { - if (set -f) 2>/dev/null; then - posix_glob= - else - posix_glob=: - fi - } -' - -posix_mkdir= - -# Desired mode of installed file. -mode=0755 - -chgrpcmd= -chmodcmd=$chmodprog -chowncmd= -mvcmd=$mvprog -rmcmd="$rmprog -f" -stripcmd= - -src= -dst= -dir_arg= -dst_arg= - -copy_on_change=false -no_target_directory= - -usage="\ -Usage: $0 [OPTION]... [-T] SRCFILE DSTFILE - or: $0 [OPTION]... SRCFILES... DIRECTORY - or: $0 [OPTION]... -t DIRECTORY SRCFILES... - or: $0 [OPTION]... -d DIRECTORIES... - -In the 1st form, copy SRCFILE to DSTFILE. -In the 2nd and 3rd, copy all SRCFILES to DIRECTORY. -In the 4th, create DIRECTORIES. - -Options: - --help display this help and exit. - --version display version info and exit. - - -c (ignored) - -C install only if different (preserve the last data modification time) - -d create directories instead of installing files. - -g GROUP $chgrpprog installed files to GROUP. - -m MODE $chmodprog installed files to MODE. - -o USER $chownprog installed files to USER. - -s $stripprog installed files. - -t DIRECTORY install into DIRECTORY. - -T report an error if DSTFILE is a directory. - -Environment variables override the default commands: - CHGRPPROG CHMODPROG CHOWNPROG CMPPROG CPPROG MKDIRPROG MVPROG - RMPROG STRIPPROG -" - -while test $# -ne 0; do - case $1 in - -c) ;; - - -C) copy_on_change=true;; - - -d) dir_arg=true;; - - -g) chgrpcmd="$chgrpprog $2" - shift;; - - --help) echo "$usage"; exit $?;; - - -m) mode=$2 - case $mode in - *' '* | *' '* | *' -'* | *'*'* | *'?'* | *'['*) - echo "$0: invalid mode: $mode" >&2 - exit 1;; - esac - shift;; - - -o) chowncmd="$chownprog $2" - shift;; - - -s) stripcmd=$stripprog;; - - -t) dst_arg=$2 - shift;; - - -T) no_target_directory=true;; - - --version) echo "$0 $scriptversion"; exit $?;; - - --) shift - break;; - - -*) echo "$0: invalid option: $1" >&2 - exit 1;; - - *) break;; - esac - shift -done - -if test $# -ne 0 && test -z "$dir_arg$dst_arg"; then - # When -d is used, all remaining arguments are directories to create. - # When -t is used, the destination is already specified. - # Otherwise, the last argument is the destination. Remove it from $@. - for arg - do - if test -n "$dst_arg"; then - # $@ is not empty: it contains at least $arg. - set fnord "$@" "$dst_arg" - shift # fnord - fi - shift # arg - dst_arg=$arg - done -fi - -if test $# -eq 0; then - if test -z "$dir_arg"; then - echo "$0: no input file specified." >&2 - exit 1 - fi - # It's OK to call `install-sh -d' without argument. - # This can happen when creating conditional directories. - exit 0 -fi - -if test -z "$dir_arg"; then - trap '(exit $?); exit' 1 2 13 15 - - # Set umask so as not to create temps with too-generous modes. - # However, 'strip' requires both read and write access to temps. - case $mode in - # Optimize common cases. - *644) cp_umask=133;; - *755) cp_umask=22;; - - *[0-7]) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw='% 200' - fi - cp_umask=`expr '(' 777 - $mode % 1000 ')' $u_plus_rw`;; - *) - if test -z "$stripcmd"; then - u_plus_rw= - else - u_plus_rw=,u+rw - fi - cp_umask=$mode$u_plus_rw;; - esac -fi - -for src -do - # Protect names starting with `-'. - case $src in - -*) src=./$src;; - esac - - if test -n "$dir_arg"; then - dst=$src - dstdir=$dst - test -d "$dstdir" - dstdir_status=$? - else - - # Waiting for this to be detected by the "$cpprog $src $dsttmp" command - # might cause directories to be created, which would be especially bad - # if $src (and thus $dsttmp) contains '*'. - if test ! -f "$src" && test ! -d "$src"; then - echo "$0: $src does not exist." >&2 - exit 1 - fi - - if test -z "$dst_arg"; then - echo "$0: no destination specified." >&2 - exit 1 - fi - - dst=$dst_arg - # Protect names starting with `-'. - case $dst in - -*) dst=./$dst;; - esac - - # If destination is a directory, append the input filename; won't work - # if double slashes aren't ignored. - if test -d "$dst"; then - if test -n "$no_target_directory"; then - echo "$0: $dst_arg: Is a directory" >&2 - exit 1 - fi - dstdir=$dst - dst=$dstdir/`basename "$src"` - dstdir_status=0 - else - # Prefer dirname, but fall back on a substitute if dirname fails. - dstdir=` - (dirname "$dst") 2>/dev/null || - expr X"$dst" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \ - X"$dst" : 'X\(//\)[^/]' \| \ - X"$dst" : 'X\(//\)$' \| \ - X"$dst" : 'X\(/\)' \| . 2>/dev/null || - echo X"$dst" | - sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{ - s//\1/ - q - } - /^X\(\/\/\)[^/].*/{ - s//\1/ - q - } - /^X\(\/\/\)$/{ - s//\1/ - q - } - /^X\(\/\).*/{ - s//\1/ - q - } - s/.*/./; q' - ` - - test -d "$dstdir" - dstdir_status=$? - fi - fi - - obsolete_mkdir_used=false - - if test $dstdir_status != 0; then - case $posix_mkdir in - '') - # Create intermediate dirs using mode 755 as modified by the umask. - # This is like FreeBSD 'install' as of 1997-10-28. - umask=`umask` - case $stripcmd.$umask in - # Optimize common cases. - *[2367][2367]) mkdir_umask=$umask;; - .*0[02][02] | .[02][02] | .[02]) mkdir_umask=22;; - - *[0-7]) - mkdir_umask=`expr $umask + 22 \ - - $umask % 100 % 40 + $umask % 20 \ - - $umask % 10 % 4 + $umask % 2 - `;; - *) mkdir_umask=$umask,go-w;; - esac - - # With -d, create the new directory with the user-specified mode. - # Otherwise, rely on $mkdir_umask. - if test -n "$dir_arg"; then - mkdir_mode=-m$mode - else - mkdir_mode= - fi - - posix_mkdir=false - case $umask in - *[123567][0-7][0-7]) - # POSIX mkdir -p sets u+wx bits regardless of umask, which - # is incompatible with FreeBSD 'install' when (umask & 300) != 0. - ;; - *) - tmpdir=${TMPDIR-/tmp}/ins$RANDOM-$$ - trap 'ret=$?; rmdir "$tmpdir/d" "$tmpdir" 2>/dev/null; exit $ret' 0 - - if (umask $mkdir_umask && - exec $mkdirprog $mkdir_mode -p -- "$tmpdir/d") >/dev/null 2>&1 - then - if test -z "$dir_arg" || { - # Check for POSIX incompatibilities with -m. - # HP-UX 11.23 and IRIX 6.5 mkdir -m -p sets group- or - # other-writeable bit of parent directory when it shouldn't. - # FreeBSD 6.1 mkdir -m -p sets mode of existing directory. - ls_ld_tmpdir=`ls -ld "$tmpdir"` - case $ls_ld_tmpdir in - d????-?r-*) different_mode=700;; - d????-?--*) different_mode=755;; - *) false;; - esac && - $mkdirprog -m$different_mode -p -- "$tmpdir" && { - ls_ld_tmpdir_1=`ls -ld "$tmpdir"` - test "$ls_ld_tmpdir" = "$ls_ld_tmpdir_1" - } - } - then posix_mkdir=: - fi - rmdir "$tmpdir/d" "$tmpdir" - else - # Remove any dirs left behind by ancient mkdir implementations. - rmdir ./$mkdir_mode ./-p ./-- 2>/dev/null - fi - trap '' 0;; - esac;; - esac - - if - $posix_mkdir && ( - umask $mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir" - ) - then : - else - - # The umask is ridiculous, or mkdir does not conform to POSIX, - # or it failed possibly due to a race condition. Create the - # directory the slow way, step by step, checking for races as we go. - - case $dstdir in - /*) prefix='/';; - -*) prefix='./';; - *) prefix='';; - esac - - eval "$initialize_posix_glob" - - oIFS=$IFS - IFS=/ - $posix_glob set -f - set fnord $dstdir - shift - $posix_glob set +f - IFS=$oIFS - - prefixes= - - for d - do - test -z "$d" && continue - - prefix=$prefix$d - if test -d "$prefix"; then - prefixes= - else - if $posix_mkdir; then - (umask=$mkdir_umask && - $doit_exec $mkdirprog $mkdir_mode -p -- "$dstdir") && break - # Don't fail if two instances are running concurrently. - test -d "$prefix" || exit 1 - else - case $prefix in - *\'*) qprefix=`echo "$prefix" | sed "s/'/'\\\\\\\\''/g"`;; - *) qprefix=$prefix;; - esac - prefixes="$prefixes '$qprefix'" - fi - fi - prefix=$prefix/ - done - - if test -n "$prefixes"; then - # Don't fail if two instances are running concurrently. - (umask $mkdir_umask && - eval "\$doit_exec \$mkdirprog $prefixes") || - test -d "$dstdir" || exit 1 - obsolete_mkdir_used=true - fi - fi - fi - - if test -n "$dir_arg"; then - { test -z "$chowncmd" || $doit $chowncmd "$dst"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dst"; } && - { test "$obsolete_mkdir_used$chowncmd$chgrpcmd" = false || - test -z "$chmodcmd" || $doit $chmodcmd $mode "$dst"; } || exit 1 - else - - # Make a couple of temp file names in the proper directory. - dsttmp=$dstdir/_inst.$$_ - rmtmp=$dstdir/_rm.$$_ - - # Trap to clean up those temp files at exit. - trap 'ret=$?; rm -f "$dsttmp" "$rmtmp" && exit $ret' 0 - - # Copy the file name to the temp name. - (umask $cp_umask && $doit_exec $cpprog "$src" "$dsttmp") && - - # and set any options; do chmod last to preserve setuid bits. - # - # If any of these fail, we abort the whole thing. If we want to - # ignore errors from any of these, just make sure not to ignore - # errors from the above "$doit $cpprog $src $dsttmp" command. - # - { test -z "$chowncmd" || $doit $chowncmd "$dsttmp"; } && - { test -z "$chgrpcmd" || $doit $chgrpcmd "$dsttmp"; } && - { test -z "$stripcmd" || $doit $stripcmd "$dsttmp"; } && - { test -z "$chmodcmd" || $doit $chmodcmd $mode "$dsttmp"; } && - - # If -C, don't bother to copy if it wouldn't change the file. - if $copy_on_change && - old=`LC_ALL=C ls -dlL "$dst" 2>/dev/null` && - new=`LC_ALL=C ls -dlL "$dsttmp" 2>/dev/null` && - - eval "$initialize_posix_glob" && - $posix_glob set -f && - set X $old && old=:$2:$4:$5:$6 && - set X $new && new=:$2:$4:$5:$6 && - $posix_glob set +f && - - test "$old" = "$new" && - $cmpprog "$dst" "$dsttmp" >/dev/null 2>&1 - then - rm -f "$dsttmp" - else - # Rename the file to the real destination. - $doit $mvcmd -f "$dsttmp" "$dst" 2>/dev/null || - - # The rename failed, perhaps because mv can't rename something else - # to itself, or perhaps because mv is so ancient that it does not - # support -f. - { - # Now remove or move aside any old file at destination location. - # We try this two ways since rm can't unlink itself on some - # systems and the destination file might be busy for other - # reasons. In this case, the final cleanup might fail but the new - # file should still install successfully. - { - test ! -f "$dst" || - $doit $rmcmd -f "$dst" 2>/dev/null || - { $doit $mvcmd -f "$dst" "$rmtmp" 2>/dev/null && - { $doit $rmcmd -f "$rmtmp" 2>/dev/null; :; } - } || - { echo "$0: cannot unlink or rename $dst" >&2 - (exit 1); exit 1 - } - } && - - # Now rename the file to the real destination. - $doit $mvcmd "$dsttmp" "$dst" - } - fi || exit 1 - - trap '' 0 - fi -done - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff --git a/X11/extensions/missing b/X11/extensions/missing deleted file mode 100644 index 28055d2ae..000000000 --- a/X11/extensions/missing +++ /dev/null @@ -1,376 +0,0 @@ -#! /bin/sh -# Common stub for a few missing GNU programs while installing. - -scriptversion=2009-04-28.21; # UTC - -# Copyright (C) 1996, 1997, 1999, 2000, 2002, 2003, 2004, 2005, 2006, -# 2008, 2009 Free Software Foundation, Inc. -# Originally by Fran,cois Pinard <pinard@iro.umontreal.ca>, 1996. - -# 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 2, 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 to the GNU General Public License, if you -# distribute this file as part of a program that contains a -# configuration script generated by Autoconf, you may include it under -# the same distribution terms that you use for the rest of that program. - -if test $# -eq 0; then - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 -fi - -run=: -sed_output='s/.* --output[ =]\([^ ]*\).*/\1/p' -sed_minuso='s/.* -o \([^ ]*\).*/\1/p' - -# In the cases where this matters, `missing' is being run in the -# srcdir already. -if test -f configure.ac; then - configure_ac=configure.ac -else - configure_ac=configure.in -fi - -msg="missing on your system" - -case $1 in ---run) - # Try to run requested program, and just exit if it succeeds. - run= - shift - "$@" && exit 0 - # Exit code 63 means version mismatch. This often happens - # when the user try to use an ancient version of a tool on - # a file that requires a minimum version. In this case we - # we should proceed has if the program had been absent, or - # if --run hadn't been passed. - if test $? = 63; then - run=: - msg="probably too old" - fi - ;; - - -h|--h|--he|--hel|--help) - echo "\ -$0 [OPTION]... PROGRAM [ARGUMENT]... - -Handle \`PROGRAM [ARGUMENT]...' for when PROGRAM is missing, or return an -error status if there is no known handling for PROGRAM. - -Options: - -h, --help display this help and exit - -v, --version output version information and exit - --run try to run the given command, and emulate it if it fails - -Supported PROGRAM values: - aclocal touch file \`aclocal.m4' - autoconf touch file \`configure' - autoheader touch file \`config.h.in' - autom4te touch the output file, or create a stub one - automake touch all \`Makefile.in' files - bison create \`y.tab.[ch]', if possible, from existing .[ch] - flex create \`lex.yy.c', if possible, from existing .c - help2man touch the output file - lex create \`lex.yy.c', if possible, from existing .c - makeinfo touch the output file - tar try tar, gnutar, gtar, then tar without non-portable flags - yacc create \`y.tab.[ch]', if possible, from existing .[ch] - -Version suffixes to PROGRAM as well as the prefixes \`gnu-', \`gnu', and -\`g' are ignored when checking the name. - -Send bug reports to <bug-automake@gnu.org>." - exit $? - ;; - - -v|--v|--ve|--ver|--vers|--versi|--versio|--version) - echo "missing $scriptversion (GNU Automake)" - exit $? - ;; - - -*) - echo 1>&2 "$0: Unknown \`$1' option" - echo 1>&2 "Try \`$0 --help' for more information" - exit 1 - ;; - -esac - -# normalize program name to check for. -program=`echo "$1" | sed ' - s/^gnu-//; t - s/^gnu//; t - s/^g//; t'` - -# Now exit if we have it, but it failed. Also exit now if we -# don't have it and --version was passed (most likely to detect -# the program). This is about non-GNU programs, so use $1 not -# $program. -case $1 in - lex*|yacc*) - # Not GNU programs, they don't have --version. - ;; - - tar*) - if test -n "$run"; then - echo 1>&2 "ERROR: \`tar' requires --run" - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - exit 1 - fi - ;; - - *) - if test -z "$run" && ($1 --version) > /dev/null 2>&1; then - # We have it, but it failed. - exit 1 - elif test "x$2" = "x--version" || test "x$2" = "x--help"; then - # Could not run --version or --help. This is probably someone - # running `$TOOL --version' or `$TOOL --help' to check whether - # $TOOL exists and not knowing $TOOL uses missing. - exit 1 - fi - ;; -esac - -# If it does not exist, or fails to run (possibly an outdated version), -# try to emulate it. -case $program in - aclocal*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acinclude.m4' or \`${configure_ac}'. You might want - to install the \`Automake' and \`Perl' packages. Grab them from - any GNU archive site." - touch aclocal.m4 - ;; - - autoconf*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`${configure_ac}'. You might want to install the - \`Autoconf' and \`GNU m4' packages. Grab them from any GNU - archive site." - touch configure - ;; - - autoheader*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`acconfig.h' or \`${configure_ac}'. You might want - to install the \`Autoconf' and \`GNU m4' packages. Grab them - from any GNU archive site." - files=`sed -n 's/^[ ]*A[CM]_CONFIG_HEADER(\([^)]*\)).*/\1/p' ${configure_ac}` - test -z "$files" && files="config.h" - touch_files= - for f in $files; do - case $f in - *:*) touch_files="$touch_files "`echo "$f" | - sed -e 's/^[^:]*://' -e 's/:.*//'`;; - *) touch_files="$touch_files $f.in";; - esac - done - touch $touch_files - ;; - - automake*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified \`Makefile.am', \`acinclude.m4' or \`${configure_ac}'. - You might want to install the \`Automake' and \`Perl' packages. - Grab them from any GNU archive site." - find . -type f -name Makefile.am -print | - sed 's/\.am$/.in/' | - while read f; do touch "$f"; done - ;; - - autom4te*) - echo 1>&2 "\ -WARNING: \`$1' is needed, but is $msg. - You might have modified some files without having the - proper tools for further handling them. - You can get \`$1' as part of \`Autoconf' from any GNU - archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo "#! /bin/sh" - echo "# Created by GNU Automake missing as a replacement of" - echo "# $ $@" - echo "exit 0" - chmod +x $file - exit 1 - fi - ;; - - bison*|yacc*) - echo 1>&2 "\ -WARNING: \`$1' $msg. You should only need it if - you modified a \`.y' file. You may need the \`Bison' package - in order for those modifications to take effect. You can get - \`Bison' from any GNU archive site." - rm -f y.tab.c y.tab.h - if test $# -ne 1; then - eval LASTARG="\${$#}" - case $LASTARG in - *.y) - SRCFILE=`echo "$LASTARG" | sed 's/y$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.c - fi - SRCFILE=`echo "$LASTARG" | sed 's/y$/h/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" y.tab.h - fi - ;; - esac - fi - if test ! -f y.tab.h; then - echo >y.tab.h - fi - if test ! -f y.tab.c; then - echo 'main() { return 0; }' >y.tab.c - fi - ;; - - lex*|flex*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.l' file. You may need the \`Flex' package - in order for those modifications to take effect. You can get - \`Flex' from any GNU archive site." - rm -f lex.yy.c - if test $# -ne 1; then - eval LASTARG="\${$#}" - case $LASTARG in - *.l) - SRCFILE=`echo "$LASTARG" | sed 's/l$/c/'` - if test -f "$SRCFILE"; then - cp "$SRCFILE" lex.yy.c - fi - ;; - esac - fi - if test ! -f lex.yy.c; then - echo 'main() { return 0; }' >lex.yy.c - fi - ;; - - help2man*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a dependency of a manual page. You may need the - \`Help2man' package in order for those modifications to take - effect. You can get \`Help2man' from any GNU archive site." - - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -f "$file"; then - touch $file - else - test -z "$file" || exec >$file - echo ".ab help2man is required to generate this page" - exit $? - fi - ;; - - makeinfo*) - echo 1>&2 "\ -WARNING: \`$1' is $msg. You should only need it if - you modified a \`.texi' or \`.texinfo' file, or any other file - indirectly affecting the aspect of the manual. The spurious - call might also be the consequence of using a buggy \`make' (AIX, - DU, IRIX). You might want to install the \`Texinfo' package or - the \`GNU make' package. Grab either from any GNU archive site." - # The file to touch is that specified with -o ... - file=`echo "$*" | sed -n "$sed_output"` - test -z "$file" && file=`echo "$*" | sed -n "$sed_minuso"` - if test -z "$file"; then - # ... or it is the one specified with @setfilename ... - infile=`echo "$*" | sed 's/.* \([^ ]*\) *$/\1/'` - file=`sed -n ' - /^@setfilename/{ - s/.* \([^ ]*\) *$/\1/ - p - q - }' $infile` - # ... or it is derived from the source name (dir/f.texi becomes f.info) - test -z "$file" && file=`echo "$infile" | sed 's,.*/,,;s,.[^.]*$,,'`.info - fi - # If the file does not exist, the user really needs makeinfo; - # let's fail without touching anything. - test -f $file || exit 1 - touch $file - ;; - - tar*) - shift - - # We have already tried tar in the generic part. - # Look for gnutar/gtar before invocation to avoid ugly error - # messages. - if (gnutar --version > /dev/null 2>&1); then - gnutar "$@" && exit 0 - fi - if (gtar --version > /dev/null 2>&1); then - gtar "$@" && exit 0 - fi - firstarg="$1" - if shift; then - case $firstarg in - *o*) - firstarg=`echo "$firstarg" | sed s/o//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - case $firstarg in - *h*) - firstarg=`echo "$firstarg" | sed s/h//` - tar "$firstarg" "$@" && exit 0 - ;; - esac - fi - - echo 1>&2 "\ -WARNING: I can't seem to be able to run \`tar' with the given arguments. - You may want to install GNU tar or Free paxutils, or check the - command line arguments." - exit 1 - ;; - - *) - echo 1>&2 "\ -WARNING: \`$1' is needed, and is $msg. - You might have modified some files without having the - proper tools for further handling them. Check the \`README' file, - it often tells you about the needed prerequisites for installing - this package. You may also peek at any GNU archive site, in case - some other package would contain this missing \`$1' program." - exit 1 - ;; -esac - -exit 0 - -# Local variables: -# eval: (add-hook 'write-file-hooks 'time-stamp) -# time-stamp-start: "scriptversion=" -# time-stamp-format: "%:y-%02m-%02d.%02H" -# time-stamp-time-zone: "UTC" -# time-stamp-end: "; # UTC" -# End: diff --git a/X11/extensions/mkinstalldirs b/X11/extensions/mkinstalldirs deleted file mode 100644 index d2d5f21b6..000000000 --- a/X11/extensions/mkinstalldirs +++ /dev/null @@ -1,111 +0,0 @@ -#! /bin/sh -# mkinstalldirs --- make directory hierarchy -# Author: Noah Friedman <friedman@prep.ai.mit.edu> -# Created: 1993-05-16 -# Public domain - -errstatus=0 -dirmode="" - -usage="\ -Usage: mkinstalldirs [-h] [--help] [-m mode] dir ..." - -# process command line arguments -while test $# -gt 0 ; do - case $1 in - -h | --help | --h*) # -h for help - echo "$usage" 1>&2 - exit 0 - ;; - -m) # -m PERM arg - shift - test $# -eq 0 && { echo "$usage" 1>&2; exit 1; } - dirmode=$1 - shift - ;; - --) # stop option processing - shift - break - ;; - -*) # unknown option - echo "$usage" 1>&2 - exit 1 - ;; - *) # first non-opt arg - break - ;; - esac -done - -for file -do - if test -d "$file"; then - shift - else - break - fi -done - -case $# in - 0) exit 0 ;; -esac - -case $dirmode in - '') - if mkdir -p -- . 2>/dev/null; then - echo "mkdir -p -- $*" - exec mkdir -p -- "$@" - fi - ;; - *) - if mkdir -m "$dirmode" -p -- . 2>/dev/null; then - echo "mkdir -m $dirmode -p -- $*" - exec mkdir -m "$dirmode" -p -- "$@" - fi - ;; -esac - -for file -do - set fnord `echo ":$file" | sed -ne 's/^:\//#/;s/^://;s/\// /g;s/^#/\//;p'` - shift - - pathcomp= - for d - do - pathcomp="$pathcomp$d" - case $pathcomp in - -*) pathcomp=./$pathcomp ;; - esac - - if test ! -d "$pathcomp"; then - echo "mkdir $pathcomp" - - mkdir "$pathcomp" || lasterr=$? - - if test ! -d "$pathcomp"; then - errstatus=$lasterr - else - if test ! -z "$dirmode"; then - echo "chmod $dirmode $pathcomp" - lasterr="" - chmod "$dirmode" "$pathcomp" || lasterr=$? - - if test ! -z "$lasterr"; then - errstatus=$lasterr - fi - fi - fi - fi - - pathcomp="$pathcomp/" - done -done - -exit $errstatus - -# Local Variables: -# mode: shell-script -# sh-indentation: 2 -# End: -# mkinstalldirs ends here diff --git a/libXdmcp/doc/xdmcp.xml b/libXdmcp/doc/xdmcp.xml index c8797742d..36abb75a9 100644 --- a/libXdmcp/doc/xdmcp.xml +++ b/libXdmcp/doc/xdmcp.xml @@ -1,3906 +1,3907 @@ -<?xml version="1.0" encoding="UTF-8" ?>
-<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN"
- "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [
-<!--
- variable names used in equation markup in the authentication chapter
- FIXME: Replace with mathml?
- -->
-<!ENTITY variable.D "<emphasis role='italic'>D</emphasis>">
-<!ENTITY variable.N "<emphasis role='italic'>N</emphasis>">
-<!ENTITY variable.T "<emphasis role='italic'>T</emphasis>">
-<!ENTITY variable.Delta "<emphasis role='italic'>Δ</emphasis>">
-<!ENTITY variable.alpha "<emphasis role='italic'>α</emphasis>">
-<!ENTITY variable.beta "<emphasis role='italic'>β</emphasis>">
-<!ENTITY variable.kappa "<emphasis role='italic'>κ</emphasis>">
-<!ENTITY variable.rho "<emphasis role='italic'>ρ</emphasis>">
-<!ENTITY variable.sigma "<emphasis role='italic'>σ</emphasis>">
-<!ENTITY variable.tau "<emphasis role='italic'>τ</emphasis>">
-]>
-
-<book id="xdmcp">
-
-<bookinfo>
- <title>X Display Manager Control Protocol</title>
- <subtitle>X.Org Standard</subtitle>
- <releaseinfo>Version 1.1</releaseinfo>
- <authorgroup>
- <author>
- <firstname>Keith</firstname><surname>Packard</surname>
- <affiliation><orgname>
-X Consortium,
-Laboratory for Computer Science,
-Massachusetts Institute of Technology
- </orgname></affiliation>
- </author>
- </authorgroup>
-
- <copyright><year>1989</year><year>2004</year>
- <holder>The Open Group</holder></copyright>
- <productnumber>X Version 11, Release 6.8</productnumber>
-
-<legalnotice>
-
-
-
-<para>
-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:
-</para>
-<para>
-The above copyright notice and this permission notice shall be included in
-all copies or substantial portions of the Software.
-</para>
-<para>
-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
-OPEN GROUP 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.
-</para>
-<para>
-Except as contained in this notice, the name of The Open Group 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 Open Group.
-</para>
-
-<para>
-<emphasis remap='I'>X Window System</emphasis> is a trademark of The Open Group.
-</para>
-</legalnotice>
-</bookinfo>
-
-<chapter id="Purpose_and_Goals">
-<title>Purpose and Goals</title>
-<!-- .XS -->
-<!-- (SN Purpose and Goals -->
-<!-- .XE -->
-<para>
-<!-- .LP -->
-The purpose of the X Display Manager Control Protocol (XDMCP)
-is to provide a uniform mechanism for an autonomous
-display to request login service from a remote host.
-By autonomous, we mean
-the display consists of hardware and processes that are independent of any
-particular host where login service is desired. (For example, the server
-cannot simply be started by a
-<function>fork/exec</function>
-sequence on the host.)
-An X terminal (screen, keyboard, mouse, processor, network interface)
-is a prime example of an autonomous display.
-</para>
-
-<para>
-From the point of view of the end user, it is very important to make
-autonomous displays as easy to use as traditional hardwired character
-terminals. Specifically, you can typically just power on a hardwired
-terminal and be greeted with a login prompt. The same should be possible
-with autonomous displays. However, in a network environment with multiple
-hosts, the end user may want to choose which host(s) to connect to. In an
-environment with many displays and many hosts, a site administrator may want
-to associate particular collections of hosts with particular displays. We
-would like to support the following options:
-</para>
-
-<itemizedlist>
- <listitem>
- <para>
-The display has a single, fixed host to which it should connect. It should be
-possible to power on the display and receive a login prompt, without user
-intervention.
- </para>
- </listitem>
- <listitem>
- <para>
-Any one of several hosts on a network or subnetwork may be acceptable
-for accepting login from the display.
-(For example, the user's file systems can be mounted onto
-any such host, providing comparable environments.) It should be possible
-for the display to broadcast to find such hosts and to have the display
-either automatically choose a host or present the possible hosts to the
-user for selection.
- </para>
- </listitem>
- <listitem>
- <para>
-The display has a fixed set of hosts that it can connect to. It should be
-possible for the display to have that set stored in RAM, but it should also be
-possible for a site administrator to be able to maintain host sets for a
-large number of displays using a centralized facility, without having to
-interact (physically or electronically) with each individual display.
-Particular hosts should be allowed to refuse login service, based on
-whatever local criteria are desired.
- </para>
- </listitem>
-</itemizedlist>
-
-<para>
-The control protocol should be designed in such a way that it can be used over
-a reasonable variety of communication transport layers. In fact, it is quite
-desirable if every major network protocol family that supports the standard X
-protocol is also capable of supporting XDMCP, because the end result of XDMCP
-negotiation will be standard X protocol connections to the display.
-However, because the number of displays per host may be large,
-a connection-based protocol appears less desirable
-than a connection-less protocol. For this reason the protocol is designed
-to use datagram services with the display responsible for sequencing and
-retransmission.
-</para>
-<para>
-<!-- .LP -->
-To keep the burden on displays at a minimum (because display cost is not
-a factor that can be ignored), it is desirable that displays not be required
-to maintain permanent state (across power cycles) for the purposes
-of the control protocol,
-and it is desirable to keep required state at a minimum while the
-display is powered on.
-</para>
-<para>
-<!-- .LP -->
-Security is an important consideration and must be an integral part of the
-design. The important security goals in the context of XDMCP are:
-</para>
-<itemizedlist>
- <listitem>
- <para>
-It should be possible for the display to verify that it is communicating
-with a legitimate host login service. Because the user will present
-credentials (for example, password) to this service,
-it is important to avoid spoof attacks.
- </para>
- </listitem>
- <listitem>
- <para>
-It should be possible for the display and the login service to negotiate the
-authorization mechanism to be used for the standard X protocol.
- </para>
- </listitem>
- <listitem>
- <para>
-It should be possible to provide the same level of security in verifying the
-login service as is provided by the negotiated authorization mechanism.
- </para>
- </listitem>
- <listitem>
- <para>
-Because there are no firm standards yet in the area of security,
-XDMCP must be flexible enough to accomodate a variety of security mechanisms.
- </para>
- </listitem>
-</itemizedlist>
-</chapter>
-
-<chapter id="Overview_of_the_Protocol">
-<title>Overview of the Protocol</title>
-<!-- .XS -->
-<!-- (SN Overview of the Protocol -->
-<!-- .XE -->
-<para>
-<!-- .LP -->
-XDMCP is designed to provide authenticated access to display management
-services for remote displays. A new network server, called a \fIDisplay
-Manager\fP, will use XDMCP to communicate with displays to negotiate the
-startup of X sessions. The protocol allows the display to authenticate the
-manager. It also allows most of the configuration information to be
-centralized with the manager and to ease the burden of system administration
-in a large network of displays.
-The essential goal is to provide plug-and-play
-services similar to those provided in the familiar mainframe/terminal world.
-</para>
-<para>
-<!-- .LP -->
-Displays may be turned off by the user at any time. Any existing session
-running on a display that has been turned off must be identifiable. This
-is made possible by requiring a three-way handshake to start a session. If
-the handshake succeeds, any existing session is terminated immediately and a
-new session started. There is the problem (at least with TCP) that
-connections may not be closed when the display is turned off. In most
-environments, the manager should reduce this problem by periodically XSync'ing
-on its own connection, perhaps every five to ten minutes, and terminating the
-session if its own connection ever closes.
-</para>
-<para>
-<!-- .LP -->
-Displays should not be required to retain permanent state for purposes of
-the control protocol. One solution to packets received out of sequence
-would be to use monotonically increasing message identifiers in each message
-to allow both sides to ignore messages that arrive out-of-sequence. For
-this to work, displays would at a minimum have to increment a stable crash
-count each time they are powered on and use that number as part of a
-larger sequence number. But if displays cannot retain permanent state this
-cannot work. Instead, the manager assumes the responsibility for permanent
-state by generating unique numbers that identify a particular session and
-the protocol simply ignores packets that correspond to an invalid session.
-</para>
-<para>
-<!-- .LP -->
-The Manager must not be responsible for packet reception. To prevent the
-Manager from becoming stuck because of a hostile display, no portion of the
-protocol requires the Manager to retransmit a packet. Part of this means
-that any valid packet that the Manager does receive must be
-acknowledged in some way to prevent the display from continuously resending
-packets. The display can keep the protocol running as it will always know
-when the Manager has received (at least one copy of) a packet. On the
-Manager side, this means that any packet may be received more than once (if
-the response was lost) and duplicates must be ignored.
-</para>
-</chapter>
-
-<chapter id="Data_Types">
-<title>Data Types</title>
-<!-- .XS -->
-<!-- (SN Data Types -->
-<!-- .XE -->
-<para>
-<!-- .LP -->
-XDMCP packets contain several types of data. Integer values are always
-stored most significant byte first in the packet ("Big Endian" order).
-As XDMCP will not be used to transport large quantities of data, this
-restriction will not substantially hamper the efficiency of any
-implementation. Also, no padding of any sort will occur within the packets.
-</para>
-
-<informaltable frame="none">
- <tgroup cols='3' align='left'>
- <colspec colname='c1' colsep="0"/>
- <colspec colname='c2' colsep="0"/>
- <colspec colname='c3' colsep="0"/>
- <thead>
- <row>
- <entry>Type Name</entry>
- <entry>Length (Bytes)</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row rowsep="0">
- <entry>CARD8</entry>
- <entry>1</entry>
- <entry>A single byte unsigned integer</entry>
- </row>
- <row rowsep="0">
- <entry>CARD16</entry>
- <entry>2</entry>
- <entry>Two byte unsigned integer</entry>
- </row>
- <row rowsep="0">
- <entry>CARD32</entry>
- <entry>4</entry>
- <entry>Four byte unsigned integer</entry>
- </row>
- <row rowsep="0">
- <entry>ARRAY8</entry>
- <entry>n+2</entry>
- <entry>
-This is actually a CARD16 followed by
-a collection of CARD8. The value of the CARD16
-field (n) specifies the number of CARD8 values to follow
- </entry>
- </row>
- <row rowsep="0">
- <entry>ARRAY16</entry>
- <entry>2*m+1</entry>
- <entry>
-This is a CARD8 (m) which specifies the
-number of CARD16 values to follow
- </entry>
- </row>
- <row rowsep="0">
- <entry>ARRAY32</entry>
- <entry>4*l+1</entry>
- <entry>
-This is a CARD8 (l) which specifies the
-number of CARD32 values to follow
- </entry>
- </row>
- <row rowsep="0">
- <entry>ARRAYofARRAY8</entry>
- <entry>?</entry>
- <entry>
-This is a CARD8 which specifies the
-number of ARRAY8 values to follow.
- </entry>
- </row>
- </tbody>
- </tgroup>
-</informaltable>
-</chapter>
-
-<chapter id="Packet_Format">
-<title>Packet Format</title>
-<!-- .XS -->
-<!-- (SN Packet Format -->
-<!-- .XE -->
-<para>
-All XDMCP packets have the following information:
-</para>
-
-<informaltable frame="none">
- <tgroup cols='3' align='left'>
- <colspec colname='c1' colsep="0"/>
- <colspec colname='c2' colsep="0"/>
- <colspec colname='c3' colsep="0"/>
- <thead>
- <row>
- <entry>Length (Bytes)</entry>
- <entry>Field Type</entry>
- <entry>Description</entry>
- </row>
- </thead>
- <tbody>
- <row rowsep="0">
- <entry>2</entry>
- <entry>CARD16</entry>
- <entry>version number</entry>
- </row>
- <row rowsep="0">
- <entry>2</entry>
- <entry>CARD16</entry>
- <entry>opcode packet header</entry>
- </row>
- <row rowsep="0">
- <entry>2</entry>
- <entry>CARD16</entry>
- <entry>n = length of remaining data in bytes</entry>
- </row>
- <row rowsep="0">
- <entry>n</entry>
- <entry>???</entry>
- <entry>packet-specific data</entry>
- </row>
- </tbody>
- </tgroup>
-</informaltable>
-
-<para>
-<!-- .LP -->
-The fields are as follows:
-</para>
-
-<variablelist>
- <varlistentry>
- <term>Version number</term>
- <listitem>
- <para>
-This specifies the version of XDMCP that generated this packet in
-case changes in this protocol are required. Displays and
-managers may choose to support older versions for compatibility.
-This field will initially be one (1).
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Opcode</term>
- <listitem>
- <para>
-This specifies what step of the protocol this packet represents and should
-contain one of the following values (encoding provided in section below):
-<emphasis role="bold">BroadcastQuery</emphasis>,
-<emphasis role="bold">Query</emphasis>,
-<emphasis role="bold">IndirectQuery</emphasis>,
-<emphasis role="bold">ForwardQuery</emphasis>,
-<emphasis role="bold">Willing</emphasis>,
-<emphasis role="bold">Unwilling</emphasis>,
-<emphasis role="bold">Request</emphasis>,
-<emphasis role="bold">Accept</emphasis>,
-<emphasis role="bold">Decline</emphasis>,
-<emphasis role="bold">Manage</emphasis>,
-<emphasis role="bold">Refuse</emphasis>,
-<emphasis role="bold">Failed</emphasis>,
-<emphasis role="bold">KeepAlive</emphasis>
-or
-<emphasis role="bold">Alive</emphasis>.
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term>Length of data in bytes</term>
- <listitem>
- <para>
-This specifies the length of the information following the first 6 bytes.
-Each packet-type has a different format and will need to be separately
-length-checked against this value. Because every data item has either an
-explicit or implicit length, this can be easily accomplished.
-Packets that have too little or too much data should be ignored.
- </para>
- </listitem>
- </varlistentry>
-</variablelist>
-<para>
-Packets should be checked to make sure that they satisfy the following
-conditions:
-</para>
-
-<orderedlist>
- <listitem>
- <para>
-They must contain valid opcodes.
- </para>
- </listitem>
- <listitem>
- <para>
-The length of the remaining data should correspond to the sum of the
-lengths of the individual remaining data items.
- </para>
- </listitem>
- <listitem>
- <para>
-The opcode should be expected (a finite state diagram is given
-in a later section).
- </para>
- </listitem>
- <listitem>
- <para>
-If the packet is of type
-<emphasis role="bold">Manage</emphasis> or
-<emphasis role="bold">Refuse</emphasis>,
-the Session ID should match the value sent in the preceding
-<emphasis role="bold">Accept</emphasis> packet.
- </para>
- </listitem>
-</orderedlist>
-</chapter>
-
-<chapter id="Protocol">
-<title>Protocol</title>
-<!-- .XS -->
-<!-- (SN Protocol -->
-<!-- .XE -->
-<para>
-Each of the opcodes is described below. Because a given packet type is only
-ever sent one way, each packet description below indicates the direction.
-Most of the packets have additional information included beyond the
-description above. The additional information is appended to the packet
-header in the order described without padding, and the length field is
-computed accordingly.
-</para>
-
-<informaltable frame="none">
- <tgroup cols='10' align='left'>
- <colspec colname='col1' colsep="0" colwidth="1*"/>
- <colspec colname='col2' colsep="0" colwidth="1*"/>
- <colspec colname='col3' colsep="0" colwidth="1*"/>
- <colspec colname='col4' colsep="0" colwidth="1*"/>
- <colspec colname='col5' colsep="0" colwidth="1*"/>
- <colspec colname='col6' colsep="0" colwidth="1*"/>
- <colspec colname='col7' colsep="0" colwidth="1*"/>
- <colspec colname='col8' colsep="0" colwidth="1*"/>
- <colspec colname='col9' colsep="0" colwidth="1*"/>
- <colspec colname='col10' colsep="0" colwidth="1*"/>
- <spanspec namest="col1" nameend="col10" spanname="col1_on" align="left"/>
- <spanspec namest="col2" nameend="col10" spanname="col2_on" align="left"/>
- <spanspec namest="col3" nameend="col10" spanname="col3_on" align="left"/>
- <spanspec namest="col4" nameend="col10" spanname="col4_on" align="left"/>
- <spanspec namest="col5" nameend="col10" spanname="col5_on" align="left"/>
- <tbody>
- <row rowsep="0">
- <entry spanname="col1_on"><emphasis role="bold">Query</emphasis></entry>
- </row>
- <row rowsep="0">
- <entry spanname="col1_on"><emphasis role="bold">BroadcastQuery</emphasis></entry>
- </row>
- <row rowsep="0">
- <entry spanname="col1_on"><emphasis role="bold">IndirectQuery</emphasis></entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">Display -> Manager</entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">Additional Fields:</entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis>Authentication Names</emphasis>: ARRAYofARRAY8
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Specifies a list of authentication names that the display supports. The
-manager will choose one of these and return it in the
-<emphasis role="bold">Willing</emphasis> packet.
- </entry>
- </row>
-<!-- AAAAAAAAAAAAA -->
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry>Semantics</entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-<para>
-A <function>Query</function>
-packet is sent from the display to a specific host to ask if
-that host is willing to provide management services to this display. The
-host should respond with
-<function>Willing</function>
-if it is willing to service the display or
-<function>Unwilling</function>
-if it is not.
-</para>
-
-<para>
-A
-<function>BroadcastQuery</function>
-packet is similar to the
-<function>Query</function>
-packet except that it is intended to be received by all hosts on the network
-(or subnetwork). However, unlike
-<function>Query</function>
-requests, hosts that are not willing to service the display
-should simply ignore
-<function>BroadcastQuery</function>
-requests.
-</para>
-
-<para>
-An
-<function>IndirectQuery</function>
-packet is sent to a well known manager that forwards
-the request to a larger collection of secondary managers using
-<function>ForwardQuery</function>
-packets.
-In this way, the collection of managers that respond can be grouped
-on other than network boundaries; the use of a central manager reduces
-system administrative overhead.
-The primary manager may also send a
-<function>Willing</function>
-packet in response to this packet.
-</para>
-
-<para>
-Each packet type has slightly different semantics:
-</para>
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-<para>
-The
-<function>Query</function>
-packet is destined only for a single host.
-If the display is instructed to
-<function>Query</function>
-multiple managers, it will send multiple
-<function>Query</function>
-packets. The
-<function>Query</function>
-packet also demands a response from the manager, either
-<function>Willing</function>
-or
-<function>Unwilling</function>.
- </para>
- <para>
-The
-<function>BroadcastQuery</function>
-packet is sent to many hosts.
-Each manager that receives this packet will not respond with an
-<function>Unwilling</function>
-packet.
- </para>
- <para>
-The
-<function>IndirectQuery</function>
-packet is sent to only one manager with the request
-that the request be forwarded to a larger list of managers using
-<function>ForwardQuery</function>
-packets. This list is expected to be maintained at one
-central site to reduce administrative overhead.
-The function of this packet type is similar to
-<function>BroadcastQuery except that</function>
-<function>BroadcastQuery</function>
-is not forwarded.
- </para>
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">Valid Responses:</entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<function>Willing</function>,
-<function>Unwilling</function>
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">Problems/Solutions:</entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">Problem:</entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-<para>Not all managers receive the query packet.</para>
-<para>Indication:</para>
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-None if
-<function>BroadcastQuery</function>
-or
-<function>IndirectQuery</function>
-was sent, else failure to receive
-<function>Willing</function>.
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">Solution:</entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-Repeatedly send the packet while waiting for user to choose a manager.
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Timeout/Retransmission policy:
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-An exponential backoff algorithm should be used here to reduce network load
-for long-standing idle displays. Start at 2 seconds, back off by factors of
-2 to 32 seconds, and discontinue retransmit after 126 seconds. The display
-should reset the timeout when user-input is detected. In this way, the
-display will wakeup when touched by the user.
- </entry>
- </row>
- <row rowsep="0">
- <entry spanname="col1_on">
-<function>ForwardQuery</function>
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-<para>Primary Manager -> Secondary Manager</para>
-<para>Additional Fields:</para>
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Client Address</emphasis>: ARRAY8
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Specifies the network address of the client display.
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Client Port</emphasis>: ARRAY8
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Specifies an identification of the client task on the client display.
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Authentication Names</emphasis>: ARRAYofARRAY8
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Is a duplicate of Authentication Names array that was received
-in the
-<function>IndirectQuery</function>
-packet.
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Semantics:
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
- <para>
-When primary manager receives a
-<function>IndirectQuery</function>
-packet, it is responsible for sending
-<function>ForwardQuery</function>
-packets to an appropriate list of
-managers that can provide service to the display using the same network
-type as the one the original
-<function>IndirectQuery</function>
-packet was received from.
-The Client Address and Client Port fields must contain an
-address that the secondary manager can use to reach the display also using
-this same network. Each secondary manager sends a
-<function>Willing</function>
-packet to the display if it is willing to provide service.
- </para>
-
- <para>
-<function>ForwardQuery</function>
-packets are similar to
-<function>BroadcastQuery</function>
-packets in that managers that are not willing to service
-particular displays should not send a
-<function>Unwilling</function>
-packet.
- </para>
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Valid Responses:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<function>Willing</function>
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Problems/Solutions:
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Identical to
-<function>BroadcastQuery</function>
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Timeout/Retransmission policy:
- </entry>
- </row>
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Like all packets sent from a manager, this packet should never be
-retransmitted.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry spanname="col1_on">
-<function>Willing</function>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
- <para>
-Manager -> Display
- </para>
- <para>
-Additional Fields:
- </para>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Authentication Name</emphasis>: ARRAY8
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-<para>
-Specifies the authentication method, selected from the list offered in the
-<function>Query ,</function>
-<function>BroadcastQuery ,</function>
-or
-<function>IndirectQuery</function>
-packet that the manger expects the display to use in the subsequent
-<function>Request</function>
-packet.
-This choice should remain as constant as feasible so that displays that
-send multiple
-<function>Query</function>
-packets can use the Authentication Name from any
-<function>Willing</function>
-packet that arrives.
-</para>
-<para>
-The display is free to ignore managers that request an insufficient level
-of authentication.
-</para>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Hostname</emphasis>: ARRAY8
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Is a human readable string describing the host from which the packet was sent.
-The protocol specifies no interpretation of the data in this field.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Status</emphasis>: ARRAY8
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Is a human readable string describing the status of the host. This could
-include load average/number of users connected or other information. The
-protocol specifies no interpretation of the data in this field.
- </entry>
- </row>
-
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Semantics:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-A
-<function>Willing</function>
-packet is sent by managers that may service connections from
-this display. It is sent in response to either a
-<function>Query ,</function>
-<function>BroadcastQuery ,</function>
-or
-<function>ForwardQuery</function>
-but does not imply a commitment to provide service
-(for example, it may later decide that it has accepted enough
-connections already).
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Problems/Solutions:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Problem:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-<para>
-<function>Willing</function>
-not received by the display.
-</para>
-<para>
-Indication:
-</para>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-None if
-<function>BroadcastQuery</function>
-or
-<function>IndirectQuery</function>
-was sent, else failure to receive
-<function>Willing .</function>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Solution:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-The display should continue to send the query until a response is received.
- </entry>
- </row>
-
-
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Timeout/Retransmission policy:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Like all packets sent from the manager to the display, this packet should
-never be retransmitted.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry spanname="col1_on">
-<function>Unwilling</function>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
- <para>
-Manager -> Display
- </para>
- <para>
-Additional Fields:
- </para>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-The Hostname and Status fields as in the
-<function>Willing</function>
-packet.
-The Status field should indicate to the user a reason
-for the refusal of service.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Semantics:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-An
-<function>Unwilling</function>
-packet is sent by managers in response to direct
-<function>Query</function>
-requests (as opposed to
-<function>BroadcastQuery</function>
-or
-<function>IndirectQuery</function>
-requests) if the manager will not accept requests for management.
-This is typically sent by managers that wish to only service
-particular displays or that handle a limited number of displays at once.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Problems/Solutions:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Problem:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-<para>
-<function>Unwilling</function>
-not received by the display.
-</para>
-<para>
-Indication:
-</para>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-Display fails to receive
-<function>Unwilling .</function>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Solution:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-The display should continue to send
-<function>Query</function>
-messages until a response is received.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Timeout/Retransmission policy:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Like all packets sent from the manager to the display, this packet should
-never be retransmitted.
- </entry>
- </row>
- <row rowsep="0">
- <entry spanname="col1_on">
-<function>Request</function>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
- <para>
-Display -> Manager
- </para>
- <para>
-Additional Fields:
- </para>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Display Number</emphasis>: CARD16
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Specifies the index of this particular server for the host
-on which the display is resident.
-This value will be zero for most autonomous displays.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Connection Types</emphasis>: ARRAY16
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Specifies an array indicating the stream services accepted by the display.
-If the high-order byte in a particular entry is zero, the low-order byte
-corresponds to an X-protocol host family type.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Connection Addresses</emphasis>: ARRAYofARRAY8
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-For each connection type in the previous array, the corresponding entry in
-this array indicates the network address of the display device.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
- <para>
-<emphasis remap='I'>Authentication Name</emphasis>: ARRAY8
- </para>
- <para>
-<emphasis remap='I'>Authentication Data</emphasis>: ARRAY8
- </para>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Specifies the authentication protocol that the display expects
-the manager to validate itself with. The Authentication Data is
-expected to contain data that the manager will interpret, modify
-and use to authenticate itself.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Authorization Names</emphasis>: ARRAYofARRAY8
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Specifies which types of authorization the display supports. The
-manager may decide to reject displays with which it cannot perform
-authorization.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Manufacturer Display ID</emphasis>: ARRAY8
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Can be used by the manager to determine how to decrypt the
-Authentication Data field in this packet. See the section below on
-Manufacturer Display ID Format.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Semantics:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-A
-<function>Request</function>
-packet is sent by a display to a specific host to request a
-session ID in preparation for a establishing a connection. If the manager
-is willing to service a connection to this display, it should return an
-<function>Accept</function>
-packet with a valid session ID and should be ready for a subsequent
-<function>Manage</function>
-request. Otherwise, it should return a
-<function>Decline</function>
-packet.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Valid Responses:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<function>Accept ,</function>
-<function>Decline</function>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Problems/Solutions:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Problem:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Request not received by manager.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Indication:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-Display timeout waiting for response.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Solution:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-Display resends
-<function>Request</function>
-message.
- </entry>
- </row>
-
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Problem:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-Message received out of order by manager.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Indication:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-None.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Solution:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-Each time a
-<function>Request</function>
-is sent, the manager sends the Session ID
-associated with the next session in the
-<function>Accept .</function>
-If that next session is not yet started,
-the manager will simply resend with the same Session ID.
-If the session is in progress, the manager will reply
-with a new Session ID; in which case, the
-<function>Accept</function>
-will be discarded by the display.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Timeout/Retransmission policy:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Timeout after 2 seconds, exponential backoff to 32 seconds.
-After no more than 126 seconds, give up and report an error to the user.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry spanname="col1_on">
-<function>Accept</function>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
- <para>
-Manager -> Display
- </para>
- <para>
-Additional Fields:
- </para>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Session ID</emphasis>: CARD32
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Identifies the session that can be started by the manager.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
- <para>
-<emphasis remap='I'>Authentication Name</emphasis>: ARRAY8
- </para>
- <para>
-<emphasis remap='I'>Authentication Data</emphasis>: ARRAY8
- </para>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Is the data sent back to the display to authenticate the manager.
-If the Authentication Data is not the value expected by the display, it
-should terminate the protocol at this point and display an error to the user.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
- <para>
-<emphasis remap='I'>Authorization Name</emphasis>: ARRAY8
- </para>
- <para>
-<emphasis remap='I'>Authorization Data</emphasis>: ARRAY8
- </para>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Is the data sent to the display to indicate the type of authorization the
-manager will be using in the first call to
-<function>XOpenDisplay</function>
-after the
-<function>Manage</function>
-packet is received.
- </entry>
- </row>
-
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Semantics:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<para>
-An
-<function>Accept</function>
-packet is sent by a manager in response to a
-<function>Request</function>
-packet if the manager is willing to establish a connection for the display.
-The Session ID is used to identify this connection from any preceding
-ones and will be used by the display in its subsequent
-<function>Manage</function>
-packet.
-The Session ID is a 32-bit number that is incremented each time an
-<function>Accept</function>
-packet is sent as it must be unique over a reasonably long period of time.
-</para>
-<para>
-If the authentication information is invalid, a
-<function>Decline</function>
-packet will be returned with an appropriate
-<function>Status</function>
-message.
-</para>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Problems/Solutions:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Problem:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-<function>Accept</function>
-or
-<function>Decline</function>
-not received by display.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Indication:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-Display timeout waiting for response to
-<function>Request .</function>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Solution:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-Display resends
-<function>Request</function>
-message.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Problem:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Message received out of order by display.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Indication:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-Display receives
-<function>Accept</function>
-after
-<function>Manage</function>
-has been sent.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Solution:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-Display discards
-<function>Accept</function>
-messages after it has sent a
-<function>Manage</function>
-message.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Timeout/Retransmission policy:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Like all packets sent from the manager to the display, this packet should
-never be retransmitted.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry spanname="col1_on">
-<function>Decline</function>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
- <para>
-Manager -> Display
- </para>
- <para>
-Additional Fields:
- </para>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Status</emphasis>: ARRAY8
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Is a human readable string indicating the reason for refusal of
-service.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
- <para>
-<emphasis remap='I'>Authentication Name</emphasis>:
-ARRAY8
- </para>
- <para>
-<emphasis remap='I'>Authentication Data</emphasis>:
-ARRAY8
- </para>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Is the data sent back to the display to authenticate the manager. If the
-Authentication Data is not the value expected by the display, it
-should terminate the protocol at this point and display an error to the user.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Semantics:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-A
-<function>Decline</function>
-packet is sent by a manager in response to a
-<function>Request</function>
-packet if the manager is unwilling to establish a connection for the
-display.
-This is allowed even if the manager had responded
-<function>Willing</function>
-to a previous query.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Problems/Solutions:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Same as for
-<function>Accept .</function>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Timeout/Retransmission policy:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Like all packets sent from a manager to a display, this packet should never
-be retransmitted.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry spanname="col1_on">
-<function>Manage</function>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
- <para>
-Display -> Manager
- </para>
- <para>
-Additional Fields:
- </para>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Session ID</emphasis>: CARD32
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Should contain the nonzero session ID returned in the
-<function>Accept</function>
-packet.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Display Number</emphasis>: CARD16
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Must match the value sent in the previous
-<function>Request</function>
-packet.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Display Class</emphasis>: ARRAY8
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Specifies the class of the display.
-See the Display Class Format section,
-which discusses the format of this field.
- </entry>
- </row>
-
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Semantics:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-A
-<function>Manage</function>
-packet is sent by a display to ask the manager to begin a
-session on the display. If the Session ID is correct the manager
-should open a connection; otherwise, it should respond with a
-<function>Refuse</function>
-or
-<function>Failed</function>
-packet, unless the Session ID matches a currently
-running session or a session that has not yet successfully opened the
-display but has not given up the attempt. In this latter case, the
-<function>Manage</function>
-packet should be ignored.
-This will work as stream connections give positive success indication
-to both halves of the stream, and positive failure indication
-to the connection initiator (which will eventually generate a
-<function>Failed</function>
-packet).
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Valid Responses:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-X connection with correct auth info,
-<function>Refuse ,</function>
-<function>Failed .</function>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Problems/Solutions:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Problem:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-<function>Manage</function>
-not received by manager.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Indication:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-Display timeout waiting for response.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Solution:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-Display resends
-<function>Manage</function>
-message.
- </entry>
- </row>
-
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Problem:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-<function>Manage</function>
-received out of order by manager.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Indication:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-Session already in progress with matching Session ID.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Solution:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-<function>Manage</function>
-packet ignored.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Indication:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-Session ID does not match next Session ID.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Solution:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-<function>Refuse</function>
-message is sent.
- </entry>
- </row>
-
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Problem:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Display cannot be opened on selected stream.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Indication:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-Display connection setup fails.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Solution:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-<function>Failed</function>
-message is sent including a human readable reason.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Problem:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Display open does not succeed before a second manage packet is received
-because of a timeout occuring in the display.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Indication:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-<function>Manage</function>
-packet received with Session ID matching the session
-attempting to connect to the display.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Solution:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-<function>Manage</function>
-packet is ignored. As the stream connection will either
-succeed, which will result in an active session, or the stream will
-eventually give up hope of connecting and send a
-<function>Failed</function>
-packet; no response to this
-<function>Manage</function>
-packet is necessary.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Timeout/Retransmission policy:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Timeout after 2 seconds, exponential backoff to 32 seconds. After no more
-than 126 seconds, give up and report an error to the user.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry spanname="col1_on">
-<function>Refuse</function>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
- <para>
-Manager -> Display
- </para>
- <para>
-Additional Fields:
- </para>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Session ID</emphasis>: CARD32
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Should be set to the Session ID received in the
-<function>Manage</function>
-packet.
- </entry>
- </row>
-
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Semantics:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-A
-<function>Refuse</function>
-packet is sent by a manager when the Session ID received in the
-<function>Manage</function>
-packet does not match the current Session ID.
-The display should assume that it received an old
-<function>Accept</function>
-packet and should resend its
-<function>Request</function>
-packet.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Problems/Solutions:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Problem:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Error message is lost.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Indication:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-Display times out waiting for
-new connection,
-<function>Refuse</function>
-or
-<function>Failed .</function>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Solution:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-Display resends
-<function>Manage</function>
-message.
- </entry>
- </row>
-
-
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Timeout/Retransmission policy:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Like all packets sent from a manager to a display, this packet should never be
-retransmitted.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry spanname="col1_on">
-<function>Failed</function>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
- <para>
-Manager -> Display
- </para>
- <para>
-Additional Fields:
- </para>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Session ID</emphasis>: CARD32
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Should be set to the Session ID received in the
-<function>Manage</function>
-packet.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Status</emphasis>: ARRAY8
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Is a human readable string indicating the reason for failure.
- </entry>
- </row>
-
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Semantics:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-A
-<function>Failed</function>
-packet is sent by a manager when it has problems establishing
-the initial X connection in response to the
-<function>Manage</function>
-packet.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Problems/Solutions
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Same as for
-<function>Refuse .</function>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry spanname="col1_on">
-<function>KeepAlive</function>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
- <para>
-Display -> Manager
- </para>
- <para>
-Additional Fields:
- </para>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Display Number</emphasis>: CARD16
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Set to the display index for the display host.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Session ID</emphasis>: CARD32
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Should be set to the Session ID received in the
-<function>Manage</function>
-packet during the negotiation for the current session.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Sematics:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
- <para>
-A
-<function>KeepAlive</function>
-packet can be sent at any time during the session by a
-display to discover if the manager is running.
-The manager should respond with
-<function>Alive</function>
-whenever it receives this type of packet.
- </para>
- <para>
-This allows the display to discover when the manager host
-is no longer running.
-A display is not required to send
-<function>KeepAlive</function>
-packets and, upon lack of receipt of
-<function>Alive</function>
-packets, is not required to perform any specific action.
- </para>
- <para>
-The expected use of this packet is to terminate an active session when the
-manager host or network link fails. The display should keep track of the
-time since any packet has been received from the manager host and use
-<function>KeepAlive</function>
-packets when a substantial time has elapsed since the
-most recent packet.
- </para>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Valid Responses:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<function>Alive</function>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Problems/Solutions:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-Problem:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Manager does not receive the packet or display does not receive the response.
- </entry>
- </row>
-
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Indication:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-No
-<function>Alive</function>
-packet is returned.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Solution:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col5_on">
-Retransmit the packet with an exponential backoff; start at 2 seconds and
-assume the host is not up after no less than 30 seconds.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry spanname="col1_on">
-<function>Alive</function>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
- <para>
-Manager -> Display
- </para>
- <para>
-Additional Fields:
- </para>
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Session Running</emphasis>: CARD8
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Indicates that the session identified by Session ID is
-currently active. The value is zero if no session is active
-or one if a session
-is active.
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-<emphasis remap='I'>Session ID</emphasis>: CARD32
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry></entry>
- <entry spanname="col4_on">
-Specifies the ID of the currently running session; if any.
-When no session is active this field should be zero.
- </entry>
- </row>
-
-
- <row rowsep="0">
- <entry></entry>
- <entry spanname="col2_on">
-Semantics:
- </entry>
- </row>
-
- <row rowsep="0">
- <entry></entry>
- <entry></entry>
- <entry spanname="col3_on">
-An
-<function>Alive</function>
-packet is sent in response to a
-<function>KeepAlive</function>
-request.
-If a session is currently active on the display, the manager includes the
-Session ID in the packet. The display can use this information to
-determine the status of the manager.
- </entry>
- </row>
- </tbody>
- </tgroup>
-</informaltable>
-
-</chapter>
-
-<chapter id="Session_Termination">
-<title>Session Termination</title>
-<para>
-When the session is over, the initial connection with the display (the one
-that acknowledges the
-<function>Manage</function>
-packet) will be closed by the manager.
-If only a single session was active on the display,
-all other connections should be closed by the display
-and the display should be reset. If multiple sessions
-are active simultaneously and the display can identify which connections
-belong to the terminated sesssion, those connections should be closed.
-Otherwise, all connections should be closed and the display reset only when
-all sessions have been terminated (that is, all initial connections closed).
-</para>
-
-<para>
-The session may also be terminated at any time by the display if the
-managing host no longer responds to
-<function>KeepAlive</function>
-packets.
-The exact time-outs for sending
-<function>KeepAlive</function>
-packets is not specified in this protocol as the trade off
-should not be fixed between loading an otherwise idle system with spurious
-<function>KeepAlive</function>
-packets and not noticing that the manager host is down for a long time.
-</para>
-</chapter>
-
-<chapter id="State_Diagrams">
-<title>State Diagrams</title>
-<!-- .XS -->
-<!-- (SN State Diagrams -->
-<!-- .XE -->
-<para>
-<!-- .LP -->
-The following state diagrams are designed to cover all actions of both
-the display and the manager. Any packet that is received out-of-sequence
-will be ignored.
-</para>
-<para>
-<!-- .LP -->
-Display:
-</para>
-
-<variablelist>
- <varlistentry>
- <term><emphasis remap='I'>start</emphasis>:</term>
- <listitem>
- <para>
-User-requested connect to one host -> <emphasis remap='I'>query</emphasis>
- </para>
- <para>
-User-requested connect to some host -> <emphasis remap='I'>broadcast</emphasis>
- </para>
- <para>
-User-requested connect to site host-list -> <emphasis remap='I'>indirect</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>query</emphasis>:</term>
- <listitem>
- <para>
-Send <function>Query</function> packet
--> <emphasis remap='I'>collect-query</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>collect-query</emphasis>:</term>
- <listitem>
- <para>
-Receive <function>Willing</function> ->
-<emphasis remap='I'>start-connection</emphasis>
- </para>
- <para>
-Receive <function>Unwilling</function> ->
-<emphasis remap='I'>stop-connection</emphasis>
- </para>
- <para>
-Timeout -> <emphasis remap='I'>query</emphasis>
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><emphasis remap='I'>broadcast</emphasis>:</term>
- <listitem>
- <para>
-Send <function>BroadcastQuery</function> packet
- </para>
- <para>
--> <emphasis remap='I'>collect-broadcast-query</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>collect-broadcast-query</emphasis>:</term>
- <listitem>
- <para>
-Receive <function>Willing</function> ->
-<emphasis remap='I'>update-broadcast-willing</emphasis>
- </para>
- <para>
-User-requested connect to one host ->
-<emphasis remap='I'>start-connection</emphasis>
- </para>
- <para>
-Timeout -> <emphasis remap='I'>broadcast</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>update-broadcast-willing</emphasis>:</term>
- <listitem>
- <para>
-Add new host to the host list presented to the user
- </para>
- <para>
--> <emphasis remap='I'>collect-broadcast-query</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>indirect</emphasis>:</term>
- <listitem>
- <para>
-Send <function>IndirectQuery</function> packet
- </para>
- <para>
--> <emphasis remap='I'>collect-indirect-query</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>collect-indirect-query</emphasis>:</term>
- <listitem>
- <para>
-Receive <function>Willing</function> ->
-<emphasis remap='I'>update-indirect-willing</emphasis>
- </para>
- <para>
-User-requested connect to one host ->
-<emphasis remap='I'>start-connection</emphasis>
- </para>
- <para>
-Timeout -> <emphasis remap='I'>indirect</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>update-indirect-willing</emphasis>:</term>
- <listitem>
- <para>
-Add new host to the host list presented to the user
- </para>
- <para>
--> <emphasis remap='I'>collect-indirect-query</emphasis>
- </para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term><emphasis remap='I'>start-connection</emphasis>:</term>
- <listitem>
- <para>
-Send <function>Request</function> packet
- </para>
- <para>
--> <emphasis remap='I'>await-request-response</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>await-request-response</emphasis>:</term>
- <listitem>
- <para>
-Receive <function>Accept</function> ->
-<emphasis remap='I'>manage</emphasis>
- </para>
- <para>
-Receive <function>Decline</function> ->
-<emphasis remap='I'>stop-connection</emphasis>
- </para>
- <para>
-Timeout -> <emphasis remap='I'>start-connection</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>manage</emphasis>:</term>
- <listitem>
- <para>
-Save Session ID
- </para>
- <para>
-Send <function>Manage</function> packet with Session ID
- </para>
- <para>
--> <emphasis remap='I'>await-manage-response</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>await-manage-response</emphasis>:</term>
- <listitem>
- <para>
-Receive <function>XOpenDisplay :</function> ->
-<emphasis remap='I'>run-session</emphasis>
- </para>
- <para>
-Receive <function>Refuse</function> with matching Session ID
--> <emphasis remap='I'>start-connection</emphasis>
- </para>
- <para>
-Receive <function>Failed</function> with matching Session ID
--> <emphasis remap='I'>stop-connection</emphasis>
- </para>
- <para>
-Timeout -> <emphasis remap='I'>manage</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>stop-connection</emphasis>:</term>
- <listitem>
- <para>
-Display cause of termination to user
- </para>
- <para>
--> <emphasis remap='I'>start</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>run-session</emphasis>:</term>
- <listitem>
- <para>
-Decide to send <function>KeepAlive</function> packet ->
-<emphasis remap='I'>keep-alive</emphasis>
- </para>
- <para>
-wait close of first display connection
- </para>
- <para>
--> <emphasis remap='I'>reset-display</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>keep-alive</emphasis>:</term>
- <listitem>
- <para>
-Send <function>KeepAlive</function> packet with current Session ID
- </para>
- <para>
--> <emphasis remap='I'>await-alive</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>await-alive</emphasis>:</term>
- <listitem>
- <para>
-Receive <function>Alive</function> with matching Session ID ->
-<emphasis remap='I'>run-session</emphasis>
- </para>
- <para>
-Receive <function>Alive</function> with nonmatching Session ID
-or FALSE Session Running -> <emphasis remap='I'>reset-display</emphasis>
- </para>
- <para>
-Final timeout without receiving <function>Alive</function>
-packet -> <emphasis remap='I'>reset-display</emphasis>
- </para>
- <para>
-Timeout -> <emphasis remap='I'>keep-alive</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>reset-display</emphasis>:</term>
- <listitem>
- <para>
-(if possible) -> close all display connections associated with this session
- </para>
- <para>
-Last session -> close all display connections
- </para>
- <para>
--> <emphasis remap='I'>start</emphasis>
- </para>
- </listitem>
- </varlistentry>
-</variablelist>
-
-
-<para>
-Manager:
-</para>
-
-<variablelist>
- <varlistentry>
- <term><emphasis remap='I'>idle</emphasis>:</term>
- <listitem>
- <para>
-Receive <function>Query</function> ->
-<emphasis remap='I'>query-respond</emphasis>
- </para>
- <para>
-Receive
-<function>BroadcastQuery</function>
--> <emphasis remap='I'>broadcast-respond</emphasis>
- </para>
- <para>
-Receive
-<function>IndirectQuery</function>
--> <emphasis remap='I'>indirect-respond</emphasis>
- </para>
- <para>
-Receive
-<function>ForwardQuery</function>
--> <emphasis remap='I'>forward-respond</emphasis>
-Receive
- </para>
- <para>
-<function>Request</function>
--> <emphasis remap='I'>request-respond</emphasis>
- </para>
- <para>
-Receive
-<function>Manage</function>
--> <emphasis remap='I'>manage</emphasis>
- </para>
- <para>
-An active session terminates
--> <emphasis remap='I'>finish-session</emphasis>
- </para>
- <para>
-Receive <function>KeepAlive</function>
--> <emphasis remap='I'>send-alive</emphasis>
- </para>
- <para>
--> <emphasis remap='I'>idle</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>query-respond</emphasis>:</term>
- <listitem>
- <para>
-If willing to manage -> <emphasis remap='I'>send-willing</emphasis>
- </para>
- <para>
--> <emphasis remap='I'>send-unwilling</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>broadcast-respond</emphasis>:</term>
- <listitem>
- <para>
-If willing to manage -> <emphasis remap='I'>send-willing</emphasis>
- </para>
- <para>
--> <emphasis remap='I'>idle</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>indirect-respond</emphasis>:</term>
- <listitem>
- <para>
-Send <function>ForwardQuery</function>
-packets to all managers on redirect list
- </para>
- <para>
-If willing to manage -> <emphasis remap='I'>send-willing</emphasis>
- </para>
- <para>
--> <emphasis remap='I'>idle</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>forward-respond</emphasis>:</term>
- <listitem>
- <para>
-Decode destination address, if willing to manage ->
-<emphasis remap='I'>send-willing</emphasis>
- </para>
- <para>
--> <emphasis remap='I'>idle</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>send-willing</emphasis>:</term>
- <listitem>
- <para>
-Send <function>Willing</function> packet
- </para>
- <para>
--> <emphasis remap='I'>idle</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>send-unwilling</emphasis>:</term>
- <listitem>
- <para>
-Send <function>Unwilling</function> packet
--> <emphasis remap='I'>idle</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>request-respond</emphasis>:</term>
- <listitem>
- <para>
-If manager is willing to allow a session on display
--> <emphasis remap='I'>accept-session</emphasis>
- </para>
- <para>
--> <emphasis remap='I'>decline-session</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>accept-session</emphasis>:</term>
- <listitem>
- <para>
-Generate Session ID and save Session ID, display address, and
-display number somewhere
- </para>
- <para>
-Send <function>Accept</function> packet
- </para>
- <para>
--> <emphasis remap='I'>idle</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>decline-session</emphasis>:</term>
- <listitem>
- <para>
-Send <function>Decline</function> packet
- </para>
- <para>
--> <emphasis remap='I'>idle</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>manage</emphasis>:</term>
- <listitem>
- <para>
-If Session ID matches saved Session ID ->
-<emphasis remap='I'>run-session</emphasis>
- </para>
- <para>
-If Session ID matches Session ID of session in process of
-starting up, or currently active session ->
-<emphasis remap='I'>idle</emphasis>
- </para>
- <para>
--> <emphasis remap='I'>refuse</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>refuse</emphasis>:</term>
- <listitem>
- <para>
-Send <function>Refuse</function> packet
- </para>
- <para>
--> <emphasis remap='I'>idle</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>run-session</emphasis>:</term>
- <listitem>
- <para>
-Terminate any session in progress
- </para>
- <para>
-<function>XOpenDisplay</function>
- </para>
- <para>
-Open display succeeds ->
-<emphasis remap='I'>start-session</emphasis>
- </para>
- <para>
--> <emphasis remap='I'>failed</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>failed</emphasis>:</term>
- <listitem>
- <para>
-Send <function>Failed</function> packet
- </para>
- <para>
--> <emphasis remap='I'>idle</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>start-session</emphasis>:</term>
- <listitem>
- <para>
-Start a new session
- </para>
- <para>
--> <emphasis remap='I'>idle</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>finish-session</emphasis>:</term>
- <listitem>
- <para>
-<function>XCloseDisplay</function>
- </para>
- <para>
--> <emphasis remap='I'>idle</emphasis>
- </para>
- </listitem>
- </varlistentry>
- <varlistentry>
- <term><emphasis remap='I'>send-alive</emphasis>:</term>
- <listitem>
- <para>
-Send <function>Alive</function> packet containing current status
- </para>
- <para>
--> <emphasis remap='I'>idle</emphasis>
- </para>
- </listitem>
- </varlistentry>
-</variablelist>
-
-</chapter>
-
-<chapter id="Protocol_Encoding">
-<title>Protocol Encoding</title>
-<para>
-When XDMCP is implemented on top of the Internet User Datagram Protocol (UDP),
-port number 177 is to be used. When using UDP over IPv4, Broadcast Query
-packets are sent via UDP broadcast. When using UDP over IPv6, Broadcast Query
-packets are sent via multicast, either to an address in the IANA registered
-XDMCP multicast address range of
-FF0<emphasis remap='I'>X</emphasis>:0:0:0:0:0:0:12B
-(where the <emphasis remap='I'>X</emphasis> is replaced by a valid scope id)
-or to a locally assigned
-multicast address. The version number in all packets will be 1.
-Packet opcodes are 16-bit integers.
-</para>
-
-<informaltable frame="none">
- <tgroup cols='2' align='left'>
- <colspec colname='c1' colsep="0"/>
- <colspec colname='c2' colsep="0"/>
- <thead>
- <row>
- <entry>Packet Name</entry>
- <entry>Encoding</entry>
- </row>
- </thead>
- <tbody>
- <row rowsep="0">
- <entry>BroadcastQuery</entry>
- <entry>1</entry>
- </row>
- <row rowsep="0">
- <entry>Query</entry>
- <entry>2</entry>
- </row>
- <row rowsep="0">
- <entry>IndirectQuery</entry>
- <entry>3</entry>
- </row>
- <row rowsep="0">
- <entry>ForwardQuery</entry>
- <entry>4</entry>
- </row>
- <row rowsep="0">
- <entry>Willing</entry>
- <entry>5</entry>
- </row>
- <row rowsep="0">
- <entry>Unwilling</entry>
- <entry>6</entry>
- </row>
- <row rowsep="0">
- <entry>Request</entry>
- <entry>7</entry>
- </row>
- <row rowsep="0">
- <entry>Accept</entry>
- <entry>8</entry>
- </row>
- <row rowsep="0">
- <entry>Decline</entry>
- <entry>9</entry>
- </row>
- <row rowsep="0">
- <entry>Manage</entry>
- <entry>10</entry>
- </row>
- <row rowsep="0">
- <entry>Refuse</entry>
- <entry>11</entry>
- </row>
- <row rowsep="0">
- <entry>Failed</entry>
- <entry>12</entry>
- </row>
- <row rowsep="0">
- <entry>KeepAlive</entry>
- <entry>13
-<footnote><para>
-A previous version of this document incorrectly reversed the opcodes of
-<emphasis role="bold">Alive</emphasis> and
-<emphasis role="bold">KeepAlive</emphasis>.
-</para></footnote>
- </entry>
- </row>
- <row rowsep="0">
- <entry>Alive</entry>
- <entry>14
-<footnote><para>
-A previous version of this document incorrectly reversed the opcodes of
-<emphasis role="bold">Alive</emphasis> and
-<emphasis role="bold">KeepAlive</emphasis>.
-</para></footnote>
- </entry>
- </row>
- </tbody>
- </tgroup>
-</informaltable>
-
-<para>
-Per packet information follows:
-</para>
-
-<para>
-<function>Query</function>,
-<function>BroadcastQuery</function>,
-<function>IndirectQuery</function>
-</para>
-
-<literallayout class="monospaced">
- 2 CARD16 version number (always 1)
- 2 CARD16 opcode (always Query, BroadcastQuery or IndirectQuery)
- 2 CARD16 length
- 1 CARD8 number of Authentication Names sent (m)
- 2 CARD16 length of first Authentication Name (m<emphasis role="subscript">1</emphasis>)
- m<emphasis role="subscript">1</emphasis> CARD8 first Authentication Name
- ... Other Authentication Names
-</literallayout>
-
-<para>
-Note that these three packets are identical except for the opcode field.
-</para>
-
-<literallayout class="monospaced">
-<function>ForwardQuery</function>
- 2 CARD16 version number (always 1)
- 2 CARD16 opcode (always ForwardQuery)
- 2 CARD16 length
- 2 CARD16 length of Client Address (m)
- m CARD8 Client Address
- 2 CARD16 length of Client Port (n)
- n CARD8 Client Port
- 1 CARD8 number of Authentication Names sent (o)
- 2 CARD16 length of first Authentication Name (o<emphasis role="subscript">1</emphasis>)
- o<emphasis role="subscript">1</emphasis> CARD8 first Authentication Name
- ... Other Authentication Names
-</literallayout>
-
-<literallayout class="monospaced">
-<function>Willing</function>
- 2 CARD16 version number (always 1)
- 2 CARD16 opcode (always Willing)
- 2 CARD16 length (6 + m + n + o)
- 2 CARD16 Length of Authentication Name (m)
- m CARD8 Authentication Name
- 2 CARD16 Hostname length (n)
- n CARD8 Hostname
- 2 CARD16 Status length (o)
- o CARD8 Status
-</literallayout>
-
-<literallayout class="monospaced">
-<function>Unwilling</function>
- 2 CARD16 version number (always 1)
- 2 CARD16 opcode (always Unwilling)
- 2 CARD16 length (4 + m + n)
- 2 CARD16 Hostname length (m)
- m CARD8 Hostname
- 2 CARD16 Status length (n)
- n CARD8 Status
-</literallayout>
-
-<literallayout class="monospaced">
-<function>Request</function>
- 2 CARD16 version number (always 1)
- 2 CARD16 opcode (always Request)
- 2 CARD16 length
- 2 CARD16 Display Number
- 1 CARD8 Count of Connection Types (m)
- 2xm CARD16 Connection Types
- 1 CARD8 Count of Connection Addresses (n)
- 2 CARD16 Length of first Connection Address (n<emphasis role="subscript">1</emphasis>)
- n<emphasis role="subscript">1</emphasis> CARD8 First Connection Address
- ... Other connection addresses
- 2 CARD16 Length of Authentication Name (o)
- o CARD8 Authentication Name
- 2 CARD16 Length of Authentication Data (p)
- p CARD8 Authentication Data
- 1 CARD8 Count of Authorization Names (q)
- 2 CARD16 Length of first Authorization Name (q<emphasis role="subscript">1</emphasis>)
- q<emphasis role="subscript">1</emphasis> CARD8 First Authorization Name
- ... Other authorization names
- 2 CARD16 Length of Manufacturer Display ID (r)
- r CARD8 Manufacturer Display ID
-</literallayout>
-
-<literallayout class="monospaced">
-<function>Accept</function>
- 2 CARD16 version number (always 1)
- 2 CARD16 opcode (always Accept)
- 2 CARD16 length (12 + n + m + o + p)
- 4 CARD32 Session ID
- 2 CARD16 Length of Authentication Name (n)
- n CARD8 Authentication Name
- 2 CARD16 Length of Authentication Data (m)
- m CARD8 Authentication Data
- 2 CARD16 Length of Authorization Name (o)
- o CARD8 Authorization Name
- 2 CARD16 Length of Authorization Data (p)
- p CARD8 Authorization Data
-</literallayout>
-
-<literallayout class="monospaced">
-<function>Decline</function>
- 2 CARD16 version number (always 1)
- 2 CARD16 opcode (always Decline)
- 2 CARD16 length (6 + m + n + o)
- 2 CARD16 Length of Status (m)
- m CARD8 Status
- 2 CARD16 Length of Authentication Name (n)
- n CARD8 Authentication Name
- 2 CARD16 Length of Authentication Data (o)
- o CARD8 Authentication Data
-</literallayout>
-
-<literallayout class="monospaced">
-<function>Manage</function>
- 2 CARD16 version number (always 1)
- 2 CARD16 opcode (always Manage)
- 2 CARD16 length (8 + m)
- 4 CARD32 Session ID
- 2 CARD16 Display Number
- 2 CARD16 Length of Display Class (m)
- m CARD8 Display Class
-</literallayout>
-
-<literallayout class="monospaced">
-<function>Refuse</function>
- 2 CARD16 version number (always 1)
- 2 CARD16 opcode (always Refuse)
- 2 CARD16 length (4)
- 4 CARD32 Session ID
-</literallayout>
-
-<literallayout class="monospaced">
-<function>Failed</function>
- 2 CARD16 version number (always 1)
- 2 CARD16 opcode (always Failed)
- 2 CARD16 length (6 + m)
- 4 CARD32 Session ID
- 2 CARD16 Length of Status (m)
- m CARD8 Status
-</literallayout>
-
-<literallayout class="monospaced">
-<function>KeepAlive</function>
- 2 CARD16 version number (always 1)
- 2 CARD16 opcode (always KeepAlive)
- 2 CARD16 length (6)
- 2 CARD16 Display Number
- 4 CARD32 Session ID
-</literallayout>
-
-<literallayout class="monospaced">
-<function>Alive</function>
- 2 CARD16 version number (always 1)
- 2 CARD16 opcode (always Alive)
- 2 CARD16 length (5)
- 1 CARD8 Session Running (0: not running 1: running)
- 4 CARD32 Session ID (0: not running)
-</literallayout>
-</chapter>
-
-<chapter id="Display_Class_Format">
-<title>Display Class Format</title>
-<!-- .XS -->
-<!-- (SN Display Class Format -->
-<!-- .XE -->
-<para>
-The Display Class field of the
-<function>Manage</function>
-packet is used by the display manager to collect common sorts of
-displays into manageable groups. This field is a string encoded of
-ISO-LATIN-1 characters in the following format:
-</para>
-
-<literallayout class="monospaced">
-<emphasis remap='I'>ManufacturerID</emphasis>-<emphasis remap='I'>ModelNumber</emphasis>
-</literallayout>
-
-<para>
-Both elements of this string must exclude characters of the set
-{ <function>-</function>,
-<function>.</function>,
-<function>:</function>,
-<function>*</function>,
-<function>?</function>,
-<emphasis remap='I'><space></emphasis> }.
-The ManufacturerID is a string that should be registered
-with the X Consortium.
-The ModelNumber is designed to identify characteristics of the display
-within the manufacturer's product line.
-This string should be documented in the users manual for the
-particular device and should probably not be specifiable by the
-display user to avoid unexpected configuration errors.
-</para>
-</chapter>
-
-<chapter id="Manufacturer_Display_ID_Format">
-<title>Manufacturer Display ID Format</title>
-<!-- .XS -->
-<!-- (SN Manufacturer Display ID Format -->
-<!-- .XE -->
-<para>
-To authenticate the manager, the display and manager will share a private
-key.
-The manager, then, must be able to discover which key to use for a
-particular device.
-The Manufacturer Display ID field of the
-<function>Request</function>
-packet is intended for this purpose. Typically, the manager host will
-contain a map between this number and the key. This field is intended to be
-unique per display, possibly the ethernet address of the display in the form:
-</para>
-
-<literallayout class="monospaced">
--Ethernet-8:0:2b:a:f:d2
-</literallayout>
-
-<para>
-It can also be a string of the form:
-</para>
-
-<literallayout class="monospaced">
-<emphasis remap='I'>ManufacturerID</emphasis>-<emphasis remap='I'>ModelNumber</emphasis>-<emphasis remap='I'>SerialNumber</emphasis>
-</literallayout>
-
-<para>
-The ManufacturerID, ModelNumber and SerialNumber are encoded using
-ISO-LATIN-1 characters, excluding {
-<function>-</function>,
-<function>.</function>,
-<function>*</function>,
-<function>?</function>,
-<emphasis remap='I'><space></emphasis> }
-</para>
-
-<para>
-When the display is shipped to a customer, it should include both the
-Manufacturer Display ID and the private key in the documentation set.
-This information should not be modifiable by the display user.
-</para>
-
-</chapter>
-
-<chapter id="Authentication">
-<title>Authentication</title>
-<!-- .XS -->
-<!-- (SN Authentication -->
-<!-- .XE -->
-<para>
-In an environment where authentication is not needed, XDMCP can disable
-authentication by having the display send empty Authentication Name
-and Authentication Data fields in the
-<function>Request</function>
-packet.
-In this case, the manager will not attempt to authenticate itself.
-Other authentication protocols may be developed, depending on local needs.
-</para>
-
-<para>
-In an unsecure environment, the display must be able to verify that the
-source of the various packets is a trusted manager. These packets will
-contain authentication information. As an example of such a system, the
-following discussion describes the "XDM-AUTHENTICATION-1" authentication
-system. This system uses a 56-bit shared private key, and 64 bits of
-authentication data. An associated example X authorization protocol
-"XDM-AUTHORIZATION-1" will also be discussed. The 56-bit key is represented
-as a 64-bit number in network order (big endian). This means that the first
-octet in the representation will be zero. When incrementing a 64-bit value,
-the 8 octets of data will be interpreted in network order (big endian).
-That is, the last octet will be incremented, subsequent carries propogate
-towards the first octet.
-</para>
-
-<para>
-Assumptions:
-</para>
-
-<orderedlist>
- <listitem>
- <para>
-The display and manager share a private key. This key could be programmed
-into the display by the manufacturer and shipped with the unit. It must not
-be available from the display itself, but should allow the value to be
-modified in some way. The system administrator would be responsible for
-managing a database of terminal keys.
- </para>
- </listitem>
- <listitem>
- <para>
-The display can generate random authentication numbers.
- </para>
- </listitem>
-</orderedlist>
-
-<para>
-Some definitions first:
-</para>
-
-<!-- FIXME: -->
-<!-- double chk math symbols, use mathml to display them? -->
-<itemizedlist>
- <listitem>
- <para>
-{&variable.D;}<superscript>&variable.kappa;</superscript> = encryption of plain text D by key &variable.kappa;
- </para>
- </listitem>
- <listitem>
- <para>
-{&variable.Delta;}*<superscript>&variable.kappa;</superscript> = decryption of crypto text &variable.Delta; with key &variable.kappa;
- </para>
- </listitem>
- <listitem>
- <para>
-&variable.tau; = private key shared by display and manager
- </para>
- </listitem>
- <listitem>
- <para>
-&variable.rho; = 64 bit random number generated by display
- </para>
- </listitem>
- <listitem>
- <para>
-&variable.alpha; = authentication data in XDMCP packets
- </para>
- </listitem>
- <listitem>
- <para>
-&variable.sigma; = per-session private key, generated by manager
- </para>
- </listitem>
- <listitem>
- <para>
-&variable.beta; = authorization data
- </para>
- </listitem>
-</itemizedlist>
-
-<para>
-Encryption will use the Data Encryption Standard (DES, FIPS 46-3); blocks
-shorter than 64 bits will be zero-filled
-on the right to 64 bits. Blocks longer than 64 bits will use block chaining:
-</para>
-<para>
-{&variable.D;}<superscript>&variable.kappa;</superscript> = {&variable.D;<subscript>1</subscript>}<superscript>&variable.kappa;</superscript> {&variable.D;<subscript>2</subscript> xor {&variable.D;<subscript>1</subscript>}<superscript>&variable.kappa;</superscript>}<superscript>&variable.kappa;</superscript>
-</para>
-
-<para>
-The display generates the first authentication data in the
-<function>Request</function>
-packet:
-</para>
-
-<para>
-&variable.alpha;<subscript>Request</subscript> = {&variable.rho;}<superscript>&variable.tau;</superscript>
-</para>
-
-<para>
-For the <function>Accept</function>
-packet, the manager decrypts the initial message and returns
-&variable.alpha;<subscript>Accept</subscript>:
-
-</para>
-
-<para>
-&variable.rho; = {&variable.alpha;<subscript>Request</subscript>}*<superscript>&variable.tau;</superscript>
-</para>
-
-<para>
-&variable.alpha;<subscript>Accept</subscript> = { &variable.rho; + 1}<superscript>&variable.tau;</superscript>
-</para>
-
-<para>
-The <function>Accept</function>
-packet also contains the authorization intended for use by
-the X server. A description of authorization type "XDM-AUTHORIZATION-1"
-follows.
-</para>
-
-<para>
-The <function>Accept</function>
-packet contains the authorization name
-"XDM-AUTHORIZATION-1". The authorization data is the string:
-</para>
-<para>
-&variable.beta;<subscript>Accept</subscript> = {&variable.sigma;}<superscript>&variable.tau;</superscript>
-</para>
-
-<para>
-To create authorization information for connection setup with the X server
-using the XDM-AUTHORIZATION-1 authorization protocol, the client computes the
-following:
-</para>
-<para>
-&variable.N; = X client identifier
-</para>
-<para>
-&variable.T; = Current time in seconds on client host (32 bits)
-</para>
-<para>
-&variable.beta; = {&variable.rho;&variable.N;&variable.T;}<superscript>&variable.sigma;</superscript>
-</para>
-
-<para>
-For TCP connections &variable.N; is 48 bits long and contains the 32-bit IPv4 address of
-the client host followed by the 16-bit port number of the client socket.
-Formats for other connections must be registered.
-The resulting value, &variable.beta;, is 192 bits of authorization data that is sent
-in the connection setup to the server. The server receives the packet,
-decrypts the contents. To accept the connection, the following must hold:
-</para>
-
-<itemizedlist>
- <listitem>
- <para>
-&variable.rho; must match the value generated for the most recent XDMCP negotiation.
- </para>
- </listitem>
- <listitem>
- <para>
-&variable.T; must be within 1200 seconds of the internally stored time. If no time
-been received before, the current time is set to &variable.T;.
- </para>
- </listitem>
- <listitem>
- <para>
-No packet containing the same pair (&variable.N;, &variable.T;) can have been received
-in the last 1200 seconds (20 minutes).
- </para>
- </listitem>
-</itemizedlist>
-</chapter>
-</book>
+<?xml version="1.0" encoding="UTF-8" ?> +<!DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.3//EN" + "http://www.oasis-open.org/docbook/xml/4.3/docbookx.dtd" [ +<!-- + variable names used in equation markup in the authentication chapter + FIXME: Replace with mathml? + --> +<!ENTITY variable.D "<emphasis role='italic'>D</emphasis>"> +<!ENTITY variable.N "<emphasis role='italic'>N</emphasis>"> +<!ENTITY variable.T "<emphasis role='italic'>T</emphasis>"> +<!ENTITY variable.Delta "<emphasis role='italic'>Δ</emphasis>"> +<!ENTITY variable.alpha "<emphasis role='italic'>α</emphasis>"> +<!ENTITY variable.beta "<emphasis role='italic'>β</emphasis>"> +<!ENTITY variable.kappa "<emphasis role='italic'>κ</emphasis>"> +<!ENTITY variable.rho "<emphasis role='italic'>ρ</emphasis>"> +<!ENTITY variable.sigma "<emphasis role='italic'>σ</emphasis>"> +<!ENTITY variable.tau "<emphasis role='italic'>τ</emphasis>"> +<!ENTITY % defs SYSTEM "defs.ent"> %defs; +]> + +<book id="xdmcp"> + +<bookinfo> + <title>X Display Manager Control Protocol</title> + <subtitle>X.Org Standard</subtitle> + <releaseinfo>X Version 11, Release &fullrelvers;</releaseinfo> + <releaseinfo>Version 1.1</releaseinfo> + <authorgroup> + <author> + <firstname>Keith</firstname><surname>Packard</surname> + <affiliation> + <orgname>Massachusetts Institute of Technology</orgname> + <orgdiv>Laboratory for Computer Science</orgdiv> + <orgdiv>X Consortium</orgdiv> + </affiliation> + </author> + </authorgroup> + + <copyright><year>1989</year><year>2004</year> + <holder>The Open Group</holder></copyright> + +<legalnotice> + + + +<para> +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: +</para> +<para> +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. +</para> +<para> +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 +OPEN GROUP 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. +</para> +<para> +Except as contained in this notice, the name of The Open Group 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 Open Group. +</para> + +<para> +<emphasis remap='I'>X Window System</emphasis> is a trademark of The Open Group. +</para> +</legalnotice> +</bookinfo> + +<chapter id="Purpose_and_Goals"> +<title>Purpose and Goals</title> +<!-- .XS --> +<!-- (SN Purpose and Goals --> +<!-- .XE --> +<para> +<!-- .LP --> +The purpose of the X Display Manager Control Protocol (XDMCP) +is to provide a uniform mechanism for an autonomous +display to request login service from a remote host. +By autonomous, we mean +the display consists of hardware and processes that are independent of any +particular host where login service is desired. (For example, the server +cannot simply be started by a +<function>fork/exec</function> +sequence on the host.) +An X terminal (screen, keyboard, mouse, processor, network interface) +is a prime example of an autonomous display. +</para> + +<para> +From the point of view of the end user, it is very important to make +autonomous displays as easy to use as traditional hardwired character +terminals. Specifically, you can typically just power on a hardwired +terminal and be greeted with a login prompt. The same should be possible +with autonomous displays. However, in a network environment with multiple +hosts, the end user may want to choose which host(s) to connect to. In an +environment with many displays and many hosts, a site administrator may want +to associate particular collections of hosts with particular displays. We +would like to support the following options: +</para> + +<itemizedlist> + <listitem> + <para> +The display has a single, fixed host to which it should connect. It should be +possible to power on the display and receive a login prompt, without user +intervention. + </para> + </listitem> + <listitem> + <para> +Any one of several hosts on a network or subnetwork may be acceptable +for accepting login from the display. +(For example, the user's file systems can be mounted onto +any such host, providing comparable environments.) It should be possible +for the display to broadcast to find such hosts and to have the display +either automatically choose a host or present the possible hosts to the +user for selection. + </para> + </listitem> + <listitem> + <para> +The display has a fixed set of hosts that it can connect to. It should be +possible for the display to have that set stored in RAM, but it should also be +possible for a site administrator to be able to maintain host sets for a +large number of displays using a centralized facility, without having to +interact (physically or electronically) with each individual display. +Particular hosts should be allowed to refuse login service, based on +whatever local criteria are desired. + </para> + </listitem> +</itemizedlist> + +<para> +The control protocol should be designed in such a way that it can be used over +a reasonable variety of communication transport layers. In fact, it is quite +desirable if every major network protocol family that supports the standard X +protocol is also capable of supporting XDMCP, because the end result of XDMCP +negotiation will be standard X protocol connections to the display. +However, because the number of displays per host may be large, +a connection-based protocol appears less desirable +than a connection-less protocol. For this reason the protocol is designed +to use datagram services with the display responsible for sequencing and +retransmission. +</para> +<para> +<!-- .LP --> +To keep the burden on displays at a minimum (because display cost is not +a factor that can be ignored), it is desirable that displays not be required +to maintain permanent state (across power cycles) for the purposes +of the control protocol, +and it is desirable to keep required state at a minimum while the +display is powered on. +</para> +<para> +<!-- .LP --> +Security is an important consideration and must be an integral part of the +design. The important security goals in the context of XDMCP are: +</para> +<itemizedlist> + <listitem> + <para> +It should be possible for the display to verify that it is communicating +with a legitimate host login service. Because the user will present +credentials (for example, password) to this service, +it is important to avoid spoof attacks. + </para> + </listitem> + <listitem> + <para> +It should be possible for the display and the login service to negotiate the +authorization mechanism to be used for the standard X protocol. + </para> + </listitem> + <listitem> + <para> +It should be possible to provide the same level of security in verifying the +login service as is provided by the negotiated authorization mechanism. + </para> + </listitem> + <listitem> + <para> +Because there are no firm standards yet in the area of security, +XDMCP must be flexible enough to accomodate a variety of security mechanisms. + </para> + </listitem> +</itemizedlist> +</chapter> + +<chapter id="Overview_of_the_Protocol"> +<title>Overview of the Protocol</title> +<!-- .XS --> +<!-- (SN Overview of the Protocol --> +<!-- .XE --> +<para> +<!-- .LP --> +XDMCP is designed to provide authenticated access to display management +services for remote displays. A new network server, called a \fIDisplay +Manager\fP, will use XDMCP to communicate with displays to negotiate the +startup of X sessions. The protocol allows the display to authenticate the +manager. It also allows most of the configuration information to be +centralized with the manager and to ease the burden of system administration +in a large network of displays. +The essential goal is to provide plug-and-play +services similar to those provided in the familiar mainframe/terminal world. +</para> +<para> +<!-- .LP --> +Displays may be turned off by the user at any time. Any existing session +running on a display that has been turned off must be identifiable. This +is made possible by requiring a three-way handshake to start a session. If +the handshake succeeds, any existing session is terminated immediately and a +new session started. There is the problem (at least with TCP) that +connections may not be closed when the display is turned off. In most +environments, the manager should reduce this problem by periodically XSync'ing +on its own connection, perhaps every five to ten minutes, and terminating the +session if its own connection ever closes. +</para> +<para> +<!-- .LP --> +Displays should not be required to retain permanent state for purposes of +the control protocol. One solution to packets received out of sequence +would be to use monotonically increasing message identifiers in each message +to allow both sides to ignore messages that arrive out-of-sequence. For +this to work, displays would at a minimum have to increment a stable crash +count each time they are powered on and use that number as part of a +larger sequence number. But if displays cannot retain permanent state this +cannot work. Instead, the manager assumes the responsibility for permanent +state by generating unique numbers that identify a particular session and +the protocol simply ignores packets that correspond to an invalid session. +</para> +<para> +<!-- .LP --> +The Manager must not be responsible for packet reception. To prevent the +Manager from becoming stuck because of a hostile display, no portion of the +protocol requires the Manager to retransmit a packet. Part of this means +that any valid packet that the Manager does receive must be +acknowledged in some way to prevent the display from continuously resending +packets. The display can keep the protocol running as it will always know +when the Manager has received (at least one copy of) a packet. On the +Manager side, this means that any packet may be received more than once (if +the response was lost) and duplicates must be ignored. +</para> +</chapter> + +<chapter id="Data_Types"> +<title>Data Types</title> +<!-- .XS --> +<!-- (SN Data Types --> +<!-- .XE --> +<para> +<!-- .LP --> +XDMCP packets contain several types of data. Integer values are always +stored most significant byte first in the packet ("Big Endian" order). +As XDMCP will not be used to transport large quantities of data, this +restriction will not substantially hamper the efficiency of any +implementation. Also, no padding of any sort will occur within the packets. +</para> + +<informaltable frame="none"> + <tgroup cols='3' align='left'> + <colspec colname='c1' colsep="0"/> + <colspec colname='c2' colsep="0"/> + <colspec colname='c3' colsep="0"/> + <thead> + <row> + <entry>Type Name</entry> + <entry>Length (Bytes)</entry> + <entry>Description</entry> + </row> + </thead> + <tbody> + <row rowsep="0"> + <entry>CARD8</entry> + <entry>1</entry> + <entry>A single byte unsigned integer</entry> + </row> + <row rowsep="0"> + <entry>CARD16</entry> + <entry>2</entry> + <entry>Two byte unsigned integer</entry> + </row> + <row rowsep="0"> + <entry>CARD32</entry> + <entry>4</entry> + <entry>Four byte unsigned integer</entry> + </row> + <row rowsep="0"> + <entry>ARRAY8</entry> + <entry>n+2</entry> + <entry> +This is actually a CARD16 followed by +a collection of CARD8. The value of the CARD16 +field (n) specifies the number of CARD8 values to follow + </entry> + </row> + <row rowsep="0"> + <entry>ARRAY16</entry> + <entry>2*m+1</entry> + <entry> +This is a CARD8 (m) which specifies the +number of CARD16 values to follow + </entry> + </row> + <row rowsep="0"> + <entry>ARRAY32</entry> + <entry>4*l+1</entry> + <entry> +This is a CARD8 (l) which specifies the +number of CARD32 values to follow + </entry> + </row> + <row rowsep="0"> + <entry>ARRAYofARRAY8</entry> + <entry>?</entry> + <entry> +This is a CARD8 which specifies the +number of ARRAY8 values to follow. + </entry> + </row> + </tbody> + </tgroup> +</informaltable> +</chapter> + +<chapter id="Packet_Format"> +<title>Packet Format</title> +<!-- .XS --> +<!-- (SN Packet Format --> +<!-- .XE --> +<para> +All XDMCP packets have the following information: +</para> + +<informaltable frame="none"> + <tgroup cols='3' align='left'> + <colspec colname='c1' colsep="0"/> + <colspec colname='c2' colsep="0"/> + <colspec colname='c3' colsep="0"/> + <thead> + <row> + <entry>Length (Bytes)</entry> + <entry>Field Type</entry> + <entry>Description</entry> + </row> + </thead> + <tbody> + <row rowsep="0"> + <entry>2</entry> + <entry>CARD16</entry> + <entry>version number</entry> + </row> + <row rowsep="0"> + <entry>2</entry> + <entry>CARD16</entry> + <entry>opcode packet header</entry> + </row> + <row rowsep="0"> + <entry>2</entry> + <entry>CARD16</entry> + <entry>n = length of remaining data in bytes</entry> + </row> + <row rowsep="0"> + <entry>n</entry> + <entry>???</entry> + <entry>packet-specific data</entry> + </row> + </tbody> + </tgroup> +</informaltable> + +<para> +<!-- .LP --> +The fields are as follows: +</para> + +<variablelist> + <varlistentry> + <term>Version number</term> + <listitem> + <para> +This specifies the version of XDMCP that generated this packet in +case changes in this protocol are required. Displays and +managers may choose to support older versions for compatibility. +This field will initially be one (1). + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Opcode</term> + <listitem> + <para> +This specifies what step of the protocol this packet represents and should +contain one of the following values (encoding provided in section below): +<emphasis role="bold">BroadcastQuery</emphasis>, +<emphasis role="bold">Query</emphasis>, +<emphasis role="bold">IndirectQuery</emphasis>, +<emphasis role="bold">ForwardQuery</emphasis>, +<emphasis role="bold">Willing</emphasis>, +<emphasis role="bold">Unwilling</emphasis>, +<emphasis role="bold">Request</emphasis>, +<emphasis role="bold">Accept</emphasis>, +<emphasis role="bold">Decline</emphasis>, +<emphasis role="bold">Manage</emphasis>, +<emphasis role="bold">Refuse</emphasis>, +<emphasis role="bold">Failed</emphasis>, +<emphasis role="bold">KeepAlive</emphasis> +or +<emphasis role="bold">Alive</emphasis>. + </para> + </listitem> + </varlistentry> + <varlistentry> + <term>Length of data in bytes</term> + <listitem> + <para> +This specifies the length of the information following the first 6 bytes. +Each packet-type has a different format and will need to be separately +length-checked against this value. Because every data item has either an +explicit or implicit length, this can be easily accomplished. +Packets that have too little or too much data should be ignored. + </para> + </listitem> + </varlistentry> +</variablelist> +<para> +Packets should be checked to make sure that they satisfy the following +conditions: +</para> + +<orderedlist> + <listitem> + <para> +They must contain valid opcodes. + </para> + </listitem> + <listitem> + <para> +The length of the remaining data should correspond to the sum of the +lengths of the individual remaining data items. + </para> + </listitem> + <listitem> + <para> +The opcode should be expected (a finite state diagram is given +in a later section). + </para> + </listitem> + <listitem> + <para> +If the packet is of type +<emphasis role="bold">Manage</emphasis> or +<emphasis role="bold">Refuse</emphasis>, +the Session ID should match the value sent in the preceding +<emphasis role="bold">Accept</emphasis> packet. + </para> + </listitem> +</orderedlist> +</chapter> + +<chapter id="Protocol"> +<title>Protocol</title> +<!-- .XS --> +<!-- (SN Protocol --> +<!-- .XE --> +<para> +Each of the opcodes is described below. Because a given packet type is only +ever sent one way, each packet description below indicates the direction. +Most of the packets have additional information included beyond the +description above. The additional information is appended to the packet +header in the order described without padding, and the length field is +computed accordingly. +</para> + +<informaltable frame="none"> + <tgroup cols='10' align='left'> + <colspec colname='col1' colsep="0" colwidth="1*"/> + <colspec colname='col2' colsep="0" colwidth="1*"/> + <colspec colname='col3' colsep="0" colwidth="1*"/> + <colspec colname='col4' colsep="0" colwidth="1*"/> + <colspec colname='col5' colsep="0" colwidth="1*"/> + <colspec colname='col6' colsep="0" colwidth="1*"/> + <colspec colname='col7' colsep="0" colwidth="1*"/> + <colspec colname='col8' colsep="0" colwidth="1*"/> + <colspec colname='col9' colsep="0" colwidth="1*"/> + <colspec colname='col10' colsep="0" colwidth="1*"/> + <spanspec namest="col1" nameend="col10" spanname="col1_on" align="left"/> + <spanspec namest="col2" nameend="col10" spanname="col2_on" align="left"/> + <spanspec namest="col3" nameend="col10" spanname="col3_on" align="left"/> + <spanspec namest="col4" nameend="col10" spanname="col4_on" align="left"/> + <spanspec namest="col5" nameend="col10" spanname="col5_on" align="left"/> + <tbody> + <row rowsep="0"> + <entry spanname="col1_on"><emphasis role="bold">Query</emphasis></entry> + </row> + <row rowsep="0"> + <entry spanname="col1_on"><emphasis role="bold">BroadcastQuery</emphasis></entry> + </row> + <row rowsep="0"> + <entry spanname="col1_on"><emphasis role="bold">IndirectQuery</emphasis></entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on">Display -> Manager</entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on">Additional Fields:</entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis>Authentication Names</emphasis>: ARRAYofARRAY8 + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Specifies a list of authentication names that the display supports. The +manager will choose one of these and return it in the +<emphasis role="bold">Willing</emphasis> packet. + </entry> + </row> +<!-- AAAAAAAAAAAAA --> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry>Semantics</entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +<para> +A <function>Query</function> +packet is sent from the display to a specific host to ask if +that host is willing to provide management services to this display. The +host should respond with +<function>Willing</function> +if it is willing to service the display or +<function>Unwilling</function> +if it is not. +</para> + +<para> +A +<function>BroadcastQuery</function> +packet is similar to the +<function>Query</function> +packet except that it is intended to be received by all hosts on the network +(or subnetwork). However, unlike +<function>Query</function> +requests, hosts that are not willing to service the display +should simply ignore +<function>BroadcastQuery</function> +requests. +</para> + +<para> +An +<function>IndirectQuery</function> +packet is sent to a well known manager that forwards +the request to a larger collection of secondary managers using +<function>ForwardQuery</function> +packets. +In this way, the collection of managers that respond can be grouped +on other than network boundaries; the use of a central manager reduces +system administrative overhead. +The primary manager may also send a +<function>Willing</function> +packet in response to this packet. +</para> + +<para> +Each packet type has slightly different semantics: +</para> + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +<para> +The +<function>Query</function> +packet is destined only for a single host. +If the display is instructed to +<function>Query</function> +multiple managers, it will send multiple +<function>Query</function> +packets. The +<function>Query</function> +packet also demands a response from the manager, either +<function>Willing</function> +or +<function>Unwilling</function>. + </para> + <para> +The +<function>BroadcastQuery</function> +packet is sent to many hosts. +Each manager that receives this packet will not respond with an +<function>Unwilling</function> +packet. + </para> + <para> +The +<function>IndirectQuery</function> +packet is sent to only one manager with the request +that the request be forwarded to a larger list of managers using +<function>ForwardQuery</function> +packets. This list is expected to be maintained at one +central site to reduce administrative overhead. +The function of this packet type is similar to +<function>BroadcastQuery except that</function> +<function>BroadcastQuery</function> +is not forwarded. + </para> + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on">Valid Responses:</entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<function>Willing</function>, +<function>Unwilling</function> + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on">Problems/Solutions:</entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on">Problem:</entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +<para>Not all managers receive the query packet.</para> +<para>Indication:</para> + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +None if +<function>BroadcastQuery</function> +or +<function>IndirectQuery</function> +was sent, else failure to receive +<function>Willing</function>. + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on">Solution:</entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +Repeatedly send the packet while waiting for user to choose a manager. + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Timeout/Retransmission policy: + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +An exponential backoff algorithm should be used here to reduce network load +for long-standing idle displays. Start at 2 seconds, back off by factors of +2 to 32 seconds, and discontinue retransmit after 126 seconds. The display +should reset the timeout when user-input is detected. In this way, the +display will wakeup when touched by the user. + </entry> + </row> + <row rowsep="0"> + <entry spanname="col1_on"> +<function>ForwardQuery</function> + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +<para>Primary Manager -> Secondary Manager</para> +<para>Additional Fields:</para> + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Client Address</emphasis>: ARRAY8 + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Specifies the network address of the client display. + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Client Port</emphasis>: ARRAY8 + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Specifies an identification of the client task on the client display. + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Authentication Names</emphasis>: ARRAYofARRAY8 + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Is a duplicate of Authentication Names array that was received +in the +<function>IndirectQuery</function> +packet. + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Semantics: + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> + <para> +When primary manager receives a +<function>IndirectQuery</function> +packet, it is responsible for sending +<function>ForwardQuery</function> +packets to an appropriate list of +managers that can provide service to the display using the same network +type as the one the original +<function>IndirectQuery</function> +packet was received from. +The Client Address and Client Port fields must contain an +address that the secondary manager can use to reach the display also using +this same network. Each secondary manager sends a +<function>Willing</function> +packet to the display if it is willing to provide service. + </para> + + <para> +<function>ForwardQuery</function> +packets are similar to +<function>BroadcastQuery</function> +packets in that managers that are not willing to service +particular displays should not send a +<function>Unwilling</function> +packet. + </para> + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Valid Responses: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<function>Willing</function> + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Problems/Solutions: + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Identical to +<function>BroadcastQuery</function> + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Timeout/Retransmission policy: + </entry> + </row> + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Like all packets sent from a manager, this packet should never be +retransmitted. + </entry> + </row> + + <row rowsep="0"> + <entry spanname="col1_on"> +<function>Willing</function> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> + <para> +Manager -> Display + </para> + <para> +Additional Fields: + </para> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Authentication Name</emphasis>: ARRAY8 + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +<para> +Specifies the authentication method, selected from the list offered in the +<function>Query ,</function> +<function>BroadcastQuery ,</function> +or +<function>IndirectQuery</function> +packet that the manger expects the display to use in the subsequent +<function>Request</function> +packet. +This choice should remain as constant as feasible so that displays that +send multiple +<function>Query</function> +packets can use the Authentication Name from any +<function>Willing</function> +packet that arrives. +</para> +<para> +The display is free to ignore managers that request an insufficient level +of authentication. +</para> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Hostname</emphasis>: ARRAY8 + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Is a human readable string describing the host from which the packet was sent. +The protocol specifies no interpretation of the data in this field. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Status</emphasis>: ARRAY8 + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Is a human readable string describing the status of the host. This could +include load average/number of users connected or other information. The +protocol specifies no interpretation of the data in this field. + </entry> + </row> + + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Semantics: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +A +<function>Willing</function> +packet is sent by managers that may service connections from +this display. It is sent in response to either a +<function>Query ,</function> +<function>BroadcastQuery ,</function> +or +<function>ForwardQuery</function> +but does not imply a commitment to provide service +(for example, it may later decide that it has accepted enough +connections already). + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Problems/Solutions: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Problem: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +<para> +<function>Willing</function> +not received by the display. +</para> +<para> +Indication: +</para> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +None if +<function>BroadcastQuery</function> +or +<function>IndirectQuery</function> +was sent, else failure to receive +<function>Willing .</function> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Solution: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +The display should continue to send the query until a response is received. + </entry> + </row> + + + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Timeout/Retransmission policy: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Like all packets sent from the manager to the display, this packet should +never be retransmitted. + </entry> + </row> + + <row rowsep="0"> + <entry spanname="col1_on"> +<function>Unwilling</function> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> + <para> +Manager -> Display + </para> + <para> +Additional Fields: + </para> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +The Hostname and Status fields as in the +<function>Willing</function> +packet. +The Status field should indicate to the user a reason +for the refusal of service. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Semantics: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +An +<function>Unwilling</function> +packet is sent by managers in response to direct +<function>Query</function> +requests (as opposed to +<function>BroadcastQuery</function> +or +<function>IndirectQuery</function> +requests) if the manager will not accept requests for management. +This is typically sent by managers that wish to only service +particular displays or that handle a limited number of displays at once. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Problems/Solutions: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Problem: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +<para> +<function>Unwilling</function> +not received by the display. +</para> +<para> +Indication: +</para> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +Display fails to receive +<function>Unwilling .</function> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Solution: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +The display should continue to send +<function>Query</function> +messages until a response is received. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Timeout/Retransmission policy: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Like all packets sent from the manager to the display, this packet should +never be retransmitted. + </entry> + </row> + <row rowsep="0"> + <entry spanname="col1_on"> +<function>Request</function> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> + <para> +Display -> Manager + </para> + <para> +Additional Fields: + </para> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Display Number</emphasis>: CARD16 + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Specifies the index of this particular server for the host +on which the display is resident. +This value will be zero for most autonomous displays. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Connection Types</emphasis>: ARRAY16 + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Specifies an array indicating the stream services accepted by the display. +If the high-order byte in a particular entry is zero, the low-order byte +corresponds to an X-protocol host family type. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Connection Addresses</emphasis>: ARRAYofARRAY8 + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +For each connection type in the previous array, the corresponding entry in +this array indicates the network address of the display device. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> + <para> +<emphasis remap='I'>Authentication Name</emphasis>: ARRAY8 + </para> + <para> +<emphasis remap='I'>Authentication Data</emphasis>: ARRAY8 + </para> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Specifies the authentication protocol that the display expects +the manager to validate itself with. The Authentication Data is +expected to contain data that the manager will interpret, modify +and use to authenticate itself. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Authorization Names</emphasis>: ARRAYofARRAY8 + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Specifies which types of authorization the display supports. The +manager may decide to reject displays with which it cannot perform +authorization. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Manufacturer Display ID</emphasis>: ARRAY8 + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Can be used by the manager to determine how to decrypt the +Authentication Data field in this packet. See the section below on +Manufacturer Display ID Format. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Semantics: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +A +<function>Request</function> +packet is sent by a display to a specific host to request a +session ID in preparation for a establishing a connection. If the manager +is willing to service a connection to this display, it should return an +<function>Accept</function> +packet with a valid session ID and should be ready for a subsequent +<function>Manage</function> +request. Otherwise, it should return a +<function>Decline</function> +packet. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Valid Responses: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<function>Accept ,</function> +<function>Decline</function> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Problems/Solutions: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Problem: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Request not received by manager. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Indication: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +Display timeout waiting for response. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Solution: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +Display resends +<function>Request</function> +message. + </entry> + </row> + + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Problem: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +Message received out of order by manager. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Indication: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +None. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Solution: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +Each time a +<function>Request</function> +is sent, the manager sends the Session ID +associated with the next session in the +<function>Accept .</function> +If that next session is not yet started, +the manager will simply resend with the same Session ID. +If the session is in progress, the manager will reply +with a new Session ID; in which case, the +<function>Accept</function> +will be discarded by the display. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Timeout/Retransmission policy: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Timeout after 2 seconds, exponential backoff to 32 seconds. +After no more than 126 seconds, give up and report an error to the user. + </entry> + </row> + + <row rowsep="0"> + <entry spanname="col1_on"> +<function>Accept</function> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> + <para> +Manager -> Display + </para> + <para> +Additional Fields: + </para> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Session ID</emphasis>: CARD32 + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Identifies the session that can be started by the manager. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> + <para> +<emphasis remap='I'>Authentication Name</emphasis>: ARRAY8 + </para> + <para> +<emphasis remap='I'>Authentication Data</emphasis>: ARRAY8 + </para> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Is the data sent back to the display to authenticate the manager. +If the Authentication Data is not the value expected by the display, it +should terminate the protocol at this point and display an error to the user. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> + <para> +<emphasis remap='I'>Authorization Name</emphasis>: ARRAY8 + </para> + <para> +<emphasis remap='I'>Authorization Data</emphasis>: ARRAY8 + </para> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Is the data sent to the display to indicate the type of authorization the +manager will be using in the first call to +<function>XOpenDisplay</function> +after the +<function>Manage</function> +packet is received. + </entry> + </row> + + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Semantics: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<para> +An +<function>Accept</function> +packet is sent by a manager in response to a +<function>Request</function> +packet if the manager is willing to establish a connection for the display. +The Session ID is used to identify this connection from any preceding +ones and will be used by the display in its subsequent +<function>Manage</function> +packet. +The Session ID is a 32-bit number that is incremented each time an +<function>Accept</function> +packet is sent as it must be unique over a reasonably long period of time. +</para> +<para> +If the authentication information is invalid, a +<function>Decline</function> +packet will be returned with an appropriate +<function>Status</function> +message. +</para> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Problems/Solutions: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Problem: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +<function>Accept</function> +or +<function>Decline</function> +not received by display. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Indication: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +Display timeout waiting for response to +<function>Request .</function> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Solution: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +Display resends +<function>Request</function> +message. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Problem: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Message received out of order by display. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Indication: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +Display receives +<function>Accept</function> +after +<function>Manage</function> +has been sent. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Solution: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +Display discards +<function>Accept</function> +messages after it has sent a +<function>Manage</function> +message. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Timeout/Retransmission policy: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Like all packets sent from the manager to the display, this packet should +never be retransmitted. + </entry> + </row> + + <row rowsep="0"> + <entry spanname="col1_on"> +<function>Decline</function> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> + <para> +Manager -> Display + </para> + <para> +Additional Fields: + </para> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Status</emphasis>: ARRAY8 + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Is a human readable string indicating the reason for refusal of +service. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> + <para> +<emphasis remap='I'>Authentication Name</emphasis>: +ARRAY8 + </para> + <para> +<emphasis remap='I'>Authentication Data</emphasis>: +ARRAY8 + </para> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Is the data sent back to the display to authenticate the manager. If the +Authentication Data is not the value expected by the display, it +should terminate the protocol at this point and display an error to the user. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Semantics: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +A +<function>Decline</function> +packet is sent by a manager in response to a +<function>Request</function> +packet if the manager is unwilling to establish a connection for the +display. +This is allowed even if the manager had responded +<function>Willing</function> +to a previous query. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Problems/Solutions: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Same as for +<function>Accept .</function> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Timeout/Retransmission policy: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Like all packets sent from a manager to a display, this packet should never +be retransmitted. + </entry> + </row> + + <row rowsep="0"> + <entry spanname="col1_on"> +<function>Manage</function> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> + <para> +Display -> Manager + </para> + <para> +Additional Fields: + </para> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Session ID</emphasis>: CARD32 + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Should contain the nonzero session ID returned in the +<function>Accept</function> +packet. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Display Number</emphasis>: CARD16 + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Must match the value sent in the previous +<function>Request</function> +packet. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Display Class</emphasis>: ARRAY8 + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Specifies the class of the display. +See the Display Class Format section, +which discusses the format of this field. + </entry> + </row> + + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Semantics: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +A +<function>Manage</function> +packet is sent by a display to ask the manager to begin a +session on the display. If the Session ID is correct the manager +should open a connection; otherwise, it should respond with a +<function>Refuse</function> +or +<function>Failed</function> +packet, unless the Session ID matches a currently +running session or a session that has not yet successfully opened the +display but has not given up the attempt. In this latter case, the +<function>Manage</function> +packet should be ignored. +This will work as stream connections give positive success indication +to both halves of the stream, and positive failure indication +to the connection initiator (which will eventually generate a +<function>Failed</function> +packet). + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Valid Responses: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +X connection with correct auth info, +<function>Refuse ,</function> +<function>Failed .</function> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Problems/Solutions: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Problem: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +<function>Manage</function> +not received by manager. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Indication: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +Display timeout waiting for response. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Solution: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +Display resends +<function>Manage</function> +message. + </entry> + </row> + + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Problem: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +<function>Manage</function> +received out of order by manager. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Indication: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +Session already in progress with matching Session ID. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Solution: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +<function>Manage</function> +packet ignored. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Indication: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +Session ID does not match next Session ID. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Solution: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +<function>Refuse</function> +message is sent. + </entry> + </row> + + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Problem: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Display cannot be opened on selected stream. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Indication: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +Display connection setup fails. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Solution: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +<function>Failed</function> +message is sent including a human readable reason. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Problem: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Display open does not succeed before a second manage packet is received +because of a timeout occuring in the display. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Indication: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +<function>Manage</function> +packet received with Session ID matching the session +attempting to connect to the display. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Solution: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +<function>Manage</function> +packet is ignored. As the stream connection will either +succeed, which will result in an active session, or the stream will +eventually give up hope of connecting and send a +<function>Failed</function> +packet; no response to this +<function>Manage</function> +packet is necessary. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Timeout/Retransmission policy: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Timeout after 2 seconds, exponential backoff to 32 seconds. After no more +than 126 seconds, give up and report an error to the user. + </entry> + </row> + + <row rowsep="0"> + <entry spanname="col1_on"> +<function>Refuse</function> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> + <para> +Manager -> Display + </para> + <para> +Additional Fields: + </para> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Session ID</emphasis>: CARD32 + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Should be set to the Session ID received in the +<function>Manage</function> +packet. + </entry> + </row> + + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Semantics: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +A +<function>Refuse</function> +packet is sent by a manager when the Session ID received in the +<function>Manage</function> +packet does not match the current Session ID. +The display should assume that it received an old +<function>Accept</function> +packet and should resend its +<function>Request</function> +packet. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Problems/Solutions: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Problem: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Error message is lost. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Indication: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +Display times out waiting for +new connection, +<function>Refuse</function> +or +<function>Failed .</function> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Solution: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +Display resends +<function>Manage</function> +message. + </entry> + </row> + + + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Timeout/Retransmission policy: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Like all packets sent from a manager to a display, this packet should never be +retransmitted. + </entry> + </row> + + <row rowsep="0"> + <entry spanname="col1_on"> +<function>Failed</function> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> + <para> +Manager -> Display + </para> + <para> +Additional Fields: + </para> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Session ID</emphasis>: CARD32 + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Should be set to the Session ID received in the +<function>Manage</function> +packet. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Status</emphasis>: ARRAY8 + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Is a human readable string indicating the reason for failure. + </entry> + </row> + + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Semantics: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +A +<function>Failed</function> +packet is sent by a manager when it has problems establishing +the initial X connection in response to the +<function>Manage</function> +packet. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Problems/Solutions + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Same as for +<function>Refuse .</function> + </entry> + </row> + + <row rowsep="0"> + <entry spanname="col1_on"> +<function>KeepAlive</function> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> + <para> +Display -> Manager + </para> + <para> +Additional Fields: + </para> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Display Number</emphasis>: CARD16 + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Set to the display index for the display host. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Session ID</emphasis>: CARD32 + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Should be set to the Session ID received in the +<function>Manage</function> +packet during the negotiation for the current session. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Sematics: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> + <para> +A +<function>KeepAlive</function> +packet can be sent at any time during the session by a +display to discover if the manager is running. +The manager should respond with +<function>Alive</function> +whenever it receives this type of packet. + </para> + <para> +This allows the display to discover when the manager host +is no longer running. +A display is not required to send +<function>KeepAlive</function> +packets and, upon lack of receipt of +<function>Alive</function> +packets, is not required to perform any specific action. + </para> + <para> +The expected use of this packet is to terminate an active session when the +manager host or network link fails. The display should keep track of the +time since any packet has been received from the manager host and use +<function>KeepAlive</function> +packets when a substantial time has elapsed since the +most recent packet. + </para> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Valid Responses: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<function>Alive</function> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Problems/Solutions: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +Problem: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Manager does not receive the packet or display does not receive the response. + </entry> + </row> + + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Indication: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +No +<function>Alive</function> +packet is returned. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Solution: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col5_on"> +Retransmit the packet with an exponential backoff; start at 2 seconds and +assume the host is not up after no less than 30 seconds. + </entry> + </row> + + <row rowsep="0"> + <entry spanname="col1_on"> +<function>Alive</function> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> + <para> +Manager -> Display + </para> + <para> +Additional Fields: + </para> + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Session Running</emphasis>: CARD8 + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Indicates that the session identified by Session ID is +currently active. The value is zero if no session is active +or one if a session +is active. + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +<emphasis remap='I'>Session ID</emphasis>: CARD32 + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry></entry> + <entry spanname="col4_on"> +Specifies the ID of the currently running session; if any. +When no session is active this field should be zero. + </entry> + </row> + + + <row rowsep="0"> + <entry></entry> + <entry spanname="col2_on"> +Semantics: + </entry> + </row> + + <row rowsep="0"> + <entry></entry> + <entry></entry> + <entry spanname="col3_on"> +An +<function>Alive</function> +packet is sent in response to a +<function>KeepAlive</function> +request. +If a session is currently active on the display, the manager includes the +Session ID in the packet. The display can use this information to +determine the status of the manager. + </entry> + </row> + </tbody> + </tgroup> +</informaltable> + +</chapter> + +<chapter id="Session_Termination"> +<title>Session Termination</title> +<para> +When the session is over, the initial connection with the display (the one +that acknowledges the +<function>Manage</function> +packet) will be closed by the manager. +If only a single session was active on the display, +all other connections should be closed by the display +and the display should be reset. If multiple sessions +are active simultaneously and the display can identify which connections +belong to the terminated sesssion, those connections should be closed. +Otherwise, all connections should be closed and the display reset only when +all sessions have been terminated (that is, all initial connections closed). +</para> + +<para> +The session may also be terminated at any time by the display if the +managing host no longer responds to +<function>KeepAlive</function> +packets. +The exact time-outs for sending +<function>KeepAlive</function> +packets is not specified in this protocol as the trade off +should not be fixed between loading an otherwise idle system with spurious +<function>KeepAlive</function> +packets and not noticing that the manager host is down for a long time. +</para> +</chapter> + +<chapter id="State_Diagrams"> +<title>State Diagrams</title> +<!-- .XS --> +<!-- (SN State Diagrams --> +<!-- .XE --> +<para> +<!-- .LP --> +The following state diagrams are designed to cover all actions of both +the display and the manager. Any packet that is received out-of-sequence +will be ignored. +</para> +<para> +<!-- .LP --> +Display: +</para> + +<variablelist> + <varlistentry> + <term><emphasis remap='I'>start</emphasis>:</term> + <listitem> + <para> +User-requested connect to one host -> <emphasis remap='I'>query</emphasis> + </para> + <para> +User-requested connect to some host -> <emphasis remap='I'>broadcast</emphasis> + </para> + <para> +User-requested connect to site host-list -> <emphasis remap='I'>indirect</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>query</emphasis>:</term> + <listitem> + <para> +Send <function>Query</function> packet +-> <emphasis remap='I'>collect-query</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>collect-query</emphasis>:</term> + <listitem> + <para> +Receive <function>Willing</function> -> +<emphasis remap='I'>start-connection</emphasis> + </para> + <para> +Receive <function>Unwilling</function> -> +<emphasis remap='I'>stop-connection</emphasis> + </para> + <para> +Timeout -> <emphasis remap='I'>query</emphasis> + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis remap='I'>broadcast</emphasis>:</term> + <listitem> + <para> +Send <function>BroadcastQuery</function> packet + </para> + <para> +-> <emphasis remap='I'>collect-broadcast-query</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>collect-broadcast-query</emphasis>:</term> + <listitem> + <para> +Receive <function>Willing</function> -> +<emphasis remap='I'>update-broadcast-willing</emphasis> + </para> + <para> +User-requested connect to one host -> +<emphasis remap='I'>start-connection</emphasis> + </para> + <para> +Timeout -> <emphasis remap='I'>broadcast</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>update-broadcast-willing</emphasis>:</term> + <listitem> + <para> +Add new host to the host list presented to the user + </para> + <para> +-> <emphasis remap='I'>collect-broadcast-query</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>indirect</emphasis>:</term> + <listitem> + <para> +Send <function>IndirectQuery</function> packet + </para> + <para> +-> <emphasis remap='I'>collect-indirect-query</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>collect-indirect-query</emphasis>:</term> + <listitem> + <para> +Receive <function>Willing</function> -> +<emphasis remap='I'>update-indirect-willing</emphasis> + </para> + <para> +User-requested connect to one host -> +<emphasis remap='I'>start-connection</emphasis> + </para> + <para> +Timeout -> <emphasis remap='I'>indirect</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>update-indirect-willing</emphasis>:</term> + <listitem> + <para> +Add new host to the host list presented to the user + </para> + <para> +-> <emphasis remap='I'>collect-indirect-query</emphasis> + </para> + </listitem> + </varlistentry> + + <varlistentry> + <term><emphasis remap='I'>start-connection</emphasis>:</term> + <listitem> + <para> +Send <function>Request</function> packet + </para> + <para> +-> <emphasis remap='I'>await-request-response</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>await-request-response</emphasis>:</term> + <listitem> + <para> +Receive <function>Accept</function> -> +<emphasis remap='I'>manage</emphasis> + </para> + <para> +Receive <function>Decline</function> -> +<emphasis remap='I'>stop-connection</emphasis> + </para> + <para> +Timeout -> <emphasis remap='I'>start-connection</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>manage</emphasis>:</term> + <listitem> + <para> +Save Session ID + </para> + <para> +Send <function>Manage</function> packet with Session ID + </para> + <para> +-> <emphasis remap='I'>await-manage-response</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>await-manage-response</emphasis>:</term> + <listitem> + <para> +Receive <function>XOpenDisplay :</function> -> +<emphasis remap='I'>run-session</emphasis> + </para> + <para> +Receive <function>Refuse</function> with matching Session ID +-> <emphasis remap='I'>start-connection</emphasis> + </para> + <para> +Receive <function>Failed</function> with matching Session ID +-> <emphasis remap='I'>stop-connection</emphasis> + </para> + <para> +Timeout -> <emphasis remap='I'>manage</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>stop-connection</emphasis>:</term> + <listitem> + <para> +Display cause of termination to user + </para> + <para> +-> <emphasis remap='I'>start</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>run-session</emphasis>:</term> + <listitem> + <para> +Decide to send <function>KeepAlive</function> packet -> +<emphasis remap='I'>keep-alive</emphasis> + </para> + <para> +wait close of first display connection + </para> + <para> +-> <emphasis remap='I'>reset-display</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>keep-alive</emphasis>:</term> + <listitem> + <para> +Send <function>KeepAlive</function> packet with current Session ID + </para> + <para> +-> <emphasis remap='I'>await-alive</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>await-alive</emphasis>:</term> + <listitem> + <para> +Receive <function>Alive</function> with matching Session ID -> +<emphasis remap='I'>run-session</emphasis> + </para> + <para> +Receive <function>Alive</function> with nonmatching Session ID +or FALSE Session Running -> <emphasis remap='I'>reset-display</emphasis> + </para> + <para> +Final timeout without receiving <function>Alive</function> +packet -> <emphasis remap='I'>reset-display</emphasis> + </para> + <para> +Timeout -> <emphasis remap='I'>keep-alive</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>reset-display</emphasis>:</term> + <listitem> + <para> +(if possible) -> close all display connections associated with this session + </para> + <para> +Last session -> close all display connections + </para> + <para> +-> <emphasis remap='I'>start</emphasis> + </para> + </listitem> + </varlistentry> +</variablelist> + + +<para> +Manager: +</para> + +<variablelist> + <varlistentry> + <term><emphasis remap='I'>idle</emphasis>:</term> + <listitem> + <para> +Receive <function>Query</function> -> +<emphasis remap='I'>query-respond</emphasis> + </para> + <para> +Receive +<function>BroadcastQuery</function> +-> <emphasis remap='I'>broadcast-respond</emphasis> + </para> + <para> +Receive +<function>IndirectQuery</function> +-> <emphasis remap='I'>indirect-respond</emphasis> + </para> + <para> +Receive +<function>ForwardQuery</function> +-> <emphasis remap='I'>forward-respond</emphasis> +Receive + </para> + <para> +<function>Request</function> +-> <emphasis remap='I'>request-respond</emphasis> + </para> + <para> +Receive +<function>Manage</function> +-> <emphasis remap='I'>manage</emphasis> + </para> + <para> +An active session terminates +-> <emphasis remap='I'>finish-session</emphasis> + </para> + <para> +Receive <function>KeepAlive</function> +-> <emphasis remap='I'>send-alive</emphasis> + </para> + <para> +-> <emphasis remap='I'>idle</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>query-respond</emphasis>:</term> + <listitem> + <para> +If willing to manage -> <emphasis remap='I'>send-willing</emphasis> + </para> + <para> +-> <emphasis remap='I'>send-unwilling</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>broadcast-respond</emphasis>:</term> + <listitem> + <para> +If willing to manage -> <emphasis remap='I'>send-willing</emphasis> + </para> + <para> +-> <emphasis remap='I'>idle</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>indirect-respond</emphasis>:</term> + <listitem> + <para> +Send <function>ForwardQuery</function> +packets to all managers on redirect list + </para> + <para> +If willing to manage -> <emphasis remap='I'>send-willing</emphasis> + </para> + <para> +-> <emphasis remap='I'>idle</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>forward-respond</emphasis>:</term> + <listitem> + <para> +Decode destination address, if willing to manage -> +<emphasis remap='I'>send-willing</emphasis> + </para> + <para> +-> <emphasis remap='I'>idle</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>send-willing</emphasis>:</term> + <listitem> + <para> +Send <function>Willing</function> packet + </para> + <para> +-> <emphasis remap='I'>idle</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>send-unwilling</emphasis>:</term> + <listitem> + <para> +Send <function>Unwilling</function> packet +-> <emphasis remap='I'>idle</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>request-respond</emphasis>:</term> + <listitem> + <para> +If manager is willing to allow a session on display +-> <emphasis remap='I'>accept-session</emphasis> + </para> + <para> +-> <emphasis remap='I'>decline-session</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>accept-session</emphasis>:</term> + <listitem> + <para> +Generate Session ID and save Session ID, display address, and +display number somewhere + </para> + <para> +Send <function>Accept</function> packet + </para> + <para> +-> <emphasis remap='I'>idle</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>decline-session</emphasis>:</term> + <listitem> + <para> +Send <function>Decline</function> packet + </para> + <para> +-> <emphasis remap='I'>idle</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>manage</emphasis>:</term> + <listitem> + <para> +If Session ID matches saved Session ID -> +<emphasis remap='I'>run-session</emphasis> + </para> + <para> +If Session ID matches Session ID of session in process of +starting up, or currently active session -> +<emphasis remap='I'>idle</emphasis> + </para> + <para> +-> <emphasis remap='I'>refuse</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>refuse</emphasis>:</term> + <listitem> + <para> +Send <function>Refuse</function> packet + </para> + <para> +-> <emphasis remap='I'>idle</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>run-session</emphasis>:</term> + <listitem> + <para> +Terminate any session in progress + </para> + <para> +<function>XOpenDisplay</function> + </para> + <para> +Open display succeeds -> +<emphasis remap='I'>start-session</emphasis> + </para> + <para> +-> <emphasis remap='I'>failed</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>failed</emphasis>:</term> + <listitem> + <para> +Send <function>Failed</function> packet + </para> + <para> +-> <emphasis remap='I'>idle</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>start-session</emphasis>:</term> + <listitem> + <para> +Start a new session + </para> + <para> +-> <emphasis remap='I'>idle</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>finish-session</emphasis>:</term> + <listitem> + <para> +<function>XCloseDisplay</function> + </para> + <para> +-> <emphasis remap='I'>idle</emphasis> + </para> + </listitem> + </varlistentry> + <varlistentry> + <term><emphasis remap='I'>send-alive</emphasis>:</term> + <listitem> + <para> +Send <function>Alive</function> packet containing current status + </para> + <para> +-> <emphasis remap='I'>idle</emphasis> + </para> + </listitem> + </varlistentry> +</variablelist> + +</chapter> + +<chapter id="Protocol_Encoding"> +<title>Protocol Encoding</title> +<para> +When XDMCP is implemented on top of the Internet User Datagram Protocol (UDP), +port number 177 is to be used. When using UDP over IPv4, Broadcast Query +packets are sent via UDP broadcast. When using UDP over IPv6, Broadcast Query +packets are sent via multicast, either to an address in the IANA registered +XDMCP multicast address range of +FF0<emphasis remap='I'>X</emphasis>:0:0:0:0:0:0:12B +(where the <emphasis remap='I'>X</emphasis> is replaced by a valid scope id) +or to a locally assigned +multicast address. The version number in all packets will be 1. +Packet opcodes are 16-bit integers. +</para> + +<informaltable frame="none"> + <tgroup cols='2' align='left'> + <colspec colname='c1' colsep="0"/> + <colspec colname='c2' colsep="0"/> + <thead> + <row> + <entry>Packet Name</entry> + <entry>Encoding</entry> + </row> + </thead> + <tbody> + <row rowsep="0"> + <entry>BroadcastQuery</entry> + <entry>1</entry> + </row> + <row rowsep="0"> + <entry>Query</entry> + <entry>2</entry> + </row> + <row rowsep="0"> + <entry>IndirectQuery</entry> + <entry>3</entry> + </row> + <row rowsep="0"> + <entry>ForwardQuery</entry> + <entry>4</entry> + </row> + <row rowsep="0"> + <entry>Willing</entry> + <entry>5</entry> + </row> + <row rowsep="0"> + <entry>Unwilling</entry> + <entry>6</entry> + </row> + <row rowsep="0"> + <entry>Request</entry> + <entry>7</entry> + </row> + <row rowsep="0"> + <entry>Accept</entry> + <entry>8</entry> + </row> + <row rowsep="0"> + <entry>Decline</entry> + <entry>9</entry> + </row> + <row rowsep="0"> + <entry>Manage</entry> + <entry>10</entry> + </row> + <row rowsep="0"> + <entry>Refuse</entry> + <entry>11</entry> + </row> + <row rowsep="0"> + <entry>Failed</entry> + <entry>12</entry> + </row> + <row rowsep="0"> + <entry>KeepAlive</entry> + <entry>13 +<footnote><para> +A previous version of this document incorrectly reversed the opcodes of +<emphasis role="bold">Alive</emphasis> and +<emphasis role="bold">KeepAlive</emphasis>. +</para></footnote> + </entry> + </row> + <row rowsep="0"> + <entry>Alive</entry> + <entry>14 +<footnote><para> +A previous version of this document incorrectly reversed the opcodes of +<emphasis role="bold">Alive</emphasis> and +<emphasis role="bold">KeepAlive</emphasis>. +</para></footnote> + </entry> + </row> + </tbody> + </tgroup> +</informaltable> + +<para> +Per packet information follows: +</para> + +<para> +<function>Query</function>, +<function>BroadcastQuery</function>, +<function>IndirectQuery</function> +</para> + +<literallayout class="monospaced"> + 2 CARD16 version number (always 1) + 2 CARD16 opcode (always Query, BroadcastQuery or IndirectQuery) + 2 CARD16 length + 1 CARD8 number of Authentication Names sent (m) + 2 CARD16 length of first Authentication Name (m<emphasis role="subscript">1</emphasis>) + m<emphasis role="subscript">1</emphasis> CARD8 first Authentication Name + ... Other Authentication Names +</literallayout> + +<para> +Note that these three packets are identical except for the opcode field. +</para> + +<literallayout class="monospaced"> +<function>ForwardQuery</function> + 2 CARD16 version number (always 1) + 2 CARD16 opcode (always ForwardQuery) + 2 CARD16 length + 2 CARD16 length of Client Address (m) + m CARD8 Client Address + 2 CARD16 length of Client Port (n) + n CARD8 Client Port + 1 CARD8 number of Authentication Names sent (o) + 2 CARD16 length of first Authentication Name (o<emphasis role="subscript">1</emphasis>) + o<emphasis role="subscript">1</emphasis> CARD8 first Authentication Name + ... Other Authentication Names +</literallayout> + +<literallayout class="monospaced"> +<function>Willing</function> + 2 CARD16 version number (always 1) + 2 CARD16 opcode (always Willing) + 2 CARD16 length (6 + m + n + o) + 2 CARD16 Length of Authentication Name (m) + m CARD8 Authentication Name + 2 CARD16 Hostname length (n) + n CARD8 Hostname + 2 CARD16 Status length (o) + o CARD8 Status +</literallayout> + +<literallayout class="monospaced"> +<function>Unwilling</function> + 2 CARD16 version number (always 1) + 2 CARD16 opcode (always Unwilling) + 2 CARD16 length (4 + m + n) + 2 CARD16 Hostname length (m) + m CARD8 Hostname + 2 CARD16 Status length (n) + n CARD8 Status +</literallayout> + +<literallayout class="monospaced"> +<function>Request</function> + 2 CARD16 version number (always 1) + 2 CARD16 opcode (always Request) + 2 CARD16 length + 2 CARD16 Display Number + 1 CARD8 Count of Connection Types (m) + 2xm CARD16 Connection Types + 1 CARD8 Count of Connection Addresses (n) + 2 CARD16 Length of first Connection Address (n<emphasis role="subscript">1</emphasis>) + n<emphasis role="subscript">1</emphasis> CARD8 First Connection Address + ... Other connection addresses + 2 CARD16 Length of Authentication Name (o) + o CARD8 Authentication Name + 2 CARD16 Length of Authentication Data (p) + p CARD8 Authentication Data + 1 CARD8 Count of Authorization Names (q) + 2 CARD16 Length of first Authorization Name (q<emphasis role="subscript">1</emphasis>) + q<emphasis role="subscript">1</emphasis> CARD8 First Authorization Name + ... Other authorization names + 2 CARD16 Length of Manufacturer Display ID (r) + r CARD8 Manufacturer Display ID +</literallayout> + +<literallayout class="monospaced"> +<function>Accept</function> + 2 CARD16 version number (always 1) + 2 CARD16 opcode (always Accept) + 2 CARD16 length (12 + n + m + o + p) + 4 CARD32 Session ID + 2 CARD16 Length of Authentication Name (n) + n CARD8 Authentication Name + 2 CARD16 Length of Authentication Data (m) + m CARD8 Authentication Data + 2 CARD16 Length of Authorization Name (o) + o CARD8 Authorization Name + 2 CARD16 Length of Authorization Data (p) + p CARD8 Authorization Data +</literallayout> + +<literallayout class="monospaced"> +<function>Decline</function> + 2 CARD16 version number (always 1) + 2 CARD16 opcode (always Decline) + 2 CARD16 length (6 + m + n + o) + 2 CARD16 Length of Status (m) + m CARD8 Status + 2 CARD16 Length of Authentication Name (n) + n CARD8 Authentication Name + 2 CARD16 Length of Authentication Data (o) + o CARD8 Authentication Data +</literallayout> + +<literallayout class="monospaced"> +<function>Manage</function> + 2 CARD16 version number (always 1) + 2 CARD16 opcode (always Manage) + 2 CARD16 length (8 + m) + 4 CARD32 Session ID + 2 CARD16 Display Number + 2 CARD16 Length of Display Class (m) + m CARD8 Display Class +</literallayout> + +<literallayout class="monospaced"> +<function>Refuse</function> + 2 CARD16 version number (always 1) + 2 CARD16 opcode (always Refuse) + 2 CARD16 length (4) + 4 CARD32 Session ID +</literallayout> + +<literallayout class="monospaced"> +<function>Failed</function> + 2 CARD16 version number (always 1) + 2 CARD16 opcode (always Failed) + 2 CARD16 length (6 + m) + 4 CARD32 Session ID + 2 CARD16 Length of Status (m) + m CARD8 Status +</literallayout> + +<literallayout class="monospaced"> +<function>KeepAlive</function> + 2 CARD16 version number (always 1) + 2 CARD16 opcode (always KeepAlive) + 2 CARD16 length (6) + 2 CARD16 Display Number + 4 CARD32 Session ID +</literallayout> + +<literallayout class="monospaced"> +<function>Alive</function> + 2 CARD16 version number (always 1) + 2 CARD16 opcode (always Alive) + 2 CARD16 length (5) + 1 CARD8 Session Running (0: not running 1: running) + 4 CARD32 Session ID (0: not running) +</literallayout> +</chapter> + +<chapter id="Display_Class_Format"> +<title>Display Class Format</title> +<!-- .XS --> +<!-- (SN Display Class Format --> +<!-- .XE --> +<para> +The Display Class field of the +<function>Manage</function> +packet is used by the display manager to collect common sorts of +displays into manageable groups. This field is a string encoded of +ISO-LATIN-1 characters in the following format: +</para> + +<literallayout class="monospaced"> +<emphasis remap='I'>ManufacturerID</emphasis>-<emphasis remap='I'>ModelNumber</emphasis> +</literallayout> + +<para> +Both elements of this string must exclude characters of the set +{ <function>-</function>, +<function>.</function>, +<function>:</function>, +<function>*</function>, +<function>?</function>, +<emphasis remap='I'><space></emphasis> }. +The ManufacturerID is a string that should be registered +with the X Consortium. +The ModelNumber is designed to identify characteristics of the display +within the manufacturer's product line. +This string should be documented in the users manual for the +particular device and should probably not be specifiable by the +display user to avoid unexpected configuration errors. +</para> +</chapter> + +<chapter id="Manufacturer_Display_ID_Format"> +<title>Manufacturer Display ID Format</title> +<!-- .XS --> +<!-- (SN Manufacturer Display ID Format --> +<!-- .XE --> +<para> +To authenticate the manager, the display and manager will share a private +key. +The manager, then, must be able to discover which key to use for a +particular device. +The Manufacturer Display ID field of the +<function>Request</function> +packet is intended for this purpose. Typically, the manager host will +contain a map between this number and the key. This field is intended to be +unique per display, possibly the ethernet address of the display in the form: +</para> + +<literallayout class="monospaced"> +-Ethernet-8:0:2b:a:f:d2 +</literallayout> + +<para> +It can also be a string of the form: +</para> + +<literallayout class="monospaced"> +<emphasis remap='I'>ManufacturerID</emphasis>-<emphasis remap='I'>ModelNumber</emphasis>-<emphasis remap='I'>SerialNumber</emphasis> +</literallayout> + +<para> +The ManufacturerID, ModelNumber and SerialNumber are encoded using +ISO-LATIN-1 characters, excluding { +<function>-</function>, +<function>.</function>, +<function>*</function>, +<function>?</function>, +<emphasis remap='I'><space></emphasis> } +</para> + +<para> +When the display is shipped to a customer, it should include both the +Manufacturer Display ID and the private key in the documentation set. +This information should not be modifiable by the display user. +</para> + +</chapter> + +<chapter id="Authentication"> +<title>Authentication</title> +<!-- .XS --> +<!-- (SN Authentication --> +<!-- .XE --> +<para> +In an environment where authentication is not needed, XDMCP can disable +authentication by having the display send empty Authentication Name +and Authentication Data fields in the +<function>Request</function> +packet. +In this case, the manager will not attempt to authenticate itself. +Other authentication protocols may be developed, depending on local needs. +</para> + +<para> +In an unsecure environment, the display must be able to verify that the +source of the various packets is a trusted manager. These packets will +contain authentication information. As an example of such a system, the +following discussion describes the "XDM-AUTHENTICATION-1" authentication +system. This system uses a 56-bit shared private key, and 64 bits of +authentication data. An associated example X authorization protocol +"XDM-AUTHORIZATION-1" will also be discussed. The 56-bit key is represented +as a 64-bit number in network order (big endian). This means that the first +octet in the representation will be zero. When incrementing a 64-bit value, +the 8 octets of data will be interpreted in network order (big endian). +That is, the last octet will be incremented, subsequent carries propogate +towards the first octet. +</para> + +<para> +Assumptions: +</para> + +<orderedlist> + <listitem> + <para> +The display and manager share a private key. This key could be programmed +into the display by the manufacturer and shipped with the unit. It must not +be available from the display itself, but should allow the value to be +modified in some way. The system administrator would be responsible for +managing a database of terminal keys. + </para> + </listitem> + <listitem> + <para> +The display can generate random authentication numbers. + </para> + </listitem> +</orderedlist> + +<para> +Some definitions first: +</para> + +<!-- FIXME: --> +<!-- double chk math symbols, use mathml to display them? --> +<itemizedlist> + <listitem> + <para> +{&variable.D;}<superscript>&variable.kappa;</superscript> = encryption of plain text D by key &variable.kappa; + </para> + </listitem> + <listitem> + <para> +{&variable.Delta;}*<superscript>&variable.kappa;</superscript> = decryption of crypto text &variable.Delta; with key &variable.kappa; + </para> + </listitem> + <listitem> + <para> +&variable.tau; = private key shared by display and manager + </para> + </listitem> + <listitem> + <para> +&variable.rho; = 64 bit random number generated by display + </para> + </listitem> + <listitem> + <para> +&variable.alpha; = authentication data in XDMCP packets + </para> + </listitem> + <listitem> + <para> +&variable.sigma; = per-session private key, generated by manager + </para> + </listitem> + <listitem> + <para> +&variable.beta; = authorization data + </para> + </listitem> +</itemizedlist> + +<para> +Encryption will use the Data Encryption Standard (DES, FIPS 46-3); blocks +shorter than 64 bits will be zero-filled +on the right to 64 bits. Blocks longer than 64 bits will use block chaining: +</para> +<para> +{&variable.D;}<superscript>&variable.kappa;</superscript> = {&variable.D;<subscript>1</subscript>}<superscript>&variable.kappa;</superscript> {&variable.D;<subscript>2</subscript> xor {&variable.D;<subscript>1</subscript>}<superscript>&variable.kappa;</superscript>}<superscript>&variable.kappa;</superscript> +</para> + +<para> +The display generates the first authentication data in the +<function>Request</function> +packet: +</para> + +<para> +&variable.alpha;<subscript>Request</subscript> = {&variable.rho;}<superscript>&variable.tau;</superscript> +</para> + +<para> +For the <function>Accept</function> +packet, the manager decrypts the initial message and returns +&variable.alpha;<subscript>Accept</subscript>: + +</para> + +<para> +&variable.rho; = {&variable.alpha;<subscript>Request</subscript>}*<superscript>&variable.tau;</superscript> +</para> + +<para> +&variable.alpha;<subscript>Accept</subscript> = { &variable.rho; + 1}<superscript>&variable.tau;</superscript> +</para> + +<para> +The <function>Accept</function> +packet also contains the authorization intended for use by +the X server. A description of authorization type "XDM-AUTHORIZATION-1" +follows. +</para> + +<para> +The <function>Accept</function> +packet contains the authorization name +"XDM-AUTHORIZATION-1". The authorization data is the string: +</para> +<para> +&variable.beta;<subscript>Accept</subscript> = {&variable.sigma;}<superscript>&variable.tau;</superscript> +</para> + +<para> +To create authorization information for connection setup with the X server +using the XDM-AUTHORIZATION-1 authorization protocol, the client computes the +following: +</para> +<para> +&variable.N; = X client identifier +</para> +<para> +&variable.T; = Current time in seconds on client host (32 bits) +</para> +<para> +&variable.beta; = {&variable.rho;&variable.N;&variable.T;}<superscript>&variable.sigma;</superscript> +</para> + +<para> +For TCP connections &variable.N; is 48 bits long and contains the 32-bit IPv4 address of +the client host followed by the 16-bit port number of the client socket. +Formats for other connections must be registered. +The resulting value, &variable.beta;, is 192 bits of authorization data that is sent +in the connection setup to the server. The server receives the packet, +decrypts the contents. To accept the connection, the following must hold: +</para> + +<itemizedlist> + <listitem> + <para> +&variable.rho; must match the value generated for the most recent XDMCP negotiation. + </para> + </listitem> + <listitem> + <para> +&variable.T; must be within 1200 seconds of the internally stored time. If no time +been received before, the current time is set to &variable.T;. + </para> + </listitem> + <listitem> + <para> +No packet containing the same pair (&variable.N;, &variable.T;) can have been received +in the last 1200 seconds (20 minutes). + </para> + </listitem> +</itemizedlist> +</chapter> +</book> diff --git a/libXdmcp/docbook.am b/libXdmcp/docbook.am index 2ffb7e60a..bba4d5453 100644 --- a/libXdmcp/docbook.am +++ b/libXdmcp/docbook.am @@ -21,74 +21,82 @@ shelf_DATA = dist_shelf_DATA = $(docbook) $(chapters) if HAVE_XMLTO -# -# Generate DocBook/XML output formats with or without stylesheets -# - -# Stylesheets are available if the package xorg-sgml-doctools is installed if HAVE_STYLESHEETS -# The location where all cross reference databases are installed -sgmldbsdir = $(XORG_SGML_PATH)/X11/dbs -masterdb = "$(sgmldbsdir)/masterdb$(suffix $@).xml" -XMLTO_FLAGS = \ - --searchpath "$(XORG_SGML_PATH)/X11" \ - --stringparam target.database.document=$(masterdb) \ - --stringparam current.docid="$(<:.xml=)" \ - --stringparam collect.xref.targets="no" - -XMLTO_XHTML_FLAGS = \ - -x $(STYLESHEET_SRCDIR)/xorg-xhtml.xsl \ - --stringparam html.stylesheet=$(STYLESHEET_SRCDIR)/xorg.css - -XMLTO_FO_FLAGS = \ - -x $(STYLESHEET_SRCDIR)/xorg-fo.xsl -endif HAVE_STYLESHEETS +XMLTO_SEARCHPATH_FLAGS = \ + --searchpath "$(XORG_SGML_PATH)/X11" \ + --searchpath "$(abs_top_builddir)" +XMLTO_HTML_OLINK_FLAGS = \ + --stringparam target.database.document=$(XORG_SGML_PATH)/X11/dbs/masterdb.html.xml \ + --stringparam current.docid="$(<:.xml=)" +XMLTO_HTML_STYLESHEET_FLAGS = -x $(STYLESHEET_SRCDIR)/xorg-xhtml.xsl +XMLTO_HTML_FLAGS = \ + $(XMLTO_SEARCHPATH_FLAGS) \ + $(XMLTO_HTML_STYLESHEET_FLAGS) \ + $(XMLTO_HTML_OLINK_FLAGS) shelf_DATA += $(docbook:.xml=.html) -%.html: %.xml $(chapters) - $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) $(XMLTO_XHTML_FLAGS) xhtml-nochunks $< - -if HAVE_FOP -shelf_DATA += $(docbook:.xml=.pdf) $(docbook:.xml=.ps) -%.pdf: %.xml $(chapters) - $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) $(XMLTO_FO_FLAGS) --with-fop pdf $< -%.ps: %.xml $(chapters) - $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) $(XMLTO_FO_FLAGS) --with-fop ps $< -endif HAVE_FOP +%.html: %.xml $(chapters) + $(AM_V_GEN)$(XMLTO) $(XMLTO_HTML_FLAGS) xhtml-nochunks $< if HAVE_XMLTO_TEXT + shelf_DATA += $(docbook:.xml=.txt) %.txt: %.xml $(chapters) - $(AM_V_GEN)$(XMLTO) $(XMLTO_FLAGS) $(XMLTO_XHTML_FLAGS) txt $< + $(AM_V_GEN)$(XMLTO) $(XMLTO_HTML_FLAGS) txt $< endif HAVE_XMLTO_TEXT -# -# Generate documents cross-reference target databases -# +if HAVE_FOP +XMLTO_FO_IMAGEPATH_FLAGS = --stringparam img.src.path=$(abs_builddir)/ +XMLTO_PDF_OLINK_FLAGS = \ + --stringparam target.database.document=$(XORG_SGML_PATH)/X11/dbs/masterdb.pdf.xml \ + --stringparam current.docid="$(<:.xml=)" +XMLTO_FO_STYLESHEET_FLAGS = -x $(STYLESHEET_SRCDIR)/xorg-fo.xsl + +XMLTO_FO_FLAGS = \ + $(XMLTO_SEARCHPATH_FLAGS) \ + $(XMLTO_FO_STYLESHEET_FLAGS) \ + $(XMLTO_FO_IMAGEPATH_FLAGS) \ + $(XMLTO_PDF_OLINK_FLAGS) + +shelf_DATA += $(docbook:.xml=.pdf) +%.pdf: %.xml $(chapters) + $(AM_V_GEN)$(XMLTO) $(XMLTO_FO_FLAGS) --with-fop pdf $< -# This is only possible if the xorg-sgml-doctools package is installed -if HAVE_STYLESHEETS -if HAVE_XSLTPROC +shelf_DATA += $(docbook:.xml=.ps) +%.ps: %.xml $(chapters) + $(AM_V_GEN)$(XMLTO) $(XMLTO_FO_FLAGS) --with-fop ps $< +endif HAVE_FOP -# DocBook/XML generated document cross-reference database -shelf_DATA += $(docbook:.xml=.html.db) $(docbook:.xml=.fo.db) +# Generate documents cross-reference target databases +if HAVE_XSLTPROC -# Generate DocBook/XML document cross-reference database -# Flags for the XSL Transformation processor generating xref target databases -XSLTPROC_FLAGS = \ +XSLT_SEARCHPATH_FLAGS = \ --path "$(XORG_SGML_PATH)/X11" \ - --stringparam targets.filename "$@" \ - --stringparam collect.xref.targets "only" \ - --nonet --xinclude - + --path "$(abs_top_builddir)" +XSLT_OLINK_FLAGS = \ + --stringparam targets.filename "$@" \ + --stringparam collect.xref.targets "only" \ + --stringparam olink.base.uri "$(@:.db=)" + +XSLT_HTML_FLAGS = \ + $(XSLT_SEARCHPATH_FLAGS) \ + $(XSLT_OLINK_FLAGS) \ + --nonet --xinclude \ + $(STYLESHEET_SRCDIR)/xorg-xhtml.xsl +XSLT_PDF_FLAGS = \ + $(XSLT_SEARCHPATH_FLAGS) \ + $(XSLT_OLINK_FLAGS) \ + --nonet --xinclude \ + $(STYLESHEET_SRCDIR)/xorg-fo.xsl + +shelf_DATA += $(docbook:.xml=.html.db) %.html.db: %.xml $(chapters) - $(AM_V_GEN)$(XSLTPROC) $(XSLTPROC_FLAGS) \ - http://docbook.sourceforge.net/release/xsl/current/xhtml/docbook.xsl $< + $(AM_V_GEN)$(XSLTPROC) $(XSLT_HTML_FLAGS) $< -%.fo.db: %.xml $(chapters) - $(AM_V_GEN)$(XSLTPROC) $(XSLTPROC_FLAGS) \ - http://docbook.sourceforge.net/release/xsl/current/fo/docbook.xsl $< +shelf_DATA += $(docbook:.xml=.pdf.db) +%.pdf.db: %.xml $(chapters) + $(AM_V_GEN)$(XSLTPROC) $(XSLT_PDF_FLAGS) $< endif HAVE_XSLTPROC endif HAVE_STYLESHEETS diff --git a/libXext/specs/dbelib.xml b/libXext/specs/dbelib.xml index 1f9068a7d..c642a511f 100644 --- a/libXext/specs/dbelib.xml +++ b/libXext/specs/dbelib.xml @@ -13,22 +13,22 @@ <title>Double Buffer Extension Library</title> <subtitle>X Consortium Standard</subtitle> <releaseinfo>X Version 11, Release &fullrelvers;</releaseinfo> + <releaseinfo>Version 1.0</releaseinfo> <authorgroup> <author> <firstname>Ian</firstname><surname>Elliot</surname> + <affiliation><orgname>Hewlett-Packard Company</orgname></affiliation> </author> </authorgroup> <othercredit> - <firstname>Davide</firstname><surname>Wiggins</surname> + <firstname>David</firstname><othername>P.</othername><surname>Wiggins</surname> + <affiliation><orgname>X Consortium, Inc</orgname></affiliation> </othercredit> - <corpname>Hewlett-Packard Company</corpname> <copyright><year>1989</year><holder>X Consortium, Inc and Digital Equipment Corporation</holder></copyright> <copyright><year>1992</year><holder>X Consortium, Inc and Intergraph Corporation</holder></copyright> <copyright><year>1993</year><holder>X Consortium, Inc and Silicon Graphics, Inc.</holder></copyright> <copyright><year>1994</year><holder>X Consortium, Inc and Hewlett-Packard Company</holder></copyright> <copyright><year>1995</year><holder>X Consortium, Inc and Hewlett-Packard Company</holder></copyright> - <releaseinfo>Version 1.0</releaseinfo> - <affiliation><orgname>X Consortium</orgname></affiliation> <legalnotice> <para> diff --git a/libXext/specs/dpmslib.xml b/libXext/specs/dpmslib.xml index d0e24472d..93e6398c7 100644 --- a/libXext/specs/dpmslib.xml +++ b/libXext/specs/dpmslib.xml @@ -12,15 +12,15 @@ <title>X Display Power Management Signaling (DPMS) Extension</title> <subtitle>X Consortium Standard</subtitle> <releaseinfo>X Version 11, Release &fullrelvers;</releaseinfo> + <releaseinfo>Version 1.0</releaseinfo> <authorgroup> <author> <firstname>Rob</firstname><surname>Lembree</surname> + <affiliation><orgname>Digital Equipment Corporation</orgname></affiliation> + <email>lembree@zk3.dec.com</email> </author> </authorgroup> - <corpname>Digital Equipment Corporation</corpname> - <copyright><year>1996</year><holder>X Consortium</holder></copyright> - <releaseinfo>Version 1.0</releaseinfo> - <affiliation><orgname>X Consortium</orgname></affiliation> + <copyright><year>1996</year><holder>Digital Equipment Corporation</holder></copyright> <legalnotice> <para> diff --git a/libXext/specs/synclib.xml b/libXext/specs/synclib.xml index 67a7b5255..51b7cf5e3 100644 --- a/libXext/specs/synclib.xml +++ b/libXext/specs/synclib.xml @@ -17,20 +17,30 @@ <authorgroup> <author> <firstname>Tim</firstname><surname>Glauert</surname> - <affiliation><orgname>Olivetti Research/MultiWorks</orgname></affiliation> + <affiliation> + <orgname>Olivetti Research</orgname> + <orgdiv>MultiWorks</orgdiv> + </affiliation> </author> <author> <firstname>Dave</firstname> <surname>Carver</surname> - <affiliation><orgname>Digital Equipment Corporation, MIT/Project Athena</orgname></affiliation> + <affiliation> + <orgname>Digital Equipment Corporation</orgname> + <orgdiv>MIT/Project Athena</orgdiv> + </affiliation> </author> <author> <firstname>Jim</firstname> <surname>Gettys</surname> - <affiliation><orgname>Digital Equipment Corporation, Cambridge Research Laboratory</orgname></affiliation> + <affiliation> + <orgname>Digital Equipment Corporation</orgname> + <orgdiv>Cambridge Research Laboratory</orgdiv> + </affiliation> </author> <author> <firstname>David</firstname> + <othername>P.</othername> <surname>Wiggins</surname> <affiliation><orgname>X Consortium, Inc.</orgname></affiliation> </author> diff --git a/libXext/specs/xtest1.xml b/libXext/specs/xtest1.xml index 22d046767..9229d273e 100644 --- a/libXext/specs/xtest1.xml +++ b/libXext/specs/xtest1.xml @@ -16,9 +16,7 @@ <orgname>Hewlett Packard</orgname></affiliation> </author> </authorgroup> - <corpname>X Consortium Standard</corpname> <copyright><year>1993</year><holder>X Consortium</holder></copyright> - <affiliation><orgname>X Consortium</orgname></affiliation> <abstract> <para> diff --git a/mesalib/src/gallium/auxiliary/util/u_format.c b/mesalib/src/gallium/auxiliary/util/u_format.c index 34922ab18..700382a0f 100644 --- a/mesalib/src/gallium/auxiliary/util/u_format.c +++ b/mesalib/src/gallium/auxiliary/util/u_format.c @@ -67,6 +67,100 @@ util_format_is_float(enum pipe_format format) } +/** + * Return the number of logical channels in the given format by + * examining swizzles. + * XXX this could be made into a public function if useful elsewhere. + */ +static unsigned +nr_logical_channels(const struct util_format_description *desc) +{ + boolean swizzle_used[UTIL_FORMAT_SWIZZLE_MAX]; + + memset(swizzle_used, 0, sizeof(swizzle_used)); + + swizzle_used[desc->swizzle[0]] = TRUE; + swizzle_used[desc->swizzle[1]] = TRUE; + swizzle_used[desc->swizzle[2]] = TRUE; + swizzle_used[desc->swizzle[3]] = TRUE; + + return (swizzle_used[UTIL_FORMAT_SWIZZLE_X] + + swizzle_used[UTIL_FORMAT_SWIZZLE_Y] + + swizzle_used[UTIL_FORMAT_SWIZZLE_Z] + + swizzle_used[UTIL_FORMAT_SWIZZLE_W]); +} + + +/** Test if the format contains RGB, but not alpha */ +boolean +util_format_is_rgb_no_alpha(enum pipe_format format) +{ + const struct util_format_description *desc = + util_format_description(format); + + if ((desc->colorspace == UTIL_FORMAT_COLORSPACE_RGB || + desc->colorspace == UTIL_FORMAT_COLORSPACE_SRGB) && + nr_logical_channels(desc) == 3) { + return TRUE; + } + return FALSE; +} + + +boolean +util_format_is_luminance(enum pipe_format format) +{ + const struct util_format_description *desc = + util_format_description(format); + + if ((desc->colorspace == UTIL_FORMAT_COLORSPACE_RGB || + desc->colorspace == UTIL_FORMAT_COLORSPACE_SRGB) && + desc->swizzle[0] == UTIL_FORMAT_SWIZZLE_X && + desc->swizzle[1] == UTIL_FORMAT_SWIZZLE_X && + desc->swizzle[2] == UTIL_FORMAT_SWIZZLE_X && + desc->swizzle[3] == UTIL_FORMAT_SWIZZLE_1) { + return TRUE; + } + return FALSE; +} + + +boolean +util_format_is_luminance_alpha(enum pipe_format format) +{ + const struct util_format_description *desc = + util_format_description(format); + + if ((desc->colorspace == UTIL_FORMAT_COLORSPACE_RGB || + desc->colorspace == UTIL_FORMAT_COLORSPACE_SRGB) && + desc->swizzle[0] == UTIL_FORMAT_SWIZZLE_X && + desc->swizzle[1] == UTIL_FORMAT_SWIZZLE_X && + desc->swizzle[2] == UTIL_FORMAT_SWIZZLE_X && + desc->swizzle[3] == UTIL_FORMAT_SWIZZLE_Y) { + return TRUE; + } + return FALSE; +} + + +boolean +util_format_is_intensity(enum pipe_format format) +{ + const struct util_format_description *desc = + util_format_description(format); + + if ((desc->colorspace == UTIL_FORMAT_COLORSPACE_RGB || + desc->colorspace == UTIL_FORMAT_COLORSPACE_SRGB) && + desc->swizzle[0] == UTIL_FORMAT_SWIZZLE_X && + desc->swizzle[1] == UTIL_FORMAT_SWIZZLE_X && + desc->swizzle[2] == UTIL_FORMAT_SWIZZLE_X && + desc->swizzle[3] == UTIL_FORMAT_SWIZZLE_X) { + return TRUE; + } + return FALSE; +} + + boolean util_format_is_supported(enum pipe_format format, unsigned bind) { diff --git a/mesalib/src/gallium/auxiliary/util/u_format.h b/mesalib/src/gallium/auxiliary/util/u_format.h index 352710310..2eb3e1b80 100644 --- a/mesalib/src/gallium/auxiliary/util/u_format.h +++ b/mesalib/src/gallium/auxiliary/util/u_format.h @@ -105,7 +105,8 @@ enum util_format_swizzle { UTIL_FORMAT_SWIZZLE_W = 3, UTIL_FORMAT_SWIZZLE_0 = 4, UTIL_FORMAT_SWIZZLE_1 = 5, - UTIL_FORMAT_SWIZZLE_NONE = 6 + UTIL_FORMAT_SWIZZLE_NONE = 6, + UTIL_FORMAT_SWIZZLE_MAX = 7 /**< Number of enums counter (must be last) */ }; @@ -477,6 +478,22 @@ boolean util_format_is_float(enum pipe_format format); +boolean +util_format_is_rgb_no_alpha(enum pipe_format format); + + +boolean +util_format_is_luminance(enum pipe_format format); + + +boolean +util_format_is_luminance_alpha(enum pipe_format format); + + +boolean +util_format_is_intensity(enum pipe_format format); + + /** * Whether the src format can be blitted to destation format with a simple * memcpy. diff --git a/mesalib/src/mesa/main/dlist.c b/mesalib/src/mesa/main/dlist.c index 6e075b4e5..2b2ff9015 100644 --- a/mesalib/src/mesa/main/dlist.c +++ b/mesalib/src/mesa/main/dlist.c @@ -871,7 +871,11 @@ translate_id(GLsizei n, GLenum type, const GLvoid * list) /** * Wrapper for _mesa_unpack_image() that handles pixel buffer objects. - * If we run out of memory, GL_OUT_OF_MEMORY will be recorded. + * If width < 0 or height < 0 or format or type are invalid we'll just + * return NULL. We will not generate an error since OpenGL command + * arguments aren't error-checked until the command is actually executed + * (not when they're compiled). + * But if we run out of memory, GL_OUT_OF_MEMORY will be recorded. */ static GLvoid * unpack_image(struct gl_context *ctx, GLuint dimensions, @@ -879,6 +883,15 @@ unpack_image(struct gl_context *ctx, GLuint dimensions, GLenum format, GLenum type, const GLvoid * pixels, const struct gl_pixelstore_attrib *unpack) { + if (width <= 0 || height <= 0) { + return NULL; + } + + if (_mesa_bytes_per_pixel(format, type) <= 0) { + /* bad format and/or type */ + return NULL; + } + if (!_mesa_is_bufferobj(unpack->BufferObj)) { /* no PBO */ GLvoid *image = _mesa_unpack_image(dimensions, width, height, depth, diff --git a/mesalib/src/mesa/main/drawpix.c b/mesalib/src/mesa/main/drawpix.c index 89c2b2697..b7e2c36e1 100644 --- a/mesalib/src/mesa/main/drawpix.c +++ b/mesalib/src/mesa/main/drawpix.c @@ -62,7 +62,7 @@ _mesa_DrawPixels( GLsizei width, GLsizei height, if (width < 0 || height < 0) { - _mesa_error( ctx, GL_INVALID_VALUE, "glDrawPixels(width or height < 0" ); + _mesa_error( ctx, GL_INVALID_VALUE, "glDrawPixels(width or height < 0)" ); return; } diff --git a/mesalib/src/mesa/state_tracker/st_cb_texture.c b/mesalib/src/mesa/state_tracker/st_cb_texture.c index e4be7fba4..eab02fb3b 100644 --- a/mesalib/src/mesa/state_tracker/st_cb_texture.c +++ b/mesalib/src/mesa/state_tracker/st_cb_texture.c @@ -1829,9 +1829,10 @@ st_finalize_texture(struct gl_context *ctx, /* Need to import images in main memory or held in other textures. */ if (stImage && stObj->pt != stImage->pt) { - if (level == 0 || (stImage->base.Width == u_minify(stObj->width0, level) && - stImage->base.Height == u_minify(stObj->height0, level) && - stImage->base.Depth == u_minify(stObj->depth0, level))) { + if (level == 0 || + (stImage->base.Width == u_minify(stObj->width0, level) && + stImage->base.Height == u_minify(stObj->height0, level) && + stImage->base.Depth == u_minify(stObj->depth0, level))) { /* src image fits expected dest mipmap level size */ copy_image_data_to_texture(st, stObj, level, stImage); } diff --git a/xorg-server/xkeyboard-config/symbols/cm b/xorg-server/xkeyboard-config/symbols/cm index 0bca38ef7..622d62d8b 100644 --- a/xorg-server/xkeyboard-config/symbols/cm +++ b/xorg-server/xkeyboard-config/symbols/cm @@ -146,7 +146,7 @@ xkb_symbols "azerty" key <AB01> { [ w, W, U1E85, U1E84 ] }; // SMALL LETTER W, CAPITAL LETTER W, SMALL LETTER W WITH DIAERESIS, CAPITAL LETTER W WITH DIAERESIS key <AB02> { [ x, X, U2039, U203A ] }; // SMALL LETTER X, CAPITAL LETTER X, SINGLE LEFT-POINTING ANGLE QUOTATION MARK, SINGLE RIGHT-POINTING ANGLE QUOTATION MARK key <AB03> { [ c, C, U0327, copyright ] }; // SMALL LETTER C, CAPITAL LETTER C, COMBINING CEDILLA, COPYRIGHT SIGN - key <AB04> { [ v, V, U25CC, NoSymbol ] }; // SMALL LETTER V, CAPITAL LETTER V, PLACEHOLDER CHARACTER + key <AB04> { [ v, V, UA78C, UA78B ] }; // SMALL LETTER V, CAPITAL LETTER V, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO) key <AB05> { [ b, B, U0253, U0181 ] }; // SMALL LETTER B, CAPITAL LETTER B, SMALL LETTER B WITH HOOK, CAPITAL LETTER B WITH HOOK key <AB06> { [ n, N, U014B, U014A ] }; // SMALL LETTER N, CAPITAL LETTER N, SMALL LETTER ENG, CAPITAL LETTER ENG key <AB07> { [ U002C, U003F, NoSymbol, U00D7 ] }; // COMMA, QUESTION MARK, , MULTIPLY @@ -157,8 +157,8 @@ xkb_symbols "azerty" key <AC02> { [ s, S, U201C, U201D ] }; // SMALL LETTER S, CAPITAL LETTER S, LEFT DOUBLE QUOTES, RIGHT DOUBLE QUOTES key <AC03> { [ d, D, U0257, U018A ] }; // SMALL LETTER D, CAPITAL LETTER D, SMALL LETTER D WITH HOOK, CAPITAL LETTER D WITH HOOK key <AC04> { [ f, F, U00E6, U00C6 ] }; // SMALL LETTER F, CAPITAL LETTER F, SMALL LIGATURE AE, CAPITAL LIGATURE AE - key <AC05> { [ g, G, UA78C, UA78B ] }; // SMALL LETTER G, CAPITAL LETTER G, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO) - key <AC06> { [ h, H, U0251, U2C6D ] }; // SMALL LETTER H, CAPITAL LETTER H, SMALL LETTER ALPHA, CAPITAL LETTER ALPHA + key <AC05> { [ g, G, U02BC, UA78B ] }; // SMALL LETTER G, CAPITAL LETTER G, CURVED GLOTTAL, CAPITAL LETTER GLOTTAL (SALTILLO) + key <AC06> { [ h, H, U03B1, U2C6D ] }; // SMALL LETTER H, CAPITAL LETTER H, SMALL LETTER ALPHA, CAPITAL LETTER ALPHA key <AC07> { [ j, J, leftarrow, U2122 ] }; //SMALL LETTER J, CAPITAL LETTER J, LEFT ARROW, TRADE MARK SIGN key <AC08> { [ k, K, downarrow, uparrow ] }; // SMALL LETTER K, CAPITAL LETTER K, DOWN ARROW, UP ARROW key <AC09> { [ l, L, rightarrow, U00A3 ] }; // SMALL LETTER L, CAPITAL LETTER L, RIGHT ARROW, POUND STERLING @@ -167,7 +167,7 @@ xkb_symbols "azerty" key <AD01> { [ a, A, U025B, U0190 ] }; // SMALL LETTER A, CAPITAL LETTER A, SMALL LETTER OPEN E, CAPITAL LETTER OPEN E key <AD02> { [ z, Z, U2026, U2020 ] }; // SMALL LETTER Z, CAPITAL LETTER Z, ELLIPSIS, DAGGER key <AD03> { [ e, E, U0259, U018F ] }; // SMALL LETTER E, CAPITAL LETTER E, SMALL LETTER SCHWA, CAPITAL LETTER SCHWA - key <AD04> { [ r, R, NoSymbol, U00AE ] }; // SMALL LETTER R, CAPITAL LETTER R, , REGISTERED SIGN + key <AD04> { [ r, R, U25CC, U00AE ] }; // SMALL LETTER R, CAPITAL LETTER R, PLACEHOLDER SYMBOL, REGISTERED SIGN key <AD05> { [ t, T, U0153, U0152 ] }; // SMALL LETTER T, CAPITAL LETTER T, SMALL LIGATURE OE, CAPITAL LIGATURE OE key <AD06> { [ y, Y, U01B4, U01B3 ] }; // SMALL LETTER Y, CAPITAL LETTER Y, SMALL LETTER Y WITH HOOK, CAPITAL LETTER Y WITH HOOK key <AD07> { [ u, U, U0289, U0244 ] }; // SMALL LETTER U, CAPITAL LETTER U, SMALL LETTER U BAR, CAPITAL LETTER U BAR @@ -202,8 +202,8 @@ xkb_symbols "qwerty" include "cm(basic)" key <AB01> { [ z, Z, U2026, U2020 ] }; // SMALL LETTER Z, CAPITAL LETTER Z, ELLIPSIS, DAGGER key <AB02> { [ x, X ] }; // SMALL LETTER X, CAPITAL LETTER X - key <AB03> { [ c, C, NoSymbol, U00A9 ] }; // SMALL LETTER C, CAPITAL LETTER C, , COPYRIGHT - key <AB04> { [ v, V, U25CC, NoSymbol ] }; // SMALL LETTER V, CAPITAL LETTER V, PLACEHOLDER CHARACTER + key <AB03> { [ c, C, U0327, U00A9 ] }; // SMALL LETTER C, CAPITAL LETTER C, CEDILLA, COPYRIGHT + key <AB04> { [ v, V, UA78C, UA78B ] }; // SMALL LETTER V, CAPITAL LETTER V, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO) key <AB05> { [ b, B, U0253, U0181 ] }; // SMALL LETTER B, CAPITAL LETTER B, SMALL LETTER B WITH HOOK, CAPITAL LETTER B WITH HOOK key <AB06> { [ n, N, U014B, U014A ] }; // SMALL LETTER N, CAPITAL LETTER N, SMALL LETTER ENG, CAPITAL LETTER ENG key <AB07> { [ m, M, NoSymbol, U2122 ] }; // SMALL LETTER M, CAPITAL LETTER M, , TRADEMARK SIGN @@ -214,8 +214,8 @@ xkb_symbols "qwerty" key <AC02> { [ s, S ] }; // SMALL LETTER S, CAPITAL LETTER S key <AC03> { [ d, D, U0257, U018A ] }; // SMALL LETTER D, CAPITAL LETTER D, SMALL LETTER D WITH HOOK, CAPITAL LETTER D WITH HOOK key <AC04> { [ f, F, U00E6, U00C6 ] }; // SMALL LETTER F, CAPITAL LETTER F, SMALL LIGATURE AE, CAPITAL LIGATURE AE - key <AC05> { [ g, G, UA78C, UA78B ] }; // SMALL LETTER G, CAPITAL LETTER G, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO) - key <AC06> { [ h, H, U0251, U2C6D ] }; // SMALL LETTER H, CAPITAL LETTER H, SMALL LETTER ALPHA, CAPITAL LETTER ALPHA + key <AC05> { [ g, G, U02BC, UA78B ] }; // SMALL LETTER G, CAPITAL LETTER G, CURVED GLOTTAL, CAPITAL LETTER GLOTTAL (SALTILLO) + key <AC06> { [ h, H, U03B1, U2C6D ] }; // SMALL LETTER H, CAPITAL LETTER H, SMALL LETTER ALPHA, CAPITAL LETTER ALPHA key <AC07> { [ j, J, U0330, U0323 ] }; // SMALL LETTER J, CAPITAL LETTER J, COMBINING TILDE (NASAL) BELOW, COMBINING DOT BELOW key <AC08> { [ k, K, U1DC5, U1DC7 ] }; // SMALL LETTER K, CAPITAL LETTER K, COMBINING LOW-MID TONE, COMBINING HIGH-MID key <AC09> { [ l, L, U1DC6, U1DC4 ] }; // SMALL LETTER L, CAPITAL LETTER L, COMBINING MID-LOW, COMBINING MID-HIGH TONE @@ -224,7 +224,7 @@ xkb_symbols "qwerty" key <AD01> { [ q, Q, U2014, U2013 ] }; // SMALL LETTER Q, CAPITAL LETTER Q, EM DASH, EN DASH key <AD02> { [ w, W, U1E85, U1E84 ] }; // SMALL LETTER W, CAPITAL LETTER W, SMALL LETTER W WITH DIAERESIS, CAPITAL LETTER W WITH DIAERESIS key <AD03> { [ e, E, U0259, U018F ] }; // SMALL LETTER E, CAPITAL LETTER E, SMALL LETTER SCHWA, CAPITAL LETTER SCHWA - key <AD04> { [ r, R, NoSymbol, U00AE ] }; // SMALL LETTER R, CAPITAL LETTER R, , REGISTERED SIGN + key <AD04> { [ r, R, U25CC, U00AE ] }; // SMALL LETTER R, CAPITAL LETTER R, PLACEHOLDER SYMBOL, REGISTERED SIGN key <AD05> { [ t, T, U0153, U0152 ] }; // SMALL LETTER T, CAPITAL LETTER T, SMALL LIGATURE OE, CAPITAL LIGATURE OE key <AD06> { [ y, Y, U01B4, U01B3 ] }; // SMALL LETTER Y, CAPITAL LETTER Y, SMALL LETTER Y WITH HOOK, CAPITAL LETTER Y WITH HOOK key <AD07> { [ u, U, U0289, U0244 ] }; // SMALL LETTER U, CAPITAL LETTER U, SMALL LETTER U BAR, CAPITAL LETTER U BAR @@ -251,7 +251,7 @@ xkb_symbols "qwerty" partial alphanumeric_keys xkb_symbols "dvorak" { - name[Group1] = "English (Cameroon Dvorak)"; + name[Group1] = "Cameroon Multilingual (Dvorak)"; include "level3(ralt_switch)" include "us(dvorak)" key <AB01> { [ semicolon, colon ] }; // SEMICOLON, COLON @@ -262,7 +262,7 @@ xkb_symbols "dvorak" key <AB06> { [ b, B, U0253, U0181 ] }; // SMALL LETTER B, CAPITAL LETTER B, SMALL LETTER B WITH HOOK, CAPITAL LETTER B WITH HOOK key <AB07> { [ m, M, NoSymbol, U2122 ] }; // SMALL LETTER M, CAPITAL LETTER M, , TRADEMARK SIGN key <AB08> { [ w, W, U1E85, U1E84 ] }; // SMALL LETTER W, CAPITAL LETTER W, SMALL LETTER W WITH DIAERESIS, CAPITAL LETTER W WITH DIAERESIS - key <AB09> { [ v, V, U25CC, NoSymbol ] }; // SMALL LETTER V, CAPITAL LETTER V, PLACEHOLDER CHARACTER + key <AB09> { [ v, V, UA78C, UA78B ] }; // SMALL LETTER V, CAPITAL LETTER V, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO) key <AB10> { [ z, Z, U2026, U2020 ] }; // SMALL LETTER Z, CAPITAL LETTER Z, ELLIPSIS, DAGGER key <AC01> { [ a, A, U025B, U0190 ] }; // SMALL LETTER A, CAPITAL LETTER A, SMALL LETTER OPEN E, CAPITAL LETTER OPEN E key <AC02> { [ o, O, U0254, U0186 ] }; // SMALL LETTER O, CAPITAL LETTER O, SMALL LETTER OPEN O, CAPITAL LETTER OPEN O @@ -270,7 +270,7 @@ xkb_symbols "dvorak" key <AC04> { [ u, U, U0289, U0244 ] }; // SMALL LETTER U, CAPITAL LETTER U, SMALL LETTER U BAR, CAPITAL LETTER U BAR key <AC05> { [ i, I, U0268, U0197 ] }; // SMALL LETTER I, CAPITAL LETTER I, SMALL LETTER I BAR, CAPITAL LETTER I BAR key <AC06> { [ d, D, U0257, U018A ] }; // SMALL LETTER D, CAPITAL LETTER D, SMALL LETTER D WITH HOOK, CAPITAL LETTER D WITH HOOK - key <AC07> { [ h, H, U0251, U2C6D ] }; // SMALL LETTER H, CAPITAL LETTER H, SMALL LETTER ALPHA, CAPITAL LETTER ALPHA + key <AC07> { [ h, H, U03B1, U2C6D ] }; // SMALL LETTER H, CAPITAL LETTER H, SMALL LETTER ALPHA, CAPITAL LETTER ALPHA key <AC08> { [ t, T, U0153, U0152 ] }; // SMALL LETTER T, CAPITAL LETTER T, SMALL LIGATURE OE, CAPITAL LIGATURE OE key <AC09> { [ n, N, U014B, U014A ] }; // SMALL LETTER N, CAPITAL LETTER N, SMALL LETTER ENG, CAPITAL LETTER ENG key <AC10> { [ s, S ] }; // SMALL LETTER S, CAPITAL LETTER S @@ -281,9 +281,9 @@ xkb_symbols "dvorak" key <AD04> { [ p, P, U00F8, U00D8 ] }; // SMALL LETTER P, CAPITAL LETTER P, SMALL LETTER O BAR, CAPITAL LETTER O BAR key <AD05> { [ y, Y, U01B4, U01B3 ] }; // SMALL LETTER Y, CAPITAL LETTER Y, SMALL LETTER Y WITH HOOK, CAPITAL LETTER Y WITH HOOK key <AD06> { [ f, F, U00E6, U00C6 ] }; // SMALL LETTER F, CAPITAL LETTER F, SMALL LIGATURE AE, CAPITAL LIGATURE AE - key <AD07> { [ g, G, UA78C, UA78B ] }; // SMALL LETTER G, CAPITAL LETTER G, SMALL LETTER GLOTTAL (SALTILLO), CAPITAL LETTER GLOTTAL (SALTILLO) - key <AD08> { [ c, C, NoSymbol, U00A9 ] }; // SMALL LETTER C, CAPITAL LETTER C, , COPYRIGHT - key <AD09> { [ r, R, NoSymbol, U00AE ] }; // SMALL LETTER R, CAPITAL LETTER R, , REGISTERED SIGN + key <AD07> { [ g, G, U02BC, UA78B ] }; // SMALL LETTER G, CAPITAL LETTER G, CURVED GLOTTAL, CAPITAL LETTER GLOTTAL (SALTILLO) + key <AD08> { [ c, C, U0327, U00A9 ] }; // SMALL LETTER C, CAPITAL LETTER C, CEDILLA, COPYRIGHT + key <AD09> { [ r, R, U25CC, U00AE ] }; // SMALL LETTER R, CAPITAL LETTER R, PLACEHOLDER SYMBOL, REGISTERED SIGN key <AD10> { [ l, L, U1DC6, U1DC4 ] }; // SMALL LETTER L, CAPITAL LETTER L, COMBINING MID-LOW, COMBINING MID-HIGH TONE key <AD11> { [ slash, U003F, U00F7, U0294 ] }; // SLASH, QUESTION MARK, DIVISION SIGN, GLOTTAL STOP key <AD12> { [ equal, plus, NoSymbol, plusminus ] }; // EQUAL, PLUS, , PLUS-MINUS |