Annotation of xenocara/README, Revision 1.2
1.1 matthieu 1:
2: Notes on building Xenocara for OpenBSD X hackers
3:
4: This document presents some techniques that can be useful for people
5: wanting to hack the xenocara tree. It assumes some basic knowledge of
6: the OpenBSD build system, as described in the release(8) manual page.
7:
8: o About Xenocara
9: --------------
10: Xenocara is the name choosen for OpenBSD's version of X. It's
11: currently based on X.Org 7.2 and its dependencies. The goal of
12: Xenocara is to provide a framework to host local modifications and to
13: automate the build of the modular X.Org components, including 3rd
14: party packages and some software maintained by OpenBSD developpers.
15:
16: o Source tree
17: -----------
18:
19: The organisation of the xenocara directory follows the general
20: organisation used in X.Org:
21:
22: - app: X applications and utilities
23: - data: various data files (keyboard mappings and bitmaps)
24: - doc: documentation
25: - driver: input and video drivers
26: - font: fonts
27: - lib: libraries
28: - proto: X protocol headers
29: - util: utilities that don't fit anywhere else
30: - xserver: the source for the X servers
31:
32: In addition Xenocara uses the following directories:
33:
34: - dist: contains the Mesa sources, shared by lib and xserver above
35: - distrib: all binary distribution related tools and data
36: - etc: mtree(8) data files
37: - share: make(1) configuration for xenocara
38:
1.2 ! matthieu 39: At the top-level directory two files describe the individual
! 40: components of xenocara:
1.1 matthieu 41:
1.2 ! matthieu 42: - MODULES lists all X.Org components (imported from the X.Org
! 43: distribution at http://xorg.freedesktop.org/archive/)
! 44: - 3RDPARTY lists all 3rd party software components provided in Xenora,
! 45: either as dependencies of the X.Org software, or as
! 46: complements to it to provide a more useable default
! 47: environment.
! 48:
! 49: o Compiling and installing
! 50: ------------------------
! 51:
! 52: Xenocara is made of more than three hundred of different
! 53: independant packages that need to be build and installed in the right
! 54: order, especially while bootstraping (while /usr/X11R6 is still
! 55: empty). The xenocara Makefiles take care of that using the 'build'
! 56: target.
! 57:
! 58: Requirements
! 59:
! 60: A freshly checked out xenocara tree is buildable without any external
! 61: tool. However if you start modifying things in the automake build
! 62: system used by many packages, you will need to have the following
! 63: GNU autools packages installed:
! 64:
! 65: - automake 1.9 (devel/automake/1.9)
! 66: - autoconf 2.59 (devel/autoconf/2.59)
! 67: - pkg-config 0.19 (or later) (devel/pkgconfig)
! 68: - libtool 1.5.22 (or later) (devel/libtool)
! 69:
! 70: Sudo
! 71:
! 72: If the SUDO variable points to your sudo(8) binary in /etc/mk.conf,
! 73: 'make build' can be run as a normal user. It will raise its privileges
! 74: whenever needed with sudo. Otherwise, you need to run make build as
! 75: root.
! 76:
! 77: If you have installed the full xenocara X sets on your system, you
! 78: don't need to build all of xenocara to patch one element. You can go
! 79: to any module sub-directory and run 'make build' from there.
! 80:
! 81: Objdirs
! 82:
! 83: Xenocara supports objdirs (and it's even the recommended way to build
! 84: things). Just run 'make obj' at any level before 'make build' to make
! 85: sure the object directory is created.
! 86:
! 87: XXX support for objdirs need to be improved! XXX
! 88:
! 89: Shadow trees
! 90:
! 91: Alternatively, the old 'lndir(1)' method can still be used to build
! 92: xenocara outside of its source tree. Just don't use 'make obj' in this
! 93: case.
! 94:
! 95: o Regenerating configure scripts
! 96: ------------------------------
! 97:
! 98: Whenever you touched an import file for GNU autotools (Makefile.am,
! 99: configure.ac mostly), you need to rebuild the configure script and
! 100: makefiles skeletons. For that use the following command:
! 101:
! 102: env XENOCARA_RERUN_AUTOCONF=Yes make -f Makefile.bsd-wrapper build
! 103:
! 104: You can also set XENOCARA_RERUN_AUTOCONF in /etc/mk.conf to force
! 105: regeneration of configure scripts in every component.
! 106:
! 107: $OpenBSD$