Index of /atarilibrary/atari_cd01/APPS/MODULA.154/MAKEMF

      Name                    Last modified       Size  Description

[DIR] Parent Directory 11-May-2007 20:48 - [TXT] MAKEFILE 21-Jul-1989 05:59 1k [TXT] MAKEFORE.DEF 21-Jul-1989 05:59 2k [TXT] MAKEFORE.MOD 21-Jul-1989 05:59 2k [TXT] MAKELIBR.DEF 21-Jul-1989 05:59 1k [TXT] MAKELIBR.MOD 21-Jul-1989 05:59 3k [TXT] MAKEMAKE.MOD 21-Jul-1989 06:00 10k [TXT] MAKEPARS.DEF 21-Jul-1989 06:00 1k [TXT] MAKEPARS.MOD 21-Jul-1989 06:00 5k [TXT] MAKETOKE.MOD 21-Jul-1989 06:01 6k

MODULE MakeMake;

  (*
   * MAKEMAKE.  Create a MAKEFILE for a MODULA-2 program.
   *
   * Written by Steve Tynor, 30 September 1986.
   *            UUCP  : tynor@gitpyr
   *            USNAIL: 2550 Akers Mill Rd. T-2, Atlanta GA. 30339
   *
   * Permission is granted to distribute, copy and change this program as long
   * as this notice remains...
   *)

  (*
   * MAKEMAKE.  Create a MAKEFILE for a MODULA-2 program.
   * Usage:
   *      MAKEMAKE "main-module-modulename"
   *
   *    Even though module dependencies are explicit in MODULA-2, it can still
   * be quite a chore to figure them out and create a MAKEFILE.  This program 
   * reads the text file associated with the module name given on the command 
   * line and recursively checks dependencies for all imported files.  It then
   * creates a MAKEFILE suitable for use with the Unix MAKE utility.  If a 
   * file is not found and is not a recognized library module, then the
   * MAKEFILE will include a comment:
   *     ## File NOT Found ##
   * on the right hand side of the dependency.
   *
   * This program was written on the Atari ST using TDI Modula-2. 
   *
   * BUGS:
   *     the CommandLine module dies when a null command line is seen.  
   * Unfortunately, I no longer have the source to the module, so I can't
   * fix it.  This bug also seems to consider a command line consisting of
   * a single character as a reason for dieing.
   *
   * Suggestions for porting to another compiler:
   *
   *    1) module CommandLine is non-standard.  It exports 2 procedures:
   *          PROCEDURE GetArgument (    num      : CARDINAL; 
   *                                 VAR filename : ARRAY OF CHAR);
   *          PROCEDURE NumberOfArguments() : CARDINAL;
   *       they do just what their names imply. (ie. like C's argv, argc)
   *
   *    2) the IMPLEMENTATION MODULE MakeLibraries will have to be edited to
   *       reflect the standard library that your compiler knows about.  List
   *       any modules that you don't want included in your MAKEFILE.  Library
   *       modules are listed in the MAKEFILE, but are commented out.
   *
   *    3) the procedure ModulenameToFilename in MakeParse will have to be
   *       modified so that it creates the correct filename for your machine.
   *
   *    4) if your MAKE program has default MODULA-2 rules, set the constant
   *       MAKEHasModulaRules (in this module) to TRUE.  This will prevent
   *       MAKEMAKE from producing remake lines. 
   *    
   *    5) the procedure WriteFilename takes a parameter: extension.  Trace
   *       all the calls to this function and make sure the proper extentions
   *       are used.  in TDI Modula, '.DEF' = definition module text
   *                                 '.MOD' = implementation module text
   *                                 '.SYM' = symbol file (compiled DEF)
   *                                 '.LNK' = symbol file (compiled MOD)
   *)