= OS/2 build instructions = The OS/2 port is '''not''' yet completed. These instructions are here for those who wish to help out. == Prerequisites on OS/2 == * OS/2 running on Intel hardware... ;-) * GCC 3.3.5 CSD3: [[BR]] ftp://ftp.netlabs.org/pub/gcc/GCC-3.3.5-csd3.zip * Use wlink as the linker: [[BR]] ftp://ftp.netlabs.org/pub/gcc/wl-hll-r1.zip [[BR]] Make sure you set EMXOMFLD_LINKER=wl.exe and EMXOMFLD_TYPE=WLINK. * SDL: [[BR]] ftp://ftp.netlabs.org/pub/sdl/sdl-1.2.10-bin-20060602.zip [[BR]] Unpack this into tools/os2.x86/libsdl/v1.2.10-20060602/. If you get compiler errors in the SDL headers, the patch at the bottom of this page will help you. * Checkout of the latest libc trunk. * Later: Latest Qt3: [[BR]] ftp://ftp.netlabs.org/pub/qt3/ [[BR]] Unpack this into tools/os2.x86/qt/v3.x.y/. * The current BCC port requires that {{{\tmp}}} exists. * Subversion: http://www.smedley.info/os2ports/index.php?page=subversion * ... == Building !VirtualBox == 1. Load the gcc environment (gccenv.cmd). 1. Make sure the environment variables {{{USER}}} or {{{USERNAME}}} is set to something sensible. 1. Change to the root directory of the sources and execute {{{ kBuild\envos2.cmd }}} 1. {{{SET VBOX_OSE=1}}} 1. Create symbolic links to the kLdr and os2ddk: {{{ kmk_ln -s /libc/include/os2ddk src/VBox/Runtime/include/os2ddk kmk_ln -s /kLdr src/VBox/Runtime/kLdr }}} 1. To build type {{{ kmk }}} The default is to a release build, should you wish to do a ''debug'' or ''profile'' build add {{{BUILD_TYPE=debug}}} or {{{BUILD_TYPE=profile}}} as argument to ''kmk'' or set it as an environment variable. == Running !VirtualBox == Since this is work in progress there are just testcases and a VBoxBFE with display problems on some graphics cards at this point. You can either run it without loading the driver and therefore without rawmode enabled by executing {{{set VBOX_SUPLIB_FAKE=fake}}} on the command line. The alternative is to copy VBoxDrv.sys from {{{out\os2.x86\release\bin}}} to your boot drive and add a {{{DEVICE=c:\VBoxDrv.sys}}} statement to your config.sys. If you like to see the VBoxBFE SDL window and immediately hit an assertion, do this: 1. Change directory to {{{out\os2.x86\release\bin}}} 1. Add this directory to the {{{BEGINLIBPATH}}} variable (full path, remember). 1. Execute {{{.\VBoxBFE.exe -m 64}}} and you an BIOS error saying it can't read the boot drive. If you happen to have an knoppix iso or simliar around try boot it using the {{{-cdrom}}} and {{{-boot d}}} options. == The SDL patch == {{{ diff -rwu SDL/include/SDL_audio.h D:/coding/vbox/svn/trunk/tools/os2.x86/libsdl/v1.2.10-20060602/SDL/include/SDL_audio.h --- SDL/include/SDL_audio.h Mon May 1 03:03:00 2006 +++ D:/coding/vbox/svn/trunk/tools/os2.x86/libsdl/v1.2.10-20060602/SDL/include/SDL_audio.h Sat Jan 13 06:47:04 2007 @@ -76,6 +76,8 @@ #define AUDIO_S16SYS AUDIO_S16MSB #endif +/* A filter callback */ +typedef void (SDLCALL * SDL_AudioCVTFilterCall)(struct SDL_AudioCVT *cvt, Uint16 format); /* A structure to hold a set of audio conversion filters and buffers */ typedef struct SDL_AudioCVT { @@ -88,7 +90,7 @@ int len_cvt; /* Length of converted audio buffer */ int len_mult; /* buffer must be len*len_mult big */ double len_ratio; /* Given len, final size is len*len_ratio */ - void (SDLCALL *filters[10])(struct SDL_AudioCVT *cvt, Uint16 format); + SDL_AudioCVTFilterCall filters[10]; int filter_index; /* Current audio conversion function */ } SDL_AudioCVT; diff -rwu SDL/include/SDL_config_os2.h D:/coding/vbox/svn/trunk/tools/os2.x86/libsdl/v1.2.10-20060602/SDL/include/SDL_config_os2.h --- SDL/include/SDL_config_os2.h Mon May 1 03:03:00 2006 +++ D:/coding/vbox/svn/trunk/tools/os2.x86/libsdl/v1.2.10-20060602/SDL/include/SDL_config_os2.h Sat Jan 13 06:44:38 2007 @@ -27,6 +27,9 @@ /* This is a set of defines to configure the SDL features */ +#ifdef __GNUC__ +# include +#else typedef signed char int8_t; typedef unsigned char uint8_t; typedef signed short int16_t; @@ -37,6 +40,7 @@ typedef unsigned long uintptr_t; typedef signed long long int64_t; typedef unsigned long long uint64_t; +#endif #define SDL_HAS_64BIT_TYPE 1 }}}