wiki:BuildingFm2

Version 16 (modified by John Small, 14 years ago) (diff)

Add WIPFC change and reformat

Building FileManager/2 (FM/2)

This document explains how to build FM/2 from source.

Getting the Toolchain

The following tools are currently used to build the FM/2 binaries

  • OpenWatcom v1.6 or newer should work. There are no known special setup requirements.
    • We are now using wipfc.exe which is included in OpenWatcom 1.8 or newer. If you have an earlier version of OpenWatcom, then define and set and environment variable, SET USER_IPFC=1, to force the build to use ipfc.exe.
  • We have converted to using the OpenWatcom OS/2 Toolkit. Ensure that your build environment has paths to the OpenWatcom Toolkit ahead of those for IBM's Toolkit. (The IBM Toolkit is on your eComStation CD#2 and you may want a copy of the IBM Toolkit installed for the documentation included in it.)
  • We are now using wrc.exe as the resource compiler. It will be part of OpenWatcom 1.8 or newer. If you have an earlier version of OpenWatcom, the version you want is presently available here.
    • If you need to use RC.EXE instead of WRC.EXE (recommended) please use the following version:
      12-18-97 6:01 868,000 0 RC.EXE
      which reports itself as
      IBM RC (Resource Compiler) Version 5.00.002 Dec 18 1997
      and it is available from Toolkit update for Mozilla
  • lxlite LX compressor. You can get LXLITE.EXE from lxlite from Hobbes

Building the Executables

Use Subversion to pull a copy of the source code distribution into your client workspace. See Getting the Sources for instructions.

The build commands must be run from top directory of your Subversion workspace. The directory will contain the top level makefile.

Build the release version with

  set HIMEM=
  set DEBUG=
  set FORTIFY=
  set USE_RC=
  wmake

The set statements may be omitted if you have not defined the variables in the environment.

Build the debug version with

  wmake DEBUG=1

or

  set DEBUG=1
  set FORTIFY=1
  wmake

When switching between debug and release builds, use the wmake -a switch to force all files to be rebuilt. The current makefiles can not detect a change in the value of the DEBUG variable and will not regenerate files that depend on the DEBUG setting without some assistance.

Once you are familiar with the build process, you can speed up the switch by deleting fm3dll.lrf and the .obj files that you want rebuilt. This will give wmake enough information to do a proper rebuild without the -a switch.

Build options such as DEBUG and FORTIFY may be specified either in the environment or on the command line. Choose one method and use it consistently or you may get unexpected results.

The build outputs are:

  • av2.exe
  • databar.exe
  • dirsize.exe
  • eas.exe
  • fm3.exe
  • fm4.exe
  • global.exe
  • ini.exe
  • killproc.exe
  • sysinfo.exe
  • undel.exe
  • vcollect.exe
  • vdir.exe
  • viewinfs.exe
  • vtree.exe
  • dll\fm3dll.dll
  • dll\fm3res.dll
  • dll\fm3res.str
  • dll\ipf\fm3.hlp
  • internal\mkstr.exe

Compressing Dlls and Exes

Lxlite.exe needs to be in a directory listed in the PATH statement of your config.sys or build enviroment cmd file.

To compress the executables run

wmake lxlite

Packaging a Release

FM/2 is released as a WarpIN package.

The basic process is

  wmake wpi

See WPIBuild for more details.

Building, Compressing, and Packaging with a CMD Script

Open a text editor and add the following lines

set debug=
wmake all && wmake lxlite && wmake wpi

Save the file naming it possibly Build_FM2.cmd. Copy the file to the root of your fm/2 workspace. The script must be run from this directory or it will not find the required files. After the script finishes, open the warpin subdirectory and you should find the WarpIN file in this directory.

Build options

HIMEM

If not defined, fm/2 will be built to use low memory only. If defined, fm/2 will use upper memory for both code and data.

DEBUG

If not defined, a release build will be built. If defined a debug build with be built. Debug builds include support for symbolic debugging.

WARNALL

If not defined, do default compile-time error checking. If defined, do more compile-time error checking. Errors reported by WARNALL are rarely a problem, but it is recommend that WARNALL be used before releasing a production binary.

FORTIFY

If not defined FORTIFY support is omitted. If defined FORTIFY support is enabled. FORTIFY added runtime heap corruption and leak checking. Be sure to use wmake -a when changing this option.

USE_RC

If not defined, build with wrc.exe. If defined, build with rc.exe. wrc.exe is the preferred resource compiler.

USE_IPFC

If not defined, build with wipfc.exe. If defined, build with ipfc.exe. wipfc.exe is the preferred help compiler.