= Solaris build instructions = The Solaris port of VirtualBox is work in progress and so is this page. The current page is just an edited version of the GNU/Linux one. == Prerequisites == You need: * Solaris Nevada build 55 or later. It will probably work with earlier builds and Solaris 10, but we haven't tried that yet. * '''GCC 3.4.3.''' It will probably work with 3.4.6 or even 4.x.y, but 3.4.3 is the one we've tried and which problems we have work around. * '''as86'''. This ships with the Solaris builds we're using. * '''bcc'''. This ships with the Solaris builds we're using. * '''IASL''' (Intel ACPI compiler). Doesn't this ship too? * '''xsltproc''' (libxslt, XML style sheet processor). You'll have to build this yourself. * '''libxerces''' (Xerces XML parser; the C++, not the Java version). You'll probably have to build this yourself. * '''libxalan''' (Xalan XSL library, depends on Xerces; again, the C++, not the Java version). You'll probably have to build this yourself. * '''libXcursor''' (required to support color mouse pointers in guest). You'll probably have to build this yourself. * '''Qt 3.3.x''' (with x >= 5 if possible). You'll have to build this yourself. TODO: provide configuration. * '''libIDL''' * '''libSDL''' * '''ALSA''' * '''libhal''' * '''YASM 6.0 or later'''. This is currently included in the VirtualBox source tree. * The '''PATH''' has to include the following directories: TBD == Building !VirtualBox == 1. Change to the root directory of the sources and execute the configure script: `./configure`. If it finds everything it needs, it will create a file called '!AutoConfig.kmk' containing paths to the various tools on your system. Also, it will create an environment setup script called `env.sh`. This step only has to be done once (if something changes in your build tool setup, you might have to repeat it but keep in mind that both output files will be overwritten). 2. Whenever you want to build !VirtualBox, you have to open a shell and source the generated environment setup script 'env.sh', i.e. do {{{ source ./env.sh }}} 3. To build a release package, type `kmk all`. This produces the required binaries in `out/solaris.x86/release/bin/`. (If you want to build a debug version, type `kmk BUILD_TYPE=debug`.) In case you have more than one CPU core, you could take advantage of our parallel build system by supplying `-j3` (number of cores + 1) as an option to kmk. == Running your build == You can run !VirtualBox directly from the build target directory (`out/solaris.x86/release/bin/`). But first of all, you must build and install the !VirtualBox kernel module. There is a script {{{src/VBox/HostDrivers/Support/solaris/mod.sh}}} which does this for you. It requires you to either install sudo or edit out the SUDO=sudo bit and run it as root. (If you see an error about missing a 64-bit driver, then you're running a 64-bit kernel. This is something that isn't yet support. Try force Solaris to boot with the 32-bit kernel.) Next you should start the !VirtualBox XPCOM daemon using {{{ cd ./out/solaris.x86/release/bin LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH" ./VBoxSVC & }}} Finally, you can start one of the frontends, e.g. {{{ LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH" ./VirtualBox }}} Note that the {{{LD_LIBRARY_PATH=".:$LD_LIBRARY_PATH"}}} is required because we have to find our {{{.so}}} files and the output directory is not in the system's library path.