(file) Return to readme.txt CVS log (file) (dir) Up to [Pegasus] / pegasus_unsupported / utils / mash

File: [Pegasus] / pegasus_unsupported / utils / mash / readme.txt (download)
Revision: 1.1, Wed Jan 25 21:24:20 2006 UTC (18 years, 4 months ago) by mike
Branch: MAIN
CVS Tags: HEAD
BUG#: 9999
TITLE: MASH TOOL

DESCRIPTION: New tool to prevent breaking out of test build.

			    MASH (MAke SHell)

INTRODUCTION:
=============

This directory contains the implementation of mash. We use it to provide an 
interactive way of ignoring errors encountered by GNU make, so that we can
continue without breaking out of the build.

For example, consider the following make file:

	all:
		@ ls nosuchfile
		@ echo b


Ordinarily, the first command (ls nosuchfile) will keep the second command 
(echo b) from executing (since there is no file called "nosuchfile"). But by 
making mash your GNU make shell, you may optionally ignore the error and 
continue. For example:

    % make SHELL=/usr/local/bin/mash

    /home2/brasher/bin/mash: ls nosuchfile
    nosuchfile: No such file or directory

    ****************************************************************************
    **
    ** MASH (Make Shell)
    **
    ****************************************************************************

    /home2/brasher/bin/mash: command failed: "ls nosuchfile"

    [i]gnore, [a]bort: _

By pressing 'i', the error is ignored and 0 is returned to GNU make. By
pressing 'a', the error is reported to GNU make as usual, returning whatever
non-zero status the command returned.

This tool was developed to pevent the Pegasus test make from exiting when 
encountering errors. Instead, the user has a chance to continue without 
exiting GNU make.

Mash also has a side-benefit: it echos the command to standard output. This
is helpful since many make systems conceal the underlying command which 
complicates troubleshooting.

EXCLUSIONS:
===========

Sometimes commands are supposed to fail. These can be added to this file so
that they will not be considered by MASH.

	$HOME/.mashexclude

This file contains one command per line. These commands are handled as though
MASH were not in use (i.e., they are passed to sh and the return status is
passed back to GNU make without intervention).


No CVS admin address has been configured
Powered by
ViewCVS 0.9.2