-----------------------
Small Toolkit for MacOS (CFM Carbon)
(contact Frank Condello <pox@planetquake.com> with questions regarding this
port)


-----------------------
Compiling Notes:

"smallkit.mcp" is a CodeWarrior 8 project file with both release and debug
targets for the "sc" compiler, the "srun" simple runtime, the "sdbg" command
line debugger, and an "AMX" static library that allows you to quickly embed the
Small abstract machine in other projects. Debug builds should only be used for
troubleshooting or with the regression tests (they are "debug" both in the sense
that they use target settings that facilitate debugging the applications
themselves through CodeWarrior, and enable runtime assertions within the Small
Toolkit itself).

"MAC_CFMCARBON/mac_source/AMXCommonPrefix.h" contains compile-time switches that
affect the abstract machine, while "MAC_CFMCARBON/mac_source/CommonPrefix.h"
contains similar options for the compiler (see the Small reference for usage).

There is no shared library target for AMX included in this distribution - it's
not difficult to make one if needed, but it would require that you either merge
AMX with an MSL shared library, or have runtime dependancies on MSL (I find it's
less of a hassle to just link against a static AMX library).

The default builds of srun|sdbg|AMX.Lb contain both the floating and fixed point
math modules. You'll need to comment out the #define(s) in
"MAC_CFMCARBON/mac_source/AMXCommonPrefix.h", and remove "fixed.c" and/or
"float.c" from the target(s) to compile without this functionality. I don't
really see a reason why anyone would need to do this when using AMX in a Mac
application (the overhead is tiny as it is).

I would love to see a PPC assembler port of the x86ASM and JIT abstract
machines, but my assembler knowledge is currently nil (and that's not likely to
change anytime soon).

NOTE: All Mac binaries build into "MAC_CFMCARBON/BIN/".


-----------------------
General Mac Notes:

The applications have only been tested on Mac OS 9.2.2 and Mac OS X 10.1.5 - 10.3.
I suspect they'll require MacOS8.1 with CarbonLib 1.2.5 at a minimum, but YMMV...

The current builds only follow native Mac file paths (colon separators) and all
paths originate in the same directory as the application (which would be ":").

The "-D" (active directory) compiler arg has no affect on the Mac.

sc works explicitly with DOS formatted .sma files, but Mac files "just work"
(since "\r" is part of DOS's "\r\n")

Unix formatted ("\n") .sma files will NOT work. This kinda blows for OSX (in
principle), but most Mac text editors handle all formats effortlessly, so it's
not really a big deal.

CLI args are typed without spaces (i.e. "-i:include:" NOT "-i :include:"). This
is just how it works, though it may be in contrast to what one is used to. You
can use either "-" or "/" to specify args.

An sc config file is included in "MAC_CFMCARBON/BIN/" as an example. It points
to the "INCLUDES" folder two levels up allowing .sma files to be compiled from
within the BIN folder (e.g. ":::EXAMPLES:hello.sma"). If you feel the need to
change the compiler application's name from "sc" for any reason, note that the
config file must be named to match. A config file for the debug sc build would
be "sc_D.cfg" for example.

SIOUX uses up a lot of cycles to display text... more accurate run timings can
be had by routing the console output to a file instead.