BuildingOdin

From NikiWiki
Jump to: navigation, search

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 .

For the read-only access as guest requested by the CVSROOT variable, login with the password readonly.

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

makedeb.cmd

@echo off
set DEBUG=1
set NODEBUGINFO=1
rem nmake clean
rem "nmake dep" only needed once, after "nmake clean"
rem or change of include statements
rem nmake dep /i
nmake

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...