diff options
author | Robert Bragg <bob@openedhand.com> | 2008-09-22 13:33:19 +0000 |
---|---|---|
committer | Robert Bragg <bob@openedhand.com> | 2008-09-22 13:33:19 +0000 |
commit | 3de4627417e62595ce4349cb3a13c9180f8e6bfd (patch) | |
tree | 37c5f48d49ce9702fb164ca4fe47433f59cd838a /meta/packages/xorg-xserver | |
parent | 9b6a24b65d840d8b207a9dfdc69e61b0c5c9ef07 (diff) | |
download | poky-3de4627417e62595ce4349cb3a13c9180f8e6bfd.tar.gz |
Adds recipes to support building X servers based on the xfree86 DDX instead
of kdrive and building mesa. It's a big commit and it's still rather rough
around the edges, but there is a desire to get this in early so people can
review the work and help polish the changes.
Some of the notable bits:
• DRI support in mesa and the X server. (configured in machine conf via
MACHINE_DRI_MODULES variable)
• XCB backend for xlib
• A fairly lite X server build with lots of legacy modules disabled.
I'm sure there is plenty of other fairly low hanging fruit if we want to
put more effort into reducing the size of the xserver build. Currently the
server build comes in @ ~2.3MB vs a kdrive fbdev server build @ ~1MB. E.g
xaa could be made conditional to save ~320K. Of course the kdrive server
doesn't include glx stuff, which is a pretty big chunk.
Also thanks to hrw, since I nabbed a some patches from him for this, and RP,
for various bits of Poky style advice.
git-svn-id: https://svn.o-hand.com/repos/poky/trunk@5205 311d38ba-8fff-0310-9ca6-ca027cbcb966
Diffstat (limited to 'meta/packages/xorg-xserver')
6 files changed, 187 insertions, 0 deletions
diff --git a/meta/packages/xorg-xserver/xserver-xf86-common.inc b/meta/packages/xorg-xserver/xserver-xf86-common.inc new file mode 100644 index 0000000000..ea296e001d --- /dev/null +++ b/meta/packages/xorg-xserver/xserver-xf86-common.inc | |||
@@ -0,0 +1,53 @@ | |||
1 | DESCRIPTION = "The X.Org X server" | ||
2 | HOMEPAGE = "http://www.x.org" | ||
3 | SECTION = "x11/base" | ||
4 | LICENSE = "MIT-X" | ||
5 | |||
6 | # xf86-*-* packages depend on an X server built with the xfree86 DDX | ||
7 | # so we have a virtual to represent that: | ||
8 | PROVIDES = "virtual/xserver-xf86" | ||
9 | |||
10 | # Other packages tend to just care that there is *an* X server: | ||
11 | PROVIDES += "virtual/xserver" | ||
12 | |||
13 | XORG_PN = "xorg-server" | ||
14 | SRC_URI = "${XORG_MIRROR}/individual/xserver/${XORG_PN}-${PV}.tar.bz2 \ | ||
15 | file://xorg.conf" | ||
16 | |||
17 | S = "${WORKDIR}/${XORG_PN}-${PV}" | ||
18 | |||
19 | inherit autotools pkgconfig | ||
20 | |||
21 | PACKAGES =+ "${PN}-utils" | ||
22 | |||
23 | FILES_${PN}-utils = "${bindir}/scanpci ${bindir}/pcitweak ${bindir}/ioport ${bindir}/in[bwl] ${bindir}/out[bwl] ${bindir}/mmap[rw] ${bindir}/gtf ${bindir}/getconfig ${bindir}/getconfig.pl" | ||
24 | FILES_${PN} = "${libdir}/X11/Options ${libdir}/X11/Cards ${libdir}/X11/getconfig ${libdir}/X11/etc ${libdir}/xserver/SecurityPolicy ${libdir}/xorg/modules/*.so /etc/X11 " | ||
25 | FILES_${PN}-doc += "${libdir}/X11/doc /usr/share/X11/xkb/compiled/README.compiled" | ||
26 | |||
27 | FILES_${PN}-dbg += "${libdir}/xorg/modules/.debug \ | ||
28 | ${libdir}/xorg/modules/*/.debug \ | ||
29 | ${libdir}/xorg/modules/*/*/.debug \ | ||
30 | " | ||
31 | |||
32 | CONFFILES_${PN} += "${sysconfdir}/X11/xorg.conf" | ||
33 | |||
34 | # xorg-server.m4 contains a macro used by the xf86-*-* drivers to check for | ||
35 | # server extensions. The problem is that it modifies CFLAGS during the drivers | ||
36 | # ./configure with -I`pkg-config --variable=sdkdir xorg-server` and the sdkdir | ||
37 | # variable doesn't point into the staging area and so causes | ||
38 | # "CROSS COMPILE Badness" warnings. | ||
39 | do_configure_prepend () { | ||
40 | sed -i "s|\`pkg-config --variable=sdkdir xorg-server\`|${STAGING_DIR}/${HOST_SYS}/\`pkg-config --variable=sdkdir xorg-server\`|" xorg-server.m4 | ||
41 | } | ||
42 | |||
43 | do_stage() { | ||
44 | autotools_stage_all | ||
45 | } | ||
46 | |||
47 | do_install_append () { | ||
48 | install -d ${D}/${sysconfdir}/X11 | ||
49 | # install -m 0644 ${WORKDIR}/xorg.conf ${D}/${sysconfdir}/X11/ | ||
50 | ln -sf ${datadir}/fonts/X11 ${D}/${libdir}/X11/fonts | ||
51 | |||
52 | } | ||
53 | |||
diff --git a/meta/packages/xorg-xserver/xserver-xf86-dri-lite.inc b/meta/packages/xorg-xserver/xserver-xf86-dri-lite.inc new file mode 100644 index 0000000000..1cc7bdde4e --- /dev/null +++ b/meta/packages/xorg-xserver/xserver-xf86-dri-lite.inc | |||
@@ -0,0 +1,31 @@ | |||
1 | require xserver-xf86-common.inc | ||
2 | |||
3 | PROTO_DEPS = "randrproto renderproto fixesproto damageproto xextproto xproto xf86dgaproto xf86miscproto xf86rushproto xf86vidmodeproto xf86bigfontproto compositeproto recordproto resourceproto videoproto scrnsaverproto evieext trapproto xineramaproto fontsproto kbproto inputproto bigreqsproto xcmiscproto glproto xf86driproto dri2proto" | ||
4 | |||
5 | LIB_DEPS = "pixman mesa-dri libxfont xtrans libxau libxext libxdmcp libdrm libxkbfile libpciaccess openssl" | ||
6 | |||
7 | DEPENDS = "${PROTO_DEPS} ${LIB_DEPS}" | ||
8 | |||
9 | RDEPENDS = "hal xorg-minimal-fonts" | ||
10 | |||
11 | FILES_${PN} += "${bindir}/Xorg " | ||
12 | |||
13 | EXTRA_OECONF += "--disable-cfb \ | ||
14 | --disable-afb \ | ||
15 | --disable-mfb \ | ||
16 | --disable-dga \ | ||
17 | --disable-xinerama \ | ||
18 | --disable-xf86misc \ | ||
19 | --disable-xorgcfg \ | ||
20 | --disable-dmx \ | ||
21 | --disable-xnest \ | ||
22 | --disable-xvfb \ | ||
23 | --enable-composite \ | ||
24 | --enable-dri \ | ||
25 | --enable-glx-tls \ | ||
26 | --sysconfdir=/etc/X11 \ | ||
27 | --localstatedir=/var \ | ||
28 | --with-fontdir=/usr/share/fonts/X11 \ | ||
29 | --with-xkb-output=/var/lib/xkb \ | ||
30 | ac_cv_file__usr_share_sgml_X11_defs_ent=no" | ||
31 | |||
diff --git a/meta/packages/xorg-xserver/xserver-xf86-dri-lite/drmfix.patch b/meta/packages/xorg-xserver/xserver-xf86-dri-lite/drmfix.patch new file mode 100644 index 0000000000..a62a767f23 --- /dev/null +++ b/meta/packages/xorg-xserver/xserver-xf86-dri-lite/drmfix.patch | |||
@@ -0,0 +1,13 @@ | |||
1 | Index: xorg-server-1.4/hw/xfree86/os-support/linux/Makefile.am | ||
2 | =================================================================== | ||
3 | --- xorg-server-1.4.orig/hw/xfree86/os-support/linux/Makefile.am 2007-08-23 21:04:53.000000000 +0200 | ||
4 | +++ xorg-server-1.4/hw/xfree86/os-support/linux/Makefile.am 2008-03-13 18:27:23.000000000 +0100 | ||
5 | @@ -41,7 +41,7 @@ | ||
6 | |||
7 | AM_CFLAGS = -DUSESTDRES -DHAVE_SYSV_IPC $(DIX_CFLAGS) $(XORG_CFLAGS) $(PLATFORM_DEFINES) | ||
8 | |||
9 | -INCLUDES = $(XORG_INCS) $(PLATFORM_INCLUDES) -I/usr/include/drm # FIXME this last part is crack | ||
10 | +INCLUDES = $(XORG_INCS) $(PLATFORM_INCLUDES) $(LIBDRM_CFLAGS) | ||
11 | |||
12 | # FIXME: These need to be added to the build | ||
13 | LNX_EXTRA_SRCS = \ | ||
diff --git a/meta/packages/xorg-xserver/xserver-xf86-dri-lite/xorg.conf b/meta/packages/xorg-xserver/xserver-xf86-dri-lite/xorg.conf new file mode 100644 index 0000000000..e3ffbe6ed3 --- /dev/null +++ b/meta/packages/xorg-xserver/xserver-xf86-dri-lite/xorg.conf | |||
@@ -0,0 +1,73 @@ | |||
1 | |||
2 | Section "Files" | ||
3 | EndSection | ||
4 | |||
5 | Section "InputDevice" | ||
6 | Identifier "Synaptics Touchpad" | ||
7 | Driver "synaptics" | ||
8 | Option "SendCoreEvents" "true" | ||
9 | Option "Device" "/dev/psaux" | ||
10 | Option "Protocol" "auto-dev" | ||
11 | Option "HorizEdgeScroll" "0" | ||
12 | EndSection | ||
13 | |||
14 | Section "InputDevice" | ||
15 | Driver "wacom" | ||
16 | Identifier "stylus" | ||
17 | Option "Device" "/dev/input/wacom" | ||
18 | Option "Type" "stylus" | ||
19 | Option "ForceDevice" "ISDV4" # Tablet PC ONLY | ||
20 | EndSection | ||
21 | |||
22 | Section "InputDevice" | ||
23 | Driver "wacom" | ||
24 | Identifier "eraser" | ||
25 | Option "Device" "/dev/input/wacom" | ||
26 | Option "Type" "eraser" | ||
27 | Option "ForceDevice" "ISDV4" # Tablet PC ONLY | ||
28 | EndSection | ||
29 | |||
30 | Section "InputDevice" | ||
31 | Driver "wacom" | ||
32 | Identifier "cursor" | ||
33 | Option "Device" "/dev/input/wacom" | ||
34 | Option "Type" "cursor" | ||
35 | Option "ForceDevice" "ISDV4" # Tablet PC ONLY | ||
36 | EndSection | ||
37 | |||
38 | Section "Device" | ||
39 | Identifier "Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller" | ||
40 | Driver "intel" | ||
41 | BusID "PCI:0:2:0" | ||
42 | Option "AccelMethod" "EXA" | ||
43 | EndSection | ||
44 | |||
45 | Section "Monitor" | ||
46 | Identifier "Generic Monitor" | ||
47 | Option "DPMS" | ||
48 | EndSection | ||
49 | |||
50 | Section "Screen" | ||
51 | Identifier "Default Screen" | ||
52 | Device "Intel Corporation Mobile GM965/GL960 Integrated Graphics Controller" | ||
53 | Monitor "Generic Monitor" | ||
54 | DefaultDepth 24 | ||
55 | SubSection "Display" | ||
56 | Modes "1024x768" "720x400" "640x480" | ||
57 | Virtual 3000 2048 | ||
58 | EndSubSection | ||
59 | EndSection | ||
60 | |||
61 | Section "ServerLayout" | ||
62 | Identifier "Default Layout" | ||
63 | Screen "Default Screen" | ||
64 | InputDevice "Generic Keyboard" | ||
65 | InputDevice "Configured Mouse" | ||
66 | |||
67 | # Uncomment if you have a wacom tablet | ||
68 | # InputDevice "stylus" "SendCoreEvents" | ||
69 | # InputDevice "cursor" "SendCoreEvents" | ||
70 | # InputDevice "eraser" "SendCoreEvents" | ||
71 | InputDevice "Synaptics Touchpad" | ||
72 | EndSection | ||
73 | |||
diff --git a/meta/packages/xorg-xserver/xserver-xf86-dri-lite_1.5.0.bb b/meta/packages/xorg-xserver/xserver-xf86-dri-lite_1.5.0.bb new file mode 100644 index 0000000000..9f4cb8ec75 --- /dev/null +++ b/meta/packages/xorg-xserver/xserver-xf86-dri-lite_1.5.0.bb | |||
@@ -0,0 +1,7 @@ | |||
1 | require xserver-xf86-dri-lite.inc | ||
2 | |||
3 | PE = "1" | ||
4 | PR = "r1" | ||
5 | |||
6 | SRC_URI += "file://drmfix.patch;patch=1" | ||
7 | |||
diff --git a/meta/packages/xorg-xserver/xserver-xf86-dri-lite_git.bb b/meta/packages/xorg-xserver/xserver-xf86-dri-lite_git.bb new file mode 100644 index 0000000000..47be75fdb6 --- /dev/null +++ b/meta/packages/xorg-xserver/xserver-xf86-dri-lite_git.bb | |||
@@ -0,0 +1,10 @@ | |||
1 | require xserver-xf86-dri-lite.inc | ||
2 | |||
3 | PE = "1" | ||
4 | PR = "r1" | ||
5 | PV = "1.5.0+git${SRCREV}" | ||
6 | |||
7 | DEFAULT_PREFERENCE = "-1" | ||
8 | |||
9 | SRC_URI = "git://anongit.freedesktop.org/git/xorg/xserver;protocol=git " | ||
10 | |||