m3bundle packages up arbitrary files so that their contents can be retrieved by a Modula-3 program at runtime without accessing the file
m3bundle works by generating an interface (.i3) and
implementation (.m3) file. The implementation contains the bits from
the files that are being bundled; the interface provides a way to
access this information.
In the first form of the command above,
n is the name of the source module to be produced by m3bundle
path_i is the path name of a file to be bundled
e_i is the name of the resulting text reader
That is, the command produces a Modula-3 interface n.i3 and module
n.m3 implementing "n". The interface n.i3 has the form:
PROCEDURE Get(): Bundle.T;
A programmer can then use the Bundle interface to retrieve
elements from the Bundle.T returned by Get.
The second form of the m3bundle command allows you to specify the
parameters in the file named cmdFile. This is needed when bundling
lots (i.e., hundreds) of files, since Unix imposes a limit on the size
of arguments to a shell command.