… | |
… | |
356 | #define ECB_STRINGIFY_(a) # a |
356 | #define ECB_STRINGIFY_(a) # a |
357 | #define ECB_STRINGIFY(a) ECB_STRINGIFY_(a) |
357 | #define ECB_STRINGIFY(a) ECB_STRINGIFY_(a) |
358 | #define ECB_STRINGIFY_EXPR(expr) ((expr), ECB_STRINGIFY_ (expr)) |
358 | #define ECB_STRINGIFY_EXPR(expr) ((expr), ECB_STRINGIFY_ (expr)) |
359 | |
359 | |
360 | /* This marks larger functions that do not neccessarily need to be inlined */ |
360 | /* This marks larger functions that do not neccessarily need to be inlined */ |
|
|
361 | /* The idea is to possibly compile the header twice, */ |
|
|
362 | /* once exposing only the declarations, another time to define external functions */ |
361 | /* TODO: popssibly static would be best for these at the moment? */ |
363 | /* TODO: popssibly static would be best for these at the moment? */ |
362 | #define ecb_function_ ecb_inline |
364 | #define ecb_function_ ecb_inline |
363 | |
365 | |
364 | #if ECB_GCC_VERSION(3,1) || ECB_CLANG_VERSION(2,8) |
366 | #if ECB_GCC_VERSION(3,1) || ECB_CLANG_VERSION(2,8) |
365 | #define ecb_attribute(attrlist) __attribute__ (attrlist) |
367 | #define ecb_attribute(attrlist) __attribute__ (attrlist) |