1 /* Copyright 2003. David Abrahams
2  * Distributed under the Boost Software License, Version 1.0.
3  * (See accompanying file LICENSE_1_0.txt or copy at
4  * http://www.boost.org/LICENSE_1_0.txt)
5  */
6 
7 #ifndef NATIVE_H_VP_2003_12_09
8 #define NATIVE_H_VP_2003_12_09
9 
10 #include "config.h"
11 #include "function.h"
12 #include "frames.h"
13 #include "lists.h"
14 #include "object.h"
15 
16 typedef struct native_rule_t
17 {
18     OBJECT * name;
19     FUNCTION * procedure;
20 
21     /* Version of the interface that the native rule provides. It is possible
22      * that we want to change the set parameter for existing native rule. In
23      * that case, version number should be incremented so Boost.Build can check
24      * for the version it relies on.
25      *
26      * Versions are numbered from 1.
27     */
28     int version;
29 } native_rule_t;
30 /* MSVC debugger gets confused unless the native_rule_t typedef is provided. */
31 
32 void declare_native_rule( char const * module, char const * rule,
33     char const * * args, LIST * (*f)( FRAME *, int ), int version );
34 
35 #endif
36