xref: /haiku/headers/build/os/BeBuild.h (revision 220d04022750f40f8bac8f01fa551211e28d04f2)
1 /*
2  * Copyright 2007-2010, Haiku, Inc. All Rights Reserved.
3  * Distributed under the terms of the MIT License.
4  */
5 #ifndef _BE_BUILD_H
6 #define _BE_BUILD_H
7 
8 
9 #include <config_build/HaikuConfig.h>
10 
11 
12 #define B_BEOS_VERSION_4				0x0400
13 #define B_BEOS_VERSION_4_5				0x0450
14 #define B_BEOS_VERSION_5				0x0500
15 
16 #define B_BEOS_VERSION					B_BEOS_VERSION_5
17 #define B_BEOS_VERSION_MAUI				B_BEOS_VERSION_5
18 
19 /* Haiku (API) version */
20 #define B_HAIKU_VERSION_BEOS			0x00000001
21 #define B_HAIKU_VERSION_BONE			0x00000002
22 #define B_HAIKU_VERSION_DANO			0x00000003
23 #define B_HAIKU_VERSION_1_ALPHA_1		0x00000100
24 #define B_HAIKU_VERSION_1_PRE_ALPHA_2	0x00000101
25 #define B_HAIKU_VERSION_1				0x00010000
26 
27 #define B_HAIKU_VERSION					B_HAIKU_VERSION_1_PRE_ALPHA_2
28 
29 /* Haiku ABI */
30 #define B_HAIKU_ABI_MAJOR				0xffff0000
31 #define B_HAIKU_ABI_GCC_2				0x00020000
32 #define B_HAIKU_ABI_GCC_4				0x00040000
33 
34 #define B_HAIKU_ABI_GCC_2_ANCIENT		0x00020000
35 #define B_HAIKU_ABI_GCC_2_BEOS			0x00020001
36 #define B_HAIKU_ABI_GCC_2_HAIKU			0x00020002
37 
38 #if __GNUC__ == 2
39 #	define B_HAIKU_ABI					B_HAIKU_ABI_GCC_2_HAIKU
40 #elif __GNUC__ == 3 || __GNUC__ == 4
41 #	define B_HAIKU_ABI					B_HAIKU_ABI_GCC_4
42 #else
43 #	error Unsupported gcc version!
44 #endif
45 
46 
47 #define B_HAIKU_BITS					__HAIKU_ARCH_BITS
48 #define B_HAIKU_PHYSICAL_BITS			__HAIKU_ARCH_PHYSICAL_BITS
49 
50 #ifdef __HAIKU_ARCH_64_BIT
51 #	define B_HAIKU_64_BIT				1
52 #else
53 #	define B_HAIKU_32_BIT				1
54 #endif
55 
56 #ifdef __HAIKU_ARCH_PHYSICAL_64_BIT
57 #	define B_HAIKU_PHYSICAL_64_BIT		1
58 #else
59 #	define B_HAIKU_PHYSICAL_32_BIT		1
60 #endif
61 
62 #ifdef __HAIKU_BEOS_COMPATIBLE
63 #	define B_HAIKU_BEOS_COMPATIBLE		1
64 #endif
65 
66 
67 #define _UNUSED(argument) argument
68 #define _PACKED __attribute__((packed))
69 #define _PRINTFLIKE(_format_, _args_) \
70 	__attribute__((format(__printf__, _format_, _args_)))
71 #define _EXPORT
72 #define _IMPORT
73 
74 #define B_DEFINE_SYMBOL_VERSION(function, versionedSymbol)	\
75 	__asm__(".symver " function "," versionedSymbol)
76 
77 
78 #define _IMPEXP_ROOT
79 #define _IMPEXP_BE
80 
81 
82 #endif	/* _BE_BUILD_H */
83