With HotBasic 5.2a and later, the -o switch automatically
calls hotoptim.exe and then compiles the result!

UPDATES:
2/2/08 HotOptimize 1.0 will not remove SUBS or FUNCTIONS
with names ending in _Set, _Get or _Init, used for 
PROPERTY SET and GET and initialize-on-DIM procedures
respectively.

=====
HotOptimize removes (1) DECLARE ... LIB statements for 
unused API calls and (2) unused SUB and FUNCTION code
blocks.  This optimization can be especially useful to
Custom Object and other .inc file writers and users,
who may wish to create a comprehensive treatment with
many declare and procedure code blocks, but who do not
want user programs to compile unused items in particular
applications. 

HotOptimize does two passes.  The second pass is to
remove SUB or FUNCTION blocks in source code that were 
not removed because they were called in a procedure
which was removed in the first pass.

If you have hotoptn.exe (Windows) or hotoptn (Linux),
in your HotBasic directory, where n is 0 to 9, hotoptim
will run one or more of these additional pre-processing
programs in the order 0 to 9 (if they exist), with the
file pathname as the first command-line argument
(COMMAND$(1)).

1. unzip hotopt.zip to your hotbasic directory
2. for Linux, you may have to chmod 755 for hotoptim
   to make it executable
3. the overall compile-time may be greater than a regular
   compile; therefore, during development, you might prefer
   to do regular compile and reserve use of hotopt to
   create shorter .exe files for distribution.   
