#ifndef _JAM_COMMAND_HPP_ #define _JAM_COMMAND_HPP_ #include "Rules.hpp" /* * 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 */ namespace Jam { class Command { public: static Command* CreateInstance( RULE *rule, /* rule (referenced) */ Jam::List *targets, /* $(<) (freed) */ Jam::List *sources, /* $(>) (freed) */ Jam::List *shell ); /* $(SHELL) (freed) */ static void DeleteInstance(Command* pInstance); Command* GetNext(void) const; public: Command *next; Command *tail; /* valid on in head */ RULE *rule; /* rule->actions contains shell script */ Jam::List *shell; /* $(SHELL) value */ LOL args; /* LISTs for $(<), $(>) */ char buf[ MAXLINE ]; /* actual commands */ } ; } #endif _JAM_COMMAND_HPP_
# | Change | User | Description | Committed | |
---|---|---|---|---|---|
#5 | 1162 | bob_summerwill | Converted LIST into a List class, with all static methods. | ||
#4 | 1154 | bob_summerwill | Converted Command into a class. | ||
#3 | 1132 | bob_summerwill | All of the non-generated, non-platform-specific files are now mixed-case C++ source files. | ||
#2 | 1126 | bob_summerwill | #include dependencies between headers are now modelled explicitly, with #includes as required in header files, rather than it being a client-code responsibility. | ||
#1 | 1125 | bob_summerwill | Renamed Command.h as Command.hpp. | ||
//guest/bob_summerwill/jam/src/command.h | |||||
#1 | 1106 | bob_summerwill | Integrated Jam from "public" to "guest/bob_summerwill". | ||
//guest/perforce_software/jam/src/command.h | |||||
#2 | 486 | Perforce staff |
Jam 2.3. See RELNOTES for a list of changes from 2.2.x. Just about every source file was touched when jam got ANSI-fied. |
||
#1 | 2 | laura | Add Jam/MR 2.2 source |