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