summaryrefslogtreecommitdiff
path: root/tools/build/v2/engine/execcmd.h
blob: 9d3cff35b2a2f185ddd119caf47efc5a68a63e48 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
/*
 * Copyright 1993, 1995 Christopher Seiwald.
 *
 * This file is part of Jam - see jam.c for Copyright information.
 */

/*
 * execcmd.h - execute a shell script.
 *
 * Defines the interface to be implemented in platform specific implementation
 * modules.
 *
 * 05/04/94 (seiwald) - async multiprocess interface
 */

#ifndef EXECCMD_H
#define EXECCMD_H

#include <time.h>

typedef struct timing_info
{
    double system;
    double user;
    time_t start;
    time_t end;
} timing_info;

void exec_cmd
(
    const char * string,
    void (* func)( void * closure, int status, timing_info *, const char *, const char * ),
    void * closure,
    LIST * shell,
    const char * action,
    const char * target
);

int exec_wait();

void exec_done( void );

#define EXEC_CMD_OK    0
#define EXEC_CMD_FAIL  1
#define EXEC_CMD_INTR  2

#endif