1/* Definition of data structures describing shell commands for GNU Make.
2Copyright (C) 1988, 1989, 1990, 1991, 1992, 1993, 1994, 1995, 1996, 1997,
31998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006 Free Software
4Foundation, Inc.
5This file is part of GNU Make.
6
7GNU Make is free software; you can redistribute it and/or modify it under the
8terms of the GNU General Public License as published by the Free Software
9Foundation; either version 2, or (at your option) any later version.
10
11GNU Make is distributed in the hope that it will be useful, but WITHOUT ANY
12WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
13A PARTICULAR PURPOSE.  See the GNU General Public License for more details.
14
15You should have received a copy of the GNU General Public License along with
16GNU Make; see the file COPYING.  If not, write to the Free Software
17Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.  */
18
19/* Structure that gives the commands to make a file
20   and information about where these commands came from.  */
21
22struct commands
23  {
24    struct floc fileinfo;	/* Where commands were defined.  */
25    char *commands;		/* Commands text.  */
26    unsigned int ncommand_lines;/* Number of command lines.  */
27    char **command_lines;	/* Commands chopped up into lines.  */
28    char *lines_flags;		/* One set of flag bits for each line.  */
29    int any_recurse;		/* Nonzero if any `lines_recurse' elt has */
30				/* the COMMANDS_RECURSE bit set.  */
31  };
32
33/* Bits in `lines_flags'.  */
34#define	COMMANDS_RECURSE	1 /* Recurses: + or $(MAKE).  */
35#define	COMMANDS_SILENT		2 /* Silent: @.  */
36#define	COMMANDS_NOERROR	4 /* No errors: -.  */
37
38extern void execute_file_commands PARAMS ((struct file *file));
39extern void print_commands PARAMS ((struct commands *cmds));
40extern void delete_child_targets PARAMS ((struct child *child));
41extern void chop_commands PARAMS ((struct commands *cmds));
42extern void set_file_variables PARAMS ((struct file *file));
43