Go to file
2006-11-30 14:07:20 +00:00
app Install configuration in /etc/X11 2006-11-29 12:30:11 +00:00
data install xkb data files in /etc/X11/xkb 2006-11-28 19:39:00 +00:00
dist/Mesa Import MesaDemos 6.5.1 2006-11-25 18:56:37 +00:00
distrib 1st cut at sets update - still far from complete 2006-11-29 16:36:46 +00:00
doc Hook docs to the build 2006-11-29 17:42:27 +00:00
driver Add support for vesafb to the wsfb driver. This makes it possible to 2006-11-29 20:07:10 +00:00
etc/mtree Update mtree descriptions to match actual installation directories. 2006-11-29 21:50:18 +00:00
font regenerate with OpenBSD autotools 2006-11-27 15:13:16 +00:00
lib Disable profiled libs. 2006-11-29 18:03:09 +00:00
proto $Xenocara$ -> $OpenBSD$ 2006-11-27 19:27:25 +00:00
share/mk define X11ETC 2006-11-29 21:51:46 +00:00
util regen 2006-11-29 11:22:19 +00:00
xserver OpenBSD/i386 uses freebsdPci routines too. 2006-11-29 22:28:29 +00:00
3RDPARTY Describe the components of xenocara 2006-11-29 18:45:53 +00:00
Makefile give a chance of building by referencing the right mtree file 2006-11-30 14:07:20 +00:00
MODULES Describe the components of xenocara 2006-11-29 18:45:53 +00:00
README more information. 2006-11-29 22:25:07 +00:00

	Notes on building Xenocara for OpenBSD X hackers

This document presents some techniques that can be useful for people
wanting to hack the xenocara tree. It assumes some basic knowledge of
the OpenBSD build system, as described in the release(8) manual page.

o About Xenocara
  --------------
Xenocara is the name choosen for OpenBSD's version of X. It's
currently based on X.Org 7.2 and its dependencies. The goal of
Xenocara is to provide a framework to host local modifications and to
automate the build of the modular X.Org components, including 3rd
party packages and some software maintained by OpenBSD developpers.

o Source tree
  -----------

The organisation of the xenocara directory follows the general
organisation used in X.Org:

- app:	     X applications and utilities
- data:	     various data files (keyboard mappings and bitmaps)
- doc:	     documentation
- driver:    input and video drivers
- font:	     fonts
- lib:	     libraries
- proto:     X protocol headers
- util:	     utilities that don't fit anywhere else
- xserver:   the source for the X servers 

In addition Xenocara uses the following directories:

- dist:	    contains the Mesa sources, shared by lib and xserver above
- distrib:  all binary distribution related tools and data
- etc:	    mtree(8) data files
- share:    make(1) configuration for xenocara

At the top-level directory two files describe the individual
components of xenocara:

- MODULES  lists all X.Org components (imported from the X.Org
	   distribution at http://xorg.freedesktop.org/archive/)
- 3RDPARTY lists all 3rd party software components provided in Xenora,
	   either as dependencies of the X.Org software, or as
	   complements to it to provide a more useable default
	   environment.

o Compiling and installing
  ------------------------

Xenocara is made of more than three hundred of different
independant packages that need to be build and installed in the right
order, especially while bootstraping (while /usr/X11R6 is still
empty). The xenocara Makefiles take care of that using the 'build'
target.

  Requirements

A freshly checked out xenocara tree is buildable without any external
tool. However if you start modifying things in the automake build
system used by many packages, you will need to have the following
GNU autools packages installed:

    - automake 1.9 (devel/automake/1.9)
    - autoconf 2.59 (devel/autoconf/2.59)
    - pkg-config 0.19 (or later) (devel/pkgconfig)
    - libtool 1.5.22 (or later) (devel/libtool)

  Sudo

If the SUDO variable points to your sudo(8) binary in /etc/mk.conf,
'make build' can be run as a normal user. It will raise its privileges
whenever needed with sudo. Otherwise, you need to run make build as
root.

If you have installed the full xenocara X sets on your system, you
don't need to build all of xenocara to patch one element. You can go
to any module sub-directory and run 'make build' from there. 

  Objdirs

Xenocara supports objdirs (and it's even the recommended way to build
things). Just run 'make obj' at any level before 'make build' to make
sure the object directory is created. 

XXX support for objdirs need to be improved! XXX

  Shadow trees 

Alternatively, the old 'lndir(1)' method can still be used to build
xenocara outside of its source tree. Just don't use 'make obj' in this
case. 

o Regenerating configure scripts
  ------------------------------

Whenever you touched an import file for GNU autotools (Makefile.am,
configure.ac mostly), you need to rebuild the configure script and
makefiles skeletons. For that use the following command:

 env XENOCARA_RERUN_AUTOCONF=Yes make -f Makefile.bsd-wrapper build

You can also set XENOCARA_RERUN_AUTOCONF in /etc/mk.conf to force
regeneration of configure scripts in every component.

$OpenBSD: README,v 1.2 2006/11/29 22:25:07 matthieu Exp $