### Download the following packages:

Base EMX package.

- EMX Runtime

### EMX/GCC Development Packages

- emxdev1.zip
- emxdev2.zip
- gppdev1.zip
- gnudev1.zip
- gnudev2.zip
- bsddev.zip
- ulsemx.zip
- emxfix04.zip (or more current fix level) This file needs to be unzipped after everything above it.

### Required Tools

- GNU make (make-3_79_2a1-r2-bin.zip)

- make.exe

- GNU file utilities (os2_fileutils-3.16.zip)

- Everything in FILEUTILS-3.16\BIN and FILEUTILS-3.16\DLL.

- gettext-0_11_5-r2-bin.zip

- intl.dll

- Info-ZIP (Zip and UnZip)

- unzip.exe

### GCC 3.2.1

- emx-strt-fix-0.0.2.zip
- binutils-os2-2.11.2-bin.zip
- gcc-os2-3.2.1-beta-gcc.zip
- gcc-os2-3.2.1-beta-gpp.zip

(See tip at bottom)
First you have to have the EMX base package (or runtime) installed.
To do this simply unzip emxrt to where you want the emx directory. If emx doesn't exist then it will be created if you are using unzip or if using pkzip use the -d to keep the directory structure (this is true throughout). You can then add the emx\dll directory to your libpath in your config.sys (recommended as there are many apps that use it but not required).
Next the EMX/GCC development package has to be installed. to do this unzip each of these in the same directory that you unzipped emxrt in (it will unzip into emx and subdirectories). If you get a message about overwriting files you should overwrite all (this is true throughout). The last file unzipped should be emxfix04 (or more current if one should become available). Replace all files (important).
We need to unzip the required tools. My suggestion is to create a temporary directory to unzip them into. Then copy the necessary files into a directory such as tools under emx. The files that are needed are:
make.exe, intl.dll, and everything in FILEUTILS-3.16\BIN and FILEUTILS-3.16\DLL.
At this point we need emx\bin in the path and emx\dll to be in libpath (I have placed emx\bin into my path and emx\dll in libpath in config.sys but this is not required) and the tools directory to be in the path and libpath.
This can be accomplished without rebooting by
path=X:\emx\bin;X:\emx\tools;%path%
set beginlibpath=X:\emx\dll;X:\emx\tools
Where X: is the drive that you are installing emx on (emx doesn't have to be on the root so if you put it into another directory, compilers we'll say, it would be X:\compilers\emx\bin) and X:\path\to\make.exe is the path where you put make.exe (if you put it on in emxtools for instance on the L: drive it would be L:\emxtools).
`Now go into EMX\LIB\ and run OMFLIBS.CMD. (This step is omitted in the instructions for setting up gcc for mozilla and when I asked about it I was told it shouldn't be necessary but I seemed to have better results when I did this which is in the instructions I got for setting up gcc for use with Odin).
Next we need to unzip the GCC 3.2.1 packages. (It is critical that this is done after the above as these files will replace some of the files from the original packages and you will end up backleveling some of the files if you do these first).
Unzip these just as you did the earlier ones, above the emx directory and they will expand into the emx directory. Replace all files (important).
` Now, copy all of the file in EMX\BIN.NEW to EMX\BIN, and the delete EMX\BIN.NEW (Note: This will make GCC 3.2.1 your only compiler, replacing GCC 2.8.1. If you wish to keep both 3.2.1 and 2.8.1, then do not copy the files in BIN.NEW to BIN. However, if you are using GCC 2.8.1 already then you probably know enough about this that you know how to set your path to use the one you want).
At this point we again need to make sure that EMX\BIN is in the path as well as making sure make.exe is in the path and that EMX\DLL is in the path.
(For some projects you may also need EMX/BIN to be in the path but this would probably mean you are using a unix type shell and is beyond what I can tell you much about).
Type 'gcc -v' and make sure it says you are running version 3.2.1. Go to EMX\LIB\ and type 'make'. Then go to EMX\LIB\GCC-LIB\I386-PC-OS2-EMX\3.2.1\and type 'make'.
At this point you should be good to go. If you did not choose to alter your config.sys then there is a file in EMX\BIN that you can alter to your needs,
it is newgcc.cmd. You would need to correct the path and if you didn't alter the libpath (which I recommend due to the number of apps that require it) add the set beginlipath statement to it to point to your EMX\DLL.
There are some exe files in emx\lib\gcc-lib\i386-pc-os2-emx\3.2.1 that I copied to the EMX\BIN directory as they are newer than the ones already there. I do not know if I needed to but it has not hurt as far as I can tell and this way I know which ones are being used.
In reference to the c++ for eCS\OS/2 class the command that is used for compiling these files is g++.
For listing 2.1 for example:
I created a file myfirst.cpp
then ran:
g++ myfirst.cpp
it created myfirst.exe.
ACKNOWLEDGEMENTS:
These instructions are largely compiled from the following sources:
http://www.mozilla.org/ports/os2/gccsetup.html
http://groups.yahoo.com/group/win32os2-wai/message/1599

### TIP:

When I downloaded these files I downloaded EMX runtime into one directory, then the EMX/GCC files minus the emxfix04 into another, then emxfix04 into another, and the GCC 3.2.1 files into another (tools go into yet another directory but seperate from these).
This way I am able to restore emx quickly if I need to. I am able to go to where I want to install emx and type unzip d:\download\emx\*
then unzip d:\download\emx\gcc\* then unzip d:\download\emx\gcc\fix\*, run the omflibs then unzip the final piece by typing d:\download\emx\gcc\3.2.1\* and then running the required makes. This is somewhat easier than it would other wise be by using the up arrow so I avoid quite a bit of the typing.