M3BUNDLE(1)                                                        M3BUNDLE(1)

       m3bundle - package source files into M3 object

       m3bundle -name n -element e1 path1 [-element ei pathi]...

       m3bundle -FcmdFile

       m3bundle  packages  up  arbitrary  files  so that their contents can be
       retrieved by a Modula-3 program at runtime without accessing  the  file
       system.   m3bundle works by generating an interface (.i3) and implemen-
       tation (.m3) file.  The implementation contains the bits from the files
       that  are  being  bundled;  the interface provides a way to access this

       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:

          INTERFACE n;
          IMPORT Bundle;
          PROCEDURE Get(): Bundle.T;
          END n;

       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.
       Greg Nelson

       Marc H. Brown added support for large files and revamped the internals.

       Eric Muller added -F flag
       Greg Nelson and Paul Mcjones