mirror of
https://review.haiku-os.org/buildtools
synced 2026-02-04 07:53:14 +01:00
Moved jam into the buildtools modules, where it belongs.
git-svn-id: file:///srv/svn/repos/haiku/buildtools/trunk@15729 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
59
jam/command.h
Normal file
59
jam/command.h
Normal file
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright 1994 Christopher Seiwald.
|
||||
*
|
||||
* This file is part of Jam - see jam.c for Copyright information.
|
||||
*/
|
||||
|
||||
/*
|
||||
* command.h - the CMD structure and routines to manipulate them
|
||||
*
|
||||
* Both ACTION and CMD contain a rule, targets, and sources. An
|
||||
* ACTION describes a rule to be applied to the given targets and
|
||||
* sources; a CMD is what actually gets executed by the shell. The
|
||||
* differences are due to:
|
||||
*
|
||||
* ACTIONS must be combined if 'actions together' is given.
|
||||
* ACTIONS must be split if 'actions piecemeal' is given.
|
||||
* ACTIONS must have current sources omitted for 'actions updated'.
|
||||
*
|
||||
* The CMD datatype holds a single command that is to be executed
|
||||
* against a target, and they can chain together to represent the
|
||||
* full collection of commands used to update a target.
|
||||
*
|
||||
* Structures:
|
||||
*
|
||||
* CMD - an action, ready to be formatted into a buffer and executed
|
||||
*
|
||||
* External routines:
|
||||
*
|
||||
* cmd_new() - return a new CMD or 0 if too many args
|
||||
* cmd_free() - delete CMD and its parts
|
||||
* cmd_next() - walk the CMD chain
|
||||
*/
|
||||
|
||||
/*
|
||||
* CMD - an action, ready to be formatted into a buffer and executed
|
||||
*/
|
||||
|
||||
typedef struct _cmd CMD;
|
||||
|
||||
struct _cmd
|
||||
{
|
||||
CMD *next;
|
||||
CMD *tail; /* valid on in head */
|
||||
RULE *rule; /* rule->actions contains shell script */
|
||||
LIST *shell; /* $(SHELL) value */
|
||||
LOL args; /* LISTs for $(<), $(>) */
|
||||
char buf[ MAXLINE ]; /* actual commands */
|
||||
} ;
|
||||
|
||||
CMD *cmd_new(
|
||||
RULE *rule, /* rule (referenced) */
|
||||
LIST *targets, /* $(<) (freed) */
|
||||
LIST *sources, /* $(>) (freed) */
|
||||
LIST *shell, /* $(SHELL) (freed) */
|
||||
int maxline ); /* max line length */
|
||||
|
||||
void cmd_free( CMD *cmd );
|
||||
|
||||
# define cmd_next( c ) ((c)->next)
|
||||
Reference in New Issue
Block a user