Index of /atarilibrary/atari_cd01/APPS/MODULA.154/MAKEMF
Name Last modified Size Description
Parent Directory 11-May-2007 20:48 -
MAKEFILE 21-Jul-1989 05:59 1k
MAKEFORE.DEF 21-Jul-1989 05:59 2k
MAKEFORE.MOD 21-Jul-1989 05:59 2k
MAKELIBR.DEF 21-Jul-1989 05:59 1k
MAKELIBR.MOD 21-Jul-1989 05:59 3k
MAKEMAKE.MOD 21-Jul-1989 06:00 10k
MAKEPARS.DEF 21-Jul-1989 06:00 1k
MAKEPARS.MOD 21-Jul-1989 06:00 5k
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)
*)