Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
freebsd
GitHub Repository: freebsd/freebsd-src
Path: blob/main/contrib/bmake/meta.h
39478 views
1
/* $NetBSD: meta.h,v 1.15 2025/08/04 03:47:26 sjg Exp $ */
2
3
/*
4
* Things needed for 'meta' mode.
5
*/
6
/*
7
* Copyright (c) 2009-2010, Juniper Networks, Inc.
8
*
9
* Redistribution and use in source and binary forms, with or without
10
* modification, are permitted provided that the following conditions
11
* are met:
12
* 1. Redistributions of source code must retain the above copyright
13
* notice, this list of conditions and the following disclaimer.
14
* 2. Redistributions in binary form must reproduce the above copyright
15
* notice, this list of conditions and the following disclaimer in the
16
* documentation and/or other materials provided with the distribution.
17
* 3. Neither the name of the copyright holders nor the names of its
18
* contributors may be used to endorse or promote products derived
19
* from this software without specific prior written permission.
20
*
21
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
22
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
23
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
24
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
25
* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
26
* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
27
* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
28
* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
29
* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
30
* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
31
* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
32
*/
33
34
typedef struct BuildMon {
35
char meta_fname[MAXPATHLEN];
36
struct filemon *filemon;
37
int mon_fd;
38
FILE *mfp;
39
} BuildMon;
40
41
struct Job;
42
43
void meta_init(void);
44
void meta_finish(void);
45
void meta_mode_init(const char *);
46
void meta_job_start(struct Job *, GNode *);
47
void meta_job_child(struct Job *);
48
void meta_job_parent(struct Job *, pid_t);
49
int meta_job_fd(struct Job *) MAKE_ATTR_USE;
50
int meta_job_event(struct Job *) MAKE_ATTR_USE;
51
void meta_job_error(struct Job *, GNode *, bool, int);
52
void meta_job_output(struct Job *, const char *, size_t);
53
int meta_cmd_finish(void *);
54
int meta_job_finish(struct Job *);
55
bool meta_oodate(GNode *, bool) MAKE_ATTR_USE;
56
void meta_compat_start(void);
57
void meta_compat_child(void);
58
void meta_compat_parent(pid_t);
59
60
extern bool useMeta;
61
62