Waffle's feature test macros allow the programmer to control the definitions that are exposed by Waffle's headers when a program is compiled. Conversely, the macros allow the programmer to control which Waffle features a program's source relies on.

In order to be effective, a feature test macro must be defined before including any header files. This can be done either in the compilation command (cc -DMACRO=value) or by defining the macro within the source code before including any headers.

Specification of feature test macro requirements in manual pages

When a function requires that a feature test macro be defined, the manual page docments it in the SYNOPSIS. When an enum or macro requires that a feature test macro be defined, the manual page documents it either in the SYNOPSIS or where the enum or macro first appears in the page.

List of feature test macros

WAFFLE_API_VERSION (since waffle 1.3)

This macro controls the API version exposed by Waffle's headers. The value ((major << 8) | minor) exposes the API of Waffle major.minor. For example, the value 0x0103 exposes the API of Waffle 1.3. If this macro is undefined, then the headers expose the API of Waffle 1.2.


This macro exposes experimental features in Waffle's headers. Experimental features may be altered or removed without notice and do not belong to Waffle's stable API.


Please report bugs or and feature requests to \m[blue]\m[].

RELATED TO waffle_feature_test_macros…


Chad Versace <[email protected]>



Copyright © 2013 Intel

This manual page is licensed under the Creative Commons Attribution-ShareAlike 3.0 United States License (CC BY-SA 3.0). To view a copy of this license, visit \m[blue]\m[].