--- /dev/null
+Copyright 1986, 1988, 1993, 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.
--- /dev/null
+commit 44e2ee01b456deb2630d21786d19ee2734d2f40a
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Wed May 28 12:01:35 2008 -0700
+
+ Apple: Don't use launchd on Tiger since it doesn't support the features we need.
+
+ https://bugs.freedesktop.org/show_bug.cgi?id=15893
+
+commit d315445cb85876cda56f46cb657167d4eb906ba0
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Wed May 28 11:54:22 2008 -0700
+
+ Properly handle using xserverrc
+
+commit 3c5e2ed686bd3ab39e2c1e87feffb5990603cf3c
+Author: Adam Jackson <ajax@redhat.com>
+Date: Wed May 21 14:34:52 2008 -0400
+
+ xinit 1.0.9
+
+commit c07501f69239e9c1448736ad7e689a2c3da49af9
+Author: Adam Jackson <ajax@redhat.com>
+Date: Wed May 21 14:29:55 2008 -0400
+
+ Unset session environment variables so startx works within a running session.
+
+commit ef2610f44c7cf40489203fddc77ddcdfb7764eed
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Tue May 13 16:28:33 2008 -0700
+
+ Use /bin/ksh instead of /bin/sh on Solaris
+
+commit d3bc7001315a8ba13be073af86fe710740b2d4c3
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Tue May 13 16:25:49 2008 -0700
+
+ Check for proper cookie creation on all platforms
+
+commit ef7abe2e72074f8252f0812ab2ca05dff7e76a38
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Tue May 13 16:25:22 2008 -0700
+
+ Use od on /dev/random to generate cookie on Solaris
+
+commit e0e89545db1fc08ffe49b2b24455bb30137da671
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Mon May 12 13:17:46 2008 -0700
+
+ Apple: Don't need to spew unneccessary 'directory exists' messages.
+
+commit 85561f8347b33422dd4b0ea11911347c0666e409
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Tue May 6 00:07:18 2008 -0700
+
+ Apple: No need for these bits being here in xinit as of xserver-1.4.0-apple9
+
+commit 280774466dc9f57b4b46c618345f7938290dbb2c
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Fri Apr 25 19:00:23 2008 -0700
+
+ Apple: Added some OSX version protection, so this will still compile on Tiger and below.
+
+commit 0806ae2ecfdcb4ad5f3b7a66dcc9bc5d29d72649
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Fri Apr 25 15:12:54 2008 -0700
+
+ Apple: Use CFProcessPath instead of argv[0] trick.
+
+commit edc3112679af749f0c6fc54b2eec1b89aaf0d0c8
+Author: Matthieu Herrb <matthieu.herrb@laas.fr>
+Date: Sun Apr 20 17:30:14 2008 +0200
+
+ Replace sprintf() and strcpy() with snprintf().
+
+commit 47d561fd6efb8923cfbace6fea40dfeb314b4662
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Sat Apr 19 08:50:45 2008 -0700
+
+ Cleaned up handling of defaultserver{,args}
+ Per comments from Jeremy Reed on the list... basically doing for everyone what I do for Apple
+
+commit f6e75ebf5f7f245e1cdeb883a1d2db74f2451fd4
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Sat Apr 19 08:47:20 2008 -0700
+
+ Apple: Fixed make dist to include a missing header and not include generated sources
+
+commit 2b06b58a328e13df4704df8a48d4cd0b1100ba7e
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Thu Apr 17 17:19:41 2008 -0700
+
+ Apple: Added privileged_startx
+
+commit fe5af014f2645d1ecf981d40d3c10a3621e9ec56
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Mon Apr 14 13:05:26 2008 -0700
+
+ Apple: Wait for privileged_startx to finish, so we don't race to create /tmp/.X11-unix
+
+commit d5590dba3cce39367762d39822094ca51000142b
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Sun Apr 13 23:15:27 2008 -0700
+
+ Apple: We renamed font_cache.sh to font_cache for better consistency... Changing startx to work with this
+
+commit 5ef443bb6bff0a03ee00105d9bf95bc3f6f82b11
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Sun Apr 13 19:51:18 2008 -0700
+
+ Apple: privileged_startx is in XINITDIR
+
+commit c1b70ca67ecd12d6837584e7ef4abd01ee3b7ad9
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Tue Apr 8 17:25:54 2008 -0700
+
+ Correctly handle users with spaces in $HOME
+
+commit 1cb4bb208d481967fb736acf10c6ac2b66bf3181
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Sat Apr 5 17:23:02 2008 -0700
+
+ Apple: Renamed LaunchAgent to org.x.startx to distinguish it from the org.x.X11 application
+
+commit f7c706ff46d4a2364d65731cd1c3135ef7987380
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Fri Apr 4 22:49:51 2008 -0700
+
+ Apple: Execute /usr/X11/bin/privileged_startx if it's present
+
+commit ca08a36d10f15be6d230a9af92288da4cb24cd43
+Author: Jeremy Huddleston <jeremyhu@freedesktop.org>
+Date: Fri Apr 4 02:31:10 2008 -0700
+
+ Apple: Fixed issue where display would not be passed correctly to the server if nolisten tcp was enabled.
+
+commit 8c52bd4509b7fe5a74026b5bc638d59add9e8945
+Author: Jeremy C. Reed <reed@tx.reedmedia.net>
+Date: Sat Mar 15 18:23:45 2008 -0500
+
+ Use /dev/urandom for cookie it it exists
+ else fall back to /dev/random.
+ Not doing in configure.ac because can't easily check for
+ existence when doing cross-builds.
+ (Alternative would be to define this for every operating system
+ in configure.ac. Currently only is defined for OpenBSD.
+ Systems that have mcookie also will not be effected.)
+
+commit 062524614fdd4f11f32ba3d054f7fc16b9bc5f12
+Author: Matthieu Herrb <matthieu@bluenote.herrb.net>
+Date: Sat Mar 8 19:02:05 2008 +0100
+
+ OpenBSD: use openssl rand -hex 16 to generate the cookie.
+
+commit 3eaee22196a03d88c419c42470baf562552c1a3b
+Author: Adam Jackson <ajax@redhat.com>
+Date: Thu Mar 6 17:09:45 2008 -0500
+
+ xinit 1.0.8
+
+commit 96c8650369a99e344b4e3510f713b331d83c4272
+Author: Jeremy Huddleston <jeremy@tifa.local>
+Date: Sun Mar 2 10:32:58 2008 -0800
+
+ Apple: Use -c in the launchd plist, so broken .profile/.bashrc don't much up startx
+
+commit aa026deef43a8c1479e6a558194e0a473bbdaeb0
+Author: Jeremy Huddleston <jeremy@tifa.local>
+Date: Sat Mar 1 17:30:47 2008 -0800
+
+ Apple: Adding support for an xinitrc.d directory on OSX, so fink doesn't need to clobber files
+
+commit 916b1ab10d10efbdf3a544534acb95f9d28692cf
+Author: Jeremy Huddleston <jeremy@tifa.local>
+Date: Mon Feb 18 15:53:46 2008 -0800
+
+ Apple: font caching and defaults
+ Quieted defaults "error" messages by initializing default values
+ Do font caching in startx, so users with custom ~/.xinitrc won't have to
+ worry about updating it.
+ Add "cache_fonts" defaults item to toggle whether or not to cache fonts at startup
+ Fall back on fc-cache if font_cache.sh is not present.
+
+commit 19fa8408a2c707081ba984537a3dcab744b0a565
+Author: Jeremy Huddleston <jeremy@tifa-2.local>
+Date: Sat Feb 16 02:50:47 2008 -0800
+
+ Added org.x.X11.plist.cpp to EXTRA_DIST
+
+commit 9259740a2d69c6c2fc1786508dbd08ae2cfef101
+Author: Jeremy Huddleston <jeremy@tifa.local>
+Date: Sun Feb 10 18:49:06 2008 -0800
+
+ Apple: Support spaces in $HOME for font path, and remove duplicate entry
+
+commit 4e899293d7f7bb0a67b094402fad7db55169acec
+Author: Jeremy Huddleston <jeremy@tifa.local>
+Date: Sun Feb 10 02:04:16 2008 -0800
+
+ Apple: Cleaned up font path setting and added font caching to xinitrc
+
+commit 238b74a47eb66bfa24627b099bf9c6a06e91d35a
+Author: Jeremy Huddleston <jeremy@tifa.local>
+Date: Sat Feb 9 22:17:02 2008 -0800
+
+ Apple: use -nocpp arg to xrdb if cpp is not installed
+
+commit b9a2f211eff9f7fdc1399146d175923ca589cf2a
+Author: David Nusinow <dnusinow@debian.org>
+Date: Tue Feb 5 11:58:40 2008 -0500
+
+ Unbreak installs on non-launchd systems
+
+ Thanks to cjb for running the tinderbox that spotted this
+ breakage.
+
+commit 6403e53a1fef9fd7dd8c77640d01bb8aaee09f91
+Author: Jeremy Huddleston <jeremy@yuffie.local>
+Date: Fri Feb 1 00:35:27 2008 -0800
+
+ OS-X: Set fontpath in xinitrc to include system / user fonts. Additionally fixed font scaling issues (trac #52)
+
+commit d9d43955a03fb3d5b2d87d9c1a7de463f1a027b6
+Author: Jeremy Huddleston <jeremy@yuffie.local>
+Date: Fri Feb 1 00:23:54 2008 -0800
+
+ OS-X: Fixed typo
+
+commit 7400760ae1b88d0c514aa119643cd412a4a68b06
+Author: Jeremy Huddleston <jeremy@yuffie.local>
+Date: Wed Jan 9 21:03:41 2008 -0800
+
+ OS-X: Add bindir to $PATH in startx if it's not there
+ This should also fix this on SCO since it was using the incorrect BINDIR
+ instead of __bindir__ in that code block...
+
+commit 0f740f75ececc9742c6f407d53b482897ef5f698
+Author: Jeremy Huddleston <jeremy@yuffie.local>
+Date: Fri Jan 4 11:36:26 2008 -0800
+
+ OS-X: Properly set enable_xauth if the user has no defaults set and choose a valid $display for fast-user-switching.
+
+commit 9c57524fde57284daae2309dce17dbf56a8643de
+Author: Jeremy Huddleston <jeremy@yuffie.local>
+Date: Thu Dec 20 18:26:38 2007 -0800
+
+ XQuartz doesn't need the -launchd command line argument anymore.
+
+commit f31042ae688d75c2043e9df56f66cabdd56fdf75
+Author: Jeremy Huddleston <jeremy@yuffie.local>
+Date: Thu Dec 20 17:22:16 2007 -0800
+
+ OS-X: Need to use bash --login to setup the environment from launchd.
+
+commit d1c968926fa2fe36b612d4ebc948d73e6e0f6c01
+Author: Jeremy Huddleston <jeremy@yuffie.local>
+Date: Thu Dec 20 16:50:39 2007 -0800
+
+ OS-X: Made defaults test more robust
+
+commit 73a2dd64576328de712ee792d569a88550e4ddb4
+Author: Jeremy Huddleston <jeremy@yuffie.local>
+Date: Thu Dec 20 16:13:27 2007 -0800
+
+ Added support for OS-X preferences to disable tcp/ip connections and xauth
+
+commit 4afcc5afa0dc7a1d14e93f18289c4490c9f2decd
+Author: root <root@tinderbox.wearablelab.ml.unisa.edu.au>
+Date: Fri Dec 21 00:53:45 2007 +1030
+
+ Define APPLE for the rest of us
+
+ APPLE was only defined when, well on an APPLE. However Makefile.am
+ unconditionally required it. Hence define APPLE to false when
+ we're not on an APPLE.
+
+ Found by: Tinderbox
+
+commit cced740b1e1c8220701e59cec1be04498f851296
+Author: Jeremy Huddleston <jeremy@yuffie.local>
+Date: Sun Dec 16 01:12:20 2007 -0800
+
+ OS-X: Added argv[0] hack for finding Xquartz UI and icon as well as claiming its dock icon
+ Partially removes need for x11-exec on OS-X. We still need to handle options set in defaults.
+
+commit 3c5ae3a242895f53d4f27fefb785f2725077a55d
+Author: Jeremy Huddleston <jeremy@yuffie.local>
+Date: Sat Dec 15 15:52:22 2007 -0800
+
+ Changed x11-exec to actually start X11.app. X11.app will be responsible for calling xinit.
+
+commit f5db2f6bc21b8d589b92c0f1d60bd6ec8da21ae0
+Author: Jeremy Huddleston <jeremy@yuffie.local>
+Date: Sat Dec 15 15:01:02 2007 -0800
+
+ Added Apple launchd support
+
+commit c0246278393f9440717eea292a3d31440f7972dd
+Author: James Cloos <cloos@jhcloos.com>
+Date: Thu Dec 6 15:51:07 2007 -0500
+
+ Add missing PHONY line for automatic ChangeLog generation
+
+commit 3b064b7206a84aae873743b706c41324a67c1f2c
+Author: Jeremy Huddleston <jeremy@yuffie.local>
+Date: Mon Dec 3 19:57:26 2007 -0800
+
+ Added some support for Xquartz on OS-X.
+
+commit e2963ff8acb7e20aab1f8e31a656f4553dda208a
+Merge: a7fda62... 0516336...
+Author: Matthieu Herrb <matthieu@bluenote.herrb.com>
+Date: Fri Sep 28 22:26:26 2007 +0200
+
+ Merge branch 'master' of ssh://herrb@git.freedesktop.org/git/xorg/app/xinit
+
+commit a7fda62fcb5600dc65f84148923f5a0a70181e7e
+Author: Matthieu Herrb <matthieu@bluenote.herrb.com>
+Date: Fri Sep 28 22:25:17 2007 +0200
+
+ Use /dev/arandom instead of /dev/urandom to generate the cookie
+ on OpenBSD. Problem noticed by Joerg Sonnenberger. Thanks.
+
+commit 051633650c7b7a7eb9ef494a48a6a79fa2e06080
+Author: Tilman Sauerbeck <tilman@code-monkey.de>
+Date: Mon Sep 17 12:46:59 2007 +0200
+
+ Bumped version to 1.0.7.
+
+commit 52121e9de907c61a16e41f0f08acecc1dc1546e5
+Author: Tilman Sauerbeck <tilman@code-monkey.de>
+Date: Mon Sep 17 08:27:23 2007 +0200
+
+ Bug #12448: Don't try to trap 'ERR'.
+
+ startx is advertised as a POSIX sh script. These shells don't
+ necessarily support trapping 'ERR'. This makes startx work again with
+ dash (and probably others).
+
+commit ff9752bc4304e5a29ef7e06b56bd4e0e5ca32926
+Author: Matthieu Herrb <matthieu@bluenote.herrb.com>
+Date: Sat Sep 15 18:51:19 2007 +0200
+
+ Bump to 1.0.6
+
+commit af5e859a8da23f063fd3371a9e7266054532d769
+Author: Matthieu Herrb <matthieu@bluenote.herrb.com>
+Date: Sat Sep 15 18:50:57 2007 +0200
+
+ generate
+
+commit 6c1bef8580a1dcd945c3a89522daa90fe8f4c272
+Author: Matthieu Herrb <matthieu@bluenote.herrb.com>
+Date: Sat Sep 15 18:43:52 2007 +0200
+
+ MKCOOKIE program for OpenBSD.
+
+commit b9d07ef3e07ef6f00a2f1cc730a481e5e1291f5b
+Author: Matthieu Herrb <matthieu@bluenote.herrb.com>
+Date: Sat Sep 15 18:12:52 2007 +0200
+
+ remove .serverauth.$$ file on signals or errors
+
+commit e91874313c99dfb6be042cd1739e463e080b71fc
+Author: Eric Anholt <eric@anholt.net>
+Date: Wed Sep 5 10:14:52 2007 -0700
+
+ Bump version to 1.0.5.
+
+commit 2640fb97a42e0d91603defc0f37388735c56a54d
+Author: Eric Anholt <eric@anholt.net>
+Date: Tue Sep 4 13:05:47 2007 -0700
+
+ Fix broken test for /dev/random cookie generation failure.
+
+commit fc6cc81be41af58ffd996994e1325dd072a9ab34
+Author: Eric Anholt <eric@anholt.net>
+Date: Fri Jul 13 15:34:43 2007 -0700
+
+ Use /dev/random to generate the cookie if mcookie is unavailable.
+
+ Setting XAUTHORITY without having actually generated a cookie and created
+ .Xauthority led to issues if somebody like ssh later came around and made the
+ .Xauthority file for their own setup. So, simply make it so that we never
+ fail to create one.
+
+commit e9c1d1667b58c738cb1317219cc0ac84bef2a5d6
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Mon May 21 20:00:38 2007 -0700
+
+ Version bump: 1.0.4
+
+commit 3686497f31ac9f548f6f3aa5d4418a96fe564497
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Mon May 21 18:42:56 2007 -0700
+
+ Remove old Imake checks now that we always build with autoconf
+
+commit d5b726c2dbc22b6fd9623604e9252aaef30c387c
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Mon May 21 18:18:56 2007 -0700
+
+ Remove support for pre-POSIX-1990 platforms
+
+commit dfba9a82068b44429a08b307d26b91495c10c7c1
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Mon May 21 17:52:38 2007 -0700
+
+ Modernize list of Xservers printed when "X" is not found in $PATH
+
+commit a73284c7aeeab7ee0c1b6027819955ef7b08f23d
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Mon May 21 17:09:40 2007 -0700
+
+ Replace static ChangeLog with dist hook to generate from git log
+
+commit 8942f1fd8377c0e67e5ad493af55b7d7b3f996c7
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Mon May 21 16:49:18 2007 -0700
+
+ Don't print windowpath debug messages unless built -DDEBUG
+
+ No need to print warnings on systems without vt support
+
+commit fa78528b44d4c1c50594359e17114208834a84fd
+Author: Samuel Thibault <samuel.thibault@ens-lyon.org>
+Date: Fri Aug 25 16:48:00 2006 -0800
+
+ X.Org Bugzilla #8013: xinit should set WINDOWPATH
+
+ X.Org Bugzilla #8013: <https://bugs.freedesktop.org/show_bug.cgi?id=8013>
+ Patch #6701: <https://bugs.freedesktop.org/attachment.cgi?id=6701>
+
+commit 64f1a94404924b1ada6b43ed33c80a560712ec36
+Author: Daniel Drake <ddrake@brontes3d.com>
+Date: Mon May 21 16:33:23 2007 -0700
+
+ Fill in COPYING File (X.Org Bugzilla #11024)
+
+commit 3b6dad2ba4d4507cd742d8e7ff760fe006c0aa23
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Fri May 18 23:44:06 2007 -0700
+
+ Bug #10616: Clarify syntax on xinit & startx man pages
+
+ X.Org Bugzilla #10616: <https://bugs.freedesktop.org/show_bug.cgi?id=10616>
+ Reported upstream from
+ Debian bug #267744 <http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=267744>
+
+commit ad23a55a581ab18c4614e2cb5d82c4376ee88722
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Mon Nov 6 14:56:07 2006 -0800
+
+ Stop hardcoding /usr/X11R6/bin in manpage examples
+
+commit c50afd78af7496938a10b317c5e41b4d99d1fc60
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Mon Nov 6 14:47:34 2006 -0800
+
+ Change example X server argument from bc to -br now that bc is gone
+
+commit 7b3e51364355716731670522b578b23d40fb356b
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Mon Nov 6 14:46:42 2006 -0800
+
+ Add *~ to .gitignore to skip over emacs/patch droppings
+
+commit c9da362e9f3f80a91b91011c21ef85e1cd3ef48b
+Author: Alan Coopersmith <alan.coopersmith@sun.com>
+Date: Mon Nov 6 14:46:15 2006 -0800
+
+ renamed: .cvsignore -> .gitignore
+
+commit de19be83afe7d0dc9a71fa529e80d91b4e26bdda
+Author: Adam Jackson <ajax@benzedrine.nwnk.net>
+Date: Fri Oct 13 17:53:12 2006 -0400
+
+ Bump to 1.0.3
+
+commit 4fc9d215202b494a9182913f84eb41ba2bd1e39b
+Author: Matthieu Herrb <matthieu.herrb@laas.fr>
+Date: Tue Jun 20 19:25:51 2006 +0000
+
+ Check setuid() return value. Bugzilla #7116.
+
+commit 732e5f17cf5189854654360e978a62d6d6b82d4b
+Author: Jeremy C. Reed <reed@reedmedia.net>
+Date: Sat May 27 15:28:04 2006 +0000
+
+ In comments, change contractions to be spelled out to fix cpp "missing
+ terminating" errors with single quotes.
+
+commit db74ad799da27eec04b5aed64e3564aef9156a04
+Author: Matthieu Herrb <matthieu.herrb@laas.fr>
+Date: Sun Apr 30 14:19:19 2006 +0000
+
+ Quote MCOOKIE to allow to specify a command with args (ie
+ MCOOKIE="/usr/sbin/openssl rand -hex 16" ./configure ...)
+
+commit 797f51d176ab9a29497a9141a57a968c5a7d3792
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Sun Apr 2 01:06:41 2006 +0000
+
+ Bump to 1.0.2.
+
+commit bbf54921031f679c0d266a6b2ef4926f872d18f1
+Author: Jeremy C. Reed <reed@reedmedia.net>
+Date: Sat Feb 25 15:20:06 2006 +0000
+
+ Bug #4449 <https://bugs.freedesktop.org/show_bug.cgi?id=4449> Be more
+ portable (for different /bin/sh shells) for the arithmetic.
+ NetBSD's /bin/sh didn't like: dummy=$((dummy+1)) and complained: startx:
+ arith: syntax error: "dummy+1"
+ This was fixed by NetBSD and also by Gentoo, see:
+ https://launchpad.net/distros/ubuntu/+source/xinit/+bug/31241
+
+commit 6690352bdd01603a5e82e177aab4804d5424b8b1
+Author: Kevin E Martin <kem@kem.org>
+Date: Wed Dec 21 02:29:51 2005 +0000
+
+ Update package version for X11R7 release.
+
+commit 9ea919f305201ad9c3695a4534f08d5d373d3eb5
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Mon Dec 19 16:22:44 2005 +0000
+
+ Stub COPYING files
+
+commit 0a95c12d2dd1da5a2c2f7ef3a731ef40074fba23
+Author: Kevin E Martin <kem@kem.org>
+Date: Thu Dec 15 00:24:07 2005 +0000
+
+ Update package version number for final X11R7 release candidate.
+
+commit 18056e663f89b0b5019f549365afbdf975a59d61
+Author: Kevin E Martin <kem@kem.org>
+Date: Tue Dec 6 22:48:22 2005 +0000
+
+ Change *man_SOURCES ==> *man_PRE to fix autotools warnings.
+
+commit cc7dfc25d5854ac08dfa7dc52c96702e60777e5c
+Author: Kevin E Martin <kem@kem.org>
+Date: Sat Dec 3 17:08:50 2005 +0000
+
+ Add m4 magic to allow AS_HELP_STRING to work with older versions of
+ autoconf 2.57.
+
+commit b0081f30f7d2bdc59509e09b7d147700456d562e
+Author: Kevin E Martin <kem@kem.org>
+Date: Sat Dec 3 05:49:24 2005 +0000
+
+ Update package version number for X11R7 RC3 release.
+
+commit 15470956794d19c3b1ee0d17e727e0a77436518f
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Mon Nov 28 22:01:43 2005 +0000
+
+ Change *mandir targets to use new *_MAN_DIR variables set by xorg-macros.m4
+ update to fix bug #5167 (Linux prefers *.1x man pages in man1 subdir)
+
+commit 66b04609fdf1910588e05f74f772441c712ed0cc
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Mon Nov 21 10:35:01 2005 +0000
+
+ Another pass at .cvsignores for apps.
+
+commit d286ee2400f8f9c4110971545ef50a556e5c08f9
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Sun Nov 20 22:08:53 2005 +0000
+
+ Add/improve .cvsignore files for apps.
+
+commit 0a06386696875638e9e9b6e47e95affbf542e25d
+Author: Kevin E Martin <kem@kem.org>
+Date: Tue Nov 15 04:05:59 2005 +0000
+
+ Make the programs used in the xinit scripts configurable.
+
+commit 549c55ea15e60b9aca5da1ed6f18564f1e69cd26
+Author: Kevin E Martin <kem@kem.org>
+Date: Tue Nov 15 04:03:10 2005 +0000
+
+ Make using full paths in the xinit scripts optional.
+
+commit 277975ec73744657e556a0c6380614d8684db7df
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Thu Nov 10 04:25:39 2005 +0000
+
+ Add settings for SHELL_CMD & ARCHMANDEFS to match monolith changes for bug
+ #3180.
+ AC_DEFINE(XORG,...) so it is listed as available server in xinit help
+ output.
+ Update cpp -D flags to match monolith changes for bug #3180.
+
+commit 6e7bcf4f2ea8bb868ed8b0459f1c0d6cc172f4ae
+Author: Kevin E Martin <kem@kem.org>
+Date: Wed Nov 9 21:09:21 2005 +0000
+
+ Update package version number for X11R7 RC2 release.
+
+commit af47a9e0dd891dcaa52b12f4eda85381e0467916
+Author: Kean Johnson <kean@armory.com>
+Date: Tue Nov 8 06:33:33 2005 +0000
+
+ See ChangeLog entry 2005-11-07 for details.
+
+commit 6beb2e4769b8b3708f30ee7adf8037a4e1f39f3d
+Author: Kevin E Martin <kem@kem.org>
+Date: Wed Oct 19 02:47:54 2005 +0000
+
+ Update package version number for RC1 release.
+
+commit dc0b907e02d6c1ab917e30c4b262b5c9f780ef12
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Mon Oct 17 23:56:23 2005 +0000
+
+ Use @APP_MAN_SUFFIX@ instead of $(APP_MAN_SUFFIX) in macro substitutions to
+ work better with BSD make
+
+commit 0c48fdb05b2538c94c809e25c8690a7094900e07
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Sun Oct 16 22:18:22 2005 +0000
+
+ Use cpp to substitute variables in man pages
+
+commit 9c8787d2ce69e55b9ba362a92f01592d8ee0a3a3
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Tue Oct 11 01:09:43 2005 +0000
+
+ Don't define HAS_COOKIE_MAKER if mcookie wasn't found.
+
+commit e2dd25d3cf2f10c0cff0d37d05f58b81344db68b
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Tue Oct 4 01:27:34 2005 +0000
+
+ Bug #2027: Treat SIGTERM like SIGINT in xinit. (Andreas Luik)
+
+commit 48ea043e65943fd66e03788be9867c69b96c738c
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Mon Aug 29 01:56:12 2005 +0000
+
+ Bump to 0.99.1.
+
+commit 9f74cfed8f808009b3acfa0af383218f3bf0fc00
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Mon Aug 29 01:54:30 2005 +0000
+
+ Define HAS_COOKIE_MAKER and search for mcookie so startx will generate
+ xauth tokens for the servers it starts.
+
+commit 52fb36b1ec52e78916bf9cf1a5e7bdce05482b0c
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Thu Aug 11 18:11:32 2005 +0000
+
+ Bugzilla #4045: Do a missed replacement of @@ with \ in startx.
+ Submitted by: David Schleef <ds@schleef.org>
+
+commit ef53714d87aa71309fe2f22862f1892a8e620336
+Author: Eric Anholt <anholt@freebsd.org>
+Date: Thu Aug 11 18:09:45 2005 +0000
+
+ Set CSRG_BASED for BSD systems so the build succeeds.
+
+commit 2b515c0e9940d3fc5b4151d10678f3c0b09668fc
+Author: Kevin E Martin <kem@kem.org>
+Date: Fri Jul 29 21:22:34 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 22c07dc931424a64046c489ff95b9ca14d7a5552
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Tue Jul 26 18:58:15 2005 +0000
+
+ Use AC_TYPE_SIGNAL and AC_FUNC_VFORK to replace Imake's SIGNAL_DEFINES and
+ -DHAS_VFORK
+
+commit db7faf36b93971eef4857d24efe0de155b7cdb19
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Tue Jul 26 18:55:42 2005 +0000
+
+ Add config.h includes for modularization Use RETSIGTYPE if defined by
+ autoconf in addition to Imake's SIGNALRETURNSINT. Use
+ HAVE_WORKING_VFORK if defined by autoconf in addition to Imake's
+ HAS_VFORK
+
+commit e5280bb6562129bf7617a24784b19da4cbd7abc8
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Mon Jul 25 23:19:06 2005 +0000
+
+ Bug #3860: Avoid a bashism. (Diego Pettenò)
+
+commit 4c76716e9eef58c7de7dab27bdeca33a2980b726
+Author: Daniel Stone <daniel@fooishbar.org>
+Date: Sat Jul 23 03:02:58 2005 +0000
+
+ Move manpages to section 1.
+
+commit b5a90f98073bfa5d5615f5aa0ae73af07f625bbb
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Wed Jul 20 22:49:25 2005 +0000
+
+ Use kbd_mode -a to restore console keyboard on Solaris x86 too.
+
+commit e83a8d3f9816605106a496c89f9e9ccfae3e4f4c
+Author: Adam Jackson <ajax@nwnk.net>
+Date: Wed Jul 20 19:31:57 2005 +0000
+
+ Use a unique token for PKG_CHECK_MODULES. Otherwise, if you use a global
+ configure cache, you cache it, and the cached value is probably wrong.
+
+commit d8980cb7b6df64cf92c5b660f838497296dbb0bb
+Author: Alan Coopersmith <Alan.Coopersmith@sun.com>
+Date: Sat Jul 16 23:29:38 2005 +0000
+
+ x11perf/Makefile.am: xinit/Makefile.am: xvidtune/Makefile.am:
+ - Replace $< with portable macro xinit/Makefile.am: xinit/configure.ac:
+ xvidtune/Makefile.am: xvidtune/configure.ac:
+ - Use more portable cpp invocations for pre-processing files
+ xfs/configure.ac:
+ - Add XTRANS_CONNECTION_FLAGS so xtrans transport type defines are set
+ correctly
+
+commit d731a249d0c1c7f9eb77828c0d6e79cfdaf75589
+Author: Søren Sandmann Pedersen <sandmann@daimi.au.dk>
+Date: Tue Jul 5 21:12:01 2005 +0000
+
+ Build system for xinit
+
+commit dd7fee44b126636d6c3edd9e325ce411e3ae5d78
+Author: Egbert Eich <eich@suse.de>
+Date: Wed Apr 20 17:54:12 2005 +0000
+
+ Separate server auth and client .Xautority file in startx. .Xautority might
+ have credentials from other Xservers which we might not want to enable
+ on ours Bugzilla #3078).
+
+commit 4118bc8579ac75620ea6cda2b16d3ebbe4f5b6af
+Author: Egbert Eich <eich@suse.de>
+Date: Fri Apr 23 19:54:49 2004 +0000
+
+ Merging XORG-CURRENT into trunk
+
+commit 52279458e75907cb4d004e8be0c87f1c7b714159
+Author: Egbert Eich <eich@suse.de>
+Date: Sun Mar 14 08:35:24 2004 +0000
+
+ Importing vendor version xf86-4_4_99_1 on Sun Mar 14 00:26:39 PST 2004
+
+commit 59c01948e5bda5b2584e1a19f735737896a87c69
+Author: Egbert Eich <eich@suse.de>
+Date: Wed Mar 3 12:13:08 2004 +0000
+
+ Importing vendor version xf86-4_4_0 on Wed Mar 3 04:09:24 PST 2004
+
+commit 6427c13f6e132a3d19bbb7c3a2dc0c5b8215b3d8
+Author: Egbert Eich <eich@suse.de>
+Date: Thu Feb 26 13:36:25 2004 +0000
+
+ readding XFree86's cvs IDs
+
+commit 40ac2d222287210c7724e3ac5a15af490aed50b9
+Author: Egbert Eich <eich@suse.de>
+Date: Thu Feb 26 09:24:08 2004 +0000
+
+ Importing vendor version xf86-4_3_99_903 on Wed Feb 26 01:21:00 PST 2004
+
+commit fae621e34ee1eff0bc70e60c7843c0fce9f9ec1a
+Author: Egbert Eich <eich@suse.de>
+Date: Thu Jan 29 08:09:12 2004 +0000
+
+ Importing vendor version xf86-012804-2330 on Thu Jan 29 00:06:33 PST 2004
+
+commit b1dacbed577312f5fa86d9d81aa946276c646167
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date: Tue Nov 25 19:29:13 2003 +0000
+
+ XFree86 4.3.99.16 Bring the tree up to date for the Cygwin folks
+
+commit c301daadb9de3348d7dd1b511cadf7d55a59bc1c
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date: Fri Nov 14 16:49:22 2003 +0000
+
+ XFree86 4.3.0.1
+
+commit b7d9a0b434bb0d32857fc47611926cb59ac7f3c5
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date: Fri Nov 14 16:49:22 2003 +0000
+
+ Initial revision
+
+commit f18e25ab379836d0885660ad9c42ed588b1152b8
+Author: Kaleb Keithley <kaleb@freedesktop.org>
+Date: Fri Nov 14 15:54:54 2003 +0000
+
+ R6.6 is the Xorg base-line
--- /dev/null
+Installation Instructions
+*************************
+
+Copyright (C) 1994, 1995, 1996, 1999, 2000, 2001, 2002, 2004, 2005 Free
+Software Foundation, Inc.
+
+This file is free documentation; the Free Software Foundation gives
+unlimited permission to copy, distribute and modify it.
+
+Basic Installation
+==================
+
+These are generic installation instructions.
+
+ The `configure' shell script attempts to guess correct values for
+various system-dependent variables used during compilation. It uses
+those values to create a `Makefile' in each directory of the package.
+It may also create one or more `.h' files containing system-dependent
+definitions. Finally, it creates a shell script `config.status' that
+you can run in the future to recreate the current configuration, and a
+file `config.log' containing compiler output (useful mainly for
+debugging `configure').
+
+ It can also use an optional file (typically called `config.cache'
+and enabled with `--cache-file=config.cache' or simply `-C') that saves
+the results of its tests to speed up reconfiguring. (Caching is
+disabled by default to prevent problems with accidental use of stale
+cache files.)
+
+ If you need to do unusual things to compile the package, please try
+to figure out how `configure' could check whether to do them, and mail
+diffs or instructions to the address given in the `README' so they can
+be considered for the next release. If you are using the cache, and at
+some point `config.cache' contains results you don't want to keep, you
+may remove or edit it.
+
+ The file `configure.ac' (or `configure.in') is used to create
+`configure' by a program called `autoconf'. You only need
+`configure.ac' if you want to change it or regenerate `configure' using
+a newer version of `autoconf'.
+
+The simplest way to compile this package is:
+
+ 1. `cd' to the directory containing the package's source code and type
+ `./configure' to configure the package for your system. If you're
+ using `csh' on an old version of System V, you might need to type
+ `sh ./configure' instead to prevent `csh' from trying to execute
+ `configure' itself.
+
+ Running `configure' takes awhile. While running, it prints some
+ messages telling which features it is checking for.
+
+ 2. Type `make' to compile the package.
+
+ 3. Optionally, type `make check' to run any self-tests that come with
+ the package.
+
+ 4. Type `make install' to install the programs and any data files and
+ documentation.
+
+ 5. You can remove the program binaries and object files from the
+ source code directory by typing `make clean'. To also remove the
+ files that `configure' created (so you can compile the package for
+ a different kind of computer), type `make distclean'. There is
+ also a `make maintainer-clean' target, but that is intended mainly
+ for the package's developers. If you use it, you may have to get
+ all sorts of other programs in order to regenerate files that came
+ with the distribution.
+
+Compilers and Options
+=====================
+
+Some systems require unusual options for compilation or linking that the
+`configure' script does not know about. Run `./configure --help' for
+details on some of the pertinent environment variables.
+
+ You can give `configure' initial values for configuration parameters
+by setting variables in the command line or in the environment. Here
+is an example:
+
+ ./configure CC=c89 CFLAGS=-O2 LIBS=-lposix
+
+ *Note Defining Variables::, for more details.
+
+Compiling For Multiple Architectures
+====================================
+
+You can compile the package for more than one kind of computer at the
+same time, by placing the object files for each architecture in their
+own directory. To do this, you must use a version of `make' that
+supports the `VPATH' variable, such as GNU `make'. `cd' to the
+directory where you want the object files and executables to go and run
+the `configure' script. `configure' automatically checks for the
+source code in the directory that `configure' is in and in `..'.
+
+ If you have to use a `make' that does not support the `VPATH'
+variable, you have to compile the package for one architecture at a
+time in the source code directory. After you have installed the
+package for one architecture, use `make distclean' before reconfiguring
+for another architecture.
+
+Installation Names
+==================
+
+By default, `make install' installs the package's commands under
+`/usr/local/bin', include files under `/usr/local/include', etc. You
+can specify an installation prefix other than `/usr/local' by giving
+`configure' the option `--prefix=PREFIX'.
+
+ You can specify separate installation prefixes for
+architecture-specific files and architecture-independent files. If you
+pass the option `--exec-prefix=PREFIX' to `configure', the package uses
+PREFIX as the prefix for installing programs and libraries.
+Documentation and other data files still use the regular prefix.
+
+ In addition, if you use an unusual directory layout you can give
+options like `--bindir=DIR' to specify different values for particular
+kinds of files. Run `configure --help' for a list of the directories
+you can set and what kinds of files go in them.
+
+ If the package supports it, you can cause programs to be installed
+with an extra prefix or suffix on their names by giving `configure' the
+option `--program-prefix=PREFIX' or `--program-suffix=SUFFIX'.
+
+Optional Features
+=================
+
+Some packages pay attention to `--enable-FEATURE' options to
+`configure', where FEATURE indicates an optional part of the package.
+They may also pay attention to `--with-PACKAGE' options, where PACKAGE
+is something like `gnu-as' or `x' (for the X Window System). The
+`README' should mention any `--enable-' and `--with-' options that the
+package recognizes.
+
+ For packages that use the X Window System, `configure' can usually
+find the X include and library files automatically, but if it doesn't,
+you can use the `configure' options `--x-includes=DIR' and
+`--x-libraries=DIR' to specify their locations.
+
+Specifying the System Type
+==========================
+
+There may be some features `configure' cannot figure out automatically,
+but needs to determine by the type of machine the package will run on.
+Usually, assuming the package is built to be run on the _same_
+architectures, `configure' can figure that out, but if it prints a
+message saying it cannot guess the machine type, give it the
+`--build=TYPE' option. TYPE can either be a short name for the system
+type, such as `sun4', or a canonical name which has the form:
+
+ CPU-COMPANY-SYSTEM
+
+where SYSTEM can have one of these forms:
+
+ OS KERNEL-OS
+
+ See the file `config.sub' for the possible values of each field. If
+`config.sub' isn't included in this package, then this package doesn't
+need to know the machine type.
+
+ If you are _building_ compiler tools for cross-compiling, you should
+use the option `--target=TYPE' to select the type of system they will
+produce code for.
+
+ If you want to _use_ a cross compiler, that generates code for a
+platform different from the build platform, you should specify the
+"host" platform (i.e., that on which the generated programs will
+eventually be run) with `--host=TYPE'.
+
+Sharing Defaults
+================
+
+If you want to set default values for `configure' scripts to share, you
+can create a site shell script called `config.site' that gives default
+values for variables like `CC', `cache_file', and `prefix'.
+`configure' looks for `PREFIX/share/config.site' if it exists, then
+`PREFIX/etc/config.site' if it exists. Or, you can set the
+`CONFIG_SITE' environment variable to the location of the site script.
+A warning: not all `configure' scripts look for a site script.
+
+Defining Variables
+==================
+
+Variables not defined in a site shell script can be set in the
+environment passed to `configure'. However, some packages may run
+configure again during the build, and the customized values of these
+variables may be lost. In order to avoid this problem, you should set
+them in the `configure' command line, using `VAR=value'. For example:
+
+ ./configure CC=/usr/local2/bin/gcc
+
+causes the specified `gcc' to be used as the C compiler (unless it is
+overridden in the site shell script). Here is a another example:
+
+ /bin/bash ./configure CONFIG_SHELL=/bin/bash
+
+Here the `CONFIG_SHELL=/bin/bash' operand causes subsequent
+configuration-related scripts to be executed by `/bin/bash'.
+
+`configure' Invocation
+======================
+
+`configure' recognizes the following options to control how it operates.
+
+`--help'
+`-h'
+ Print a summary of the options to `configure', and exit.
+
+`--version'
+`-V'
+ Print the version of Autoconf used to generate the `configure'
+ script, and exit.
+
+`--cache-file=FILE'
+ Enable the cache: use and save the results of the tests in FILE,
+ traditionally `config.cache'. FILE defaults to `/dev/null' to
+ disable caching.
+
+`--config-cache'
+`-C'
+ Alias for `--cache-file=config.cache'.
+
+`--quiet'
+`--silent'
+`-q'
+ Do not print messages saying which checks are being made. To
+ suppress all normal output, redirect it to `/dev/null' (any error
+ messages will still be shown).
+
+`--srcdir=DIR'
+ Look for the package's source code in directory DIR. Usually
+ `configure' can determine that directory automatically.
+
+`configure' also accepts some other, not widely useful, options. Run
+`configure --help' for more details.
+
--- /dev/null
+#
+# Copyright 2005 Red Hat, 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 of Red Hat not be used in
+# advertising or publicity pertaining to distribution of the software without
+# specific, written prior permission. Red Hat makes no
+# representations about the suitability of this software for any purpose. It
+# is provided "as is" without express or implied warranty.
+#
+# RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+# INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+# EVENT SHALL RED HAT 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.
+
+XINITDIR = $(libdir)/X11/xinit
+
+bin_PROGRAMS = xinit
+#bin_SCRIPTS = startx
+bin_SCRIPTS =
+
+xinit_CFLAGS = $(XINIT_CFLAGS) -DXINITDIR=\"$(XINITDIR)\" -DBINDIR=\"$(bindir)\"
+xinit_LDADD = $(XINIT_LIBS)
+
+xinit_SOURCES = \
+ xinit.c
+
+appmandir = $(APP_MAN_DIR)
+
+appman_PRE = \
+ startx.man \
+ xinit.man
+
+appman_DATA = $(appman_PRE:man=@APP_MAN_SUFFIX@)
+
+include $(top_srcdir)/cpprules.in
+
+xinitrcdir = $(XINITDIR)
+
+PROGCPPDEFS = \
+ -DXRDB=@XRDB@ \
+ -DXMODMAP=@XMODMAP@ \
+ -DTWM=@TWM@ \
+ -DXCLOCK=@XCLOCK@ \
+ -DXTERM=@XTERM@ \
+ -DXSERVER=@XSERVER@ \
+ -DXAUTH=@XAUTH@ \
+ -DXINIT=@XINIT@
+
+CPP_FILES_FLAGS = \
+ -DXINITDIR=$(XINITDIR) $(PROGCPPDEFS) -DLIBDIR=$(libdir) \
+ -DSHELL_CMD=$(SHELL_CMD) $(STARTX_COOKIE_FLAGS) \
+ -D__libexecdir__="$(libexecdir)" \
+ -D__bindir__="$(bindir)"
+
+if LAUNCHD
+launchagents_PRE = org.x.startx.plist.cpp
+launchagents_DATA = $(launchagents_PRE:plist.cpp=plist)
+
+SUBDIRS = privileged_startx
+endif
+
+DIST_SUBDIRS = privileged_startx
+
+xinitrc: xinitrc.cpp Makefile
+startx: startx.cpp Makefile
+
+xinitrc_DATA = xinitrc
+
+CLEANFILES = xinitrc startx $(appman_DATA) $(launchagents_DATA)
+
+EXTRA_DIST = xinitrc.cpp startx.cpp org.x.startx.plist.cpp $(appman_PRE) \
+ startx.cmd xinitrc.cmd xinit.def ChangeLog autogen.sh
+
+.PHONY: ChangeLog
+
+ChangeLog:
+ (GIT_DIR=$(top_srcdir)/.git git-log > .changelog.tmp && mv .changelog.tmp ChangeLog; rm -f .changelog.tmp) || (touch ChangeLog; echo 'git directory not found: installing possibly empty changelog.' >&2)
+
+dist-hook: ChangeLog
--- /dev/null
+The xinit is not intended for naive users. Instead, site administrators should
+design user-friendly scripts that present the desired interface when starting
+up X. The startx script is one such example.
+
+Note that the sample xinitrc file is NOT installed by default.
--- /dev/null
+#! /bin/sh
+
+srcdir=`dirname $0`
+test -z "$srcdir" && srcdir=.
+
+ORIGDIR=`pwd`
+cd $srcdir
+
+aclocal &&
+libtoolize &&
+autoconf &&
+autoheader &&
+automake --add-missing --copy --no-force
+
+#autoreconf -v --install || exit 1
+cd $ORIGDIR || exit $?
+
+#$srcdir/configure --enable-maintainer-mode "$@"
--- /dev/null
+#!/bin/bash
+
+### WARNING: DO NOT CHANGE CODES from HERE !!! ###
+#import setup
+cd `dirname $0`
+_PWD=`pwd`
+pushd ./ > /dev/null
+while [ ! -f "./xo-setup.conf" ]
+do
+ cd ../
+ SRCROOT=`pwd`
+ if [ "$SRCROOT" == "/" ]; then
+ echo "Cannot find xo-setup.conf !!"
+ exit 1
+ fi
+done
+popd > /dev/null
+. ${SRCROOT}/xo-setup.conf
+cd ${_PWD}
+### WARNING: DO NOT CHANGE CODES until HERE!!! ###
+
+export VERSION=1.0
+
+CFLAGS="${CFLAGS}"
+
+if [ $1 ];
+then
+ make $1 || exit 1
+else
+ ./autogen.sh || exit 1
+ ./configure --prefix=$PREFIX || exit 1
+ make || exit 1
+ make install || exit 1
+ make_pkg.sh || exit 1
+fi
+
--- /dev/null
+#! /bin/sh
+# Attempt to guess a canonical system name.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+timestamp='2005-04-22'
+
+# This file 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.
+
+# Originally written by Per Bothner <per@bothner.com>.
+# Please send patches to <config-patches@gnu.org>. Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# This script attempts to guess a canonical system name similar to
+# config.sub. If it succeeds, it prints the system name on stdout, and
+# exits with 0. Otherwise, it exits with 1.
+#
+# The plan is that this can be called by configure scripts if you
+# don't specify an explicit build system type.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION]
+
+Output the configuration name of the system \`$me' is run on.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.guess ($timestamp)
+
+Originally written by Per Bothner.
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit 0 ;;
+ --version | -v )
+ echo "$version" ; exit 0 ;;
+ --help | --h* | -h )
+ echo "$usage"; exit 0 ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help" >&2
+ exit 1 ;;
+ * )
+ break ;;
+ esac
+done
+
+if test $# != 0; then
+ echo "$me: too many arguments$help" >&2
+ exit 1
+fi
+
+trap 'exit 1' 1 2 15
+
+# CC_FOR_BUILD -- compiler used by this script. Note that the use of a
+# compiler to aid in system detection is discouraged as it requires
+# temporary files to be created and, as you can see below, it is a
+# headache to deal with in a portable fashion.
+
+# Historically, `CC_FOR_BUILD' used to be named `HOST_CC'. We still
+# use `HOST_CC' if defined, but it is deprecated.
+
+# Portable tmp directory creation inspired by the Autoconf team.
+
+set_cc_for_build='
+trap "exitcode=\$?; (rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null) && exit \$exitcode" 0 ;
+trap "rm -f \$tmpfiles 2>/dev/null; rmdir \$tmp 2>/dev/null; exit 1" 1 2 13 15 ;
+: ${TMPDIR=/tmp} ;
+ { tmp=`(umask 077 && mktemp -d -q "$TMPDIR/cgXXXXXX") 2>/dev/null` && test -n "$tmp" && test -d "$tmp" ; } ||
+ { test -n "$RANDOM" && tmp=$TMPDIR/cg$$-$RANDOM && (umask 077 && mkdir $tmp) ; } ||
+ { tmp=$TMPDIR/cg-$$ && (umask 077 && mkdir $tmp) && echo "Warning: creating insecure temp directory" >&2 ; } ||
+ { echo "$me: cannot create a temporary directory in $TMPDIR" >&2 ; exit 1 ; } ;
+dummy=$tmp/dummy ;
+tmpfiles="$dummy.c $dummy.o $dummy.rel $dummy" ;
+case $CC_FOR_BUILD,$HOST_CC,$CC in
+ ,,) echo "int x;" > $dummy.c ;
+ for c in cc gcc c89 c99 ; do
+ if ($c -c -o $dummy.o $dummy.c) >/dev/null 2>&1 ; then
+ CC_FOR_BUILD="$c"; break ;
+ fi ;
+ done ;
+ if test x"$CC_FOR_BUILD" = x ; then
+ CC_FOR_BUILD=no_compiler_found ;
+ fi
+ ;;
+ ,,*) CC_FOR_BUILD=$CC ;;
+ ,*,*) CC_FOR_BUILD=$HOST_CC ;;
+esac ;'
+
+# This is needed to find uname on a Pyramid OSx when run in the BSD universe.
+# (ghazi@noc.rutgers.edu 1994-08-24)
+if (test -f /.attbin/uname) >/dev/null 2>&1 ; then
+ PATH=$PATH:/.attbin ; export PATH
+fi
+
+UNAME_MACHINE=`(uname -m) 2>/dev/null` || UNAME_MACHINE=unknown
+UNAME_RELEASE=`(uname -r) 2>/dev/null` || UNAME_RELEASE=unknown
+UNAME_SYSTEM=`(uname -s) 2>/dev/null` || UNAME_SYSTEM=unknown
+UNAME_VERSION=`(uname -v) 2>/dev/null` || UNAME_VERSION=unknown
+
+# Note: order is significant - the case branches are not exclusive.
+
+case "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" in
+ *:NetBSD:*:*)
+ # NetBSD (nbsd) targets should (where applicable) match one or
+ # more of the tupples: *-*-netbsdelf*, *-*-netbsdaout*,
+ # *-*-netbsdecoff* and *-*-netbsd*. For targets that recently
+ # switched to ELF, *-*-netbsd* would select the old
+ # object file format. This provides both forward
+ # compatibility and a consistent mechanism for selecting the
+ # object file format.
+ #
+ # Note: NetBSD doesn't particularly care about the vendor
+ # portion of the name. We always set it to "unknown".
+ sysctl="sysctl -n hw.machine_arch"
+ UNAME_MACHINE_ARCH=`(/sbin/$sysctl 2>/dev/null || \
+ /usr/sbin/$sysctl 2>/dev/null || echo unknown)`
+ case "${UNAME_MACHINE_ARCH}" in
+ armeb) machine=armeb-unknown ;;
+ arm*) machine=arm-unknown ;;
+ sh3el) machine=shl-unknown ;;
+ sh3eb) machine=sh-unknown ;;
+ *) machine=${UNAME_MACHINE_ARCH}-unknown ;;
+ esac
+ # The Operating System including object format, if it has switched
+ # to ELF recently, or will in the future.
+ case "${UNAME_MACHINE_ARCH}" in
+ arm*|i386|m68k|ns32k|sh3*|sparc|vax)
+ eval $set_cc_for_build
+ if echo __ELF__ | $CC_FOR_BUILD -E - 2>/dev/null \
+ | grep __ELF__ >/dev/null
+ then
+ # Once all utilities can be ECOFF (netbsdecoff) or a.out (netbsdaout).
+ # Return netbsd for either. FIX?
+ os=netbsd
+ else
+ os=netbsdelf
+ fi
+ ;;
+ *)
+ os=netbsd
+ ;;
+ esac
+ # The OS release
+ # Debian GNU/NetBSD machines have a different userland, and
+ # thus, need a distinct triplet. However, they do not need
+ # kernel version information, so it can be replaced with a
+ # suitable tag, in the style of linux-gnu.
+ case "${UNAME_VERSION}" in
+ Debian*)
+ release='-gnu'
+ ;;
+ *)
+ release=`echo ${UNAME_RELEASE}|sed -e 's/[-_].*/\./'`
+ ;;
+ esac
+ # Since CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM:
+ # contains redundant information, the shorter form:
+ # CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM is used.
+ echo "${machine}-${os}${release}"
+ exit 0 ;;
+ amd64:OpenBSD:*:*)
+ echo x86_64-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ amiga:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ cats:OpenBSD:*:*)
+ echo arm-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ hp300:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ luna88k:OpenBSD:*:*)
+ echo m88k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mac68k:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ macppc:OpenBSD:*:*)
+ echo powerpc-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvme68k:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvme88k:OpenBSD:*:*)
+ echo m88k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ mvmeppc:OpenBSD:*:*)
+ echo powerpc-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ sgi:OpenBSD:*:*)
+ echo mips64-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ sun3:OpenBSD:*:*)
+ echo m68k-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ *:OpenBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-openbsd${UNAME_RELEASE}
+ exit 0 ;;
+ *:ekkoBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-ekkobsd${UNAME_RELEASE}
+ exit 0 ;;
+ macppc:MirBSD:*:*)
+ echo powerppc-unknown-mirbsd${UNAME_RELEASE}
+ exit 0 ;;
+ *:MirBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-mirbsd${UNAME_RELEASE}
+ exit 0 ;;
+ alpha:OSF1:*:*)
+ case $UNAME_RELEASE in
+ *4.0)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $3}'`
+ ;;
+ *5.*)
+ UNAME_RELEASE=`/usr/sbin/sizer -v | awk '{print $4}'`
+ ;;
+ esac
+ # According to Compaq, /usr/sbin/psrinfo has been available on
+ # OSF/1 and Tru64 systems produced since 1995. I hope that
+ # covers most systems running today. This code pipes the CPU
+ # types through head -n 1, so we only detect the type of CPU 0.
+ ALPHA_CPU_TYPE=`/usr/sbin/psrinfo -v | sed -n -e 's/^ The alpha \(.*\) processor.*$/\1/p' | head -n 1`
+ case "$ALPHA_CPU_TYPE" in
+ "EV4 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "EV4.5 (21064)")
+ UNAME_MACHINE="alpha" ;;
+ "LCA4 (21066/21068)")
+ UNAME_MACHINE="alpha" ;;
+ "EV5 (21164)")
+ UNAME_MACHINE="alphaev5" ;;
+ "EV5.6 (21164A)")
+ UNAME_MACHINE="alphaev56" ;;
+ "EV5.6 (21164PC)")
+ UNAME_MACHINE="alphapca56" ;;
+ "EV5.7 (21164PC)")
+ UNAME_MACHINE="alphapca57" ;;
+ "EV6 (21264)")
+ UNAME_MACHINE="alphaev6" ;;
+ "EV6.7 (21264A)")
+ UNAME_MACHINE="alphaev67" ;;
+ "EV6.8CB (21264C)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8AL (21264B)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.8CX (21264D)")
+ UNAME_MACHINE="alphaev68" ;;
+ "EV6.9A (21264/EV69A)")
+ UNAME_MACHINE="alphaev69" ;;
+ "EV7 (21364)")
+ UNAME_MACHINE="alphaev7" ;;
+ "EV7.9 (21364A)")
+ UNAME_MACHINE="alphaev79" ;;
+ esac
+ # A Pn.n version is a patched version.
+ # A Vn.n version is a released version.
+ # A Tn.n version is a released field test version.
+ # A Xn.n version is an unreleased experimental baselevel.
+ # 1.2 uses "1.2" for uname -r.
+ echo ${UNAME_MACHINE}-dec-osf`echo ${UNAME_RELEASE} | sed -e 's/^[PVTX]//' | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ exit 0 ;;
+ Alpha\ *:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # Should we change UNAME_MACHINE based on the output of uname instead
+ # of the specific Alpha model?
+ echo alpha-pc-interix
+ exit 0 ;;
+ 21064:Windows_NT:50:3)
+ echo alpha-dec-winnt3.5
+ exit 0 ;;
+ Amiga*:UNIX_System_V:4.0:*)
+ echo m68k-unknown-sysv4
+ exit 0;;
+ *:[Aa]miga[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-amigaos
+ exit 0 ;;
+ *:[Mm]orph[Oo][Ss]:*:*)
+ echo ${UNAME_MACHINE}-unknown-morphos
+ exit 0 ;;
+ *:OS/390:*:*)
+ echo i370-ibm-openedition
+ exit 0 ;;
+ *:z/VM:*:*)
+ echo s390-ibm-zvmoe
+ exit 0 ;;
+ *:OS400:*:*)
+ echo powerpc-ibm-os400
+ exit 0 ;;
+ arm:RISC*:1.[012]*:*|arm:riscix:1.[012]*:*)
+ echo arm-acorn-riscix${UNAME_RELEASE}
+ exit 0;;
+ SR2?01:HI-UX/MPP:*:* | SR8000:HI-UX/MPP:*:*)
+ echo hppa1.1-hitachi-hiuxmpp
+ exit 0;;
+ Pyramid*:OSx*:*:* | MIS*:OSx*:*:* | MIS*:SMP_DC-OSx*:*:*)
+ # akee@wpdis03.wpafb.af.mil (Earle F. Ake) contributed MIS and NILE.
+ if test "`(/bin/universe) 2>/dev/null`" = att ; then
+ echo pyramid-pyramid-sysv3
+ else
+ echo pyramid-pyramid-bsd
+ fi
+ exit 0 ;;
+ NILE*:*:*:dcosx)
+ echo pyramid-pyramid-svr4
+ exit 0 ;;
+ DRS?6000:unix:4.0:6*)
+ echo sparc-icl-nx6
+ exit 0 ;;
+ DRS?6000:UNIX_SV:4.2*:7* | DRS?6000:isis:4.2*:7*)
+ case `/usr/bin/uname -p` in
+ sparc) echo sparc-icl-nx7 && exit 0 ;;
+ esac ;;
+ sun4H:SunOS:5.*:*)
+ echo sparc-hal-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:5.*:* | tadpole*:SunOS:5.*:*)
+ echo sparc-sun-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ i86pc:SunOS:5.*:*)
+ echo i386-pc-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:6*:*)
+ # According to config.sub, this is the proper way to canonicalize
+ # SunOS6. Hard to guess exactly what SunOS6 will be like, but
+ # it's likely to be more like Solaris than SunOS4.
+ echo sparc-sun-solaris3`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ sun4*:SunOS:*:*)
+ case "`/usr/bin/arch -k`" in
+ Series*|S4*)
+ UNAME_RELEASE=`uname -v`
+ ;;
+ esac
+ # Japanese Language versions have a version number like `4.1.3-JL'.
+ echo sparc-sun-sunos`echo ${UNAME_RELEASE}|sed -e 's/-/_/'`
+ exit 0 ;;
+ sun3*:SunOS:*:*)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ exit 0 ;;
+ sun*:*:4.2BSD:*)
+ UNAME_RELEASE=`(sed 1q /etc/motd | awk '{print substr($5,1,3)}') 2>/dev/null`
+ test "x${UNAME_RELEASE}" = "x" && UNAME_RELEASE=3
+ case "`/bin/arch`" in
+ sun3)
+ echo m68k-sun-sunos${UNAME_RELEASE}
+ ;;
+ sun4)
+ echo sparc-sun-sunos${UNAME_RELEASE}
+ ;;
+ esac
+ exit 0 ;;
+ aushp:SunOS:*:*)
+ echo sparc-auspex-sunos${UNAME_RELEASE}
+ exit 0 ;;
+ # The situation for MiNT is a little confusing. The machine name
+ # can be virtually everything (everything which is not
+ # "atarist" or "atariste" at least should have a processor
+ # > m68000). The system name ranges from "MiNT" over "FreeMiNT"
+ # to the lowercase version "mint" (or "freemint"). Finally
+ # the system name "TOS" denotes a system which is actually not
+ # MiNT. But MiNT is downward compatible to TOS, so this should
+ # be no problem.
+ atarist[e]:*MiNT:*:* | atarist[e]:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ atari*:*MiNT:*:* | atari*:*mint:*:* | atarist[e]:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ *falcon*:*MiNT:*:* | *falcon*:*mint:*:* | *falcon*:*TOS:*:*)
+ echo m68k-atari-mint${UNAME_RELEASE}
+ exit 0 ;;
+ milan*:*MiNT:*:* | milan*:*mint:*:* | *milan*:*TOS:*:*)
+ echo m68k-milan-mint${UNAME_RELEASE}
+ exit 0 ;;
+ hades*:*MiNT:*:* | hades*:*mint:*:* | *hades*:*TOS:*:*)
+ echo m68k-hades-mint${UNAME_RELEASE}
+ exit 0 ;;
+ *:*MiNT:*:* | *:*mint:*:* | *:*TOS:*:*)
+ echo m68k-unknown-mint${UNAME_RELEASE}
+ exit 0 ;;
+ m68k:machten:*:*)
+ echo m68k-apple-machten${UNAME_RELEASE}
+ exit 0 ;;
+ powerpc:machten:*:*)
+ echo powerpc-apple-machten${UNAME_RELEASE}
+ exit 0 ;;
+ RISC*:Mach:*:*)
+ echo mips-dec-mach_bsd4.3
+ exit 0 ;;
+ RISC*:ULTRIX:*:*)
+ echo mips-dec-ultrix${UNAME_RELEASE}
+ exit 0 ;;
+ VAX*:ULTRIX*:*:*)
+ echo vax-dec-ultrix${UNAME_RELEASE}
+ exit 0 ;;
+ 2020:CLIX:*:* | 2430:CLIX:*:*)
+ echo clipper-intergraph-clix${UNAME_RELEASE}
+ exit 0 ;;
+ mips:*:*:UMIPS | mips:*:*:RISCos)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+#ifdef __cplusplus
+#include <stdio.h> /* for printf() prototype */
+ int main (int argc, char *argv[]) {
+#else
+ int main (argc, argv) int argc; char *argv[]; {
+#endif
+ #if defined (host_mips) && defined (MIPSEB)
+ #if defined (SYSTYPE_SYSV)
+ printf ("mips-mips-riscos%ssysv\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_SVR4)
+ printf ("mips-mips-riscos%ssvr4\n", argv[1]); exit (0);
+ #endif
+ #if defined (SYSTYPE_BSD43) || defined(SYSTYPE_BSD)
+ printf ("mips-mips-riscos%sbsd\n", argv[1]); exit (0);
+ #endif
+ #endif
+ exit (-1);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c \
+ && $dummy `echo "${UNAME_RELEASE}" | sed -n 's/\([0-9]*\).*/\1/p'` \
+ && exit 0
+ echo mips-mips-riscos${UNAME_RELEASE}
+ exit 0 ;;
+ Motorola:PowerMAX_OS:*:*)
+ echo powerpc-motorola-powermax
+ exit 0 ;;
+ Motorola:*:4.3:PL8-*)
+ echo powerpc-harris-powermax
+ exit 0 ;;
+ Night_Hawk:*:*:PowerMAX_OS | Synergy:PowerMAX_OS:*:*)
+ echo powerpc-harris-powermax
+ exit 0 ;;
+ Night_Hawk:Power_UNIX:*:*)
+ echo powerpc-harris-powerunix
+ exit 0 ;;
+ m88k:CX/UX:7*:*)
+ echo m88k-harris-cxux7
+ exit 0 ;;
+ m88k:*:4*:R4*)
+ echo m88k-motorola-sysv4
+ exit 0 ;;
+ m88k:*:3*:R3*)
+ echo m88k-motorola-sysv3
+ exit 0 ;;
+ AViiON:dgux:*:*)
+ # DG/UX returns AViiON for all architectures
+ UNAME_PROCESSOR=`/usr/bin/uname -p`
+ if [ $UNAME_PROCESSOR = mc88100 ] || [ $UNAME_PROCESSOR = mc88110 ]
+ then
+ if [ ${TARGET_BINARY_INTERFACE}x = m88kdguxelfx ] || \
+ [ ${TARGET_BINARY_INTERFACE}x = x ]
+ then
+ echo m88k-dg-dgux${UNAME_RELEASE}
+ else
+ echo m88k-dg-dguxbcs${UNAME_RELEASE}
+ fi
+ else
+ echo i586-dg-dgux${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+ M88*:DolphinOS:*:*) # DolphinOS (SVR3)
+ echo m88k-dolphin-sysv3
+ exit 0 ;;
+ M88*:*:R3*:*)
+ # Delta 88k system running SVR3
+ echo m88k-motorola-sysv3
+ exit 0 ;;
+ XD88*:*:*:*) # Tektronix XD88 system running UTekV (SVR3)
+ echo m88k-tektronix-sysv3
+ exit 0 ;;
+ Tek43[0-9][0-9]:UTek:*:*) # Tektronix 4300 system running UTek (BSD)
+ echo m68k-tektronix-bsd
+ exit 0 ;;
+ *:IRIX*:*:*)
+ echo mips-sgi-irix`echo ${UNAME_RELEASE}|sed -e 's/-/_/g'`
+ exit 0 ;;
+ ????????:AIX?:[12].1:2) # AIX 2.2.1 or AIX 2.1.1 is RT/PC AIX.
+ echo romp-ibm-aix # uname -m gives an 8 hex-code CPU id
+ exit 0 ;; # Note that: echo "'`uname -s`'" gives 'AIX '
+ i*86:AIX:*:*)
+ echo i386-ibm-aix
+ exit 0 ;;
+ ia64:AIX:*:*)
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${UNAME_MACHINE}-ibm-aix${IBM_REV}
+ exit 0 ;;
+ *:AIX:2:3)
+ if grep bos325 /usr/include/stdio.h >/dev/null 2>&1; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <sys/systemcfg.h>
+
+ main()
+ {
+ if (!__power_pc())
+ exit(1);
+ puts("powerpc-ibm-aix3.2.5");
+ exit(0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+ echo rs6000-ibm-aix3.2.5
+ elif grep bos324 /usr/include/stdio.h >/dev/null 2>&1; then
+ echo rs6000-ibm-aix3.2.4
+ else
+ echo rs6000-ibm-aix3.2
+ fi
+ exit 0 ;;
+ *:AIX:*:[45])
+ IBM_CPU_ID=`/usr/sbin/lsdev -C -c processor -S available | sed 1q | awk '{ print $1 }'`
+ if /usr/sbin/lsattr -El ${IBM_CPU_ID} | grep ' POWER' >/dev/null 2>&1; then
+ IBM_ARCH=rs6000
+ else
+ IBM_ARCH=powerpc
+ fi
+ if [ -x /usr/bin/oslevel ] ; then
+ IBM_REV=`/usr/bin/oslevel`
+ else
+ IBM_REV=${UNAME_VERSION}.${UNAME_RELEASE}
+ fi
+ echo ${IBM_ARCH}-ibm-aix${IBM_REV}
+ exit 0 ;;
+ *:AIX:*:*)
+ echo rs6000-ibm-aix
+ exit 0 ;;
+ ibmrt:4.4BSD:*|romp-ibm:BSD:*)
+ echo romp-ibm-bsd4.4
+ exit 0 ;;
+ ibmrt:*BSD:*|romp-ibm:BSD:*) # covers RT/PC BSD and
+ echo romp-ibm-bsd${UNAME_RELEASE} # 4.3 with uname added to
+ exit 0 ;; # report: romp-ibm BSD 4.3
+ *:BOSX:*:*)
+ echo rs6000-bull-bosx
+ exit 0 ;;
+ DPX/2?00:B.O.S.:*:*)
+ echo m68k-bull-sysv3
+ exit 0 ;;
+ 9000/[34]??:4.3bsd:1.*:*)
+ echo m68k-hp-bsd
+ exit 0 ;;
+ hp300:4.4BSD:*:* | 9000/[34]??:4.3bsd:2.*:*)
+ echo m68k-hp-bsd4.4
+ exit 0 ;;
+ 9000/[34678]??:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ case "${UNAME_MACHINE}" in
+ 9000/31? ) HP_ARCH=m68000 ;;
+ 9000/[34]?? ) HP_ARCH=m68k ;;
+ 9000/[678][0-9][0-9])
+ if [ -x /usr/bin/getconf ]; then
+ sc_cpu_version=`/usr/bin/getconf SC_CPU_VERSION 2>/dev/null`
+ sc_kernel_bits=`/usr/bin/getconf SC_KERNEL_BITS 2>/dev/null`
+ case "${sc_cpu_version}" in
+ 523) HP_ARCH="hppa1.0" ;; # CPU_PA_RISC1_0
+ 528) HP_ARCH="hppa1.1" ;; # CPU_PA_RISC1_1
+ 532) # CPU_PA_RISC2_0
+ case "${sc_kernel_bits}" in
+ 32) HP_ARCH="hppa2.0n" ;;
+ 64) HP_ARCH="hppa2.0w" ;;
+ '') HP_ARCH="hppa2.0" ;; # HP-UX 10.20
+ esac ;;
+ esac
+ fi
+ if [ "${HP_ARCH}" = "" ]; then
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+
+ #define _HPUX_SOURCE
+ #include <stdlib.h>
+ #include <unistd.h>
+
+ int main ()
+ {
+ #if defined(_SC_KERNEL_BITS)
+ long bits = sysconf(_SC_KERNEL_BITS);
+ #endif
+ long cpu = sysconf (_SC_CPU_VERSION);
+
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1"); break;
+ case CPU_PA_RISC2_0:
+ #if defined(_SC_KERNEL_BITS)
+ switch (bits)
+ {
+ case 64: puts ("hppa2.0w"); break;
+ case 32: puts ("hppa2.0n"); break;
+ default: puts ("hppa2.0"); break;
+ } break;
+ #else /* !defined(_SC_KERNEL_BITS) */
+ puts ("hppa2.0"); break;
+ #endif
+ default: puts ("hppa1.0"); break;
+ }
+ exit (0);
+ }
+EOF
+ (CCOPTS= $CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null) && HP_ARCH=`$dummy`
+ test -z "$HP_ARCH" && HP_ARCH=hppa
+ fi ;;
+ esac
+ if [ ${HP_ARCH} = "hppa2.0w" ]
+ then
+ # avoid double evaluation of $set_cc_for_build
+ test -n "$CC_FOR_BUILD" || eval $set_cc_for_build
+ if echo __LP64__ | (CCOPTS= $CC_FOR_BUILD -E -) | grep __LP64__ >/dev/null
+ then
+ HP_ARCH="hppa2.0w"
+ else
+ HP_ARCH="hppa64"
+ fi
+ fi
+ echo ${HP_ARCH}-hp-hpux${HPUX_REV}
+ exit 0 ;;
+ ia64:HP-UX:*:*)
+ HPUX_REV=`echo ${UNAME_RELEASE}|sed -e 's/[^.]*.[0B]*//'`
+ echo ia64-hp-hpux${HPUX_REV}
+ exit 0 ;;
+ 3050*:HI-UX:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <unistd.h>
+ int
+ main ()
+ {
+ long cpu = sysconf (_SC_CPU_VERSION);
+ /* The order matters, because CPU_IS_HP_MC68K erroneously returns
+ true for CPU_PA_RISC1_0. CPU_IS_PA_RISC returns correct
+ results, however. */
+ if (CPU_IS_PA_RISC (cpu))
+ {
+ switch (cpu)
+ {
+ case CPU_PA_RISC1_0: puts ("hppa1.0-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC1_1: puts ("hppa1.1-hitachi-hiuxwe2"); break;
+ case CPU_PA_RISC2_0: puts ("hppa2.0-hitachi-hiuxwe2"); break;
+ default: puts ("hppa-hitachi-hiuxwe2"); break;
+ }
+ }
+ else if (CPU_IS_HP_MC68K (cpu))
+ puts ("m68k-hitachi-hiuxwe2");
+ else puts ("unknown-hitachi-hiuxwe2");
+ exit (0);
+ }
+EOF
+ $CC_FOR_BUILD -o $dummy $dummy.c && $dummy && exit 0
+ echo unknown-hitachi-hiuxwe2
+ exit 0 ;;
+ 9000/7??:4.3bsd:*:* | 9000/8?[79]:4.3bsd:*:* )
+ echo hppa1.1-hp-bsd
+ exit 0 ;;
+ 9000/8??:4.3bsd:*:*)
+ echo hppa1.0-hp-bsd
+ exit 0 ;;
+ *9??*:MPE/iX:*:* | *3000*:MPE/iX:*:*)
+ echo hppa1.0-hp-mpeix
+ exit 0 ;;
+ hp7??:OSF1:*:* | hp8?[79]:OSF1:*:* )
+ echo hppa1.1-hp-osf
+ exit 0 ;;
+ hp8??:OSF1:*:*)
+ echo hppa1.0-hp-osf
+ exit 0 ;;
+ i*86:OSF1:*:*)
+ if [ -x /usr/sbin/sysversion ] ; then
+ echo ${UNAME_MACHINE}-unknown-osf1mk
+ else
+ echo ${UNAME_MACHINE}-unknown-osf1
+ fi
+ exit 0 ;;
+ parisc*:Lites*:*:*)
+ echo hppa1.1-hp-lites
+ exit 0 ;;
+ C1*:ConvexOS:*:* | convex:ConvexOS:C1*:*)
+ echo c1-convex-bsd
+ exit 0 ;;
+ C2*:ConvexOS:*:* | convex:ConvexOS:C2*:*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit 0 ;;
+ C34*:ConvexOS:*:* | convex:ConvexOS:C34*:*)
+ echo c34-convex-bsd
+ exit 0 ;;
+ C38*:ConvexOS:*:* | convex:ConvexOS:C38*:*)
+ echo c38-convex-bsd
+ exit 0 ;;
+ C4*:ConvexOS:*:* | convex:ConvexOS:C4*:*)
+ echo c4-convex-bsd
+ exit 0 ;;
+ CRAY*Y-MP:*:*:*)
+ echo ymp-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*[A-Z]90:*:*:*)
+ echo ${UNAME_MACHINE}-cray-unicos${UNAME_RELEASE} \
+ | sed -e 's/CRAY.*\([A-Z]90\)/\1/' \
+ -e y/ABCDEFGHIJKLMNOPQRSTUVWXYZ/abcdefghijklmnopqrstuvwxyz/ \
+ -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*TS:*:*:*)
+ echo t90-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*T3E:*:*:*)
+ echo alphaev5-cray-unicosmk${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ CRAY*SV1:*:*:*)
+ echo sv1-cray-unicos${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ *:UNICOS/mp:*:*)
+ echo craynv-cray-unicosmp${UNAME_RELEASE} | sed -e 's/\.[^.]*$/.X/'
+ exit 0 ;;
+ F30[01]:UNIX_System_V:*:* | F700:UNIX_System_V:*:*)
+ FUJITSU_PROC=`uname -m | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'`
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | sed -e 's/ /_/'`
+ echo "${FUJITSU_PROC}-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit 0 ;;
+ 5000:UNIX_System_V:4.*:*)
+ FUJITSU_SYS=`uname -p | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/\///'`
+ FUJITSU_REL=`echo ${UNAME_RELEASE} | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz' | sed -e 's/ /_/'`
+ echo "sparc-fujitsu-${FUJITSU_SYS}${FUJITSU_REL}"
+ exit 0 ;;
+ i*86:BSD/386:*:* | i*86:BSD/OS:*:* | *:Ascend\ Embedded/OS:*:*)
+ echo ${UNAME_MACHINE}-pc-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ sparc*:BSD/OS:*:*)
+ echo sparc-unknown-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ *:BSD/OS:*:*)
+ echo ${UNAME_MACHINE}-unknown-bsdi${UNAME_RELEASE}
+ exit 0 ;;
+ *:FreeBSD:*:*)
+ echo ${UNAME_MACHINE}-unknown-freebsd`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit 0 ;;
+ i*:CYGWIN*:*)
+ echo ${UNAME_MACHINE}-pc-cygwin
+ exit 0 ;;
+ i*:MINGW*:*)
+ echo ${UNAME_MACHINE}-pc-mingw32
+ exit 0 ;;
+ i*:PW*:*)
+ echo ${UNAME_MACHINE}-pc-pw32
+ exit 0 ;;
+ x86:Interix*:[34]*)
+ echo i586-pc-interix${UNAME_RELEASE}|sed -e 's/\..*//'
+ exit 0 ;;
+ [345]86:Windows_95:* | [345]86:Windows_98:* | [345]86:Windows_NT:*)
+ echo i${UNAME_MACHINE}-pc-mks
+ exit 0 ;;
+ i*:Windows_NT*:* | Pentium*:Windows_NT*:*)
+ # How do we know it's Interix rather than the generic POSIX subsystem?
+ # It also conflicts with pre-2.0 versions of AT&T UWIN. Should we
+ # UNAME_MACHINE based on the output of uname instead of i386?
+ echo i586-pc-interix
+ exit 0 ;;
+ i*:UWIN*:*)
+ echo ${UNAME_MACHINE}-pc-uwin
+ exit 0 ;;
+ amd64:CYGWIN*:*:*)
+ echo x86_64-unknown-cygwin
+ exit 0 ;;
+ p*:CYGWIN*:*)
+ echo powerpcle-unknown-cygwin
+ exit 0 ;;
+ prep*:SunOS:5.*:*)
+ echo powerpcle-unknown-solaris2`echo ${UNAME_RELEASE}|sed -e 's/[^.]*//'`
+ exit 0 ;;
+ *:GNU:*:*)
+ # the GNU system
+ echo `echo ${UNAME_MACHINE}|sed -e 's,[-/].*$,,'`-unknown-gnu`echo ${UNAME_RELEASE}|sed -e 's,/.*$,,'`
+ exit 0 ;;
+ *:GNU/*:*:*)
+ # other systems with GNU libc and userland
+ echo ${UNAME_MACHINE}-unknown-`echo ${UNAME_SYSTEM} | sed 's,^[^/]*/,,' | tr '[A-Z]' '[a-z]'``echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`-gnu
+ exit 0 ;;
+ i*86:Minix:*:*)
+ echo ${UNAME_MACHINE}-pc-minix
+ exit 0 ;;
+ arm*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ cris:Linux:*:*)
+ echo cris-axis-linux-gnu
+ exit 0 ;;
+ crisv32:Linux:*:*)
+ echo crisv32-axis-linux-gnu
+ exit 0 ;;
+ frv:Linux:*:*)
+ echo frv-unknown-linux-gnu
+ exit 0 ;;
+ ia64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ m32r*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ m68*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ mips:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef mips
+ #undef mipsel
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=mipsel
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=mips
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+ test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+ ;;
+ mips64:Linux:*:*)
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #undef CPU
+ #undef mips64
+ #undef mips64el
+ #if defined(__MIPSEL__) || defined(__MIPSEL) || defined(_MIPSEL) || defined(MIPSEL)
+ CPU=mips64el
+ #else
+ #if defined(__MIPSEB__) || defined(__MIPSEB) || defined(_MIPSEB) || defined(MIPSEB)
+ CPU=mips64
+ #else
+ CPU=
+ #endif
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^CPU=`
+ test x"${CPU}" != x && echo "${CPU}-unknown-linux-gnu" && exit 0
+ ;;
+ ppc:Linux:*:*)
+ echo powerpc-unknown-linux-gnu
+ exit 0 ;;
+ ppc64:Linux:*:*)
+ echo powerpc64-unknown-linux-gnu
+ exit 0 ;;
+ alpha:Linux:*:*)
+ case `sed -n '/^cpu model/s/^.*: \(.*\)/\1/p' < /proc/cpuinfo` in
+ EV5) UNAME_MACHINE=alphaev5 ;;
+ EV56) UNAME_MACHINE=alphaev56 ;;
+ PCA56) UNAME_MACHINE=alphapca56 ;;
+ PCA57) UNAME_MACHINE=alphapca56 ;;
+ EV6) UNAME_MACHINE=alphaev6 ;;
+ EV67) UNAME_MACHINE=alphaev67 ;;
+ EV68*) UNAME_MACHINE=alphaev68 ;;
+ esac
+ objdump --private-headers /bin/sh | grep ld.so.1 >/dev/null
+ if test "$?" = 0 ; then LIBC="libc1" ; else LIBC="" ; fi
+ echo ${UNAME_MACHINE}-unknown-linux-gnu${LIBC}
+ exit 0 ;;
+ parisc:Linux:*:* | hppa:Linux:*:*)
+ # Look for CPU level
+ case `grep '^cpu[^a-z]*:' /proc/cpuinfo 2>/dev/null | cut -d' ' -f2` in
+ PA7*) echo hppa1.1-unknown-linux-gnu ;;
+ PA8*) echo hppa2.0-unknown-linux-gnu ;;
+ *) echo hppa-unknown-linux-gnu ;;
+ esac
+ exit 0 ;;
+ parisc64:Linux:*:* | hppa64:Linux:*:*)
+ echo hppa64-unknown-linux-gnu
+ exit 0 ;;
+ s390:Linux:*:* | s390x:Linux:*:*)
+ echo ${UNAME_MACHINE}-ibm-linux
+ exit 0 ;;
+ sh64*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ sh*:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ sparc:Linux:*:* | sparc64:Linux:*:*)
+ echo ${UNAME_MACHINE}-unknown-linux-gnu
+ exit 0 ;;
+ x86_64:Linux:*:*)
+ echo x86_64-unknown-linux-gnu
+ exit 0 ;;
+ i*86:Linux:*:*)
+ # The BFD linker knows what the default object file format is, so
+ # first see if it will tell us. cd to the root directory to prevent
+ # problems with other programs or directories called `ld' in the path.
+ # Set LC_ALL=C to ensure ld outputs messages in English.
+ ld_supported_targets=`cd /; LC_ALL=C ld --help 2>&1 \
+ | sed -ne '/supported targets:/!d
+ s/[ ][ ]*/ /g
+ s/.*supported targets: *//
+ s/ .*//
+ p'`
+ case "$ld_supported_targets" in
+ elf32-i386)
+ TENTATIVE="${UNAME_MACHINE}-pc-linux-gnu"
+ ;;
+ a.out-i386-linux)
+ echo "${UNAME_MACHINE}-pc-linux-gnuaout"
+ exit 0 ;;
+ coff-i386)
+ echo "${UNAME_MACHINE}-pc-linux-gnucoff"
+ exit 0 ;;
+ "")
+ # Either a pre-BFD a.out linker (linux-gnuoldld) or
+ # one that does not give us useful --help.
+ echo "${UNAME_MACHINE}-pc-linux-gnuoldld"
+ exit 0 ;;
+ esac
+ # Determine whether the default compiler is a.out or elf
+ eval $set_cc_for_build
+ sed 's/^ //' << EOF >$dummy.c
+ #include <features.h>
+ #ifdef __ELF__
+ # ifdef __GLIBC__
+ # if __GLIBC__ >= 2
+ LIBC=gnu
+ # else
+ LIBC=gnulibc1
+ # endif
+ # else
+ LIBC=gnulibc1
+ # endif
+ #else
+ #ifdef __INTEL_COMPILER
+ LIBC=gnu
+ #else
+ LIBC=gnuaout
+ #endif
+ #endif
+ #ifdef __dietlibc__
+ LIBC=dietlibc
+ #endif
+EOF
+ eval `$CC_FOR_BUILD -E $dummy.c 2>/dev/null | grep ^LIBC=`
+ test x"${LIBC}" != x && echo "${UNAME_MACHINE}-pc-linux-${LIBC}" && exit 0
+ test x"${TENTATIVE}" != x && echo "${TENTATIVE}" && exit 0
+ ;;
+ i*86:DYNIX/ptx:4*:*)
+ # ptx 4.0 does uname -s correctly, with DYNIX/ptx in there.
+ # earlier versions are messed up and put the nodename in both
+ # sysname and nodename.
+ echo i386-sequent-sysv4
+ exit 0 ;;
+ i*86:UNIX_SV:4.2MP:2.*)
+ # Unixware is an offshoot of SVR4, but it has its own version
+ # number series starting with 2...
+ # I am not positive that other SVR4 systems won't match this,
+ # I just have to hope. -- rms.
+ # Use sysv4.2uw... so that sysv4* matches it.
+ echo ${UNAME_MACHINE}-pc-sysv4.2uw${UNAME_VERSION}
+ exit 0 ;;
+ i*86:OS/2:*:*)
+ # If we were able to find `uname', then EMX Unix compatibility
+ # is probably installed.
+ echo ${UNAME_MACHINE}-pc-os2-emx
+ exit 0 ;;
+ i*86:XTS-300:*:STOP)
+ echo ${UNAME_MACHINE}-unknown-stop
+ exit 0 ;;
+ i*86:atheos:*:*)
+ echo ${UNAME_MACHINE}-unknown-atheos
+ exit 0 ;;
+ i*86:syllable:*:*)
+ echo ${UNAME_MACHINE}-pc-syllable
+ exit 0 ;;
+ i*86:LynxOS:2.*:* | i*86:LynxOS:3.[01]*:* | i*86:LynxOS:4.0*:*)
+ echo i386-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ i*86:*DOS:*:*)
+ echo ${UNAME_MACHINE}-pc-msdosdjgpp
+ exit 0 ;;
+ i*86:*:4.*:* | i*86:SYSTEM_V:4.*:*)
+ UNAME_REL=`echo ${UNAME_RELEASE} | sed 's/\/MP$//'`
+ if grep Novell /usr/include/link.h >/dev/null 2>/dev/null; then
+ echo ${UNAME_MACHINE}-univel-sysv${UNAME_REL}
+ else
+ echo ${UNAME_MACHINE}-pc-sysv${UNAME_REL}
+ fi
+ exit 0 ;;
+ i*86:*:5:[78]*)
+ case `/bin/uname -X | grep "^Machine"` in
+ *486*) UNAME_MACHINE=i486 ;;
+ *Pentium) UNAME_MACHINE=i586 ;;
+ *Pent*|*Celeron) UNAME_MACHINE=i686 ;;
+ esac
+ echo ${UNAME_MACHINE}-unknown-sysv${UNAME_RELEASE}${UNAME_SYSTEM}${UNAME_VERSION}
+ exit 0 ;;
+ i*86:*:3.2:*)
+ if test -f /usr/options/cb.name; then
+ UNAME_REL=`sed -n 's/.*Version //p' </usr/options/cb.name`
+ echo ${UNAME_MACHINE}-pc-isc$UNAME_REL
+ elif /bin/uname -X 2>/dev/null >/dev/null ; then
+ UNAME_REL=`(/bin/uname -X|grep Release|sed -e 's/.*= //')`
+ (/bin/uname -X|grep i80486 >/dev/null) && UNAME_MACHINE=i486
+ (/bin/uname -X|grep '^Machine.*Pentium' >/dev/null) \
+ && UNAME_MACHINE=i586
+ (/bin/uname -X|grep '^Machine.*Pent *II' >/dev/null) \
+ && UNAME_MACHINE=i686
+ (/bin/uname -X|grep '^Machine.*Pentium Pro' >/dev/null) \
+ && UNAME_MACHINE=i686
+ echo ${UNAME_MACHINE}-pc-sco$UNAME_REL
+ else
+ echo ${UNAME_MACHINE}-pc-sysv32
+ fi
+ exit 0 ;;
+ pc:*:*:*)
+ # Left here for compatibility:
+ # uname -m prints for DJGPP always 'pc', but it prints nothing about
+ # the processor, so we play safe by assuming i386.
+ echo i386-pc-msdosdjgpp
+ exit 0 ;;
+ Intel:Mach:3*:*)
+ echo i386-pc-mach3
+ exit 0 ;;
+ paragon:*:*:*)
+ echo i860-intel-osf1
+ exit 0 ;;
+ i860:*:4.*:*) # i860-SVR4
+ if grep Stardent /usr/include/sys/uadmin.h >/dev/null 2>&1 ; then
+ echo i860-stardent-sysv${UNAME_RELEASE} # Stardent Vistra i860-SVR4
+ else # Add other i860-SVR4 vendors below as they are discovered.
+ echo i860-unknown-sysv${UNAME_RELEASE} # Unknown i860-SVR4
+ fi
+ exit 0 ;;
+ mini*:CTIX:SYS*5:*)
+ # "miniframe"
+ echo m68010-convergent-sysv
+ exit 0 ;;
+ mc68k:UNIX:SYSTEM5:3.51m)
+ echo m68k-convergent-sysv
+ exit 0 ;;
+ M680?0:D-NIX:5.3:*)
+ echo m68k-diab-dnix
+ exit 0 ;;
+ M68*:*:R3V[5678]*:*)
+ test -r /sysV68 && echo 'm68k-motorola-sysv' && exit 0 ;;
+ 3[345]??:*:4.0:3.0 | 3[34]??A:*:4.0:3.0 | 3[34]??,*:*:4.0:3.0 | 3[34]??/*:*:4.0:3.0 | 4400:*:4.0:3.0 | 4850:*:4.0:3.0 | SKA40:*:4.0:3.0 | SDS2:*:4.0:3.0 | SHG2:*:4.0:3.0 | S7501*:*:4.0:3.0)
+ OS_REL=''
+ test -r /etc/.relid \
+ && OS_REL=.`sed -n 's/[^ ]* [^ ]* \([0-9][0-9]\).*/\1/p' < /etc/.relid`
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && echo i486-ncr-sysv4.3${OS_REL} && exit 0
+ /bin/uname -p 2>/dev/null | /bin/grep entium >/dev/null \
+ && echo i586-ncr-sysv4.3${OS_REL} && exit 0 ;;
+ 3[34]??:*:4.0:* | 3[34]??,*:*:4.0:*)
+ /bin/uname -p 2>/dev/null | grep 86 >/dev/null \
+ && echo i486-ncr-sysv4 && exit 0 ;;
+ m68*:LynxOS:2.*:* | m68*:LynxOS:3.0*:*)
+ echo m68k-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ mc68030:UNIX_System_V:4.*:*)
+ echo m68k-atari-sysv4
+ exit 0 ;;
+ TSUNAMI:LynxOS:2.*:*)
+ echo sparc-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ rs6000:LynxOS:2.*:*)
+ echo rs6000-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ PowerPC:LynxOS:2.*:* | PowerPC:LynxOS:3.[01]*:* | PowerPC:LynxOS:4.0*:*)
+ echo powerpc-unknown-lynxos${UNAME_RELEASE}
+ exit 0 ;;
+ SM[BE]S:UNIX_SV:*:*)
+ echo mips-dde-sysv${UNAME_RELEASE}
+ exit 0 ;;
+ RM*:ReliantUNIX-*:*:*)
+ echo mips-sni-sysv4
+ exit 0 ;;
+ RM*:SINIX-*:*:*)
+ echo mips-sni-sysv4
+ exit 0 ;;
+ *:SINIX-*:*:*)
+ if uname -p 2>/dev/null >/dev/null ; then
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ echo ${UNAME_MACHINE}-sni-sysv4
+ else
+ echo ns32k-sni-sysv
+ fi
+ exit 0 ;;
+ PENTIUM:*:4.0*:*) # Unisys `ClearPath HMP IX 4000' SVR4/MP effort
+ # says <Richard.M.Bartel@ccMail.Census.GOV>
+ echo i586-unisys-sysv4
+ exit 0 ;;
+ *:UNIX_System_V:4*:FTX*)
+ # From Gerald Hewes <hewes@openmarket.com>.
+ # How about differentiating between stratus architectures? -djm
+ echo hppa1.1-stratus-sysv4
+ exit 0 ;;
+ *:*:*:FTX*)
+ # From seanf@swdc.stratus.com.
+ echo i860-stratus-sysv4
+ exit 0 ;;
+ i*86:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo ${UNAME_MACHINE}-stratus-vos
+ exit 0 ;;
+ *:VOS:*:*)
+ # From Paul.Green@stratus.com.
+ echo hppa1.1-stratus-vos
+ exit 0 ;;
+ mc68*:A/UX:*:*)
+ echo m68k-apple-aux${UNAME_RELEASE}
+ exit 0 ;;
+ news*:NEWS-OS:6*:*)
+ echo mips-sony-newsos6
+ exit 0 ;;
+ R[34]000:*System_V*:*:* | R4000:UNIX_SYSV:*:* | R*000:UNIX_SV:*:*)
+ if [ -d /usr/nec ]; then
+ echo mips-nec-sysv${UNAME_RELEASE}
+ else
+ echo mips-unknown-sysv${UNAME_RELEASE}
+ fi
+ exit 0 ;;
+ BeBox:BeOS:*:*) # BeOS running on hardware made by Be, PPC only.
+ echo powerpc-be-beos
+ exit 0 ;;
+ BeMac:BeOS:*:*) # BeOS running on Mac or Mac clone, PPC only.
+ echo powerpc-apple-beos
+ exit 0 ;;
+ BePC:BeOS:*:*) # BeOS running on Intel PC compatible.
+ echo i586-pc-beos
+ exit 0 ;;
+ SX-4:SUPER-UX:*:*)
+ echo sx4-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ SX-5:SUPER-UX:*:*)
+ echo sx5-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ SX-6:SUPER-UX:*:*)
+ echo sx6-nec-superux${UNAME_RELEASE}
+ exit 0 ;;
+ Power*:Rhapsody:*:*)
+ echo powerpc-apple-rhapsody${UNAME_RELEASE}
+ exit 0 ;;
+ *:Rhapsody:*:*)
+ echo ${UNAME_MACHINE}-apple-rhapsody${UNAME_RELEASE}
+ exit 0 ;;
+ *:Darwin:*:*)
+ UNAME_PROCESSOR=`uname -p` || UNAME_PROCESSOR=unknown
+ case $UNAME_PROCESSOR in
+ *86) UNAME_PROCESSOR=i686 ;;
+ unknown) UNAME_PROCESSOR=powerpc ;;
+ esac
+ echo ${UNAME_PROCESSOR}-apple-darwin${UNAME_RELEASE}
+ exit 0 ;;
+ *:procnto*:*:* | *:QNX:[0123456789]*:*)
+ UNAME_PROCESSOR=`uname -p`
+ if test "$UNAME_PROCESSOR" = "x86"; then
+ UNAME_PROCESSOR=i386
+ UNAME_MACHINE=pc
+ fi
+ echo ${UNAME_PROCESSOR}-${UNAME_MACHINE}-nto-qnx${UNAME_RELEASE}
+ exit 0 ;;
+ *:QNX:*:4*)
+ echo i386-pc-qnx
+ exit 0 ;;
+ NSE-?:NONSTOP_KERNEL:*:*)
+ echo nse-tandem-nsk${UNAME_RELEASE}
+ exit 0 ;;
+ NSR-?:NONSTOP_KERNEL:*:*)
+ echo nsr-tandem-nsk${UNAME_RELEASE}
+ exit 0 ;;
+ *:NonStop-UX:*:*)
+ echo mips-compaq-nonstopux
+ exit 0 ;;
+ BS2000:POSIX*:*:*)
+ echo bs2000-siemens-sysv
+ exit 0 ;;
+ DS/*:UNIX_System_V:*:*)
+ echo ${UNAME_MACHINE}-${UNAME_SYSTEM}-${UNAME_RELEASE}
+ exit 0 ;;
+ *:Plan9:*:*)
+ # "uname -m" is not consistent, so use $cputype instead. 386
+ # is converted to i386 for consistency with other x86
+ # operating systems.
+ if test "$cputype" = "386"; then
+ UNAME_MACHINE=i386
+ else
+ UNAME_MACHINE="$cputype"
+ fi
+ echo ${UNAME_MACHINE}-unknown-plan9
+ exit 0 ;;
+ *:TOPS-10:*:*)
+ echo pdp10-unknown-tops10
+ exit 0 ;;
+ *:TENEX:*:*)
+ echo pdp10-unknown-tenex
+ exit 0 ;;
+ KS10:TOPS-20:*:* | KL10:TOPS-20:*:* | TYPE4:TOPS-20:*:*)
+ echo pdp10-dec-tops20
+ exit 0 ;;
+ XKL-1:TOPS-20:*:* | TYPE5:TOPS-20:*:*)
+ echo pdp10-xkl-tops20
+ exit 0 ;;
+ *:TOPS-20:*:*)
+ echo pdp10-unknown-tops20
+ exit 0 ;;
+ *:ITS:*:*)
+ echo pdp10-unknown-its
+ exit 0 ;;
+ SEI:*:*:SEIUX)
+ echo mips-sei-seiux${UNAME_RELEASE}
+ exit 0 ;;
+ *:DragonFly:*:*)
+ echo ${UNAME_MACHINE}-unknown-dragonfly`echo ${UNAME_RELEASE}|sed -e 's/[-(].*//'`
+ exit 0 ;;
+ *:*VMS:*:*)
+ UNAME_MACHINE=`(uname -p) 2>/dev/null`
+ case "${UNAME_MACHINE}" in
+ A*) echo alpha-dec-vms && exit 0 ;;
+ I*) echo ia64-dec-vms && exit 0 ;;
+ V*) echo vax-dec-vms && exit 0 ;;
+ esac ;;
+ *:XENIX:*:SysV)
+ echo i386-pc-xenix
+ exit 0 ;;
+esac
+
+#echo '(No uname command or uname output not recognized.)' 1>&2
+#echo "${UNAME_MACHINE}:${UNAME_SYSTEM}:${UNAME_RELEASE}:${UNAME_VERSION}" 1>&2
+
+eval $set_cc_for_build
+cat >$dummy.c <<EOF
+#ifdef _SEQUENT_
+# include <sys/types.h>
+# include <sys/utsname.h>
+#endif
+main ()
+{
+#if defined (sony)
+#if defined (MIPSEB)
+ /* BFD wants "bsd" instead of "newsos". Perhaps BFD should be changed,
+ I don't know.... */
+ printf ("mips-sony-bsd\n"); exit (0);
+#else
+#include <sys/param.h>
+ printf ("m68k-sony-newsos%s\n",
+#ifdef NEWSOS4
+ "4"
+#else
+ ""
+#endif
+ ); exit (0);
+#endif
+#endif
+
+#if defined (__arm) && defined (__acorn) && defined (__unix)
+ printf ("arm-acorn-riscix"); exit (0);
+#endif
+
+#if defined (hp300) && !defined (hpux)
+ printf ("m68k-hp-bsd\n"); exit (0);
+#endif
+
+#if defined (NeXT)
+#if !defined (__ARCHITECTURE__)
+#define __ARCHITECTURE__ "m68k"
+#endif
+ int version;
+ version=`(hostinfo | sed -n 's/.*NeXT Mach \([0-9]*\).*/\1/p') 2>/dev/null`;
+ if (version < 4)
+ printf ("%s-next-nextstep%d\n", __ARCHITECTURE__, version);
+ else
+ printf ("%s-next-openstep%d\n", __ARCHITECTURE__, version);
+ exit (0);
+#endif
+
+#if defined (MULTIMAX) || defined (n16)
+#if defined (UMAXV)
+ printf ("ns32k-encore-sysv\n"); exit (0);
+#else
+#if defined (CMU)
+ printf ("ns32k-encore-mach\n"); exit (0);
+#else
+ printf ("ns32k-encore-bsd\n"); exit (0);
+#endif
+#endif
+#endif
+
+#if defined (__386BSD__)
+ printf ("i386-pc-bsd\n"); exit (0);
+#endif
+
+#if defined (sequent)
+#if defined (i386)
+ printf ("i386-sequent-dynix\n"); exit (0);
+#endif
+#if defined (ns32000)
+ printf ("ns32k-sequent-dynix\n"); exit (0);
+#endif
+#endif
+
+#if defined (_SEQUENT_)
+ struct utsname un;
+
+ uname(&un);
+
+ if (strncmp(un.version, "V2", 2) == 0) {
+ printf ("i386-sequent-ptx2\n"); exit (0);
+ }
+ if (strncmp(un.version, "V1", 2) == 0) { /* XXX is V1 correct? */
+ printf ("i386-sequent-ptx1\n"); exit (0);
+ }
+ printf ("i386-sequent-ptx\n"); exit (0);
+
+#endif
+
+#if defined (vax)
+# if !defined (ultrix)
+# include <sys/param.h>
+# if defined (BSD)
+# if BSD == 43
+ printf ("vax-dec-bsd4.3\n"); exit (0);
+# else
+# if BSD == 199006
+ printf ("vax-dec-bsd4.3reno\n"); exit (0);
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# endif
+# else
+ printf ("vax-dec-bsd\n"); exit (0);
+# endif
+# else
+ printf ("vax-dec-ultrix\n"); exit (0);
+# endif
+#endif
+
+#if defined (alliant) && defined (i860)
+ printf ("i860-alliant-bsd\n"); exit (0);
+#endif
+
+ exit (1);
+}
+EOF
+
+$CC_FOR_BUILD -o $dummy $dummy.c 2>/dev/null && $dummy && exit 0
+
+# Apollos put the system type in the environment.
+
+test -d /usr/apollo && { echo ${ISP}-apollo-${SYSTYPE}; exit 0; }
+
+# Convex versions that predate uname can use getsysinfo(1)
+
+if [ -x /usr/convex/getsysinfo ]
+then
+ case `getsysinfo -f cpu_type` in
+ c1*)
+ echo c1-convex-bsd
+ exit 0 ;;
+ c2*)
+ if getsysinfo -f scalar_acc
+ then echo c32-convex-bsd
+ else echo c2-convex-bsd
+ fi
+ exit 0 ;;
+ c34*)
+ echo c34-convex-bsd
+ exit 0 ;;
+ c38*)
+ echo c38-convex-bsd
+ exit 0 ;;
+ c4*)
+ echo c4-convex-bsd
+ exit 0 ;;
+ esac
+fi
+
+cat >&2 <<EOF
+$0: unable to guess system type
+
+This script, last modified $timestamp, has failed to recognize
+the operating system you are using. It is advised that you
+download the most up to date version of the config scripts from
+
+ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.guess
+and
+ http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/config/config/config.sub
+
+If the version you run ($0) is already up to date, please
+send the following data and any information you think might be
+pertinent to <config-patches@gnu.org> in order to provide the needed
+information to handle your system.
+
+config.guess timestamp = $timestamp
+
+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`
+/bin/uname -X = `(/bin/uname -X) 2>/dev/null`
+
+hostinfo = `(hostinfo) 2>/dev/null`
+/bin/universe = `(/bin/universe) 2>/dev/null`
+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null`
+/bin/arch = `(/bin/arch) 2>/dev/null`
+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null`
+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null`
+
+UNAME_MACHINE = ${UNAME_MACHINE}
+UNAME_RELEASE = ${UNAME_RELEASE}
+UNAME_SYSTEM = ${UNAME_SYSTEM}
+UNAME_VERSION = ${UNAME_VERSION}
+EOF
+
+exit 1
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
--- /dev/null
+#! /bin/sh
+# Configuration validation subroutine script.
+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
+# 2000, 2001, 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+
+timestamp='2005-04-22'
+
+# This file is (in principle) common to ALL GNU software.
+# The presence of a machine in this file suggests that SOME GNU software
+# can handle that machine. It does not imply ALL GNU software can.
+#
+# This file 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.
+
+# Please send patches to <config-patches@gnu.org>. Submit a context
+# diff and a properly formatted ChangeLog entry.
+#
+# Configuration subroutine to validate and canonicalize a configuration type.
+# Supply the specified configuration type as an argument.
+# If it is invalid, we print an error message on stderr and exit with code 1.
+# Otherwise, we print the canonical config type on stdout and succeed.
+
+# This file is supposed to be the same for all GNU packages
+# and recognize all the CPU types, system types and aliases
+# that are meaningful with *any* GNU software.
+# Each package is responsible for reporting which valid configurations
+# it does not support. The user should be able to distinguish
+# a failure to support a valid configuration from a meaningless
+# configuration.
+
+# The goal of this file is to map all the various variations of a given
+# machine specification into a single specification in the form:
+# CPU_TYPE-MANUFACTURER-OPERATING_SYSTEM
+# or in some cases, the newer four-part form:
+# CPU_TYPE-MANUFACTURER-KERNEL-OPERATING_SYSTEM
+# It is wrong to echo any other type of specification.
+
+me=`echo "$0" | sed -e 's,.*/,,'`
+
+usage="\
+Usage: $0 [OPTION] CPU-MFR-OPSYS
+ $0 [OPTION] ALIAS
+
+Canonicalize a configuration name.
+
+Operation modes:
+ -h, --help print this help, then exit
+ -t, --time-stamp print date of last modification, then exit
+ -v, --version print version number, then exit
+
+Report bugs and patches to <config-patches@gnu.org>."
+
+version="\
+GNU config.sub ($timestamp)
+
+Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+Free Software Foundation, Inc.
+
+This is free software; see the source for copying conditions. There is NO
+warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
+
+help="
+Try \`$me --help' for more information."
+
+# Parse command line
+while test $# -gt 0 ; do
+ case $1 in
+ --time-stamp | --time* | -t )
+ echo "$timestamp" ; exit 0 ;;
+ --version | -v )
+ echo "$version" ; exit 0 ;;
+ --help | --h* | -h )
+ echo "$usage"; exit 0 ;;
+ -- ) # Stop option processing
+ shift; break ;;
+ - ) # Use stdin as input.
+ break ;;
+ -* )
+ echo "$me: invalid option $1$help"
+ exit 1 ;;
+
+ *local*)
+ # First pass through any local machine types.
+ echo $1
+ exit 0;;
+
+ * )
+ break ;;
+ esac
+done
+
+case $# in
+ 0) echo "$me: missing argument$help" >&2
+ exit 1;;
+ 1) ;;
+ *) echo "$me: too many arguments$help" >&2
+ exit 1;;
+esac
+
+# Separate what the user gave into CPU-COMPANY and OS or KERNEL-OS (if any).
+# Here we must recognize all the valid KERNEL-OS combinations.
+maybe_os=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\2/'`
+case $maybe_os in
+ nto-qnx* | linux-gnu* | linux-dietlibc | linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | \
+ kfreebsd*-gnu* | knetbsd*-gnu* | netbsd*-gnu* | storm-chaos* | os2-emx* | rtmk-nova*)
+ os=-$maybe_os
+ basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'`
+ ;;
+ *)
+ basic_machine=`echo $1 | sed 's/-[^-]*$//'`
+ if [ $basic_machine != $1 ]
+ then os=`echo $1 | sed 's/.*-/-/'`
+ else os=; fi
+ ;;
+esac
+
+### Let's recognize common machines as not being operating systems so
+### that things like config.sub decstation-3100 work. We also
+### recognize some manufacturers as not being operating systems, so we
+### can provide default operating systems below.
+case $os in
+ -sun*os*)
+ # Prevent following clause from handling this invalid input.
+ ;;
+ -dec* | -mips* | -sequent* | -encore* | -pc532* | -sgi* | -sony* | \
+ -att* | -7300* | -3300* | -delta* | -motorola* | -sun[234]* | \
+ -unicom* | -ibm* | -next | -hp | -isi* | -apollo | -altos* | \
+ -convergent* | -ncr* | -news | -32* | -3600* | -3100* | -hitachi* |\
+ -c[123]* | -convex* | -sun | -crds | -omron* | -dg | -ultra | -tti* | \
+ -harris | -dolphin | -highlevel | -gould | -cbm | -ns | -masscomp | \
+ -apple | -axis | -knuth | -cray)
+ os=
+ basic_machine=$1
+ ;;
+ -sim | -cisco | -oki | -wec | -winbond)
+ os=
+ basic_machine=$1
+ ;;
+ -scout)
+ ;;
+ -wrs)
+ os=-vxworks
+ basic_machine=$1
+ ;;
+ -chorusos*)
+ os=-chorusos
+ basic_machine=$1
+ ;;
+ -chorusrdb)
+ os=-chorusrdb
+ basic_machine=$1
+ ;;
+ -hiux*)
+ os=-hiuxwe2
+ ;;
+ -sco5)
+ os=-sco3.2v5
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco4)
+ os=-sco3.2v4
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2.[4-9]*)
+ os=`echo $os | sed -e 's/sco3.2./sco3.2v/'`
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco3.2v[4-9]*)
+ # Don't forget version if it is 3.2v4 or newer.
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -sco*)
+ os=-sco3.2v2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -udk*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -isc)
+ os=-isc2.2
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -clix*)
+ basic_machine=clipper-intergraph
+ ;;
+ -isc*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-pc/'`
+ ;;
+ -lynx*)
+ os=-lynxos
+ ;;
+ -ptx*)
+ basic_machine=`echo $1 | sed -e 's/86-.*/86-sequent/'`
+ ;;
+ -windowsnt*)
+ os=`echo $os | sed -e 's/windowsnt/winnt/'`
+ ;;
+ -psos*)
+ os=-psos
+ ;;
+ -mint | -mint[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+esac
+
+# Decode aliases for certain CPU-COMPANY combinations.
+case $basic_machine in
+ # Recognize the basic CPU types without company name.
+ # Some are omitted here because they have special meanings below.
+ 1750a | 580 \
+ | a29k \
+ | alpha | alphaev[4-8] | alphaev56 | alphaev6[78] | alphapca5[67] \
+ | alpha64 | alpha64ev[4-8] | alpha64ev56 | alpha64ev6[78] | alpha64pca5[67] \
+ | am33_2.0 \
+ | arc | arm | arm[bl]e | arme[lb] | armv[2345] | armv[345][lb] | avr \
+ | bfin \
+ | c4x | clipper \
+ | d10v | d30v | dlx | dsp16xx \
+ | fr30 | frv \
+ | h8300 | h8500 | hppa | hppa1.[01] | hppa2.0 | hppa2.0[nw] | hppa64 \
+ | i370 | i860 | i960 | ia64 \
+ | ip2k | iq2000 \
+ | m32r | m32rle | m68000 | m68k | m88k | maxq | mcore \
+ | mips | mipsbe | mipseb | mipsel | mipsle \
+ | mips16 \
+ | mips64 | mips64el \
+ | mips64vr | mips64vrel \
+ | mips64orion | mips64orionel \
+ | mips64vr4100 | mips64vr4100el \
+ | mips64vr4300 | mips64vr4300el \
+ | mips64vr5000 | mips64vr5000el \
+ | mipsisa32 | mipsisa32el \
+ | mipsisa32r2 | mipsisa32r2el \
+ | mipsisa64 | mipsisa64el \
+ | mipsisa64r2 | mipsisa64r2el \
+ | mipsisa64sb1 | mipsisa64sb1el \
+ | mipsisa64sr71k | mipsisa64sr71kel \
+ | mipstx39 | mipstx39el \
+ | mn10200 | mn10300 \
+ | msp430 \
+ | ns16k | ns32k \
+ | openrisc | or32 \
+ | pdp10 | pdp11 | pj | pjl \
+ | powerpc | powerpc64 | powerpc64le | powerpcle | ppcbe \
+ | pyramid \
+ | sh | sh[1234] | sh[23]e | sh[34]eb | shbe | shle | sh[1234]le | sh3ele \
+ | sh64 | sh64le \
+ | sparc | sparc64 | sparc64b | sparc86x | sparclet | sparclite \
+ | sparcv8 | sparcv9 | sparcv9b \
+ | strongarm \
+ | tahoe | thumb | tic4x | tic80 | tron \
+ | v850 | v850e \
+ | we32k \
+ | x86 | xscale | xscalee[bl] | xstormy16 | xtensa \
+ | z8k)
+ basic_machine=$basic_machine-unknown
+ ;;
+ m6811 | m68hc11 | m6812 | m68hc12)
+ # Motorola 68HC11/12.
+ basic_machine=$basic_machine-unknown
+ os=-none
+ ;;
+ m88110 | m680[12346]0 | m683?2 | m68360 | m5200 | v70 | w65 | z8k)
+ ;;
+
+ # We use `pc' rather than `unknown'
+ # because (1) that's what they normally are, and
+ # (2) the word "unknown" tends to confuse beginning users.
+ i*86 | x86_64)
+ basic_machine=$basic_machine-pc
+ ;;
+ # Object if more than one company name word.
+ *-*-*)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+ # Recognize the basic CPU types with company name.
+ 580-* \
+ | a29k-* \
+ | alpha-* | alphaev[4-8]-* | alphaev56-* | alphaev6[78]-* \
+ | alpha64-* | alpha64ev[4-8]-* | alpha64ev56-* | alpha64ev6[78]-* \
+ | alphapca5[67]-* | alpha64pca5[67]-* | arc-* \
+ | arm-* | armbe-* | armle-* | armeb-* | armv*-* \
+ | avr-* \
+ | bfin-* | bs2000-* \
+ | c[123]* | c30-* | [cjt]90-* | c4x-* | c54x-* | c55x-* | c6x-* \
+ | clipper-* | craynv-* | cydra-* \
+ | d10v-* | d30v-* | dlx-* \
+ | elxsi-* \
+ | f30[01]-* | f700-* | fr30-* | frv-* | fx80-* \
+ | h8300-* | h8500-* \
+ | hppa-* | hppa1.[01]-* | hppa2.0-* | hppa2.0[nw]-* | hppa64-* \
+ | i*86-* | i860-* | i960-* | ia64-* \
+ | ip2k-* | iq2000-* \
+ | m32r-* | m32rle-* \
+ | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
+ | m88110-* | m88k-* | maxq-* | mcore-* \
+ | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
+ | mips16-* \
+ | mips64-* | mips64el-* \
+ | mips64vr-* | mips64vrel-* \
+ | mips64orion-* | mips64orionel-* \
+ | mips64vr4100-* | mips64vr4100el-* \
+ | mips64vr4300-* | mips64vr4300el-* \
+ | mips64vr5000-* | mips64vr5000el-* \
+ | mipsisa32-* | mipsisa32el-* \
+ | mipsisa32r2-* | mipsisa32r2el-* \
+ | mipsisa64-* | mipsisa64el-* \
+ | mipsisa64r2-* | mipsisa64r2el-* \
+ | mipsisa64sb1-* | mipsisa64sb1el-* \
+ | mipsisa64sr71k-* | mipsisa64sr71kel-* \
+ | mipstx39-* | mipstx39el-* \
+ | mmix-* \
+ | msp430-* \
+ | none-* | np1-* | ns16k-* | ns32k-* \
+ | orion-* \
+ | pdp10-* | pdp11-* | pj-* | pjl-* | pn-* | power-* \
+ | powerpc-* | powerpc64-* | powerpc64le-* | powerpcle-* | ppcbe-* \
+ | pyramid-* \
+ | romp-* | rs6000-* \
+ | sh-* | sh[1234]-* | sh[23]e-* | sh[34]eb-* | shbe-* \
+ | shle-* | sh[1234]le-* | sh3ele-* | sh64-* | sh64le-* \
+ | sparc-* | sparc64-* | sparc64b-* | sparc86x-* | sparclet-* \
+ | sparclite-* \
+ | sparcv8-* | sparcv9-* | sparcv9b-* | strongarm-* | sv1-* | sx?-* \
+ | tahoe-* | thumb-* \
+ | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+ | tron-* \
+ | v850-* | v850e-* | vax-* \
+ | we32k-* \
+ | x86-* | x86_64-* | xps100-* | xscale-* | xscalee[bl]-* \
+ | xstormy16-* | xtensa-* \
+ | ymp-* \
+ | z8k-*)
+ ;;
+ # Recognize the various machine names and aliases which stand
+ # for a CPU type and a company and sometimes even an OS.
+ 386bsd)
+ basic_machine=i386-unknown
+ os=-bsd
+ ;;
+ 3b1 | 7300 | 7300-att | att-7300 | pc7300 | safari | unixpc)
+ basic_machine=m68000-att
+ ;;
+ 3b*)
+ basic_machine=we32k-att
+ ;;
+ a29khif)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ abacus)
+ basic_machine=abacus-unknown
+ ;;
+ adobe68k)
+ basic_machine=m68010-adobe
+ os=-scout
+ ;;
+ alliant | fx80)
+ basic_machine=fx80-alliant
+ ;;
+ altos | altos3068)
+ basic_machine=m68k-altos
+ ;;
+ am29k)
+ basic_machine=a29k-none
+ os=-bsd
+ ;;
+ amd64)
+ basic_machine=x86_64-pc
+ ;;
+ amd64-*)
+ basic_machine=x86_64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ amdahl)
+ basic_machine=580-amdahl
+ os=-sysv
+ ;;
+ amiga | amiga-*)
+ basic_machine=m68k-unknown
+ ;;
+ amigaos | amigados)
+ basic_machine=m68k-unknown
+ os=-amigaos
+ ;;
+ amigaunix | amix)
+ basic_machine=m68k-unknown
+ os=-sysv4
+ ;;
+ apollo68)
+ basic_machine=m68k-apollo
+ os=-sysv
+ ;;
+ apollo68bsd)
+ basic_machine=m68k-apollo
+ os=-bsd
+ ;;
+ aux)
+ basic_machine=m68k-apple
+ os=-aux
+ ;;
+ balance)
+ basic_machine=ns32k-sequent
+ os=-dynix
+ ;;
+ c90)
+ basic_machine=c90-cray
+ os=-unicos
+ ;;
+ convex-c1)
+ basic_machine=c1-convex
+ os=-bsd
+ ;;
+ convex-c2)
+ basic_machine=c2-convex
+ os=-bsd
+ ;;
+ convex-c32)
+ basic_machine=c32-convex
+ os=-bsd
+ ;;
+ convex-c34)
+ basic_machine=c34-convex
+ os=-bsd
+ ;;
+ convex-c38)
+ basic_machine=c38-convex
+ os=-bsd
+ ;;
+ cray | j90)
+ basic_machine=j90-cray
+ os=-unicos
+ ;;
+ craynv)
+ basic_machine=craynv-cray
+ os=-unicosmp
+ ;;
+ cr16c)
+ basic_machine=cr16c-unknown
+ os=-elf
+ ;;
+ crds | unos)
+ basic_machine=m68k-crds
+ ;;
+ crisv32 | crisv32-* | etraxfs*)
+ basic_machine=crisv32-axis
+ ;;
+ cris | cris-* | etrax*)
+ basic_machine=cris-axis
+ ;;
+ crx)
+ basic_machine=crx-unknown
+ os=-elf
+ ;;
+ da30 | da30-*)
+ basic_machine=m68k-da30
+ ;;
+ decstation | decstation-3100 | pmax | pmax-* | pmin | dec3100 | decstatn)
+ basic_machine=mips-dec
+ ;;
+ decsystem10* | dec10*)
+ basic_machine=pdp10-dec
+ os=-tops10
+ ;;
+ decsystem20* | dec20*)
+ basic_machine=pdp10-dec
+ os=-tops20
+ ;;
+ delta | 3300 | motorola-3300 | motorola-delta \
+ | 3300-motorola | delta-motorola)
+ basic_machine=m68k-motorola
+ ;;
+ delta88)
+ basic_machine=m88k-motorola
+ os=-sysv3
+ ;;
+ djgpp)
+ basic_machine=i586-pc
+ os=-msdosdjgpp
+ ;;
+ dpx20 | dpx20-*)
+ basic_machine=rs6000-bull
+ os=-bosx
+ ;;
+ dpx2* | dpx2*-bull)
+ basic_machine=m68k-bull
+ os=-sysv3
+ ;;
+ ebmon29k)
+ basic_machine=a29k-amd
+ os=-ebmon
+ ;;
+ elxsi)
+ basic_machine=elxsi-elxsi
+ os=-bsd
+ ;;
+ encore | umax | mmax)
+ basic_machine=ns32k-encore
+ ;;
+ es1800 | OSE68k | ose68k | ose | OSE)
+ basic_machine=m68k-ericsson
+ os=-ose
+ ;;
+ fx2800)
+ basic_machine=i860-alliant
+ ;;
+ genix)
+ basic_machine=ns32k-ns
+ ;;
+ gmicro)
+ basic_machine=tron-gmicro
+ os=-sysv
+ ;;
+ go32)
+ basic_machine=i386-pc
+ os=-go32
+ ;;
+ h3050r* | hiux*)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ h8300hms)
+ basic_machine=h8300-hitachi
+ os=-hms
+ ;;
+ h8300xray)
+ basic_machine=h8300-hitachi
+ os=-xray
+ ;;
+ h8500hms)
+ basic_machine=h8500-hitachi
+ os=-hms
+ ;;
+ harris)
+ basic_machine=m88k-harris
+ os=-sysv3
+ ;;
+ hp300-*)
+ basic_machine=m68k-hp
+ ;;
+ hp300bsd)
+ basic_machine=m68k-hp
+ os=-bsd
+ ;;
+ hp300hpux)
+ basic_machine=m68k-hp
+ os=-hpux
+ ;;
+ hp3k9[0-9][0-9] | hp9[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k2[0-9][0-9] | hp9k31[0-9])
+ basic_machine=m68000-hp
+ ;;
+ hp9k3[2-9][0-9])
+ basic_machine=m68k-hp
+ ;;
+ hp9k6[0-9][0-9] | hp6[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hp9k7[0-79][0-9] | hp7[0-79][0-9])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k78[0-9] | hp78[0-9])
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[67]1 | hp8[67]1 | hp9k80[24] | hp80[24] | hp9k8[78]9 | hp8[78]9 | hp9k893 | hp893)
+ # FIXME: really hppa2.0-hp
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][13679] | hp8[0-9][13679])
+ basic_machine=hppa1.1-hp
+ ;;
+ hp9k8[0-9][0-9] | hp8[0-9][0-9])
+ basic_machine=hppa1.0-hp
+ ;;
+ hppa-next)
+ os=-nextstep3
+ ;;
+ hppaosf)
+ basic_machine=hppa1.1-hp
+ os=-osf
+ ;;
+ hppro)
+ basic_machine=hppa1.1-hp
+ os=-proelf
+ ;;
+ i370-ibm* | ibm*)
+ basic_machine=i370-ibm
+ ;;
+# I'm not sure what "Sysv32" means. Should this be sysv3.2?
+ i*86v32)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv32
+ ;;
+ i*86v4*)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv4
+ ;;
+ i*86v)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-sysv
+ ;;
+ i*86sol2)
+ basic_machine=`echo $1 | sed -e 's/86.*/86-pc/'`
+ os=-solaris2
+ ;;
+ i386mach)
+ basic_machine=i386-mach
+ os=-mach
+ ;;
+ i386-vsta | vsta)
+ basic_machine=i386-unknown
+ os=-vsta
+ ;;
+ iris | iris4d)
+ basic_machine=mips-sgi
+ case $os in
+ -irix*)
+ ;;
+ *)
+ os=-irix4
+ ;;
+ esac
+ ;;
+ isi68 | isi)
+ basic_machine=m68k-isi
+ os=-sysv
+ ;;
+ m88k-omron*)
+ basic_machine=m88k-omron
+ ;;
+ magnum | m3230)
+ basic_machine=mips-mips
+ os=-sysv
+ ;;
+ merlin)
+ basic_machine=ns32k-utek
+ os=-sysv
+ ;;
+ mingw32)
+ basic_machine=i386-pc
+ os=-mingw32
+ ;;
+ miniframe)
+ basic_machine=m68000-convergent
+ ;;
+ *mint | -mint[0-9]* | *MiNT | *MiNT[0-9]*)
+ basic_machine=m68k-atari
+ os=-mint
+ ;;
+ mips3*-*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`
+ ;;
+ mips3*)
+ basic_machine=`echo $basic_machine | sed -e 's/mips3/mips64/'`-unknown
+ ;;
+ monitor)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ morphos)
+ basic_machine=powerpc-unknown
+ os=-morphos
+ ;;
+ msdos)
+ basic_machine=i386-pc
+ os=-msdos
+ ;;
+ mvs)
+ basic_machine=i370-ibm
+ os=-mvs
+ ;;
+ ncr3000)
+ basic_machine=i486-ncr
+ os=-sysv4
+ ;;
+ netbsd386)
+ basic_machine=i386-unknown
+ os=-netbsd
+ ;;
+ netwinder)
+ basic_machine=armv4l-rebel
+ os=-linux
+ ;;
+ news | news700 | news800 | news900)
+ basic_machine=m68k-sony
+ os=-newsos
+ ;;
+ news1000)
+ basic_machine=m68030-sony
+ os=-newsos
+ ;;
+ news-3600 | risc-news)
+ basic_machine=mips-sony
+ os=-newsos
+ ;;
+ necv70)
+ basic_machine=v70-nec
+ os=-sysv
+ ;;
+ next | m*-next )
+ basic_machine=m68k-next
+ case $os in
+ -nextstep* )
+ ;;
+ -ns2*)
+ os=-nextstep2
+ ;;
+ *)
+ os=-nextstep3
+ ;;
+ esac
+ ;;
+ nh3000)
+ basic_machine=m68k-harris
+ os=-cxux
+ ;;
+ nh[45]000)
+ basic_machine=m88k-harris
+ os=-cxux
+ ;;
+ nindy960)
+ basic_machine=i960-intel
+ os=-nindy
+ ;;
+ mon960)
+ basic_machine=i960-intel
+ os=-mon960
+ ;;
+ nonstopux)
+ basic_machine=mips-compaq
+ os=-nonstopux
+ ;;
+ np1)
+ basic_machine=np1-gould
+ ;;
+ nsr-tandem)
+ basic_machine=nsr-tandem
+ ;;
+ op50n-* | op60c-*)
+ basic_machine=hppa1.1-oki
+ os=-proelf
+ ;;
+ or32 | or32-*)
+ basic_machine=or32-unknown
+ os=-coff
+ ;;
+ os400)
+ basic_machine=powerpc-ibm
+ os=-os400
+ ;;
+ OSE68000 | ose68000)
+ basic_machine=m68000-ericsson
+ os=-ose
+ ;;
+ os68k)
+ basic_machine=m68k-none
+ os=-os68k
+ ;;
+ pa-hitachi)
+ basic_machine=hppa1.1-hitachi
+ os=-hiuxwe2
+ ;;
+ paragon)
+ basic_machine=i860-intel
+ os=-osf
+ ;;
+ pbd)
+ basic_machine=sparc-tti
+ ;;
+ pbb)
+ basic_machine=m68k-tti
+ ;;
+ pc532 | pc532-*)
+ basic_machine=ns32k-pc532
+ ;;
+ pentium | p5 | k5 | k6 | nexgen | viac3)
+ basic_machine=i586-pc
+ ;;
+ pentiumpro | p6 | 6x86 | athlon | athlon_*)
+ basic_machine=i686-pc
+ ;;
+ pentiumii | pentium2 | pentiumiii | pentium3)
+ basic_machine=i686-pc
+ ;;
+ pentium4)
+ basic_machine=i786-pc
+ ;;
+ pentium-* | p5-* | k5-* | k6-* | nexgen-* | viac3-*)
+ basic_machine=i586-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumpro-* | p6-* | 6x86-* | athlon-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentiumii-* | pentium2-* | pentiumiii-* | pentium3-*)
+ basic_machine=i686-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pentium4-*)
+ basic_machine=i786-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ pn)
+ basic_machine=pn-gould
+ ;;
+ power) basic_machine=power-ibm
+ ;;
+ ppc) basic_machine=powerpc-unknown
+ ;;
+ ppc-*) basic_machine=powerpc-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppcle | powerpclittle | ppc-le | powerpc-little)
+ basic_machine=powerpcle-unknown
+ ;;
+ ppcle-* | powerpclittle-*)
+ basic_machine=powerpcle-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64) basic_machine=powerpc64-unknown
+ ;;
+ ppc64-*) basic_machine=powerpc64-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ppc64le | powerpc64little | ppc64-le | powerpc64-little)
+ basic_machine=powerpc64le-unknown
+ ;;
+ ppc64le-* | powerpc64little-*)
+ basic_machine=powerpc64le-`echo $basic_machine | sed 's/^[^-]*-//'`
+ ;;
+ ps2)
+ basic_machine=i386-ibm
+ ;;
+ pw32)
+ basic_machine=i586-unknown
+ os=-pw32
+ ;;
+ rom68k)
+ basic_machine=m68k-rom68k
+ os=-coff
+ ;;
+ rm[46]00)
+ basic_machine=mips-siemens
+ ;;
+ rtpc | rtpc-*)
+ basic_machine=romp-ibm
+ ;;
+ s390 | s390-*)
+ basic_machine=s390-ibm
+ ;;
+ s390x | s390x-*)
+ basic_machine=s390x-ibm
+ ;;
+ sa29200)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ sb1)
+ basic_machine=mipsisa64sb1-unknown
+ ;;
+ sb1el)
+ basic_machine=mipsisa64sb1el-unknown
+ ;;
+ sei)
+ basic_machine=mips-sei
+ os=-seiux
+ ;;
+ sequent)
+ basic_machine=i386-sequent
+ ;;
+ sh)
+ basic_machine=sh-hitachi
+ os=-hms
+ ;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
+ sparclite-wrs | simso-wrs)
+ basic_machine=sparclite-wrs
+ os=-vxworks
+ ;;
+ sps7)
+ basic_machine=m68k-bull
+ os=-sysv2
+ ;;
+ spur)
+ basic_machine=spur-unknown
+ ;;
+ st2000)
+ basic_machine=m68k-tandem
+ ;;
+ stratus)
+ basic_machine=i860-stratus
+ os=-sysv4
+ ;;
+ sun2)
+ basic_machine=m68000-sun
+ ;;
+ sun2os3)
+ basic_machine=m68000-sun
+ os=-sunos3
+ ;;
+ sun2os4)
+ basic_machine=m68000-sun
+ os=-sunos4
+ ;;
+ sun3os3)
+ basic_machine=m68k-sun
+ os=-sunos3
+ ;;
+ sun3os4)
+ basic_machine=m68k-sun
+ os=-sunos4
+ ;;
+ sun4os3)
+ basic_machine=sparc-sun
+ os=-sunos3
+ ;;
+ sun4os4)
+ basic_machine=sparc-sun
+ os=-sunos4
+ ;;
+ sun4sol2)
+ basic_machine=sparc-sun
+ os=-solaris2
+ ;;
+ sun3 | sun3-*)
+ basic_machine=m68k-sun
+ ;;
+ sun4)
+ basic_machine=sparc-sun
+ ;;
+ sun386 | sun386i | roadrunner)
+ basic_machine=i386-sun
+ ;;
+ sv1)
+ basic_machine=sv1-cray
+ os=-unicos
+ ;;
+ symmetry)
+ basic_machine=i386-sequent
+ os=-dynix
+ ;;
+ t3e)
+ basic_machine=alphaev5-cray
+ os=-unicos
+ ;;
+ t90)
+ basic_machine=t90-cray
+ os=-unicos
+ ;;
+ tic54x | c54x*)
+ basic_machine=tic54x-unknown
+ os=-coff
+ ;;
+ tic55x | c55x*)
+ basic_machine=tic55x-unknown
+ os=-coff
+ ;;
+ tic6x | c6x*)
+ basic_machine=tic6x-unknown
+ os=-coff
+ ;;
+ tx39)
+ basic_machine=mipstx39-unknown
+ ;;
+ tx39el)
+ basic_machine=mipstx39el-unknown
+ ;;
+ toad1)
+ basic_machine=pdp10-xkl
+ os=-tops20
+ ;;
+ tower | tower-32)
+ basic_machine=m68k-ncr
+ ;;
+ tpf)
+ basic_machine=s390x-ibm
+ os=-tpf
+ ;;
+ udi29k)
+ basic_machine=a29k-amd
+ os=-udi
+ ;;
+ ultra3)
+ basic_machine=a29k-nyu
+ os=-sym1
+ ;;
+ v810 | necv810)
+ basic_machine=v810-nec
+ os=-none
+ ;;
+ vaxv)
+ basic_machine=vax-dec
+ os=-sysv
+ ;;
+ vms)
+ basic_machine=vax-dec
+ os=-vms
+ ;;
+ vpp*|vx|vx-*)
+ basic_machine=f301-fujitsu
+ ;;
+ vxworks960)
+ basic_machine=i960-wrs
+ os=-vxworks
+ ;;
+ vxworks68)
+ basic_machine=m68k-wrs
+ os=-vxworks
+ ;;
+ vxworks29k)
+ basic_machine=a29k-wrs
+ os=-vxworks
+ ;;
+ w65*)
+ basic_machine=w65-wdc
+ os=-none
+ ;;
+ w89k-*)
+ basic_machine=hppa1.1-winbond
+ os=-proelf
+ ;;
+ xbox)
+ basic_machine=i686-pc
+ os=-mingw32
+ ;;
+ xps | xps100)
+ basic_machine=xps100-honeywell
+ ;;
+ ymp)
+ basic_machine=ymp-cray
+ os=-unicos
+ ;;
+ z8k-*-coff)
+ basic_machine=z8k-unknown
+ os=-sim
+ ;;
+ none)
+ basic_machine=none-none
+ os=-none
+ ;;
+
+# Here we handle the default manufacturer of certain CPU types. It is in
+# some cases the only manufacturer, in others, it is the most popular.
+ w89k)
+ basic_machine=hppa1.1-winbond
+ ;;
+ op50n)
+ basic_machine=hppa1.1-oki
+ ;;
+ op60c)
+ basic_machine=hppa1.1-oki
+ ;;
+ romp)
+ basic_machine=romp-ibm
+ ;;
+ mmix)
+ basic_machine=mmix-knuth
+ ;;
+ rs6000)
+ basic_machine=rs6000-ibm
+ ;;
+ vax)
+ basic_machine=vax-dec
+ ;;
+ pdp10)
+ # there are many clones, so DEC is not a safe bet
+ basic_machine=pdp10-unknown
+ ;;
+ pdp11)
+ basic_machine=pdp11-dec
+ ;;
+ we32k)
+ basic_machine=we32k-att
+ ;;
+ sh3 | sh4 | sh[34]eb | sh[1234]le | sh[23]ele)
+ basic_machine=sh-unknown
+ ;;
+ sh64)
+ basic_machine=sh64-unknown
+ ;;
+ sparc | sparcv8 | sparcv9 | sparcv9b)
+ basic_machine=sparc-sun
+ ;;
+ cydra)
+ basic_machine=cydra-cydrome
+ ;;
+ orion)
+ basic_machine=orion-highlevel
+ ;;
+ orion105)
+ basic_machine=clipper-highlevel
+ ;;
+ mac | mpw | mac-mpw)
+ basic_machine=m68k-apple
+ ;;
+ pmac | pmac-mpw)
+ basic_machine=powerpc-apple
+ ;;
+ *-unknown)
+ # Make sure to match an already-canonicalized machine name.
+ ;;
+ *)
+ echo Invalid configuration \`$1\': machine \`$basic_machine\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+
+# Here we canonicalize certain aliases for manufacturers.
+case $basic_machine in
+ *-digital*)
+ basic_machine=`echo $basic_machine | sed 's/digital.*/dec/'`
+ ;;
+ *-commodore*)
+ basic_machine=`echo $basic_machine | sed 's/commodore.*/cbm/'`
+ ;;
+ *)
+ ;;
+esac
+
+# Decode manufacturer-specific aliases for certain operating systems.
+
+if [ x"$os" != x"" ]
+then
+case $os in
+ # First match some system type aliases
+ # that might get confused with valid system types.
+ # -solaris* is a basic system type, with this one exception.
+ -solaris1 | -solaris1.*)
+ os=`echo $os | sed -e 's|solaris1|sunos4|'`
+ ;;
+ -solaris)
+ os=-solaris2
+ ;;
+ -svr4*)
+ os=-sysv4
+ ;;
+ -unixware*)
+ os=-sysv4.2uw
+ ;;
+ -gnu/linux*)
+ os=`echo $os | sed -e 's|gnu/linux|linux-gnu|'`
+ ;;
+ # First accept the basic system types.
+ # The portable systems comes first.
+ # Each alternative MUST END IN A *, to match a version number.
+ # -sysv* is not here because it comes later, after sysvr4.
+ -gnu* | -bsd* | -mach* | -minix* | -genix* | -ultrix* | -irix* \
+ | -*vms* | -sco* | -esix* | -isc* | -aix* | -sunos | -sunos[34]*\
+ | -hpux* | -unos* | -osf* | -luna* | -dgux* | -solaris* | -sym* \
+ | -amigaos* | -amigados* | -msdos* | -newsos* | -unicos* | -aof* \
+ | -aos* \
+ | -nindy* | -vxsim* | -vxworks* | -ebmon* | -hms* | -mvs* \
+ | -clix* | -riscos* | -uniplus* | -iris* | -rtu* | -xenix* \
+ | -hiux* | -386bsd* | -knetbsd* | -mirbsd* | -netbsd* | -openbsd* \
+ | -ekkobsd* | -kfreebsd* | -freebsd* | -riscix* | -lynxos* \
+ | -bosx* | -nextstep* | -cxux* | -aout* | -elf* | -oabi* \
+ | -ptx* | -coff* | -ecoff* | -winnt* | -domain* | -vsta* \
+ | -udi* | -eabi* | -lites* | -ieee* | -go32* | -aux* \
+ | -chorusos* | -chorusrdb* \
+ | -cygwin* | -pe* | -psos* | -moss* | -proelf* | -rtems* \
+ | -mingw32* | -linux-gnu* | -linux-uclibc* | -uxpv* | -beos* | -mpeix* | -udk* \
+ | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \
+ | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \
+ | -storm-chaos* | -tops10* | -tenex* | -tops20* | -its* \
+ | -os2* | -vos* | -palmos* | -uclinux* | -nucleus* \
+ | -morphos* | -superux* | -rtmk* | -rtmk-nova* | -windiss* \
+ | -powermax* | -dnix* | -nx6 | -nx7 | -sei* | -dragonfly*)
+ # Remember, each alternative MUST END IN *, to match a version number.
+ ;;
+ -qnx*)
+ case $basic_machine in
+ x86-* | i*86-*)
+ ;;
+ *)
+ os=-nto$os
+ ;;
+ esac
+ ;;
+ -nto-qnx*)
+ ;;
+ -nto*)
+ os=`echo $os | sed -e 's|nto|nto-qnx|'`
+ ;;
+ -sim | -es1800* | -hms* | -xray | -os68k* | -none* | -v88r* \
+ | -windows* | -osx | -abug | -netware* | -os9* | -beos* \
+ | -macos* | -mpw* | -magic* | -mmixware* | -mon960* | -lnews*)
+ ;;
+ -mac*)
+ os=`echo $os | sed -e 's|mac|macos|'`
+ ;;
+ -linux-dietlibc)
+ os=-linux-dietlibc
+ ;;
+ -linux*)
+ os=`echo $os | sed -e 's|linux|linux-gnu|'`
+ ;;
+ -sunos5*)
+ os=`echo $os | sed -e 's|sunos5|solaris2|'`
+ ;;
+ -sunos6*)
+ os=`echo $os | sed -e 's|sunos6|solaris3|'`
+ ;;
+ -opened*)
+ os=-openedition
+ ;;
+ -os400*)
+ os=-os400
+ ;;
+ -wince*)
+ os=-wince
+ ;;
+ -osfrose*)
+ os=-osfrose
+ ;;
+ -osf*)
+ os=-osf
+ ;;
+ -utek*)
+ os=-bsd
+ ;;
+ -dynix*)
+ os=-bsd
+ ;;
+ -acis*)
+ os=-aos
+ ;;
+ -atheos*)
+ os=-atheos
+ ;;
+ -syllable*)
+ os=-syllable
+ ;;
+ -386bsd)
+ os=-bsd
+ ;;
+ -ctix* | -uts*)
+ os=-sysv
+ ;;
+ -nova*)
+ os=-rtmk-nova
+ ;;
+ -ns2 )
+ os=-nextstep2
+ ;;
+ -nsk*)
+ os=-nsk
+ ;;
+ # Preserve the version number of sinix5.
+ -sinix5.*)
+ os=`echo $os | sed -e 's|sinix|sysv|'`
+ ;;
+ -sinix*)
+ os=-sysv4
+ ;;
+ -tpf*)
+ os=-tpf
+ ;;
+ -triton*)
+ os=-sysv3
+ ;;
+ -oss*)
+ os=-sysv3
+ ;;
+ -svr4)
+ os=-sysv4
+ ;;
+ -svr3)
+ os=-sysv3
+ ;;
+ -sysvr4)
+ os=-sysv4
+ ;;
+ # This must come after -sysvr4.
+ -sysv*)
+ ;;
+ -ose*)
+ os=-ose
+ ;;
+ -es1800*)
+ os=-ose
+ ;;
+ -xenix)
+ os=-xenix
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ os=-mint
+ ;;
+ -aros*)
+ os=-aros
+ ;;
+ -kaos*)
+ os=-kaos
+ ;;
+ -zvmoe)
+ os=-zvmoe
+ ;;
+ -none)
+ ;;
+ *)
+ # Get rid of the `-' at the beginning of $os.
+ os=`echo $os | sed 's/[^-]*-//'`
+ echo Invalid configuration \`$1\': system \`$os\' not recognized 1>&2
+ exit 1
+ ;;
+esac
+else
+
+# Here we handle the default operating systems that come with various machines.
+# The value should be what the vendor currently ships out the door with their
+# machine or put another way, the most popular os provided with the machine.
+
+# Note that if you're going to try to match "-MANUFACTURER" here (say,
+# "-sun"), then you have to tell the case statement up towards the top
+# that MANUFACTURER isn't an operating system. Otherwise, code above
+# will signal an error saying that MANUFACTURER isn't an operating
+# system, and we'll never get to this point.
+
+case $basic_machine in
+ *-acorn)
+ os=-riscix1.2
+ ;;
+ arm*-rebel)
+ os=-linux
+ ;;
+ arm*-semi)
+ os=-aout
+ ;;
+ c4x-* | tic4x-*)
+ os=-coff
+ ;;
+ # This must come before the *-dec entry.
+ pdp10-*)
+ os=-tops20
+ ;;
+ pdp11-*)
+ os=-none
+ ;;
+ *-dec | vax-*)
+ os=-ultrix4.2
+ ;;
+ m68*-apollo)
+ os=-domain
+ ;;
+ i386-sun)
+ os=-sunos4.0.2
+ ;;
+ m68000-sun)
+ os=-sunos3
+ # This also exists in the configure program, but was not the
+ # default.
+ # os=-sunos4
+ ;;
+ m68*-cisco)
+ os=-aout
+ ;;
+ mips*-cisco)
+ os=-elf
+ ;;
+ mips*-*)
+ os=-elf
+ ;;
+ or32-*)
+ os=-coff
+ ;;
+ *-tti) # must be before sparc entry or we get the wrong os.
+ os=-sysv3
+ ;;
+ sparc-* | *-sun)
+ os=-sunos4.1.1
+ ;;
+ *-be)
+ os=-beos
+ ;;
+ *-ibm)
+ os=-aix
+ ;;
+ *-knuth)
+ os=-mmixware
+ ;;
+ *-wec)
+ os=-proelf
+ ;;
+ *-winbond)
+ os=-proelf
+ ;;
+ *-oki)
+ os=-proelf
+ ;;
+ *-hp)
+ os=-hpux
+ ;;
+ *-hitachi)
+ os=-hiux
+ ;;
+ i860-* | *-att | *-ncr | *-altos | *-motorola | *-convergent)
+ os=-sysv
+ ;;
+ *-cbm)
+ os=-amigaos
+ ;;
+ *-dg)
+ os=-dgux
+ ;;
+ *-dolphin)
+ os=-sysv3
+ ;;
+ m68k-ccur)
+ os=-rtu
+ ;;
+ m88k-omron*)
+ os=-luna
+ ;;
+ *-next )
+ os=-nextstep
+ ;;
+ *-sequent)
+ os=-ptx
+ ;;
+ *-crds)
+ os=-unos
+ ;;
+ *-ns)
+ os=-genix
+ ;;
+ i370-*)
+ os=-mvs
+ ;;
+ *-next)
+ os=-nextstep3
+ ;;
+ *-gould)
+ os=-sysv
+ ;;
+ *-highlevel)
+ os=-bsd
+ ;;
+ *-encore)
+ os=-bsd
+ ;;
+ *-sgi)
+ os=-irix
+ ;;
+ *-siemens)
+ os=-sysv4
+ ;;
+ *-masscomp)
+ os=-rtu
+ ;;
+ f30[01]-fujitsu | f700-fujitsu)
+ os=-uxpv
+ ;;
+ *-rom68k)
+ os=-coff
+ ;;
+ *-*bug)
+ os=-coff
+ ;;
+ *-apple)
+ os=-macos
+ ;;
+ *-atari*)
+ os=-mint
+ ;;
+ *)
+ os=-none
+ ;;
+esac
+fi
+
+# Here we handle the case where we know the os, and the CPU type, but not the
+# manufacturer. We pick the logical manufacturer.
+vendor=unknown
+case $basic_machine in
+ *-unknown)
+ case $os in
+ -riscix*)
+ vendor=acorn
+ ;;
+ -sunos*)
+ vendor=sun
+ ;;
+ -aix*)
+ vendor=ibm
+ ;;
+ -beos*)
+ vendor=be
+ ;;
+ -hpux*)
+ vendor=hp
+ ;;
+ -mpeix*)
+ vendor=hp
+ ;;
+ -hiux*)
+ vendor=hitachi
+ ;;
+ -unos*)
+ vendor=crds
+ ;;
+ -dgux*)
+ vendor=dg
+ ;;
+ -luna*)
+ vendor=omron
+ ;;
+ -genix*)
+ vendor=ns
+ ;;
+ -mvs* | -opened*)
+ vendor=ibm
+ ;;
+ -os400*)
+ vendor=ibm
+ ;;
+ -ptx*)
+ vendor=sequent
+ ;;
+ -tpf*)
+ vendor=ibm
+ ;;
+ -vxsim* | -vxworks* | -windiss*)
+ vendor=wrs
+ ;;
+ -aux*)
+ vendor=apple
+ ;;
+ -hms*)
+ vendor=hitachi
+ ;;
+ -mpw* | -macos*)
+ vendor=apple
+ ;;
+ -*mint | -mint[0-9]* | -*MiNT | -MiNT[0-9]*)
+ vendor=atari
+ ;;
+ -vos*)
+ vendor=stratus
+ ;;
+ esac
+ basic_machine=`echo $basic_machine | sed "s/unknown/$vendor/"`
+ ;;
+esac
+
+echo $basic_machine$os
+exit 0
+
+# Local variables:
+# eval: (add-hook 'write-file-hooks 'time-stamp)
+# time-stamp-start: "timestamp='"
+# time-stamp-format: "%:y-%02m-%02d"
+# time-stamp-end: "'"
+# End:
--- /dev/null
+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, and that the name of Red Hat not be used in
+dnl advertising or publicity pertaining to distribution of the software without
+dnl specific, written prior permission. Red Hat makes no
+dnl representations about the suitability of this software for any purpose. It
+dnl is provided "as is" without express or implied warranty.
+dnl
+dnl RED HAT DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
+dnl INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
+dnl EVENT SHALL RED HAT BE LIABLE FOR ANY SPECIAL, INDIRECT OR
+dnl CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
+dnl DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
+dnl TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
+dnl PERFORMANCE OF THIS SOFTWARE.
+dnl
+dnl Process this file with autoconf to create configure.
+
+AC_PREREQ([2.57])
+AC_INIT(xinit,[1.1.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=xorg],xinit)
+AM_INIT_AUTOMAKE([dist-bzip2])
+AM_MAINTAINER_MODE
+
+AM_CONFIG_HEADER(config.h)
+
+AC_PROG_CC
+AM_PROG_CC_C_O
+XORG_PROG_RAWCPP
+AC_PROG_INSTALL
+AC_PATH_PROG(SED,sed)
+AC_CANONICAL_HOST
+
+AC_TYPE_SIGNAL
+AC_FUNC_FORK
+
+AC_CHECK_FUNCS([killpg])
+
+m4_ifdef([AS_HELP_STRING], , [m4_define([AS_HELP_STRING], m4_defn([AC_HELP_STRING]))])
+
+# Build options
+DEFAULT_XRDB=xrdb
+DEFAULT_XMODMAP=xmodmap
+DEFAULT_TWM=twm
+DEFAULT_XCLOCK=xclock
+DEFAULT_XTERM=xterm
+# You always want to specify the full path to the X server
+DEFAULT_XSERVER=${bindir}/X
+DEFAULT_XAUTH=xauth
+DEFAULT_XINIT=xinit
+
+AC_ARG_WITH(xrdb,
+ AS_HELP_STRING([--with-xrdb=XRDB], [Path to xrdb]),
+ [XRDB="$withval"],
+ [XRDB="$DEFAULT_XRDB"])
+
+AC_ARG_WITH(xmodmap,
+ AS_HELP_STRING([--with-xmodmap=XMODMAP], [Path to xmodmap]),
+ [XMODMAP="$withval"],
+ [XMODMAP="$DEFAULT_XMODMAP"])
+
+AC_ARG_WITH(twm,
+ AS_HELP_STRING([--with-twm=TWM], [Path to twm]),
+ [TWM="$withval"],
+ [TWM="$DEFAULT_TWM"])
+
+AC_ARG_WITH(xclock,
+ AS_HELP_STRING([--with-xclock=XCLOCK], [Path to xclock]),
+ [XCLOCK="$withval"],
+ [XCLOCK="$DEFAULT_XCLOCK"])
+
+AC_ARG_WITH(xterm,
+ AS_HELP_STRING([--with-xterm=XTERM], [Path to xterm]),
+ [XTERM="$withval"],
+ [XTERM="$DEFAULT_XTERM"])
+
+AC_ARG_WITH(xserver,
+ AS_HELP_STRING([--with-xserver=XSERVER], [Path to default X server]),
+ [XSERVER="$withval"],
+ [XSERVER="$DEFAULT_XSERVER"])
+
+AC_ARG_WITH(xauth,
+ AS_HELP_STRING([--with-xauth=XAUTH], [Path to xauth]),
+ [XAUTH="$withval"],
+ [XAUTH="$DEFAULT_XAUTH"])
+
+AC_ARG_WITH(xinit,
+ AS_HELP_STRING([--with-xinit=XINIT], [Path to xinit]),
+ [XINIT="$withval"],
+ [XINIT="$DEFAULT_XINIT"])
+
+AC_ARG_WITH(launchd, AS_HELP_STRING([--with-launchd], [Build with support for Apple's launchd (default: auto)]), [LAUNCHD=$withval], [LAUNCHD=auto])
+AC_ARG_WITH(launchagents-dir, AS_HELP_STRING([--with-launchagents-dir=PATH], [Path to launchd's LaunchAgents directory (default: /Library/LaunchAgents)]),
+ [ launchagentsdir="${withval}" ],
+ [ launchagentsdir="/Library/LaunchAgents" ])
+AC_ARG_WITH(launchdaemons-dir, AS_HELP_STRING([--with-launchdaemons-dir=PATH], [Path to launchd's LaunchDaemonss directory (default: /Library/LaunchDaemons)]),
+ [ launchdaemonsdir="${withval}" ],
+ [ launchdaemonsdir="/Library/LaunchDaemons" ])
+
+if test "x$LAUNCHD" = "xauto"; then
+ unset LAUNCHD
+ case $host_os in
+ darwin8*)
+ LAUNCHD=no
+ ;;
+ *)
+ AC_CHECK_PROG(LAUNCHD, [launchd], [yes], [no])
+ ;;
+ esac
+fi
+
+if test "x$LAUNCHD" = "xyes" ; then
+ AC_DEFINE(HAVE_LAUNCHD, 1, [launchd support available])
+else
+ launchagentsdir=""
+ launchdaemonsdir=""
+fi
+AC_SUBST([launchagentsdir])
+AC_SUBST([launchdaemonsdir])
+AM_CONDITIONAL(LAUNCHD, [test "x$LAUNCHD" = "xyes"])
+
+# Checks for pkg-config packages
+PKG_CHECK_MODULES(XINIT, x11)
+
+case $host_os in
+ *bsd*)
+ XINIT_CFLAGS="$XINIT_CFLAGS -DCSRG_BASED"
+ ;;
+esac
+
+AC_SUBST(XINIT_CFLAGS)
+AC_SUBST(XINIT_LIBS)
+
+AC_PATH_PROGS(MCOOKIE, [mcookie], [$MCOOKIE],
+ [$PATH:/bin:/usr/bin:/usr/lib:/usr/libexec:/usr/local/bin])
+
+case $host_os in
+ *openbsd*)
+ MCOOKIE='/usr/sbin/openssl rand -hex 16'
+ ;;
+ *solaris*)
+ MCOOKIE="/usr/bin/od -X -A n -N 16 /dev/urandom | /usr/bin/tr -d ' '"
+ ;;
+esac
+
+if test "x$MCOOKIE" != x ; then
+ STARTX_COOKIE_FLAGS='-DHAS_COOKIE_MAKER -DMK_COOKIE="$(MCOOKIE)"'
+fi
+AC_SUBST(STARTX_COOKIE_FLAGS)
+
+# Additional substitutions in startx, xinitrc & man pages
+case $host_os in
+ *solaris*)
+ SHELL_CMD="/bin/ksh"
+ ARCHMANDEFS=""
+ ;;
+ *sco*)
+ SHELL_CMD="/bin/ksh"
+ ARCHMANDEFS="-D__SCOMAN__"
+ ;;
+ *)
+ SHELL_CMD="/bin/sh"
+ ARCHMANDEFS=""
+ ;;
+esac
+AC_SUBST(SHELL_CMD)
+AC_SUBST(ARCHMANDEFS)
+
+AC_SUBST(XRDB)
+AC_SUBST(XMODMAP)
+AC_SUBST(TWM)
+AC_SUBST(XCLOCK)
+AC_SUBST(XTERM)
+AC_SUBST(XSERVER)
+AC_SUBST(XAUTH)
+AC_SUBST(XINIT)
+
+# Defines which X servers are listed in help output in xinit.c
+# Cheat, lie, and assume all the world is Xorg for now
+AC_DEFINE(XORG, 1, [Define if you have Xorg X server])
+
+XORG_MANPAGE_SECTIONS
+XORG_RELEASE_VERSION
+
+AC_OUTPUT([Makefile])
+AC_OUTPUT([privileged_startx/Makefile])
--- /dev/null
+Package: tinyx-xinit-@MACHINE@
+Priority: optional
+Version: @VERSION@
+Section: headers
+Architecture: @HOST@
+Maintainer: SooChan Lim <sc.lim@samsung.com>
+Source: xinit-1.1.0
+Depends:
+Description: xinit
+
--- /dev/null
+# Translate XCOMM into pound sign with sed, rather than passing -DXCOMM=XCOMM
+# to cpp, because that trick does not work on all ANSI C preprocessors.
+# Delete line numbers from the cpp output (-P is not portable, I guess).
+# Allow XCOMM to be preceded by whitespace and provide a means of generating
+# output lines with trailing backslashes.
+# Allow XHASH to always be substituted, even in cases where XCOMM isn't.
+
+CPP_SED_MAGIC = $(SED) -e '/^\# *[0-9][0-9]* *.*$$/d' \
+ -e '/^\#line *[0-9][0-9]* *.*$$/d' \
+ -e '/^[ ]*XCOMM$$/s/XCOMM/\#/' \
+ -e '/^[ ]*XCOMM[^a-zA-Z0-9_]/s/XCOMM/\#/' \
+ -e '/^[ ]*XHASH/s/XHASH/\#/' \
+ -e '/XSLASHGLOB/s/XSLASHGLOB/\/\*/' \
+ -e '/\@\@$$/s/\@\@$$/\\/'
+
+# Strings to replace in man pages
+XORGRELSTRING = @PACKAGE_STRING@
+ XORGMANNAME = X Version 11
+
+MANDEFS = \
+ -D__xorgversion__="\"$(XORGRELSTRING)\" \"$(XORGMANNAME)\"" \
+ -D__appmansuffix__=$(APP_MAN_SUFFIX) \
+ -D__filemansuffix__=$(FILE_MAN_SUFFIX) \
+ -D__libmansuffix__=$(LIB_MAN_SUFFIX) \
+ -D__miscmansuffix__=$(MISC_MAN_SUFFIX) \
+ -D__XSERVERNAME__=Xorg -D__XCONFIGFILE__=xorg.conf \
+ -D__xinitdir__=$(XINITDIR) \
+ -D__bindir__=$(bindir) \
+ -DSHELL_CMD=$(SHELL_CMD) $(ARCHMANDEFS)
+
+SUFFIXES = .$(APP_MAN_SUFFIX) .man .cpp
+
+.cpp:
+ $(RAWCPP) $(RAWCPPFLAGS) $(CPP_FILES_FLAGS) < $< | $(CPP_SED_MAGIC) > $@
+
+.man.$(APP_MAN_SUFFIX):
+ $(RAWCPP) $(RAWCPPFLAGS) $(MANDEFS) $(EXTRAMANDEFS) < $< | $(CPP_SED_MAGIC) > $@
--- /dev/null
+xinit (1.1.0-7slp2+1) unstable; urgency=low
+
+ * modify the rules file for SBS
+ * Git: 165.213.180.234:slp/pkgs/xorg/app/xinit
+ * Tag: xinit_1.1.0-7slp2+1
+
+ -- SooChan Lim <sc1.lim@samsung.com> Mon, 21 Feb 2011 19:56:43 +0900
+
+xinit (1.1.0-6slp2+1) unstable; urgency=low
+
+ * modify the rules file for SBS
+ * Git: 165.213.180.234:slp/pkgs/xorg/app/xinit
+ * Tag: xinit_1.1.0-6slp2+1
+
+ -- SooChan Lim <sc1.lim@samsung.com> Mon, 21 Feb 2011 16:17:13 +0900
+
+xinit (1.1.0-5slp2+1) unstable; urgency=low
+
+ * Add a feature enabled by defining _F_EXIT_AFTER_XORG_AND_XCLIENT_LAUNCHED_
+ - Modify xinit to call exit(0) after Xorg and clients was executed
+ * Remove some whitespaces
+ * Git: 165.213.180.234:slp/pkgs/xorg/app/xinit
+ * Tag: xinit_1.1.0-5slp2+1
+
+ -- Sung-Jin Park <sj76.park@samsung.com> Fri, 11 Feb 2011 14:52:30 +0900
+
+xinit (1.1.0-4slp2) unstable; urgency=low
+
+ * Add xinit-dbg package and synchronize package between git and debian
+ repository
+ * Git: 165.213.180.234:/git/slp/pkgs/xorg/app/xinit
+ * Tag: xinit_1.1.0-4slp2
+
+ -- Sung-Jin Park <sj76.park@samsung.com> Mon, 22 Nov 2010 16:14:23 +0900
+
+xinit (1.1.0-3slp2) unstable; urgency=low
+
+ * Change revision
+
+ -- Sung-Jin Park <sj76.park@samsung.com> Thu, 25 Mar 2010 17:58:08 +0900
+
+xinit (1.1.0-2) unstable; urgency=low
+
+ * Modify debian/control file to satisfy this package's dependency
+
+ -- Sung-Jin Park <sj76.park@samsung.com> Wed, 30 Dec 2009 19:07:07 +0900
+
+xinit (1.1.0-1) unstable; urgency=low
+
+ * Initial release
+
+ -- Kyu Young Kim <ky0928.kim@samsung.com> Sat, 4 Jul 2009 11:30:34 +0900
--- /dev/null
+Source: xinit
+Section: x11
+Priority: optional
+Maintainer: Sung-Jin Park <sj76.park@samsung.com>
+Uploaders: SooChan Lim <sc1.lim@samsung.com>, Sung-Jin Park <sj76.park@samsung.com>
+Build-Depends: debhelper (>= 5.0.0), pkg-config, libx11-dev (>= 2:1.0.0-1), xutils-dev, quilt
+Standards-Version: 3.7.2.0
+
+Package: xinit
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}
+Pre-Depends: x11-common (>= 1:7.0.0)
+Replaces: xbase-clients (<= 1:7.2.ds2-3)
+Description: X server initialisation tool
+ xinit and startx are programs which facilitate starting an X server, and
+ loading a base X session.
+
+Package: xinit-dbg
+Architecture: any
+Section: debug
+Depends: ${shlibs:Depends}, ${misc:Depends}, xinit (=${Source-Version})
+Description: Debug package of xinit
+
--- /dev/null
+This package was debianized by gouache <sangho.g.park@samsung.com> on
+Sat, 4 Jul 2009 11:30:34 +0900
+
+It was downloaded from <http://repository.m2.samsung.com>
+
+Upstream Author: <sangho.g.park@samsung.com>
+
+Copyright:
+
+ (c) 2009 Samsung Electronics, Inc.
+ All rights reserved.
+
+ This software is the confidential and proprietary information
+ of Samsung Electronics, Inc. ("Confidential Information"). You
+ shall not disclose such Confidential Information and shall use
+ it only in accordance with the terms of the license agreement
+ you entered into with Samsung Electronics.
+
+License: free
+
+Debian Copyright:
+Copyright 1992, 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.
+
+Debian License:
+ On Debian GNU/Linux systems, the complete text of the GNU General
+ Public License can be found in '/usr/share/common-licenses/GPL'.
+
+ The Debian packaging is (C) 2005-2007, Canonical, Inc.
+ and is licensed under the GPL, see above.
+
--- /dev/null
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+
+# These are used for cross-compiling and for saving the configure script
+# from having to guess our platform (since we know it already)
+DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
+DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
+
+CFLAGS += -Wall -g -D_F_EXIT_AFTER_XORG_AND_XCLIENT_LAUNCHED_
+LDFLAGS +=
+PREFIX = usr
+DATADIR = /opt
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ CFLAGS += -O0
+else
+ CFLAGS += -O2
+endif
+
+# shared library versions, option 1
+version=1.1.0
+major=1
+# option 2, assuming the library is created as src/.libs/libfoo.so.2.0.5 or so
+#version=`ls src/.libs/lib*.so.* | \
+# awk '{if (match($$0,/[0-9]+\.[0-9]+\.[0-9]+$$/)) print substr($$0,RSTART)}'`
+#major=`ls src/.libs/lib*.so.* | \
+# awk '{if (match($$0,/\.so\.[0-9]+$$/)) print substr($$0,RSTART+4)}'`
+
+config.status:
+ dh_testdir
+ # Add here commands to configure the package.
+ ./autogen.sh
+ ./configure --prefix=/$(PREFIX) CFLAGS="$(CFLAGS)" LDFLAGS="$(LDFLAGS)"
+
+build: build-stamp
+build-stamp: config.status
+ dh_testdir
+
+ # Add here commands to compile the package.
+ $(MAKE)
+
+ touch $@
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp
+
+ # Add here commands to clean up after the build process.
+ -$(MAKE) distclean
+ifneq "$(wildcard /usr/share/misc/config.sub)" ""
+ cp -f /usr/share/misc/config.sub config.sub
+endif
+ifneq "$(wildcard /usr/share/misc/config.guess)" ""
+ cp -f /usr/share/misc/config.guess config.guess
+endif
+
+
+ dh_clean
+
+install: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Add here commands to install the package into debian/tmp
+ $(MAKE) DESTDIR=$(CURDIR)/debian/tmp install
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs
+ dh_installdocs
+ dh_installexamples
+ dh_install --sourcedir debian/tmp
+# dh_installmenu
+# dh_installdebconf
+# dh_installlogrotate
+# dh_installemacsen
+# dh_installpam
+# dh_installmime
+# dh_installinit
+# dh_installcron
+# dh_installinfo
+ dh_installman
+ dh_link
+ dh_strip --dbg-package=xinit-dbg
+ dh_compress
+ dh_fixperms
+# dh_perl
+# dh_python
+# dh_makeshlibs
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install
--- /dev/null
+usr/lib/X11/xinit/xinitrc
+usr/bin/xinit
+usr/share/man/man1/xinit.1
+usr/share/man/man1/startx.1
+
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>Label</key>
+ <string>org.x.startx</string>
+ <key>ProgramArguments</key>
+ <array>
+ <string>/bin/bash</string>
+ <string>--login</string>
+ <string>-c</string>
+ <string>__bindir__/startx</string>
+ </array>
+ <key>Sockets</key>
+ <dict>
+ <key>:0</key>
+ <dict>
+ <key>SecureSocketWithKey</key>
+ <string>DISPLAY</string>
+ </dict>
+ </dict>
+ <key>ServiceIPC</key>
+ <true/>
+</dict>
+</plist>
--- /dev/null
+* Wed May 30 2012 Junfeng Dong <junfeng.dong@intel.com>
+- Clean up spec file for packaging.
+- Trigger OBS submission
+
+* Sat May 19 02:19:30 UTC 2012 - tracy.graydon@intel.com
+- package fixing
+
+* Fri May 18 22:38:17 UTC 2012 - tu.c.truong@intel.com
+- Initial commit to Gerrit
+
--- /dev/null
+%define pkgname xinit
+
+Summary: X.Org X11 X Window System xinit startup scripts
+Name: xorg-x11-%{pkgname}
+Version: 1.1.0
+Release: 1
+License: MIT/X11
+Group: User Interface/X
+URL: http://www.x.org
+Source0: %{name}-%{version}.tar.bz2
+
+BuildRequires: pkgconfig
+BuildRequires: pkgconfig(x11)
+BuildRequires: autoconf
+BuildRequires: automake
+BuildRequires: libtool
+BuildRequires: xorg-x11-util-macros
+Requires: xauth
+
+%description
+X.Org X11 X Window System xinit startup scripts
+
+%prep
+%setup -q -n %{name}-%{version}
+
+%build
+export CFLAGS="${CFLAGS} -D_F_EXIT_AFTER_XORG_AND_XCLIENT_LAUNCHED_"
+./autogen.sh
+./configure --prefix=%{_prefix}
+
+make %{?jobs:-j%jobs}
+
+
+%install
+rm -rf $RPM_BUILD_ROOT
+make install DESTDIR=$RPM_BUILD_ROOT
+
+
+
+%remove_docs
+
+%clean
+rm -rf $RPM_BUILD_ROOT
+
+%files
+%{_bindir}/xinit
+%{_libdir}/X11/xinit/xinitrc
+
--- /dev/null
+XCOMM!/bin/sh
+XCOMM Copyright (c) 2008 Apple Inc.
+XCOMM
+XCOMM Permission is hereby granted, free of charge, to any person
+XCOMM obtaining a copy of this software and associated documentation files
+XCOMM (the "Software"), to deal in the Software without restriction,
+XCOMM including without limitation the rights to use, copy, modify, merge,
+XCOMM publish, distribute, sublicense, and/or sell copies of the Software,
+XCOMM and to permit persons to whom the Software is furnished to do so,
+XCOMM subject to the following conditions:
+XCOMM
+XCOMM The above copyright notice and this permission notice shall be
+XCOMM included in all copies or substantial portions of the Software.
+XCOMM
+XCOMM THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+XCOMM EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+XCOMM MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+XCOMM NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT
+XCOMM HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+XCOMM WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+XCOMM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+XCOMM DEALINGS IN THE SOFTWARE.
+XCOMM
+XCOMM Except as contained in this notice, the name(s) of the above
+XCOMM copyright holders shall not be used in advertising or otherwise to
+XCOMM promote the sale, use or other dealings in this Software without
+XCOMM prior written authorization.
+
+XCOMM Make sure these are owned by root
+for dir in /tmp/.ICE-unix /tmp/.X11-unix /tmp/.font-unix ; do
+ # Use mktemp rather than mkdir to avoid possible security issue
+ # if $dir exists and is a symlink
+ if mktemp -d ${dir} >& /dev/null ; then
+ chmod 1777 $dir
+ chown root:wheel $dir
+ fi
+done
--- /dev/null
+XCOMM!/bin/sh
+XCOMM Copyright (c) 2008 Apple Inc.
+XCOMM
+XCOMM Permission is hereby granted, free of charge, to any person
+XCOMM obtaining a copy of this software and associated documentation files
+XCOMM (the "Software"), to deal in the Software without restriction,
+XCOMM including without limitation the rights to use, copy, modify, merge,
+XCOMM publish, distribute, sublicense, and/or sell copies of the Software,
+XCOMM and to permit persons to whom the Software is furnished to do so,
+XCOMM subject to the following conditions:
+XCOMM
+XCOMM The above copyright notice and this permission notice shall be
+XCOMM included in all copies or substantial portions of the Software.
+XCOMM
+XCOMM THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+XCOMM EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+XCOMM MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+XCOMM NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT
+XCOMM HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+XCOMM WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+XCOMM OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+XCOMM DEALINGS IN THE SOFTWARE.
+XCOMM
+XCOMM Except as contained in this notice, the name(s) of the above
+XCOMM copyright holders shall not be used in advertising or otherwise to
+XCOMM promote the sale, use or other dealings in this Software without
+XCOMM prior written authorization.
+
+if [ -x BINDIR/font_cache ] ; then
+ BINDIR/font_cache &
+elif [ -x BINDIR/font_cache.sh ] ; then
+ BINDIR/font_cache.sh -s &
+elif [ -x /usr/X11/bin/fc-cache ] ; then
+ BINDIR/fc-cache &
+fi
--- /dev/null
+# Copyright (c) 2008 Apple Inc.
+#
+# Permission is hereby granted, free of charge, to any person
+# obtaining a copy of this software and associated documentation files
+# (the "Software"), to deal in the Software without restriction,
+# including without limitation the rights to use, copy, modify, merge,
+# publish, distribute, sublicense, and/or sell copies of the Software,
+# and to permit persons to whom the Software is furnished to do so,
+# subject to the following conditions:
+#
+# The above copyright notice and this permission notice shall be
+# included in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT
+# HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+# DEALINGS IN THE SOFTWARE.
+#
+# Except as contained in this notice, the name(s) of the above
+# copyright holders shall not be used in advertising or otherwise to
+# promote the sale, use or other dealings in this Software without
+# prior written authorization.
+
+include $(top_srcdir)/cpprules.in
+
+xinitrcdir = $(libdir)/X11/xinit
+privstartxdir = $(xinitrcdir)/privileged_startx.d
+
+xinitrc_PROGRAMS = privileged_startx
+privstartx_SCRIPTS = 10-tmpdirs 20-font_cache
+
+AM_CPPFLAGS = -DXINITDIR=\"$(xinitrcdir)\" -DSCRIPTDIR=\"$(privstartxdir)\" -DBINDIR=\"$(bindir)\"
+
+CPP_FILES_FLAGS = -DXINITDIR="$(xinitrcdir)" -DSCRIPTDIR="$(privstartxdir)" -DBINDIR="$(bindir)"
+
+dist_privileged_startx_SOURCES = \
+ server.c \
+ client.c \
+ privileged_startx.c
+
+nodist_privileged_startx_SOURCES = \
+ privileged_startxServer.c \
+ privileged_startxUser.c
+
+BUILT_SOURCES = \
+ privileged_startxServer.c \
+ privileged_startxUser.c \
+ privileged_startxServer.h \
+ privileged_startx.h
+
+launchdaemons_PRE = org.x.privileged_startx.plist.cpp
+launchdaemons_DATA = $(launchdaemons_PRE:plist.cpp=plist)
+
+10-tmpdirs: 10-tmpdirs.cpp Makefile
+20-font_cache: 20-font_cache.cpp Makefile
+
+CLEANFILES = \
+ $(privstartx_SCRIPTS) \
+ $(BUILT_SOURCES) \
+ $(launchdaemons_DATA)
+
+EXTRA_DIST = \
+ 10-tmpdirs.cpp \
+ 20-font_cache.cpp \
+ org.x.privileged_startx.plist.cpp \
+ privileged_startx.defs \
+ privileged_startx_types.h
+
+$(BUILT_SOURCES): privileged_startx.defs
+ mig -sheader privileged_startxServer.h privileged_startx.defs
--- /dev/null
+/* Copyright (c) 2008 Apple Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT
+ * HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name(s) of the above
+ * copyright holders shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization.
+ */
+
+#include <mach/mach.h>
+#include <mach/mach_error.h>
+#include <servers/bootstrap.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <stdbool.h>
+
+#include "privileged_startx.h"
+
+int client_main(void) {
+ kern_return_t kr;
+ mach_port_t mp;
+
+ kr = bootstrap_look_up(bootstrap_port, BOOTSTRAP_NAME, &mp);
+ if (kr != KERN_SUCCESS) {
+ fprintf(stderr, "bootstrap_look_up(): %s\n", bootstrap_strerror(kr));
+ exit(EXIT_FAILURE);
+ }
+
+ kr = privileged_startx(mp);
+ if (kr != KERN_SUCCESS) {
+ fprintf(stderr, "privileged_startx client: %s\n", mach_error_string(kr));
+ exit(EXIT_FAILURE);
+ }
+
+ exit(EXIT_SUCCESS);
+}
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>Label</key>
+ <string>org.x.privileged_startx</string>
+ <key>MachServices</key>
+ <dict>
+ <key>org.x.privileged_startx</key>
+ <true/>
+ </dict>
+ <key>ProgramArguments</key>
+ <array>
+ <string>XINITDIR/privileged_startx</string>
+ <string>-d</string>
+ <string>SCRIPTDIR</string>
+ </array>
+ <key>TimeOut</key>
+ <integer>60</integer>
+</dict>
+</plist>
--- /dev/null
+/* Copyright (c) 2008 Apple Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT
+ * HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name(s) of the above
+ * copyright holders shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization.
+ */
+
+#include <string.h>
+#include <stdio.h>
+
+#ifndef SCRIPTDIR
+#define SCRIPTDIR="/usr/X11/lib/X11/xinit/privileged_startx.d"
+#endif
+
+static void usage(const char *prog) {
+ fprintf(stderr, "%s: usage\n", prog);
+ fprintf(stderr, " %s [-d [<script dir>]]\n\n", prog);
+ fprintf(stderr, " -d: Passed when called from launchd to denote server-mode.\n");
+ fprintf(stderr, " <script dir>: Directory to use instead of %s\n", SCRIPTDIR);
+}
+
+int client_main(void);
+int server_main(const char *dir);
+
+int main(int argc, char *argv[]) {
+
+ if(argc == 1) {
+ return client_main();
+ } else if(!strncmp(argv[1], "-d", 2)) {
+ if(argc == 2)
+ return server_main(NULL);
+ else if(argc == 3)
+ return server_main(argv[2]);
+ }
+
+ usage(argv[0]);
+ return 1;
+}
--- /dev/null
+/* Copyright (c) 2008 Apple Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT
+ * HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name(s) of the above
+ * copyright holders shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization.
+ */
+
+#include <mach/std_types.defs>
+#include <mach/mach_types.defs>
+import "privileged_startx_types.h";
+
+subsystem privileged_startx 12345;
+serverprefix do_;
+
+routine privileged_startx(
+ port : mach_port_t);
+
+routine idle_exit(
+ port : mach_port_t);
--- /dev/null
+#ifndef _PRIV_STARTX_TYPES_H_
+#define _PRIV_STARTX_TYPES_H_
+
+#define BOOTSTRAP_NAME "org.x.privileged_startx"
+
+#endif
--- /dev/null
+/* Copyright (c) 2008 Apple Inc.
+ *
+ * Permission is hereby granted, free of charge, to any person
+ * obtaining a copy of this software and associated documentation files
+ * (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge,
+ * publish, distribute, sublicense, and/or sell copies of the Software,
+ * and to permit persons to whom the Software is furnished to do so,
+ * subject to the following conditions:
+ *
+ * The above copyright notice and this permission notice shall be
+ * included in all copies or substantial portions of the Software.
+ *
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+ * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE ABOVE LISTED COPYRIGHT
+ * HOLDER(S) BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+ * DEALINGS IN THE SOFTWARE.
+ *
+ * Except as contained in this notice, the name(s) of the above
+ * copyright holders shall not be used in advertising or otherwise to
+ * promote the sale, use or other dealings in this Software without
+ * prior written authorization.
+ */
+
+#include <mach/mach.h>
+#include <mach/mach_error.h>
+#include <servers/bootstrap.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <sys/types.h>
+#include <sys/stat.h>
+#include <fts.h>
+#include <limits.h>
+#include <stdlib.h>
+#include <stdbool.h>
+#include <sys/time.h>
+#include <launch.h>
+#include <asl.h>
+#include <pthread.h>
+#include <errno.h>
+
+#include "privileged_startx.h"
+#include "privileged_startxServer.h"
+
+union MaxMsgSize {
+ union __RequestUnion__privileged_startx_subsystem req;
+ union __ReplyUnion__privileged_startx_subsystem rep;
+};
+
+/* globals to trigger idle exit */
+#define DEFAULT_IDLE_TIMEOUT 60 /* 60 second timeout, then the server exits */
+
+struct idle_globals {
+ mach_port_t mp;
+ long timeout;
+ struct timeval lastmsg;
+};
+
+struct idle_globals idle_globals;
+
+#ifndef SCRIPTDIR
+#define SCRIPTDIR="/usr/X11/lib/X11/xinit/privileged_startx.d"
+#endif
+
+/* Default script dir */
+const char *script_dir = SCRIPTDIR;
+
+static void* idle_thread(void* param __attribute__((unused)));
+
+int server_main(const char *dir) {
+ mach_msg_size_t mxmsgsz = sizeof(union MaxMsgSize) + MAX_TRAILER_SIZE;
+ mach_port_t mp;
+ kern_return_t kr;
+ long idle_timeout = DEFAULT_IDLE_TIMEOUT;
+
+ launch_data_t config = NULL, checkin = NULL;
+ checkin = launch_data_new_string(LAUNCH_KEY_CHECKIN);
+ config = launch_msg(checkin);
+ if (!config || launch_data_get_type(config) == LAUNCH_DATA_ERRNO) {
+ asl_log(NULL, NULL, ASL_LEVEL_ERR, "launchd checkin failed");
+ exit(EXIT_FAILURE);
+ }
+
+ launch_data_t tmv;
+ tmv = launch_data_dict_lookup(config, LAUNCH_JOBKEY_TIMEOUT);
+ if (tmv) {
+ idle_timeout = launch_data_get_integer(tmv);
+ asl_log(NULL, NULL, ASL_LEVEL_DEBUG,
+ "idle timeout set: %ld seconds", idle_timeout);
+ }
+
+ if(dir) {
+ script_dir = dir;
+ asl_log(NULL, NULL, ASL_LEVEL_DEBUG,
+ "script directory set: %s", script_dir);
+ }
+
+ launch_data_t svc;
+ svc = launch_data_dict_lookup(config, LAUNCH_JOBKEY_MACHSERVICES);
+ if (!svc) {
+ asl_log(NULL, NULL, ASL_LEVEL_ERR, "no mach services");
+ exit(EXIT_FAILURE);
+ }
+
+ svc = launch_data_dict_lookup(svc, BOOTSTRAP_NAME);
+ if (!svc) {
+ asl_log(NULL, NULL, ASL_LEVEL_ERR, "no mach service: %s",
+ BOOTSTRAP_NAME);
+ exit(EXIT_FAILURE);
+ }
+
+ mp = launch_data_get_machport(svc);
+ if (mp == MACH_PORT_NULL) {
+ asl_log(NULL, NULL, ASL_LEVEL_ERR, "NULL mach service: %s",
+ BOOTSTRAP_NAME);
+ exit(EXIT_FAILURE);
+ }
+
+ /* insert a send right so we can send our idle exit message */
+ kr = mach_port_insert_right(mach_task_self(), mp, mp,
+ MACH_MSG_TYPE_MAKE_SEND);
+ if (kr != KERN_SUCCESS) {
+ asl_log(NULL, NULL, ASL_LEVEL_ERR, "send right failed: %s",
+ mach_error_string(kr));
+ exit(EXIT_FAILURE);
+ }
+
+ /* spawn a thread to monitor our idle timeout */
+ pthread_t thread;
+ idle_globals.mp = mp;
+ idle_globals.timeout = idle_timeout;
+ gettimeofday(&idle_globals.lastmsg, NULL);
+ pthread_create(&thread, NULL, &idle_thread, NULL);
+
+ /* Main event loop */
+ kr = mach_msg_server(privileged_startx_server, mxmsgsz, mp, 0);
+ if (kr != KERN_SUCCESS) {
+ asl_log(NULL, NULL, ASL_LEVEL_ERR,
+ "mach_msg_server(mp): %s\n", mach_error_string(kr));
+ exit(EXIT_FAILURE);
+ }
+
+ exit(EXIT_SUCCESS);
+}
+
+static int ftscmp(const FTSENT **a, const FTSENT **b) {
+ return strcmp((**a).fts_name, (**b).fts_name);
+}
+
+kern_return_t do_privileged_startx(mach_port_t test_port __attribute__((unused))) {
+ kern_return_t retval = KERN_SUCCESS;
+ char fn_buf[PATH_MAX + 1];
+ char *s;
+ int error_code;
+ FTS *ftsp;
+ FTSENT *ftsent;
+
+ const char * path_argv[2] = {script_dir, NULL};
+
+ /* Store that we were called, so the idle timer will reset */
+ gettimeofday(&idle_globals.lastmsg, NULL);
+
+ /* script_dir contains a set of files to run with root privs when X11 starts */
+ ftsp = fts_open(path_argv, FTS_PHYSICAL, ftscmp);
+ if(!ftsp) {
+ asl_log(NULL, NULL, ASL_LEVEL_ERR,
+ "do_privileged_startx: fts_open(%s): %s\n",
+ script_dir, strerror(errno));
+ return KERN_FAILURE;
+ }
+
+ /* Grab our dir */
+ ftsent = fts_read(ftsp);
+ if(!ftsent) {
+ asl_log(NULL, NULL, ASL_LEVEL_ERR,
+ "do_privileged_startx: fts_read(): %s\n", strerror(errno));
+ fts_close(ftsp);
+ return KERN_FAILURE;
+ }
+
+ /* Get a list of the files in this directory */
+ ftsent = fts_children(ftsp, 0);
+ if(!ftsent) {
+ asl_log(NULL, NULL, ASL_LEVEL_ERR,
+ "do_privileged_startx: fts_children(): %s\n", strerror(errno));
+ fts_close(ftsp);
+ return KERN_FAILURE;
+ }
+
+ /* Setup the buffer to have the path to the script dir */
+ strncpy(fn_buf, script_dir, PATH_MAX-1);
+ strcat(fn_buf, "/");
+ s = strrchr(fn_buf, 0);
+
+ /* Itterate over these files in alphabetical order */
+ for(; ftsent; ftsent = ftsent->fts_link) {
+ /* We only source regular files that are executable */
+ /* Note: This assumes we own them, which should always be the case */
+ if((ftsent->fts_statp->st_mode & S_IFREG) &&
+ (ftsent->fts_statp->st_mode & S_IXUSR)) {
+
+ /* Complete the full path filename in fn_buf */
+ strcpy(s, ftsent->fts_name);
+
+ /* Run it */
+ error_code = system(fn_buf);
+ if(error_code != 0) {
+ asl_log(NULL, NULL, ASL_LEVEL_ERR,
+ "do_privileged_startx: %s: exited with status %d\n",
+ fn_buf, error_code);
+ retval = KERN_FAILURE;
+ }
+ }
+ }
+
+ fts_close(ftsp);
+ return retval;
+}
+
+kern_return_t do_idle_exit(mach_port_t test_port __attribute__((unused))) {
+ struct timeval now;
+ gettimeofday(&now, NULL);
+
+ long delta = now.tv_sec - idle_globals.lastmsg.tv_sec;
+ if (delta >= idle_globals.timeout) {
+ exit(EXIT_SUCCESS);
+ }
+
+ return KERN_SUCCESS;
+}
+
+static void *idle_thread(void* param __attribute__((unused))) {
+ for(;;) {
+ struct timeval now;
+ gettimeofday(&now, NULL);
+ long delta = (now.tv_sec - idle_globals.lastmsg.tv_sec);
+ if (delta < idle_globals.timeout) {
+ /* sleep for remainder of timeout */
+ sleep(idle_globals.timeout - delta);
+ } else {
+ /* timeout has elapsed, attempt to idle exit */
+ idle_exit(idle_globals.mp);
+ }
+ }
+ return NULL;
+}
--- /dev/null
+/* OS/2 REXX */
+/* $XFree86: xc/programs/xinit/startx.cmd,v 3.3 1996/10/17 15:23:47 dawes Exp $
+ *
+ * This is just a sample implementation of a slightly less primitive
+ * interface than xinit. It looks for user xinitrc.cmd and xservrc.cmd
+ * files, then system xinitrc.cmd and xservrc.cmd files, else lets xinit choose
+ * its default. The system xinitrc should probably do things like check
+ * for Xresources files and merge them in, startup up a window manager,
+ * and pop a clock and serveral xterms.
+ *
+ * Site administrators are STRONGLY urged to write nicer versions.
+ */
+'@echo off'
+ADDRESS CMD
+env = 'OS2ENVIRONMENT'
+x11root = VALUE('X11ROOT',,env)
+IF x11root = '' THEN DO
+ SAY "The environment variable X11ROOT is not set. X/OS2 won't run without it."
+ EXIT
+END
+
+home = VALUE('HOME',,env)
+IF home = '' THEN home = x11root
+os_shell = VALUE('X11SHELL',,env)
+IF os_shell = '' THEN os_shell = VALUE('SHELL',,env)
+IF os_shell = '' THEN os_shell = VALUE('OS2_SHELL',,env)
+IF os_shell = '' THEN DO
+ SAY "There is no command interpreter in OS2_SHELL ???"
+ EXIT
+END
+
+userclientrc = home'\xinitrc.cmd'
+userserverrc = home'\xservrc.cmd'
+sysclientrc = x11root'\usr\X11R6\lib\X11\xinit\xinitrc.cmd'
+sysserverrc = x11root'\usr\X11R6\lib\X11\xinit\xservrc.cmd'
+clientargs = ''
+serverargs = ''
+
+IF exists(userclientrc) THEN
+ clientargs = userclientrc
+ELSE
+IF exists(sysclientrc) THEN
+ clientargs = sysclientrc
+
+IF exists(userserverrc) THEN
+ serverargs = userserverrc
+ELSE
+IF exists(sysserverrc) THEN
+ serverargs = sysserverrc
+
+whoseargs = "client"
+PARSE ARG all
+
+DO i=1 TO WORDS(all)
+ cur = WORD(all,i)
+ IF \(FILESPEC('DRIVE',cur) = '') THEN DO
+ IF whoseargs = "client" THEN
+ clientargs = cur
+ ELSE
+ serverargs = cur
+ END
+ ELSE
+ IF cur = "--" THEN
+ whoseargs = "server"
+ ELSE
+ IF whoseargs = "client" THEN
+ clientargs = clientargs' 'cur
+ ELSE
+ serverargs = serverargs' 'cur
+END
+
+xinit = x11root'\usr\X11R6\bin\xinit'
+xinit os_shell' /c 'clientargs' -- 'serverargs
+
+RETURN
+
+exists:
+ IF STREAM(arg(1), 'C', 'QUERY EXISTS') = '' THEN
+ RETURN 0
+ ELSE
+ RETURN 1
--- /dev/null
+XCOMM!SHELL_CMD
+
+XCOMM $Xorg: startx.cpp,v 1.3 2000/08/17 19:54:29 cpqbld Exp $
+XCOMM
+XCOMM This is just a sample implementation of a slightly less primitive
+XCOMM interface than xinit. It looks for user .xinitrc and .xserverrc
+XCOMM files, then system xinitrc and xserverrc files, else lets xinit choose
+XCOMM its default. The system xinitrc should probably do things like check
+XCOMM for .Xresources files and merge them in, startup up a window manager,
+XCOMM and pop a clock and serveral xterms.
+XCOMM
+XCOMM Site administrators are STRONGLY urged to write nicer versions.
+XCOMM
+XCOMM $XFree86: xc/programs/xinit/startx.cpp,v 3.16tsi Exp $
+
+unset DBUS_SESSION_BUS_ADDRESS
+unset SESSION_MANAGER
+
+#if defined(__SCO__) || defined(__UNIXWARE__) || defined(__APPLE__)
+
+XCOMM Check for /usr/bin/X11 and BINDIR in the path, if not add them.
+XCOMM This allows startx to be placed in a place like /usr/bin or /usr/local/bin
+XCOMM and people may use X without changing their PATH.
+XCOMM Note that we put our own bin directory at the front of the path, and
+XCOMM the standard system path at the back, since if you are using the Xorg
+XCOMM server theres a pretty good chance you want to bias the Xorg clients
+XCOMM over the old system's clients.
+
+XCOMM First our compiled path
+bindir=__bindir__
+
+case $PATH in
+ *:$bindir | *:$bindir:* | $bindir:*) ;;
+ *) PATH=$bindir:$PATH ;;
+esac
+
+XCOMM Now the "old" compiled path
+#ifdef __APPLE__
+oldbindir=/usr/X11R6/bin
+#else
+oldbindir=/usr/bin/X11
+#endif
+
+if [ -d "$oldbindir" ] ; then
+ case $PATH in
+ *:$oldbindir | *:$oldbindir:* | $oldbindir:*) ;;
+ *) PATH=$PATH:$oldbindir ;;
+ esac
+fi
+
+XCOMM Bourne shell does not automatically export modified environment variables
+XCOMM so export the new PATH just in case the user changes the shell
+export PATH
+#endif
+
+#if defined(__SCO__) || defined(__UNIXWARE__)
+XCOMM Set up the XMERGE env var so that dos merge is happy under X
+
+if [ -f /usr/lib/merge/xmergeset.sh ]; then
+ . /usr/lib/merge/xmergeset.sh
+elif [ -f /usr/lib/merge/console.disp ]; then
+ XMERGE=`cat /usr/lib/merge/console.disp`
+ export XMERGE
+fi
+
+userclientrc=$HOME/.startxrc
+sysclientrc=LIBDIR/sys.startxrc
+scouserclientrc=$HOME/.xinitrc
+scosysclientrc=XINITDIR/xinitrc
+#else
+userclientrc=$HOME/.xinitrc
+sysclientrc=XINITDIR/xinitrc
+#endif
+
+userserverrc=$HOME/.xserverrc
+sysserverrc=XINITDIR/xserverrc
+defaultclient=XTERM
+defaultserver=XSERVER
+defaultclientargs=""
+defaultserverargs=""
+defaultdisplay=":0"
+clientargs=""
+serverargs=""
+
+#ifdef __APPLE__
+
+XCOMM Initialize defaults (this will cut down on "safe" error messages)
+if ! defaults read org.x.X11 cache_fonts >& /dev/null ; then
+ defaults write org.x.X11 cache_fonts -bool true
+fi
+
+if ! defaults read org.x.X11 no_auth >& /dev/null ; then
+ defaults write org.x.X11 no_auth -bool false
+fi
+
+if ! defaults read org.x.X11 nolisten_tcp >& /dev/null ; then
+ defaults write org.x.X11 nolisten_tcp -bool true
+fi
+
+XCOMM First, start caching fonts
+if [ x`defaults read org.x.X11 cache_fonts` = x1 ] ; then
+ if [ -x /usr/X11/bin/font_cache ] ; then
+ /usr/X11/bin/font_cache &
+ elif [ -x /usr/X11/bin/font_cache.sh ] ; then
+ /usr/X11/bin/font_cache.sh &
+ elif [ -x /usr/X11/bin/fc-cache ] ; then
+ /usr/X11/bin/fc-cache &
+ fi
+fi
+
+if [ -x XINITDIR/privileged_startx ] ; then
+ # Don't push this into the background becasue it can cause
+ # a race to create /tmp/.X11-unix
+ XINITDIR/privileged_startx
+fi
+
+if [ x`defaults read org.x.X11 no_auth` = x0 ] ; then
+ enable_xauth=1
+else
+ enable_xauth=0
+fi
+
+if [ x`defaults read org.x.X11 nolisten_tcp` = x1 ] ; then
+ defaultserverargs="$defaultserverargs -nolisten tcp"
+fi
+
+for ((d=0; ; d++)) ; do
+ [[ -e /tmp/.X$d-lock ]] || break
+done
+defaultdisplay=":$d"
+
+#else
+enable_xauth=1
+#endif
+
+
+if [ -f $userclientrc ]; then
+ defaultclientargs=$userclientrc
+elif [ -f $sysclientrc ]; then
+ defaultclientargs=$sysclientrc
+#if defined(__SCO__) || defined(__UNIXWARE__)
+elif [ -f $scouserclientrc ]; then
+ defaultclientargs=$scouserclientrc
+elif [ -f $scosysclientrc ]; then
+ defaultclientargs=$scosysclientrc
+#endif
+fi
+
+#if defined(__SCO__) || defined(__UNIXWARE__)
+
+XCOMM SCO -t option: do not start an X server
+case $1 in
+ -t) if [ -n "$DISPLAY" ]; then
+ REMOTE_SERVER=TRUE
+ shift
+ else
+ echo "DISPLAY environment variable not set"
+ exit 1
+ fi
+ ;;
+esac
+#endif
+
+whoseargs="client"
+while [ x"$1" != x ]; do
+ case "$1" in
+ XCOMM '' required to prevent cpp from treating "/*" as a C comment.
+ /''*|\./''*)
+ if [ "$whoseargs" = "client" ]; then
+ if [ x"$clientargs" = x ]; then
+ client="$1"
+ else
+ clientargs="$clientargs $1"
+ fi
+ else
+ if [ x"$serverargs" = x ]; then
+ server="$1"
+ else
+ serverargs="$serverargs $1"
+ fi
+ fi
+ ;;
+ --)
+ whoseargs="server"
+ ;;
+ *)
+ if [ "$whoseargs" = "client" ]; then
+ clientargs="$clientargs $1"
+ else
+ XCOMM display must be the FIRST server argument
+ if [ x"$serverargs" = x ] && @@
+ expr "$1" : ':[0-9][0-9]*$' > /dev/null 2>&1; then
+ display="$1"
+ else
+ serverargs="$serverargs $1"
+ fi
+ fi
+ ;;
+ esac
+ shift
+done
+
+XCOMM process client arguments
+if [ x"$client" = x ]; then
+ XCOMM if no client arguments either, use rc file instead
+ if [ x"$clientargs" = x ]; then
+ client="$defaultclientargs"
+ else
+ client=$defaultclient
+ fi
+fi
+
+XCOMM process server arguments
+if [ x"$server" = x ]; then
+ server=$defaultserver
+
+ XCOMM if no server arguments or display either, use defaults
+ if [ x"$serverargs" = x -a x"$display" = x ]; then
+ XCOMM For compatibility reasons, only use xserverrc if there were no server command line arguments
+ if [ -f $userserverrc ]; then
+ server=$userserverrc
+ elif [ -f $sysserverrc ]; then
+ server=$sysserverrc
+ fi
+
+ serverargs=$defaultserverargs
+ display=$defaultdisplay
+ fi
+fi
+
+if [ x"$enable_xauth" = x1 ] ; then
+ if [ x"$XAUTHORITY" = x ]; then
+ XAUTHORITY=$HOME/.Xauthority
+ export XAUTHORITY
+ fi
+
+ removelist=
+
+ XCOMM set up default Xauth info for this machine
+ case `uname` in
+ Linux*)
+ if [ -z "`hostname --version 2>&1 | grep GNU`" ]; then
+ hostname=`hostname -f`
+ else
+ hostname=`hostname`
+ fi
+ ;;
+ *)
+ hostname=`hostname`
+ ;;
+ esac
+
+ authdisplay=${display:-:0}
+#if defined(HAS_COOKIE_MAKER) && defined(MK_COOKIE)
+ mcookie=`MK_COOKIE`
+#else
+ if [ -r /dev/urandom ]; then
+ mcookie=`dd if=/dev/urandom bs=16 count=1 2>/dev/null | hexdump -e \\"%08x\\"`
+ else
+ mcookie=`dd if=/dev/random bs=16 count=1 2>/dev/null | hexdump -e \\"%08x\\"`
+ fi
+#endif
+ if test x"$mcookie" = x; then
+ echo "Couldn't create cookie"
+ exit 1
+ fi
+ dummy=0
+
+ XCOMM create a file with auth information for the server. ':0' is a dummy.
+ xserverauthfile=$HOME/.serverauth.$$
+ trap "rm -f $xserverauthfile" HUP INT QUIT ILL TRAP KILL BUS TERM
+ xauth -q -f $xserverauthfile << EOF
+add :$dummy . $mcookie
+EOF
+ serverargs=${serverargs}" -auth "${xserverauthfile}
+
+ XCOMM now add the same credentials to the client authority file
+ XCOMM if '$displayname' already exists do not overwrite it as another
+ XCOMM server man need it. Add them to the '$xserverauthfile' instead.
+ for displayname in $authdisplay $hostname$authdisplay; do
+ authcookie=`XAUTH list "$displayname" @@
+ | sed -n "s/.*$displayname[[:space:]*].*[[:space:]*]//p"` 2>/dev/null;
+ if [ "z${authcookie}" = "z" ] ; then
+ XAUTH -q << EOF
+add $displayname . $mcookie
+EOF
+ removelist="$displayname $removelist"
+ else
+ dummy=$(($dummy+1));
+ XAUTH -q -f $xserverauthfile << EOF
+add :$dummy . $authcookie
+EOF
+ fi
+ done
+fi
+
+#if defined(__SCO__) || defined(__UNIXWARE__)
+if [ "$REMOTE_SERVER" = "TRUE" ]; then
+ exec SHELL_CMD ${client}
+else
+ XINIT $client $clientargs -- $server $display $serverargs
+fi
+#else
+XINIT $client $clientargs -- $server $display $serverargs
+#endif
+
+if [ x"$enable_xauth" = x1 ] ; then
+ if [ x"$removelist" != x ]; then
+ XAUTH remove $removelist
+ fi
+ if [ x"$xserverauthfile" != x ]; then
+ rm -f $xserverauthfile
+ fi
+fi
+
+/*
+ * various machines need special cleaning up
+ */
+#ifdef __linux__
+if command -v deallocvt > /dev/null 2>&1; then
+ deallocvt
+fi
+#endif
+
+#ifdef macII
+Xrepair
+screenrestore
+#endif
+
+#if defined(sun)
+kbd_mode -a
+#endif
--- /dev/null
+.\" $Xorg: startx.man,v 1.4 2001/02/09 02:05:49 xorgcvs Exp $
+.\" $XdotOrg$
+.\" Copyright 1993, 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.
+.\"
+.\" $XFree86: xc/programs/xinit/startx.man,v 1.7 2001/04/19 15:08:32 dawes Exp $
+.\"
+.TH STARTX 1 __xorgversion__
+.SH NAME
+startx \- initialize an X session
+.SH SYNOPSIS
+.B startx
+[ [
+.I client
+]
+.I options
+\&\.\|.\|. ] [
+.B \-\^\-
+[
+.I server
+] [
+.I display
+]
+.I options
+\&.\|.\|. ]
+.SH DESCRIPTION
+The \fIstartx\fP script is a front end to \fIxinit\fP that provides a
+somewhat nicer user interface for running a single session of the X
+Window System. It is often run with no arguments.
+.PP
+Arguments immediately following the
+.I startx
+command are used to start a client in the same manner as
+.IR xinit (1).
+The special argument
+.RB '--'
+marks the end of client arguments and the beginning of server options.
+It may be convenient to specify server options with startx to change on a
+per-session basis the
+default color depth, the server's notion of the number of dots-per-inch the
+display device presents, or take advantage of a different server layout, as
+permitted by the
+.IR __XSERVERNAME__ (1)
+server and specified in the
+.IR __XCONFIGFILE__ (__filemansuffix__)
+file. Some examples of specifying server arguments follow; consult the
+manual page for your X server to determine which arguments are legal.
+.RS
+.PP
+startx -- -depth 16
+.PP
+startx -- -dpi 100
+.PP
+startx -- -layout Multihead
+.RE
+#ifdef __SCOMAN__
+.PP
+To determine the client to run,
+.I startx
+looks for the following files, in order:
+.RS
+.PP
+.I $(HOME)/.startxrc
+.PP
+.I __libdir__/sys.startxrc
+.PP
+.I $(HOME)/.xinitrc
+.PP
+.I __xinitdir__/xinitrc
+.RE
+.PP
+#else
+.PP
+To determine the client to run,
+.I startx
+first looks for a file called
+.I .xinitrc
+in the user's home directory. If that is not found, it uses
+the file
+.I xinitrc
+in the
+.I xinit
+library directory.
+#endif
+If command line client options are given, they override this
+behavior and revert to the
+.IR xinit (1)
+behavior.
+To determine the server to run,
+.I startx
+first looks for a file called
+.I .xserverrc
+in the user's home directory. If that is not found, it uses
+the file
+.I xserverrc
+in the
+.I xinit
+library directory.
+If command line server options are given, they override this
+behavior and revert to the
+.IR xinit (1)
+behavior. Users rarely need to provide a
+.I .xserverrc
+file.
+See the
+.IR xinit (1)
+manual page for more details on the arguments.
+.PP
+The system-wide
+.I xinitrc
+and
+.I xserverrc
+files are found in the
+.I __xinitdir__
+directory.
+.PP
+The
+.I .xinitrc
+is typically a shell script which starts many clients according to the
+user's preference. When this shell script exits,
+.I startx
+kills the server and performs any other session shutdown needed.
+Most of the clients started by
+.I .xinitrc
+should be run in the background. The last client should run in the
+foreground; when it exits, the session will exit. People often choose
+a session manager, window manager, or \fIxterm\fP as the ''magic'' client.
+.SH EXAMPLE
+.PP
+Below is a sample \fI\.xinitrc\fP that starts several applications and
+leaves the window manager running as the ''last'' application. Assuming that
+the window manager has been configured properly, the user
+then chooses the ''Exit'' menu item to shut down X.
+.sp
+.in +4
+.nf
+xrdb \-load $HOME/.Xresources
+xsetroot \-solid gray &
+xbiff \-geometry \-430+5 &
+oclock \-geometry 75x75\-0\-0 &
+xload \-geometry \-80\-0 &
+xterm \-geometry +0+60 \-ls &
+xterm \-geometry +0\-100 &
+xconsole \-geometry \-0+0 \-fn 5x7 &
+exec twm
+.fi
+.in -4
+.SH "ENVIRONMENT VARIABLES"
+.TP 25
+DISPLAY
+This variable gets set to the name of the display to which clients should
+connect. Note that this gets
+.IR set ,
+not read.
+.TP 25
+XAUTHORITY
+This variable, if not already defined, gets set to
+.IR $(HOME)/.Xauthority .
+This is to prevent the X server, if not given the
+.I \-auth
+argument, from automatically setting up insecure host-based authentication
+for the local host. See the
+.IR Xserver (1)
+and
+.IR Xsecurity (__miscmansuffix__)
+manual pages for more information on X client/server authentication.
+.SH FILES
+#ifdef __SCOMAN__
+.TP 25
+.I $(HOME)/.startxrc
+Client to run. Typically a shell script which runs many programs in
+the background.
+.TP 25
+.I __libdir__/sys.startxrc
+Client to use if the user has no
+.I .startxrc
+file.
+#endif
+.TP 25
+.I $(HOME)/.xinitrc
+Client to run. Typically a shell script which runs many programs in
+the background.
+.TP 25
+.I $(HOME)/.xserverrc
+Server to run. The default is
+.IR X .
+.TP 25
+.I __xinitdir__/xinitrc
+Client to run if the user has no
+.I .xinitrc
+file.
+.TP 25
+.I __xinitdir__/xserverrc
+Server to run if the user has no
+.I .xserverrc
+file.
+.SH "SEE ALSO"
+.IR xinit (1),
+.IR Xserver (1),
+.IR __XSERVERNAME__ (1)
--- /dev/null
+/* $Xorg: xinit.c,v 1.5 2001/02/09 02:05:49 xorgcvs Exp $ */
+/* $XdotOrg: $ */
+
+/*
+
+Copyright 1986, 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.
+
+*/
+/* $XFree86: xc/programs/xinit/xinit.c,v 3.32 2002/05/31 18:46:13 dawes Exp $ */
+
+#ifdef HAVE_CONFIG_H
+# include "config.h"
+#endif
+
+#include <X11/Xlib.h>
+#include <X11/Xos.h>
+#include <X11/Xatom.h>
+#include <stdio.h>
+#include <ctype.h>
+#include <stdint.h>
+
+#ifdef X_POSIX_C_SOURCE
+#define _POSIX_C_SOURCE X_POSIX_C_SOURCE
+#include <signal.h>
+#undef _POSIX_C_SOURCE
+#else
+#if defined(X_NOT_POSIX) || defined(_POSIX_SOURCE)
+#include <signal.h>
+#else
+#define _POSIX_SOURCE
+#include <signal.h>
+#undef _POSIX_SOURCE
+#endif
+#endif
+
+#ifndef SYSV
+#include <sys/wait.h>
+#endif
+#include <errno.h>
+#include <setjmp.h>
+#include <stdarg.h>
+
+#if !defined(SIGCHLD) && defined(SIGCLD)
+#define SIGCHLD SIGCLD
+#endif
+#ifdef __UNIXOS2__
+#define INCL_DOSMODULEMGR
+#include <os2.h>
+#define setpgid(a,b)
+#define setuid(a)
+#define setgid(a)
+#define SHELL "cmd.exe"
+#define XINITRC "xinitrc.cmd"
+#define XSERVERRC "xservrc.cmd"
+char **envsave; /* to circumvent an UNIXOS2 problem */
+#define environ envsave
+#endif
+
+#include <stdlib.h>
+extern char **environ;
+char **newenviron = NULL;
+char **newenvironlast = NULL;
+
+#ifndef SHELL
+#define SHELL "sh"
+#endif
+
+#ifndef HAVE_WORKING_VFORK
+# ifndef vfork
+# define vfork() fork()
+# endif
+#else
+# ifdef HAVE_VFORK_H
+# include <vfork.h>
+# endif
+#endif
+
+/* A/UX setpgid incorrectly removes the controlling terminal.
+ Per Posix, only setsid should do that. */
+#ifdef macII
+#define setpgid setpgrp
+#endif
+
+#ifdef __UNIXOS2__
+#define HAS_EXECVPE
+#endif
+
+#ifdef HAS_EXECVPE
+#define Execvpe(path, argv, envp) execvpe(path, argv, envp)
+#else
+#define Execvpe(path, argv, envp) execvp(path, argv)
+#endif
+
+const char *bindir = BINDIR;
+const char * const server_names[] = {
+#if defined(ultrix) && defined(mips)
+ "Xdec Digital color display on DECstation",
+#endif
+#if defined(sun) && !defined(XORG) /* Sun */
+ "Xsun Sun BW2, CG2, CG3, CG4, or CG6 on Sun 2, 3, 4, or 386i",
+ "Xsunmono Sun BW2 on Sun 2, 3, 4, or 386i ",
+ "Xsun24 Sun BW2, CG2, CG3, CG4, CG6, or CG8 on Sun 4",
+#endif
+#ifdef hpux /* HP */
+ "Xhp HP monochrome and colors displays on 9000/300 series",
+#endif
+#ifdef ibm /* IBM */
+ "Xibm IBM AED, APA, 8514a, megapel, VGA displays on PC/RT",
+#endif
+#ifdef macII /* MacII */
+ "XmacII Apple monochrome display on Macintosh II",
+#endif
+#ifdef XFREE86
+ "XFree86 XFree86 displays",
+#endif
+#ifdef XORG
+ "Xorg Common X server for most displays",
+#endif
+#ifdef __APPLE__
+ "Xquartz Mac OSX Quartz displays.",
+#endif
+ "Xvfb Virtual frame buffer",
+ "Xfake kdrive-based virtual frame buffer",
+ "Xnest X server nested in a window on another X server",
+ "Xephyr kdrive-based nested X server",
+ NULL};
+
+#ifndef XINITRC
+#define XINITRC ".xinitrc"
+#endif
+char xinitrcbuf[256];
+
+#ifndef XSERVERRC
+#define XSERVERRC ".xserverrc"
+#endif
+char xserverrcbuf[256];
+
+#define TRUE 1
+#define FALSE 0
+#define OK_EXIT 0
+#define ERR_EXIT 1
+
+static char *default_server = "X";
+static char *default_display = ":0"; /* choose most efficient */
+static char *default_client[] = {"xterm", "-geometry", "+1+1", "-n", "login", NULL};
+static char *serverargv[100];
+static char *clientargv[100];
+static char **server = serverargv + 2; /* make sure room for sh .xserverrc args */
+static char **client = clientargv + 2; /* make sure room for sh .xinitrc args */
+static char *displayNum = NULL;
+static char *program = NULL;
+static Display *xd = NULL; /* server connection */
+#ifndef SYSV
+#if defined(__CYGWIN__) || defined(SVR4) || defined(_POSIX_SOURCE) || defined(CSRG_BASED) || defined(__UNIXOS2__) || defined(Lynx) || defined(__APPLE__)
+int status;
+#else
+union wait status;
+#endif
+#endif /* SYSV */
+int serverpid = -1;
+int clientpid = -1;
+volatile int gotSignal = 0;
+
+static void Execute ( char **vec, char **envp );
+static Bool waitforserver ( void );
+static Bool processTimeout ( int timeout, char *string );
+static int startServer ( char *server[] );
+static int startClient ( char *client[] );
+static int ignorexio ( Display *dpy );
+static void shutdown ( void );
+static void set_environment ( void );
+static void Fatal(char *msg);
+static void Error ( char *fmt, ... );
+
+#ifdef RETSIGTYPE /* autoconf AC_TYPE_SIGNAL */
+# define SIGVAL RETSIGTYPE
+#endif /* RETSIGTYPE */
+
+static SIGVAL
+sigCatch(int sig)
+{
+ /* On system with POSIX signals, just interrupt the system call */
+ gotSignal = sig;
+}
+
+static SIGVAL
+sigAlarm(int sig)
+{
+#if defined(SYSV) || defined(SVR4) || defined(linux) || defined(__UNIXOS2__) || defined(__APPLE__)
+ signal (sig, sigAlarm);
+#endif
+}
+
+static SIGVAL
+sigUsr1(int sig)
+{
+#if defined(SYSV) || defined(SVR4) || defined(linux) || defined(__UNIXOS2__) || defined(__APPLE__)
+ signal (sig, sigUsr1);
+#endif
+}
+
+static void
+Execute(char **vec, /* has room from up above */
+ char **envp)
+{
+ Execvpe (vec[0], vec, envp);
+#ifndef __UNIXOS2__
+ if (access (vec[0], R_OK) == 0) {
+ vec--; /* back it up to stuff shell in */
+ vec[0] = SHELL;
+ Execvpe (vec[0], vec, envp);
+ }
+#endif
+ return;
+}
+
+#ifndef __UNIXOS2__
+int
+main(int argc, char *argv[])
+#else
+int
+main(int argc, char *argv[], char *envp[])
+#endif
+{
+ register char **sptr = server;
+ register char **cptr = client;
+ register char **ptr;
+ int pid;
+ int client_given = 0, server_given = 0;
+ int client_args_given = 0, server_args_given = 0;
+ int start_of_client_args, start_of_server_args;
+ struct sigaction sa;
+
+#ifdef __UNIXOS2__
+ envsave = envp; /* circumvent an EMX problem */
+
+ /* Check whether the system will run at all */
+ if (_emx_rev < 50) {
+ APIRET rc;
+ HMODULE hmod;
+ char name[CCHMAXPATH];
+ char fail[9];
+ fputs ("This program requires emx.dll revision 50 (0.9c) "
+ "or later.\n", stderr);
+ rc = DosLoadModule (fail, sizeof (fail), "emx", &hmod);
+ if (rc == 0) {
+ rc = DosQueryModuleName (hmod, sizeof (name), name);
+ if (rc == 0)
+ fprintf (stderr, "Please delete or update `%s'.\n", name);
+ DosFreeModule (hmod);
+ }
+ exit (2);
+ }
+#endif
+ program = *argv++;
+ argc--;
+ /*
+ * copy the client args.
+ */
+ if (argc == 0 ||
+#ifndef __UNIXOS2__
+ (**argv != '/' && **argv != '.')) {
+#else
+ (**argv != '/' && **argv != '\\' && **argv != '.' &&
+ !(isalpha(**argv) && (*argv)[1]==':'))) {
+#endif
+ for (ptr = default_client; *ptr; )
+ *cptr++ = *ptr++;
+#ifdef sun
+ /*
+ * If running on a sun, and if WINDOW_PARENT isn't defined,
+ * that means SunWindows isn't running, so we should pass
+ * the -C flag to xterm so that it sets up a console.
+ */
+ if ( getenv("WINDOW_PARENT") == NULL )
+ *cptr++ = "-C";
+#endif /* sun */
+ } else {
+ client_given = 1;
+ }
+ start_of_client_args = (cptr - client);
+ while (argc && strcmp(*argv, "--")) {
+ client_args_given++;
+ *cptr++ = *argv++;
+ argc--;
+ }
+ *cptr = NULL;
+ if (argc) {
+ argv++;
+ argc--;
+ }
+
+ /*
+ * Copy the server args.
+ */
+ if (argc == 0 ||
+#ifndef __UNIXOS2__
+ (**argv != '/' && **argv != '.')) {
+ *sptr++ = default_server;
+#else
+ (**argv != '/' && **argv != '\\' && **argv != '.' &&
+ !(isalpha(**argv) && (*argv)[1]==':'))) {
+ *sptr = getenv("XSERVER");
+ if (!*sptr) {
+ Error("No XSERVER environment variable set");
+ exit(1);
+ }
+ *sptr++;
+#endif
+ } else {
+ server_given = 1;
+ *sptr++ = *argv++;
+ argc--;
+ }
+ if (argc > 0 && (argv[0][0] == ':' && isdigit(argv[0][1])))
+ displayNum = *argv;
+ else
+ displayNum = *sptr++ = default_display;
+
+ start_of_server_args = (sptr - server);
+ while (--argc >= 0) {
+ server_args_given++;
+ *sptr++ = *argv++;
+ }
+ *sptr = NULL;
+
+ /*
+ * if no client arguments given, check for a startup file and copy
+ * that into the argument list
+ */
+ if (!client_given) {
+ char *cp;
+ Bool required = False;
+
+ xinitrcbuf[0] = '\0';
+ if ((cp = getenv ("XINITRC")) != NULL) {
+ (void) snprintf (xinitrcbuf, sizeof(xinitrcbuf), "%s", cp);
+ required = True;
+ } else if ((cp = getenv ("HOME")) != NULL) {
+ (void) snprintf (xinitrcbuf, sizeof(xinitrcbuf),
+ "%s/%s", cp, XINITRC);
+ }
+ if (xinitrcbuf[0]) {
+ if (access (xinitrcbuf, F_OK) == 0) {
+ client += start_of_client_args - 1;
+ client[0] = xinitrcbuf;
+ } else if (required) {
+ fprintf (stderr,
+ "%s: warning, no client init file \"%s\"\n",
+ program, xinitrcbuf);
+ }
+ }
+ }
+
+ /*
+ * if no server arguments given, check for a startup file and copy
+ * that into the argument list
+ */
+ if (!server_given) {
+ char *cp;
+ Bool required = False;
+
+ xserverrcbuf[0] = '\0';
+ if ((cp = getenv ("XSERVERRC")) != NULL) {
+ (void) snprintf (xserverrcbuf, sizeof(xserverrcbuf), "%s", cp);
+ required = True;
+ } else if ((cp = getenv ("HOME")) != NULL) {
+ (void) snprintf (xserverrcbuf, sizeof(xserverrcbuf),
+ "%s/%s", cp, XSERVERRC);
+ }
+ if (xserverrcbuf[0]) {
+ if (access (xserverrcbuf, F_OK) == 0) {
+ server += start_of_server_args - 1;
+ server[0] = xserverrcbuf;
+ } else if (required) {
+ fprintf (stderr,
+ "%s: warning, no server init file \"%s\"\n",
+ program, xserverrcbuf);
+ }
+ }
+ }
+
+ /*
+ * put the display name into the environment
+ */
+ set_environment ();
+
+ /*
+ * Start the server and client.
+ */
+#ifdef SIGCHLD
+ signal(SIGCHLD, SIG_DFL); /* Insurance */
+#endif
+
+ /* Let those signal interrupt the wait() call in the main loop */
+ memset(&sa, 0, sizeof sa);
+ sa.sa_handler = sigCatch;
+ sigemptyset(&sa.sa_mask);
+ sa.sa_flags = 0; /* do not set SA_RESTART */
+
+ sigaction(SIGTERM, &sa, NULL);
+ sigaction(SIGQUIT, &sa, NULL);
+ sigaction(SIGINT, &sa, NULL);
+ sigaction(SIGHUP, &sa, NULL);
+ sigaction(SIGPIPE, &sa, NULL);
+
+ signal(SIGALRM, sigAlarm);
+ signal(SIGUSR1, sigUsr1);
+ if (startServer(server) > 0
+ && startClient(client) > 0) {
+#ifdef _F_EXIT_AFTER_XORG_AND_XCLIENT_LAUNCHED_
+ exit(0);
+#endif//_F_EXIT_AFTER_XORG_AND_XCLIENT_LAUNCHED_
+ pid = -1;
+ while (pid != clientpid && pid != serverpid
+ && gotSignal == 0
+ )
+ pid = wait(NULL);
+ }
+ signal(SIGTERM, SIG_IGN);
+ signal(SIGQUIT, SIG_IGN);
+ signal(SIGINT, SIG_IGN);
+ signal(SIGHUP, SIG_IGN);
+ signal(SIGPIPE, SIG_IGN);
+
+ shutdown();
+
+ if (gotSignal != 0) {
+ Error("unexpected signal %d.\n", gotSignal);
+ exit(ERR_EXIT);
+ }
+
+ if (serverpid < 0 )
+ Fatal("Server error.\n");
+ if (clientpid < 0)
+ Fatal("Client error.\n");
+ exit(OK_EXIT);
+}
+
+
+/*
+ * waitforserver - wait for X server to start up
+ */
+static Bool
+waitforserver(void)
+{
+ int ncycles = 120; /* # of cycles to wait */
+ int cycles; /* Wait cycle count */
+
+ for (cycles = 0; cycles < ncycles; cycles++) {
+ if ((xd = XOpenDisplay(displayNum))) {
+ return(TRUE);
+ }
+ else {
+#define MSG "X server to begin accepting connections"
+ if (!processTimeout (1, MSG))
+ break;
+#undef MSG
+ }
+ }
+
+ fprintf (stderr, "giving up.\r\n");
+ return(FALSE);
+}
+
+/*
+ * return TRUE if we timeout waiting for pid to exit, FALSE otherwise.
+ */
+static Bool
+processTimeout(int timeout, char *string)
+{
+ int i = 0, pidfound = -1;
+ static char *laststring;
+
+ for (;;) {
+#if defined(SYSV) || defined(__UNIXOS2__)
+ alarm(1);
+ if ((pidfound = wait(NULL)) == serverpid)
+ break;
+ alarm(0);
+#else /* SYSV */
+#if defined(SVR4) || defined(_POSIX_SOURCE) || defined(Lynx) || defined(__APPLE__)
+ if ((pidfound = waitpid(serverpid, &status, WNOHANG)) == serverpid)
+ break;
+#else
+ if ((pidfound = wait3(&status, WNOHANG, NULL)) == serverpid)
+ break;
+#endif
+#endif /* SYSV */
+ if (timeout) {
+ if (i == 0 && string != laststring)
+ fprintf(stderr, "\r\nwaiting for %s ", string);
+ else
+ fprintf(stderr, ".");
+ fflush(stderr);
+ }
+ if (timeout)
+ sleep (1);
+ if (++i > timeout)
+ break;
+ }
+ if ( i > 0 ) fputc( '\n', stderr ); /* tidy up after message */
+ laststring = string;
+ return( serverpid != pidfound );
+}
+
+static int
+startServer(char *server[])
+{
+ sigset_t mask, old;
+#ifdef __UNIXOS2__
+ sigset_t pendings;
+#endif
+
+ sigemptyset(&mask);
+ sigaddset(&mask, SIGUSR1);
+ sigprocmask(SIG_BLOCK, &mask, &old);
+
+ serverpid = fork();
+
+ switch(serverpid) {
+ case 0:
+ /* Unblock */
+ sigprocmask(SIG_SETMASK, &old, NULL);
+
+ /*
+ * don't hang on read/write to control tty
+ */
+#ifdef SIGTTIN
+ (void) signal(SIGTTIN, SIG_IGN);
+#endif
+#ifdef SIGTTOU
+ (void) signal(SIGTTOU, SIG_IGN);
+#endif
+ /*
+ * ignore SIGUSR1 in child. The server
+ * will notice this and send SIGUSR1 back
+ * at xinit when ready to accept connections
+ */
+ (void) signal(SIGUSR1, SIG_IGN);
+ /*
+ * prevent server from getting sighup from vhangup()
+ * if client is xterm -L
+ */
+#ifndef __UNIXOS2__
+ setpgid(0,getpid());
+#endif
+ Execute (server, environ);
+ Error ("no server \"%s\" in PATH\n", server[0]);
+ {
+ const char * const *cpp;
+
+ fprintf (stderr,
+"\nUse the -- option, or make sure that %s is in your path and\n",
+ bindir);
+ fprintf (stderr,
+"that \"%s\" is a program or a link to the right type of server\n",
+ server[0]);
+ fprintf (stderr,
+"for your display. Possible server names include:\n\n");
+ for (cpp = server_names; *cpp; cpp++) {
+ fprintf (stderr, " %s\n", *cpp);
+ }
+ fprintf (stderr, "\n");
+ }
+ exit (ERR_EXIT);
+
+ break;
+ case -1:
+ break;
+ default:
+ /*
+ * don't nice server
+ */
+#ifdef PRIO_PROCESS
+ setpriority( PRIO_PROCESS, serverpid, -1 );
+#endif
+
+ errno = 0;
+ if (! processTimeout(0, "")) {
+ serverpid = -1;
+ break;
+ }
+ /*
+ * kludge to avoid race with TCP, giving server time to
+ * set his socket options before we try to open it,
+ * either use the 15 second timeout, or await SIGUSR1.
+ *
+ * If your machine is substantially slower than 15 seconds,
+ * you can easily adjust this value.
+ */
+ alarm (15);
+
+#ifdef __UNIXOS2__
+ /*
+ * fg2003/05/06: work around a problem in EMX: sigsuspend()
+ * does not deliver pending signals when called but when
+ * returning; so if SIGUSR1 has already been sent by the
+ * server, we would still have to await SIGALRM
+ */
+ sigemptyset(&pendings);
+ sigpending(&pendings);
+ if (!sigismember(&pendings, SIGUSR1))
+#endif /* __UNIXOS2__ */
+ sigsuspend(&old);
+ alarm (0);
+ sigprocmask(SIG_SETMASK, &old, NULL);
+
+ if (waitforserver() == 0) {
+ Error("unable to connect to X server\r\n");
+ shutdown();
+ serverpid = -1;
+ }
+ break;
+ }
+
+ return(serverpid);
+}
+
+static void
+setWindowPath(void)
+{
+ /* setting WINDOWPATH for clients */
+ Atom prop;
+ Atom actualtype;
+ int actualformat;
+ unsigned long nitems;
+ unsigned long bytes_after;
+ unsigned char *buf;
+ const char *windowpath;
+ char *newwindowpath;
+ unsigned long num;
+ char nums[10];
+ int numn;
+ size_t len;
+ prop = XInternAtom(xd, "XFree86_VT", False);
+ if (prop == None) {
+#ifdef DEBUG
+ fprintf(stderr, "no XFree86_VT atom\n");
+#endif
+ return;
+ }
+ if (XGetWindowProperty(xd, DefaultRootWindow(xd), prop, 0, 1,
+ False, AnyPropertyType, &actualtype, &actualformat,
+ &nitems, &bytes_after, &buf)) {
+#ifdef DEBUG
+ fprintf(stderr, "no XFree86_VT property\n");
+#endif
+ return;
+ }
+ if (nitems != 1) {
+#ifdef DEBUG
+ fprintf(stderr, "%lu items in XFree86_VT property!\n", nitems);
+#endif
+ XFree(buf);
+ return;
+ }
+ switch (actualtype) {
+ case XA_CARDINAL:
+ case XA_INTEGER:
+ case XA_WINDOW:
+ switch (actualformat) {
+ case 8:
+ num = (*(uint8_t *)(void *)buf);
+ break;
+ case 16:
+ num = (*(uint16_t *)(void *)buf);
+ break;
+ case 32:
+ num = (*(uint32_t *)(void *)buf);
+ break;
+ default:
+#ifdef DEBUG
+ fprintf(stderr, "format %d in XFree86_VT property!\n", actualformat);
+#endif
+ XFree(buf);
+ return;
+ }
+ break;
+ default:
+#ifdef DEBUG
+ fprintf(stderr, "type %lx in XFree86_VT property!\n", actualtype);
+#endif
+ XFree(buf);
+ return;
+ }
+ XFree(buf);
+ windowpath = getenv("WINDOWPATH");
+ numn = snprintf(nums, sizeof(nums), "%lu", num);
+ if (!windowpath) {
+ len = 10 + 1 + numn + 1;
+ newwindowpath = malloc(len);
+ if (newwindowpath == NULL)
+ return;
+ snprintf(newwindowpath, len, "WINDOWPATH=%s", nums);
+ } else {
+ len = 10 + 1 + strlen(windowpath) + 1 + numn + 1;
+ newwindowpath = malloc(len);
+ if (newwindowpath == NULL)
+ return;
+ snprintf(newwindowpath, len, "WINDOWPATH=%s:%s",
+ windowpath, nums);
+ }
+ *newenvironlast++ = newwindowpath;
+ *newenvironlast = NULL;
+}
+
+static int
+startClient(char *client[])
+{
+ setWindowPath();
+ if ((clientpid = vfork()) == 0) {
+ if (setuid(getuid()) == -1) {
+ Error("cannot change uid: %s\n", strerror(errno));
+ _exit(ERR_EXIT);
+ }
+ setpgid(0, getpid());
+ environ = newenviron;
+#ifdef __UNIXOS2__
+#undef environ
+ environ = newenviron;
+ client[0] = (char*)__XOS2RedirRoot(client[0]);
+#endif
+ Execute (client,newenviron);
+ Error ("no program named \"%s\" in PATH\r\n", client[0]);
+ fprintf (stderr,
+"\nSpecify a program on the command line or make sure that %s\r\n", bindir);
+ fprintf (stderr,
+"is in your path.\r\n");
+ fprintf (stderr, "\n");
+ _exit (ERR_EXIT);
+ }
+ return (clientpid);
+}
+
+#ifndef HAVE_KILLPG
+#define killpg(pgrp, sig) kill(-(pgrp), sig)
+#endif
+
+static jmp_buf close_env;
+
+static int
+ignorexio(Display *dpy)
+{
+ fprintf (stderr, "%s: connection to X server lost.\r\n", program);
+ longjmp (close_env, 1);
+ /*NOTREACHED*/
+ return 0;
+}
+
+static void
+shutdown(void)
+{
+ /* have kept display opened, so close it now */
+ if (clientpid > 0) {
+ XSetIOErrorHandler (ignorexio);
+ if (! setjmp(close_env)) {
+ XCloseDisplay(xd);
+ }
+
+ /* HUP all local clients to allow them to clean up */
+ errno = 0;
+ if ((killpg(clientpid, SIGHUP) != 0) &&
+ (errno != ESRCH))
+ Error("can't send HUP to process group %d\r\n",
+ clientpid);
+ }
+
+ if (serverpid < 0)
+ return;
+ errno = 0;
+ if (killpg(serverpid, SIGTERM) < 0) {
+ if (errno == EPERM)
+ Fatal("Can't kill X server\r\n");
+ if (errno == ESRCH)
+ return;
+ }
+ if (! processTimeout(10, "X server to shut down")) {
+ fprintf (stderr, "\r\n");
+ return;
+ }
+
+ fprintf(stderr,
+ "\r\n%s: X server slow to shut down, sending KILL signal.\r\n",
+ program);
+ fflush(stderr);
+ errno = 0;
+ if (killpg(serverpid, SIGKILL) < 0) {
+ if (errno == ESRCH)
+ return;
+ }
+ if (processTimeout(3, "server to die")) {
+ fprintf (stderr, "\r\n");
+ Fatal("Can't kill server\r\n");
+ }
+ fprintf (stderr, "\r\n");
+ return;
+}
+
+
+/*
+ * make a new copy of environment that has room for DISPLAY
+ */
+
+static void
+set_environment(void)
+{
+ int nenvvars;
+ char **newPtr, **oldPtr;
+ static char displaybuf[512];
+
+ /* count number of environment variables */
+ for (oldPtr = environ; *oldPtr; oldPtr++) ;
+
+ nenvvars = (oldPtr - environ);
+ newenviron = (char **) malloc ((nenvvars + 3) * sizeof(char **));
+ if (!newenviron) {
+ fprintf (stderr,
+ "%s: unable to allocate %d pointers for environment\n",
+ program, nenvvars + 3);
+ exit (1);
+ }
+
+ /* put DISPLAY=displayname as first element */
+ snprintf (displaybuf, sizeof(displaybuf), "DISPLAY=%s", displayNum);
+ newPtr = newenviron;
+ *newPtr++ = displaybuf;
+
+ /* copy pointers to other variables */
+ for (oldPtr = environ; *oldPtr; oldPtr++) {
+ if (strncmp (*oldPtr, "DISPLAY=", 8) != 0
+ && strncmp (*oldPtr, "WINDOWPATH=", 11) != 0) {
+ *newPtr++ = *oldPtr;
+ }
+ }
+ *newPtr = NULL;
+ newenvironlast=newPtr;
+ return;
+}
+
+static void
+Fatal(char *msg)
+{
+ Error(msg);
+ exit(ERR_EXIT);
+}
+
+static void
+Error(char *fmt, ...)
+{
+ va_list ap;
+
+ va_start(ap, fmt);
+ fprintf(stderr, "%s: ", program);
+ if (errno > 0)
+ fprintf (stderr, "%s (errno %d): ", strerror(errno), errno);
+ vfprintf(stderr, fmt, ap);
+ va_end(ap);
+}
--- /dev/null
+NAME xinit NOTWINDOWCOMPAT
+DESCRIPTION "@#XFREE86:4.4.0#@ $XFree86: xc/programs/xinit/xinit.def,v 3.2 2002/05/31 18:46:13 dawes Exp $"
+PROTMODE
+EXETYPE OS2
--- /dev/null
+.\" $Xorg: xinit.man,v 1.4 2001/02/09 02:05:49 xorgcvs Exp $
+.\" Copyright 1988, 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.
+.\"
+.\" $XFree86: xc/programs/xinit/xinit.man,v 3.9 2001/02/07 23:25:56 dawes Exp $
+.\"
+.TH XINIT 1 __xorgversion__
+.SH NAME
+xinit \- X Window System initializer
+.SH SYNOPSIS
+.B xinit
+[ [
+.I client
+]
+.I options
+\&\.\|.\|. ] [
+.B \-\^\-
+[
+.I server
+] [
+.I display
+]
+.I options
+\&.\|.\|. ]
+.SH DESCRIPTION
+The \fIxinit\fP program is used to start the X Window System server and a first
+client program on systems that
+cannot start X directly from \fI/etc/init\fP or in environments
+that use multiple window systems. When this first client exits,
+\fIxinit\fP will kill the X server and then terminate.
+.PP
+If no specific client program is given on the command line,
+\fIxinit\fP will look for a file in the user's home directory
+called \fI.xinitrc\fP to run as a shell script to start up client programs.
+If no such file exists, \fIxinit\fP will use the following as a default:
+.sp
+ xterm \-geometry +1+1 \-n login \-display :0
+.sp
+.PP
+If no specific server program is given on the command line,
+\fIxinit\fP will look for a file in the user's home directory
+called \fI.xserverrc\fP to run as a shell script to start up the server.
+If no such file exists, \fIxinit\fP will use the following as a default:
+.sp
+ X :0
+.sp
+Note that this assumes that there is a program named \fIX\fP in the current
+search path. However, servers are usually named \fIXdisplaytype\fP where
+\fIdisplaytype\fP is the type of graphics display which is driven by this
+server. The site administrator should, therefore, make a link to the
+appropriate type of server on the machine, or create a shell script that
+runs \fIxinit\fP with the appropriate server.
+.PP
+Note, when using a \fI.xserverrc\fP script be sure to ``exec'' the real X server.
+Failing to do this can make the X server slow to start and exit. For example:
+.sp
+ exec Xdisplaytype
+.PP
+An important point is that programs which are run by \fI\.xinitrc\fP
+should be run in the background if they do
+not exit right away, so that they don't prevent other programs from
+starting up.
+However, the last long-lived program started (usually
+a window manager or terminal emulator) should be
+left in the foreground so that the script won't exit (which
+indicates that the user is done and that \fIxinit\fP should exit).
+.PP
+An alternate client and/or server may be specified on the
+command line. The desired client program and its arguments should be given
+as the first command line arguments to \fIxinit\fP. To specify a particular
+server command line, append a double dash (\-\^\-) to the \fIxinit\fP command
+line (after any client and arguments) followed by the desired server command.
+.PP
+Both the client program name and the server program name must begin with a
+slash (/) or a period (.). Otherwise, they are treated as an arguments to be
+appended to their respective startup lines. This makes it possible to
+add arguments (for example, foreground and background colors) without
+having to retype the whole command line.
+.PP
+If an explicit server name is not given and the first argument following the
+double dash (\-\^\-) is a colon followed by a digit, \fIxinit\fP will use that
+number as the display
+number instead of zero. All remaining arguments are appended to the server
+command line.
+.PP
+.SH EXAMPLES
+Below are several examples of how command line arguments in \fIxinit\fP are
+used.
+.TP 8
+.B "xinit"
+This will start up a server named \fIX\fP and run the user's \fI\.xinitrc\fP,
+if it exists, or else start an \fIxterm\fP.
+.TP 8
+.B "xinit \-\^\- /usr/local/bin/Xqdss :1"
+This is how one could start a specific type of server on an alternate display.
+.TP 8
+.B "xinit \-geometry =80x65+10+10 \-fn 8x13 \-j \-fg white \-bg navy"
+This will start up a server named \fIX\fP, and will append the given
+arguments to the default \fIxterm\fP command. It will ignore \fI\.xinitrc\fP.
+.TP 8
+.B "xinit \-e widgets \-\^\- ./Xsun \-l \-c"
+This will use the command \fI\.\/Xsun \-l \-c\fP to start the server and will
+append the arguments \fI\-e widgets\fP to the default \fIxterm\fP command.
+.TP 8
+.B "xinit /usr/ucb/rsh fasthost cpupig \-display ws:1 \-\^\- :1 \-a 2 \-t 5"
+This will start a server named \fIX\fP on display 1 with the arguments
+\fI\-a 2 \-t 5\fP. It will then start a remote shell on the machine
+\fBfasthost\fP in which it will run the command \fIcpupig\fP, telling it
+to display back on the local workstation.
+.PP
+Below is a sample \fI\.xinitrc\fP that starts a clock, several terminals, and
+leaves the window manager running as the ``last'' application. Assuming that
+the window manager has been configured properly, the user
+then chooses the ``Exit'' menu item to shut down X.
+.sp
+.in +8
+.nf
+xrdb \-load $HOME/.Xresources
+xsetroot \-solid gray &
+xclock \-g 50x50\-0+0 \-bw 0 &
+xload \-g 50x50\-50+0 \-bw 0 &
+xterm \-g 80x24+0+0 &
+xterm \-g 80x24+0\-0 &
+twm
+.fi
+.in -8
+.sp
+Sites that want to create a common startup environment could simply create
+a default \fI\.xinitrc\fP that references a site-wide startup file:
+.sp
+.in +8
+.nf
+\&#!/bin/sh
+\&. /usr/local/lib/site.xinitrc
+.fi
+.in -8
+.sp
+Another approach is to write a script that starts \fIxinit\fP with a specific
+shell script. Such scripts are usually named \fIx11\fP, \fIxstart\fP, or
+\fIstartx\fP and are a convenient way to provide a simple interface for
+novice users:
+.sp
+.in +8
+.nf
+\&#!/bin/sh
+xinit /usr/local/lib/site.xinitrc \-\^\- __bindir__/X -br
+.fi
+.in -8
+.sp
+.SH "ENVIRONMENT VARIABLES"
+.TP 15
+.B DISPLAY
+This variable gets set to the name of the display to which clients should
+connect.
+.TP 15
+.B XINITRC
+This variable specifies an init file containing shell commands to start up the
+initial windows. By default, \fI\.xinitrc\fP in the home directory will be
+used.
+.SH FILES
+.TP 15
+.I .xinitrc
+default client script
+.TP 15
+.I xterm
+client to run if \fI.xinitrc\fP does not exist
+.TP 15
+.I .xserverrc
+default server script
+.TP 15
+.I X
+server to run if \fI.xserverrc\fP does not exist
+.SH "SEE ALSO"
+.IR X (__miscmansuffix__),
+.IR startx (1),
+.IR Xserver (1),
+.IR xterm (1)
+.SH AUTHOR
+Bob Scheifler, MIT Laboratory for Computer Science
--- /dev/null
+/* OS/2 REXX */
+/* $XFree86: xc/programs/xinit/xinitrc.cmd,v 3.5 1997/01/27 08:26:14 dawes Exp $ */
+'@echo off'
+env = 'OS2ENVIRONMENT'
+x11root = VALUE('X11ROOT',,env)
+IF x11root = '' THEN DO
+ SAY "The environment variable X11ROOT is not set. X/OS2 won't run without it."
+ EXIT
+END
+home = VALUE('HOME',,env)
+IF home = '' THEN home = x11root
+
+userresources = home'\.Xresources'
+usermodmap = home'\.Xmodmap'
+sysresources = x11root'\usr\X11R6\lib\X11\xinit\.Xresources'
+sysmodmap = x11root'\usr\X11R6\lib\X11\xinit\.Xmodmap'
+xbitmapdir = x11root'\usr\X11R6\include\X11\bitmaps'
+manpath = VALUE('MANPATH',,env)
+
+/* merge in defaults */
+IF exists(sysresources) THEN
+ 'xrdb -merge 'sysresources
+
+IF exists(sysmodmap) THEN
+ 'xmodmap 'sysmodmap
+
+IF exists(userresources) THEN
+ 'xrdb -merge 'userresources
+
+IF exists(usermodmap) THEN
+ 'xmodmap 'usermodmap
+
+/* start some nice :-) test programs */
+'xsetroot -bitmap 'xbitmapdir'\xos2'
+/* also try out the following ones:
+ * 'xsetroot -bitmap 'xbitmapdir'\xfree1'
+ * 'xsetroot -bitmap 'xbitmapdir'\xfree2'
+ */
+
+/****** WARNING! *********
+ * Below some programs are started minimized, some are started detached.
+ * In general, those that spawn other shells are minimized, others may be
+ * detached. You might be tempted to run the xterm's as well as detached.
+ * This works, but leaves you with an independent xterm/cmd pair, when the
+ * server shuts down, which you can only see in watchcat, not the process list.
+ * If you start and stop x11 multiple times, this will let you run out of
+ * PTYs, and will lead to a large number of background sessions.
+ */
+'detach xclock -update 1 -geometry 100x100-1+1'
+'start/min/n "Login Xterm" xterm -sb -geometry 80x25+0+0 -name login'
+IF manpath \= '' THEN
+ 'detach xman -geometry 100x100-105+1'
+/* 'startx/min/n "Xterm 1" xterm -sb -geometry 80x50+494+51' */
+/* 'startx/min/n "Xterm 2" xterm -sb -geometry 80x20+494-0' */
+'twm'
+
+EXIT
+
+exists:
+'DIR "'arg(1)'" >nul 2>&1'
+if rc = 0 THEN RETURN 1
+RETURN 0
--- /dev/null
+XCOMM!SHELL_CMD
+XCOMM $Xorg: xinitrc.cpp,v 1.3 2000/08/17 19:54:30 cpqbld Exp $
+
+userresources=$HOME/.Xresources
+usermodmap=$HOME/.Xmodmap
+sysresources=XINITDIR/.Xresources
+sysmodmap=XINITDIR/.Xmodmap
+
+XCOMM merge in defaults and keymaps
+
+if [ -f $sysresources ]; then
+#ifdef __APPLE__
+ if [ -x /usr/bin/cpp ] ; then
+ XRDB -merge $sysresources
+ else
+ XRDB -nocpp -merge $sysresources
+ fi
+#else
+ XRDB -merge $sysresources
+#endif
+fi
+
+if [ -f $sysmodmap ]; then
+ XMODMAP $sysmodmap
+fi
+
+if [ -f "$userresources" ]; then
+#ifdef __APPLE__
+ if [ -x /usr/bin/cpp ] ; then
+ XRDB -merge "$userresources"
+ else
+ XRDB -nocpp -merge "$userresources"
+ fi
+#else
+ XRDB -merge "$userresources"
+#endif
+fi
+
+if [ -f "$usermodmap" ]; then
+ XMODMAP "$usermodmap"
+fi
+
+XCOMM start some nice programs
+
+#if defined(__SCO__) || defined(__UNIXWARE__)
+if [ -r /etc/default/xdesktops ]; then
+ . /etc/default/xdesktops
+fi
+
+if [ -r $HOME/.x11rc ]; then
+ . $HOME/.x11rc
+else
+ if [ -r /etc/default/X11 ]; then
+ . /etc/default/X11
+ fi
+fi
+
+#if defined(__SCO__)
+if [ -n "$XSESSION" ]; then
+ case "$XSESSION" in
+ [Yy][Ee][Ss])
+ [ -x /usr/bin/X11/scosession ] && exec /usr/bin/X11/scosession
+ ;;
+ esac
+fi
+
+if [ -n "$XDESKTOP" ]; then
+ exec `eval echo $"$XDESKTOP"`
+else
+ if [ -x /usr/bin/X11/pmwm -a -x /usr/bin/X11/scoterm ]; then
+ /usr/bin/X11/scoterm 2> /dev/null &
+ exec /usr/bin/X11/pmwm 2> /dev/null
+ fi
+fi
+#elif defined(__UNIXWARE__)
+if [ -n "$XDESKTOP" ]; then
+ exec `eval echo $"$XDESKTOP"`
+else
+ if [ -x /usr/X/bin/pmwm ]; then
+ exec /usr/X/bin/pmwm 2> /dev/null
+ fi
+fi
+#endif
+
+XCOMM This is the fallback case if nothing else is executed above
+#endif /* !defined(__SCO__) && !defined(__UNIXWARE__) */
+
+#ifdef __APPLE__
+
+if [ -d XINITDIR/xinitrc.d ] ; then
+ for f in XINITDIR/xinitrc.dXSLASHGLOB.sh ; do
+ [ -x "$f" ] && . "$f"
+ done
+ unset f
+fi
+
+#endif
+
+TWM &
+XCLOCK -geometry 50x50-1+1 &
+XTERM -geometry 80x50+494+51 &
+XTERM -geometry 80x20+494-0 &
+exec XTERM -geometry 80x66+0+0 -name login