17745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner// Copyright 2014 The Android Open Source Project
27745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner//
37745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner// This software is licensed under the terms of the GNU General Public
47745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner// License version 2, as published by the Free Software Foundation, and
57745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner// may be copied, distributed, and modified under those terms.
67745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner//
77745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner// This program is distributed in the hope that it will be useful,
87745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner// but WITHOUT ANY WARRANTY; without even the implied warranty of
97745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
107745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner// GNU General Public License for more details.
117745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner
127745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner#ifndef ANDROID_UTILS_COMPILER_H
137745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner#define ANDROID_UTILS_COMPILER_H
147745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner
157745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner#ifdef __cplusplus
167745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner#define ANDROID_BEGIN_HEADER extern "C" {
177745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner#define ANDROID_END_HEADER   }
187745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner#else
197745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner#define ANDROID_BEGIN_HEADER /* nothing */
207745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner#define ANDROID_END_HEADER  /* nothing */
217745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner#endif
227745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner
237891dd35fa2439a70f43ab8572778a398365bf24David 'Digit' Turner// ANDROID_GCC_PREREQ(<major>,<minor>) will evaluate to true
247891dd35fa2439a70f43ab8572778a398365bf24David 'Digit' Turner// iff the current version of GCC is <major>.<minor> or higher.
257891dd35fa2439a70f43ab8572778a398365bf24David 'Digit' Turner#if defined(__GNUC__) && defined(__GNUC_MINOR__)
267891dd35fa2439a70f43ab8572778a398365bf24David 'Digit' Turner# define ANDROID_GCC_PREREQ(maj, min) \
277891dd35fa2439a70f43ab8572778a398365bf24David 'Digit' Turner         ((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
287891dd35fa2439a70f43ab8572778a398365bf24David 'Digit' Turner#else
297891dd35fa2439a70f43ab8572778a398365bf24David 'Digit' Turner# define ANDROID_GCC_PREREQ(maj, min) 0
307891dd35fa2439a70f43ab8572778a398365bf24David 'Digit' Turner#endif
317891dd35fa2439a70f43ab8572778a398365bf24David 'Digit' Turner
327745b32edeb9ec1c2763030bb42a8fc0c3e6d8c4David 'Digit' Turner#endif  // ANDROID_UTILS_COMPILER_H
33