home *** CD-ROM | disk | FTP | other *** search
/ ftp.barnyard.co.uk / 2015.02.ftp.barnyard.co.uk.tar / ftp.barnyard.co.uk / cpm / walnut-creek-CDROM / CPM / CPM3 / CPMMAKE.ARK / MAKE.DOC < prev    next >
Text File  |  1986-08-31  |  5KB  |  165 lines

  1.  
  2.  
  3.   MAKE(CPM+)                               MAKE(CPM+)
  4.  
  5.     
  6.     SYNTAX
  7.  
  8.         make [-f makefile] [-nprst] [macro=val ...] [target(s) ...]
  9.  
  10.     WHERE
  11.  
  12.         -i means don't continue if an error is encountered
  13.  
  14.         -f specifies that the following argument is the name of
  15.            a makefile to be used instead of default "MAKEFILE.DAT"
  16.            or "MAKEFILE".
  17.  
  18.         -n means don't execute the commands, just write the ones that
  19.            would be executed to the standard output. 
  20.  
  21.         -p Print all macros & targets
  22.  
  23.         -r Do not use inbuilt rules
  24.  
  25.         -s Make silently
  26.  
  27.         -t Touch files instead of making them
  28.  
  29.     "macro" -  is a macro name, and...
  30.  
  31.       "val" -  is the string value to set it to.  Use quotes around
  32.                the "macro=val" if there are imbedded spaces.
  33.  
  34.  
  35.     DESCRIPTION
  36.  
  37.         This program is a slightly simplified clone of the UNIX
  38.         (tm of AT&T) utility of the same name.  Dependancy
  39.         information is extracted from a makefile and acted upon.
  40.  
  41.         This version requires CP/M-80 version 3.0 ("CP/M PLUS")
  42.         with time-of-day-clock implemented.  Also the file timestamps
  43.         must be "turned on". Current time-of-day call to CP/M is
  44.             also used.  Note that "CP/M" is a trademark of Digital
  45.          Research.
  46.  
  47.  
  48.  
  49.     MAKEFILE FORMAT
  50.  
  51.         For general usage, refer to a UNIX(tm) man-page.
  52.  
  53.             "Make" without parameters makes the first target in the
  54.         makefile.
  55.  
  56.         The default name of the 'makefile' is 'MAKEFILE.DAT'
  57.         or 'MAKEFILE' in that order.  If the '-f' option is used,
  58.         the default makefile is not processed.
  59.     
  60.         Any blank lines in the 'makefile(s)' are ignored, as are
  61.         lines that have a "#" in the first column.
  62.  
  63.  
  64.  
  65.  
  66.   MAKE(CPM+)            -2-               MAKE(CPM+)
  67.  
  68.     
  69.     
  70.          Lines starting with a tab character are 'howto'
  71.         lines, and consist of a command name followed by arguments.
  72.  
  73.         Any other line is a 'dependency' line.  'Dependency'
  74.         lines consist of a filename followed by a (possibly empty)
  75.         list of dependent filenames.  A colon is required after
  76.         the target filename.
  77.     
  78.          'Howto' lines apply to the most    recently preceding 
  79.         'dependency' line.  It is improper for     a 'howto' line
  80.          to precede the first 'dependency' line.
  81.  
  82.         Lines ending with "\" join the next-line to the current
  83.         one with all but one-character of the next-line's leading
  84.         whitespace removed.
  85.  
  86.  
  87.     SIDE EFFECTS
  88.  
  89.         This program works by producing a temporary file "MAKE@@@.SUB"
  90.         then chaining to it for execution of the command list.  This
  91.         file then deletes itself upon successful completion.  Should
  92.         the execution be aborted, then this file will remain
  93.         in the file system (but will not harm later invocations of
  94.         make).
  95.  
  96.         Everything has been made case-independent (CP/M forces command
  97.         lines upper case.  That makes this case-independence a
  98.         requirement.)
  99.  
  100.         BUGS
  101.         The -i option is opposite of "normal" so that error codes
  102.         are normally ignored.  If the -i option is used, colons
  103.         will proceed commands that aren't to execute after an
  104.         error.  This sortof almost works in CP/M Plus.  To be
  105.         made to work three things need to be done. 1) an RSX
  106.         written that makes a compiler(etc) set the error flag (should
  107.         be easy to do). 2) Keep CP/M 3.0 and/or the CCP from resetting
  108.         the error flag on each command that is executed (patch
  109.         somewhere?), and 3) Let the ":" exclusion work in front
  110.         of .SUB files as well as .COM files (patch somewhere?).
  111.         Discription of the ":" is in the CP/M Plus Programmer's
  112.         Guide in the description of bdos function 108.
  113.  
  114.  
  115.  
  116.  
  117.  
  118.   MAKE(CPM+)            -3-                MAKE(CPM+)
  119.  
  120.     
  121.     
  122.     RULES
  123.         The built in rules currently are these:
  124.         
  125.         ".o" files depend on ".c" files and are made by:
  126.             $(CCC) $(CFLAGS) $(CWHICH)
  127.             
  128.             where:
  129.                 CCC    = cc-c   (mdk's submit file)
  130.                 CFLAGS =     (they are in cc-c.sub)
  131.                 CWHICH = $*     (target's basename)
  132.  
  133.  
  134.         ".rel" files depend on ".asm" files and are made by:
  135.             $(ASM) $(ASMWHICH) $(ASMFLAGS)
  136.  
  137.             where:
  138.                 ASM      = rmac
  139.                 ASMWHICH = $*
  140.                 ASMFLAGS = $$PZ SZ
  141.  
  142.         Note: These macros can be redefined in the makefile.
  143.  
  144.  
  145.  
  146.     AUTHOR
  147.  
  148.         Originally written for "EON" (whatever that is).
  149.         This program was originally posted by, and presumably
  150.         written by:
  151.  
  152.            Neil Russell
  153.            Organization: TIME. Office Computers, Sydney, Australia
  154.            UUCP:  ...!seismo!munnari!tictoc.oz!caret
  155.         
  156.         The port to CP/M 3.0 consists of numerous small and medium
  157.         modifications seemingly everywhere. That plus the generation
  158.         of this psuedo-man page was done by:
  159.  
  160.            Michael D. Kersenbrock
  161.            Aloha, Oregon
  162.            UUCP: ...!tektronix!copper!michaelk
  163.  
  164.  
  165.