128ddaa3e3ee40b5c8f74b1bdd816bacdd00f272
* Rewrote event handling: instead of writing every single device message to the event port, they are just queued in a list, and the event loop is only notified if necessary (ie. if a notification has been sent already, new events are just queued up until the input_server found the time to process them). * This also fixed a big memory leak: every message processed by EnqueueDeviceMessage() (IOW every key or mouse event) was leaked! * no longer abuses gInputMethodListLocker to lock the method event queue (it now uses the standard event queue lock). * removed the completely superfluous, weird and decelerating event caching mechanism * tried to find a better distribution of work between _SanitizeEvents(), _MethodizeEvents(), and _DispatchEvents(). * HandleSetMousePosition() now only does what it's supposed to do (this currently causes the mouse to jump at the start, though). * now uses the "Message4" for message sending if available. * fixed "kb_mouse_settings.h" to include all headers it needs. * some more cleanup. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14966 a95241bf-73f2-0310-859d-f6bbb57e9c96
Setting Up -------- The build system uses Jam/MR (http://www.perforce.com/jam/jam.html). A BeOS executable of Jam 2.5 is available at: http://haiku-os.org/downloads.php?mode=download&id=10&mirror=0 Unzip the executable and copy it to /boot/home/config/bin. The Jam source code is also included in the source tree. You can as well cd into "src/tools/jam" and run "make" to obtain an executable. To build Haiku you also need Oliver Tappe's GCC 2.95.3. You can get it at BeBits: http://www.bebits.com/app/4011 Older versions of GCC 2.95.3 will likely not work. Configuring -------- Open a Terminal and change to your Haiku trunk folder. To configure the build you can run configure like this: $ ./configure --target=TARGET Where "TARGET" is the target platform for the build. Valid targets are "r5", "bone", "dano" and "haiku". If you omit the target it defaults to "haiku". To configure for ZETA use the "dano" target. The configure script generates a file named "BuildConfig" in the "build" directory. As long as configure is not modified (!), there is no need to call it again. That is for re-building you only need to invoke Jam or makehdimage (see below). If you don't update the source tree very frequently, you may want to execute configure after each update just to be on the safe side. Building -------- The preferred method to build Haiku (currently only possible on a BeOS machine) is this: $ makehdimage /Haiku Where "/Haiku" is the mounted BFS partition where you want to install Haiku on. This can be any BFS partition with enough space available. Use DriveSetup to initialize a partition to BFS. If the parameter is omitted, makehdimage currently creates a 60 MB Haiku image in this directory that you can use for Bochs, Qemu and other emulators to boot. To build the whole source tree for your selected target platform (to use the apps, drivers, add-ons, etc.) you can simply invoke Jam: $ jam Or to build only a specific app/driver/etc. include it as an argument: $ jam Pulse NOTE: If you have checked out the latest SVN revision, it is not unlikely that some parts of the tree won't build. Running ------- Generally there are two ways of running Haiku. On real hardware using a partition and on emulated hardware using an emulator like Bochs. 1. On Real Hardware If you have installed Haiku to it's own partition you can include this partition in your bootmanager and try to boot Haiku like any other OS you have installed. To include a new partition in the BeOS bootmanager run this in a Terminal: $ bootman And follow the steps of the installer. 2. On Emulated Hardware For emulated hardware you should build a "haiku.image" using makehdimage without arguments. How to setup this image depends on your emulater. A tutorial for Bochs on BeOS is below. Bochs ----- Version 2.2 of Bochs for BeOS (BeBochs) can be downloaded from BeBits: http://www.bebits.com/app/3324 The package installs to: /boot/apps/BeBochs2.2 You have to set up a configuration for Bochs. You should edit the ".bochsrc" to include the following: ata0-master: type=disk, path="/path/to/haiku.image", cylinders=122, heads=16, spt=63 boot: disk Now you can start Bochs: $ cd /boot/apps/BeBochs2.2 $ ./bochs Answer with RETURN and with some patience you will see Haiku booting. If booting into the graphical evironment fails you can try to hit "space" at the very beginning of the boot process. The Haiku bootloader should then come up and you can select some safe mode options. Docbook documentation --------------------- Requirements : - Docbook XML DTD (http://www.oasis-open.org/docbook/xml/4.2/docbook-xml-4.2.zip) - Docbook Stylesheets (http://prdownloads.sourceforge.net/docbook/docbook-xsl-1.68.1.tar.bz2) - libxml2, xmllin (http://libpak.neoni.net/packages/LibPak_libxml2_dev.zip) - libxslt, xsltproc (http://libpak.neoni.net/packages/LibPak_libxslt_dev.zip) XML catalogs must be configured to avoid internet access : - in Docbook Stylesheets directory : sh ./INSTALL - in your .profile, add something like this : export XML_CATALOG_FILES="/boot/home/docbook-xsl-1.68.1/catalog.xml /boot/home/docbook-xml-4.2/catalog.xml /etc/xml/catalog"
Languages
C++
51.9%
C
46.9%
Assembly
0.4%
HTML
0.3%