Go to file
Marcus Overhagen 794df3bf25 This removes the inline assembly code for find_thread
from OS.h, sorry for triggering a complete rebuild.
To avoid doing a syscall for find_thread(0), the assembly
version is now in libroot. For BeOS R5 compatibility, 
_kfind_thread_ is retained. This will fix some compile 
problems, and provides a cleaner OS.h for future Haiku
versions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@14014 a95241bf-73f2-0310-859d-f6bbb57e9c96
2005-08-20 23:57:11 +00:00
data Use our Terminal instead of MiniTerminal now that the server is stable enough to run it reliably 2005-08-14 00:12:29 +00:00
docs Added a boolean "synchronous" parameter to BRoster::Shutdown(). Used in the 2005-07-17 16:37:11 +00:00
headers This removes the inline assembly code for find_thread 2005-08-20 23:57:11 +00:00
src This removes the inline assembly code for find_thread 2005-08-20 23:57:11 +00:00
configure Removed host BeOS version recognition: we now always default to target "haiku". 2005-06-01 14:33:46 +00:00
Jamfile Added an OpenGLKit pseudo-target. 2005-07-28 23:17:52 +00:00
Jamrules fix mkdir with spaces bug. change target directory based on debug and target platform. remove version variable and its one usage in target directory. 2005-08-20 19:54:37 +00:00
makehdimage when using the default image, create a more descriptive name {architecture, debug/release (from DEBUG variable), date}. note: DEBUG images are currently not possible since some components do not build with DEBUG=1. 2005-08-20 23:53:55 +00:00
ReadMe Added another comment suggested by Rogier van der Hee. 2005-07-10 23:11:40 +00:00

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"