Still needs more polish but is a good start.
source "package/wget/Config.in"
source "package/which/Config.in"
source "package/wireless-tools/Config.in"
+source "package/xorg/Config.in"
source "package/zlib/Config.in"
--- /dev/null
+config BR2_PACKAGE_XORG
+ bool "X.org X Window System"
+ default n
+ depends !BR2_PACKAGE_TINYX
+ help
+ The official X Window system and server.
+
+comment "X.org X Window System disabled, tinyx selected"
+ depends on BR2_PACKAGE_TINYX
+
+
--- /dev/null
+--- xc/extras/drm/shared/drm.h.orig 2004-09-20 22:25:23.042737520 +0200
++++ xc/extras/drm/shared/drm.h 2004-09-20 22:25:33.282180888 +0200
+@@ -38,7 +38,6 @@
+ #define _DRM_H_
+
+ #if defined(__linux__)
+-#include <linux/config.h>
+ #include <asm/ioctl.h> /* For _IO* macros */
+ #define DRM_IOCTL_NR(n) _IOC_NR(n)
+ #define DRM_IOC_VOID _IOC_NONE
--- /dev/null
+--- xc/programs/xterm/Imakefile.orig 2004-08-13 14:57:19.000000000 +0200
++++ xc/programs/xterm/Imakefile 2004-09-20 22:04:49.505263720 +0200
+@@ -93,7 +93,7 @@
+ #endif
+
+ #ifdef UTF8support
+- UTF8_OPTION = -DOPT_WIDE_CHARS -DOPT_LUIT_PROG
++ UTF8_OPTION = -DOPT_WIDE_CHARS -DOPT_LUIT_PROG -DOPT_256_COLORS
+ UTF8SRC = charclass.c precompose.c wcwidth.c xutf8.c
+ UTF8OBJ = charclass.o precompose.o wcwidth.o xutf8.o
+ #endif
--- /dev/null
+--- xc/config/cf/host.def~ Thu May 12 15:28:01 MDT 2005
++++ xc/config/cf/host.def Thu May 12 15:28:01 MDT 2005
+@@ -0,0 +1,38 @@
++#define KDriveXServer YES
++#define TinyXServer YES
++#define XfbdevServer YES
++#define CrossCompiling YES
++#define ProjectRoot /usr/X11R6
++#define NothingOutsideProjectRoot YES
++
++#define HasFreetype2 NO
++#define HasFontconfig NO
++#define HasLibpng YES
++#define HasZlib YES
++
++#define HasExpat NO
++#define XprtServer NO
++#define BuildXprintClients NO
++#define TouchScreen NO
++#define HasTsLib NO
++#define BuildDocs NO
++#define BuildXF86DRI NO
++#define BuildGlxExt NO
++#define BuildOSMesaLib NO
++#define BuildLBX NO
++#define BuildLowMem NO
++#define BuildIPv6 NO
++#define HasPam NO
++#define HasPamMisc NO
++
++/*
++#define XF86CardDrivers mga glint nv tga s3virge sis rendition \
++ neomagic i740 tdfx savage \
++ cirrus vmware tseng trident chips apm \
++ GlideDriver fbdev i128 \
++ ati AgpGartDrivers DevelDrivers ark \
++ cyrix siliconmotion vesa vga \
++ XF86OSCardDrivers XF86ExtraCardDrivers
++*/
++
++#define XInputDrivers mouse keyboard
+--- xc/config/cf/cross.def~ Thu May 12 15:28:01 MDT 2005
++++ xc/config/cf/cross.def Thu May 12 15:28:01 MDT 2005
+@@ -1,45 +1,45 @@
+-/* $XFree86: xc/config/cf/cross.def,v 1.1 2000/12/08 22:09:34 keithp Exp $ */
++/* $XFree86: xc/config/cf/cross.def,v 1.2 2001/03/30 02:15:17 keithp Exp $ */
+ /*
+ * This file contains redefinitions of some symbols to enable
+ * cross compilation: e.g. paths for include files and paths to
+ * compiler images. It will have to be edited to reflect these
+ * given your local configuration.
+ */
+-#if 0
+-#undef i386Architecture
++#define i386Architecture
+-#define Arm32Architecture
++#undef Arm32Architecture
+
+ #undef OptimizedCDebugFlags
+-#define OptimizedCDebugFlags -O2
+-#define ServerCDebugFlags -O2
++#define OptimizedCDebugFlags -Os
++#define ServerCDebugFlags -Os
+ #undef StandardDefines
+-#define StandardDefines -Dlinux -D__arm__ -D_POSIX_SOURCE \
++#define StandardDefines -Dlinux -D__REPLACE_ARCH__ -D_POSIX_SOURCE \
+ -D_BSD_SOURCE -D_GNU_SOURCE -DX_LOCALE
+ #undef CcCmd
+-#define StdIncDir /skiff/local/arm-linux/include
+-#define PreIncDir
++#define StdIncDir REPLACE_STAGING_DIR/include
++#define PreIncDir
+ #undef PostIncDir
+-#define PostIncDir /skiff/local/lib/gcc-lib/arm-linux/2.95.2/include
+-#define CcCmd /skiff/local/bin/arm-linux-gcc
++#define PostIncDir REPLACE_STAGING_DIR/lib/gcc-lib/REPLACE_ARCH-linux-uclibc/3.3.3/include
++#define CcCmd REPLACE_STAGING_DIR/bin/REPLACE_ARCH-linux-gcc
+ #undef CplusplusCmd
+-#define HasCplusplus YES
+-#define CplusplusCmd /skiff/local/bin/arm-linux-g++
++#define HasCplusplus NO
++#define CplusplusCmd NO
+ #define DoRanlibCmd YES
+-#define RanlibCmd /skiff/local/bin/arm-linux-ranlib
++#define RanlibCmd REPLACE_STAGING_DIR/bin/REPLACE_ARCH-linux-ranlib
+ #undef ExtraLoadFlags
+ #define ExtraLoadFlags
+ #define FbNoPixelAddrCode
+ #undef TermcapLibrary
+-#define TermcapLibrary -ltermcap
++#define TermcapLibrary -lncurses
+
+ #undef LdPostLib
+-#define LdPostLib -L/skiff/local/arm-linux/lib
++#define LdPostLib -LREPLACE_STAGING_DIR/REPLACE_ARCH-linux-uclibc/lib
++#undef LdCmd
++#define LdCmd REPLACE_STAGING_DIR/bin/REPLACE_ARCH-linux-ld
+
+ #undef ExtensionOSDefines
+ #define ExtensionOSDefines
+
+ #define ServerXdmcpDefines /**/
+
+ #define HostCcCmd cc
+-#endif
+ #include <cross.rules>
--- /dev/null
+--- xc/programs/xfs/os/config.c.orig 2005-04-26 03:13:52.000000000 -0600
++++ xc/programs/xfs/os/config.c 2005-04-26 03:14:09.000000000 -0600
+@@ -665,6 +665,8 @@
+ val = config_parse_int (val, &ret, &scan);
+ if (ret == -1)
+ return val;
++#ifdef SNFFORMAT
+ SnfSetFormat (bit, byte, glyph, scan);
++#endif
+ return val;
+ }
+--- xc/fonts/util/ucs2any.c 2004-03-04 17:46:21.000000000 +0000
++++ xc/fonts/util/ucs2any.c 2004-09-11 12:49:37.000000000 +0000
+@@ -61,17 +61,6 @@
+ /* global variable for argv[0] */
+ const char *my_name = NULL;
+
+-#ifdef NEED_BASENAME
+-static char *
+-basename(char *pathname)
+-{
+- char *ptr;
+-
+- ptr = strrchr(pathname, '/');
+- return ((ptr == NULL) ? pathname : &ptr[1]);
+-}
+-#endif
+-
+ /* "CLASS" "z" string and memory manipulation */
+
+ static void *
--- /dev/null
+#############################################################
+#
+# xorg X Window System
+#
+#############################################################
+
+ifneq ($(strip $(BR2_PACKAGE_TINYX)),y)
+
+XORG_APPS:=xlsfonts/xlsfonts xmodmap/xmodmap
+#xset/xset xdpyinfo/xdpyinfo xsetroot/xsetroot \
+# xrdb/xrdb xrandr/xrandr \
+# xhost/xhost xauth/xauth oclock/oclock xeyes/xeyes
+#
+
+XORG_LIBS:=ICE X11 Xext Xpm
+# Xaw SM Xt Xmu
+
+#############################################################
+# Stuff below this line shouldn't need changes.
+# if you do change, look in rxvt & matchbox for the impact!
+#############################################################
+#
+# Where resources are found.
+#
+XORG_SOURCE:=X11R6.8.2-src.tar.bz2
+XORG_SITE:=http://xorg.freedesktop.org/X11R6.8.2/src-single/
+XORG_CAT:=bzcat
+XORG_DIR:=$(BUILD_DIR)/xc
+XORG_LDIR:=$(XORG_DIR)/lib
+XORG_PROGS:=$(XORG_DIR)/programs
+XORG_BINX:=$(TARGET_DIR)/usr/X11R6/bin/
+XORG_LIBX:=$(TARGET_DIR)/usr/lib/
+XORG_CF:=$(XORG_DIR)/config/cf/cross.def
+
+# Install Xfbdev for use with the kernel frame buffer
+XORG_XSERVER:=$(XORG_DIR)/programs/Xserver/Xfbdev
+
+$(DL_DIR)/$(XORG_SOURCE):
+ $(WGET) -P $(DL_DIR) $(XORG_SITE)/$(XORG_SOURCE)
+
+$(XORG_DIR)/.configure: $(DL_DIR)/$(XORG_SOURCE)
+ $(XORG_CAT) $(DL_DIR)/$(XORG_SOURCE) | tar -C $(BUILD_DIR) $(TAR_OPTIONS) -
+ toolchain/patch-kernel.sh $(XORG_DIR) package/xorg/ xorg*.patch
+ $(SED) 's:REPLACE_STAGING_DIR:$(STAGING_DIR):g' $(XORG_CF)
+ $(SED) 's:REPLACE_ARCH:$(ARCH):g' $(XORG_CF)
+ $(SED) 's:#define CcCmd.*:#define CcCmd $(TARGET_CROSS)gcc:g' $(XORG_CF)
+ $(SED) 's:#define RanlibCmd.*:#define RanlibCmd $(TARGET_CROSS)ranlib:g' $(XORG_CF)
+ $(SED) 's:#define LdCmd.*:#define LdCmd $(TARGET_CROSS)ld:g' $(XORG_CF)
+ touch $(XORG_DIR)/.configure
+
+$(XORG_XSERVER): $(XORG_DIR)/.configure
+ rm -f $(XORG_BINX)/Xfbdev
+ ( cd $(XORG_DIR) ; $(MAKE) World )
+
+$(XORG_BINX)/Xfbdev: $(XORG_XSERVER)
+ -mkdir $(TARGET_DIR)/usr/X11R6
+ -mkdir $(XORG_BINX)
+ for file in $(XORG_APPS) ; do \
+ cp -f $(XORG_DIR)/programs/$$file $(XORG_BINX) ; \
+ $(STRIP) $(XORG_PROGS)/$$file ; \
+ done
+ cp $(XORG_DIR)/programs/Xserver/Xfbdev $(XORG_BINX)
+ $(STRIP) $(XORG_BINX)/Xfbdev
+ cp -f $(XORG_DIR)/startx $(TARGET_DIR)/bin
+ chmod a+x $(TARGET_DIR)/bin/startx
+
+$(XORG_LIBX)/libX11.so.6.2: $(XORG_XSERVER)
+ for dirs in $(XORG_LIBS) ; do \
+ file=`find $(XORG_LDIR)/$$dirs -type f -iname "lib$$dirs.so*"` ; \
+ $(STRIP) --strip-unneeded $$file ; \
+ cp -f $$file $(XORG_LIBX) ; \
+ file=`find $(XORG_LDIR)/$$dirs -type l -iname "lib$$dirs.so*"` ; \
+ cp -pRf $$file $(XORG_LIBX) ; \
+ done
+
+xorg: zlib $(XORG_LIBX)/libX11.so.6.2 $(XORG_BINX)/Xfbdev
+
+xorg-source: $(DL_DIR)/$(XORG_SOURCE)
+
+xorg-clean:
+ -rm -rf $(TARGET_DIR)/usr/X11R6
+ -$(MAKE) -C $(XORG_DIR) clean
+
+xorg-dirclean:
+ -rm -rf $(XORG_DIR)
+ -rm -rf $(TARGET_DIR)/usr/X11R6
+
+#############################################################
+#
+# Toplevel Makefile options
+#
+#############################################################
+ifeq ($(strip $(BR2_PACKAGE_XORG)),y)
+TARGETS+=xorg
+endif
+
+endif