BuildingOdin

To build Odin, as of today, you are going to need VisualAge C 3.08 or v3.65 and gcc 3.2.x.

The DDK is useful, but not required. The DDK will allow you to build the optional win32k drivers.

You are also going to need a CVS client.

You are also going to need to pull a copy of the OdinXP CVS repository into your local sandbox.

See the Netlabs Odin page for instructions on how to access the OdinXP CVS repository.

Since much of the Odin code is based on Wine, it can be helpful to pull a copy of the Wine sources from the Wine CVS repository.

The current OS/2 cvs client does not support the compression methods used the cvs Wine CVS server, so you will need to use the -z0 global cvs parameter to suppress the compression.

Once you have pulled a copy of the Odin sources, see doc\Readme.txt for build instructions. The readme is old but accurate. See also, doc\GCCBuildInstructions.txt for additional instructions for gcc 3.2.x.

A Short Howto
Get Odin source: set CVSROOT=:pserver:guest@cvs.netlabs.org:/netlabs.cvs/odin32xp cvs110.exe login cvs110.exe co.

Modify the folowing settings in ODINENV.CMD: SET EMX_PATH= SET tkmain=

Execute ODINENV.CMD

Next steps should be done within ODINENV environment!

Execute Configure.cmd Ignore questions regarding "DDK "\BASE" directory" and "Microsoft C v6.0, v6.0a or v7.0 directory" if you don't want to build Win32k.sys.

Execute ConfigureGCC.cmd No Errors must be shown!

Execute makedeb.cmd Ignore lots of warnings. If no errors are shown, the DLLs can be found in ./bin

OdinEnv.cmd
@echo off mode 130,50 set WORK_SHELL=%COMSPEC% set EMX_PATH=F:\emx321\emx\ set tkmain=f:\os2tk45 set beginLIBPATH=%EMX_PATH%exe;%BEGINLIBPATH% SET PATH=%EMX_PATH%bin;%EMX_PATH%exe;%PATH% rem   **************************************************************** rem rem   This batch file will set up the environment for using GCC rem rem ***************************************************************** rem set WORK_SHELL=call fc set GCCLOAD=20 rem EMX call %EMX_PATH%bin\setgcc.cmd rem VAC call csetenv.cmd SET EMX=%EMX_PATH% SET INCLUDE=%EMX_PATH%lib/gcc-lib/i386-pc-os2-emx/3.2.1/include;%EMX_PATH%include;%INCLUDE% SET INCLUDE=%tkmain%\som\include;%tkmain%\inc;%tkmain%\h;%tkmain%\h\gl;%tkmain%\h\libc;%tkmain%\speech\h;%INCLUDE% SET C_INCLUDE_PATH=%EMX_PATH%lib/gcc-lib/i386-pc-os2-emx/3.2.1/include;%EMX_PATH%include;%INCLUDE% SET CPLUS_INCLUDE_PATH=%EMX_PATH%include/c++/3.2.1;%EMX_PATH%lib/gcc-lib/i386-pc-os2-emx/3.2.1/include;%EMX_PATH%include;%INCLUDE% SET LIB=%EMX_PATH%lib\;%tkmain%\som\lib;%tkmain%\lib;%tkmain%\samples\mm\lib;%tkmain%\speech\lib;%LIB% SET LIBRARY_PATH=%EMX_PATH%lib;%LIB%; set make=nmake.exe rem Important: references to OS2TK must be before VAC 3.08 references! SET PATH=%tkmain%\bin;%PATH%; SET DPATH=%tkmain%\msg;%DPATH%;

More coming...