define __KERNEL_STRICT_NAMES to avoid inclusion of kernel types on systems that carry...
[cake.git] / tools / MetaMake / project.h
blob2493fd9e0813679f9b1dfd638487d757b463e3f8
1 /* Include before #ifndef so that Cache is always defined before Project */
2 #include "cache.h"
4 #ifndef __MMAKE_PROJECT_H
5 #define __MMAKE_PROJECT_H
7 /* MetaMake - A Make extension
8 Copyright © 1995-2004, The AROS Development Team. All rights reserved.
10 This file is part of MetaMake.
12 MetaMake is free software; you can redistribute it and/or modify
13 it under the terms of the GNU General Public License as published by
14 the Free Software Foundation; either version 2, or (at your option)
15 any later version.
17 MetaMake is distributed in the hope that it will be useful,
18 but WITHOUT ANY WARRANTY; without even the implied warranty of
19 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 GNU General Public License for more details.
22 You should have received a copy of the GNU General Public License
23 along with GNU CC; see the file COPYING. If not, write to
24 the Free Software Foundation, 59 Temple Place - Suite 330,
25 Boston, MA 02111-1307, USA. */
27 typedef struct
29 Node node;
31 char * maketool;
32 char * defaultmakefilename;
33 char * srctop;
34 char * buildtop;
35 char * defaulttarget;
36 char * genmakefilescript;
37 char * globalvarfile;
38 char * genglobalvarfile;
40 int readvars;
42 List genmakefiledeps;
43 List ignoredirs;
44 List vars;
45 List extramakefiles;
47 Cache * cache;
49 Project;
51 extern void initprojects (void);
52 extern void expungeprojects (void);
53 extern Project * findproject (const char * pname);
54 extern Project * getfirstproject (void);
55 extern void maketarget (Project * prj, char * tname);
56 extern int execute (Project * prj, const char * cmd, const char * in,
57 const char * out, const char * args);
59 #endif /* __MMAKE_PROJECT_H */