Compile HL SDK in Linux
Goal: Compile the unmodified HL SDK under Linux, using gcc-2.96 An ANSI C compiler.
Required: vmware, RH 9 ISO's, patched HL SDK, Linux HLDS installed. Time.
Why would anyone want to compile the plain vanillia HL SDK? It is a good place to start building the Linux toolchain for a HL Mod. The SDK was originally compiled by Valve in Linux with egcs-1.1.2, Which is Not an ANSI C compiler. It worked They sold Half-Life.

step-by-step in XP.
get vmware workstation 6 beta

get RH 9 iso's

get patched HL SDK v2.3
install on on windows host, then copy to VM later, using shared folder.

Better to wait and get this when in the VM.

NOTE: The HL SDK files at are not
ANSI C compliant.

install vmware.
create a new virtual machine.

Select the Appropriate Configuration
Virtual machine configuration
check Custom

Choose the Virtual Machine Hardware Compatibility
Workstation 5

Select a Guest Operating System
check Linux

Virtual machine name
Red Hat Linux 9


Network Type
check Use bridged networking
or NAT

Select I/O Adapter Types
SCSI Adapters check LSI Logic

when finished
click VM, settings. select cdrom, click Use ISO, browse for disc1-iso

click start this virtual machine.

Install RH 9
at the main Red Hat screen where it shows boot:
type: text and press enter.
installation type
choose custom.
package group selection
scroll down check the box by development tools.

start the install. after a while it will prompt for disk2
click VM, settings. select cdrom, click Use ISO, browse for disc2-iso
at the end click to reboot virtual machine.

install vmware tools.
click VM, install vmware tools.
login as root
cd /tmp
mount /dev/cdrom /mnt/cdrom
tar zxvf /mnt/cdrom/VMwareTools-6.0.0-44426.tar.gz
cd vmware-tools-distrib
yes to defaults.

I set window to 1024x768 (option 3)

add a user account.
use the RedHat Main Menu, System Settings, Users and Groups
add user
User Name: username
Password: passwd

logout from gnome desktop
exit from root

login as user
local host login: username
password: passwd

RedHat Main Menu, System Tools, Terminal

Install HLDS
mkdir hlds
cd hlds
chmod +x
type: yes
extracting steam.tar.Z...done

./steam -command update
Checking bootstrapper version ...
Getting version 18 of Steam HLDS Update Tool
Downloading. . . . . . . . . . . .
Steam Linux Client updated, please retry the command

./steam -command update -game valve -dir .
It runs for a while, get a cold drink.
HLDS installation up to date

Get the patched HL SDK
wget [url][/url]
tar zxvf hlsdk-2.3-p3.tar.gz
cd hlsdk-2.3-p3/multiplayer/dlls

edit the Makefile and change CC=gcc to CC=gcc296
Lots of errors. The patched HL SDK is not ANSI-compliant.

It took me a little longer than a half and hour using this guide:

could add a new section for things like isalnum, isspace, isprint.
client.cpp: In function `void Host_Say (edict_t *, int)':
client.cpp: `isprint' undeclared (first use this function)
add <include> "ctype.h" to three files.

gmake builds a
save the original
cp ~hlds/valve/dlls/ ~hlds/valve/dlls/
cp ~hlds/valve/dlls/

cd ~/hlds
./hlds_run +map bounce +sv_lan 1 +ip +port 27016
It works! Can Join from lan.