[BACK]Return to README CVS log [TXT][DIR] Up to [local] / xenocara

Annotation of xenocara/README, Revision 1.10

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
1.3       matthieu   37: - share:    make(1) configuration for Xenocara
1.1       matthieu   38:
1.2       matthieu   39: At the top-level directory two files describe the individual
1.3       matthieu   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/)
1.3       matthieu   44: - 3RDPARTY lists all 3rd party software components provided in Xenocara,
1.2       matthieu   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:
1.3       matthieu   52: Xenocara is made up of more than three hundred different
                     53: independent packages that need to be build and installed in the right
                     54: order, especially while bootstrapping (while /usr/X11R6 is still
                     55: empty). The Xenocara Makefiles take care of that using the 'build'
1.2       matthieu   56: target.
                     57:
1.5       matthieu   58:   Quick startup guide
                     59:
                     60: The following steps will build and install everything for the first time.
                     61:
                     62:  mkdir -p /usr/obj/xenocara
1.7       matthieu   63:  cd xenocara
1.5       matthieu   64:  make bootstrap
                     65:  make obj
                     66:  make build
                     67:
                     68: If you want to use another obj directory see below.
                     69:
1.2       matthieu   70:   Requirements
                     71:
                     72: A freshly checked out xenocara tree is buildable without any external
                     73: tool. However if you start modifying things in the automake build
                     74: system used by many packages, you will need to have the following
1.3       matthieu   75: GNU autotools packages installed:
1.2       matthieu   76:
                     77:     - automake 1.9 (devel/automake/1.9)
                     78:     - autoconf 2.59 (devel/autoconf/2.59)
1.6       matthieu   79:     - metaauto 0.6 (or later) (devel/metaauto)
1.2       matthieu   80:     - libtool 1.5.22 (or later) (devel/libtool)
                     81:
1.8       matthieu   82:   Path
                     83:
                     84: To build Xenocara, you need to have /usr/X11R6/bin in your PATH.
                     85:
1.2       matthieu   86:   Sudo
                     87:
                     88: If the SUDO variable points to your sudo(8) binary in /etc/mk.conf,
                     89: 'make build' can be run as a normal user. It will raise its privileges
                     90: whenever needed with sudo. Otherwise, you need to run make build as
                     91: root.
                     92:
1.3       matthieu   93: If you have installed the full Xenocara X sets on your system, you
                     94: don't need to build all of Xenocara to patch one element. You can go
1.2       matthieu   95: to any module sub-directory and run 'make build' from there.
                     96:
1.8       matthieu   97:   Source directory
                     98:
                     99: The variable XSRCDIR can be set either in the environment or in
1.9       matthieu  100: /etc/mk.conf to point to the xenocara source tree, in case you keep it
1.10    ! matthieu  101: in a non-standard directory (the default is /usr/src/xenocara).
1.8       matthieu  102:
1.2       matthieu  103:   Objdirs
                    104:
                    105: Xenocara supports objdirs (and it's even the recommended way to build
                    106: things). Just run 'make obj' at any level before 'make build' to make
1.4       matthieu  107: sure that the object directories are created.
1.8       matthieu  108: XOBJDIR defines the default obj directory that is used.
1.2       matthieu  109:
                    110:   Shadow trees
                    111:
                    112: Alternatively, the old 'lndir(1)' method can still be used to build
1.3       matthieu  113: Xenocara outside of its source tree. Just don't use 'make obj' in this
1.2       matthieu  114: case.
                    115:
                    116: o Regenerating configure scripts
                    117:   ------------------------------
                    118:
                    119: Whenever you touched an import file for GNU autotools (Makefile.am,
                    120: configure.ac mostly), you need to rebuild the configure script and
                    121: makefiles skeletons. For that use the following command:
                    122:
                    123:  env XENOCARA_RERUN_AUTOCONF=Yes make -f Makefile.bsd-wrapper build
                    124:
                    125: You can also set XENOCARA_RERUN_AUTOCONF in /etc/mk.conf to force
                    126: regeneration of configure scripts in every component.
                    127:
1.10    ! matthieu  128: $OpenBSD: README,v 1.9 2007/04/01 19:04:58 matthieu Exp $