12e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/** 22e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Copyright(c) 2011 Trusted Logic. All rights reserved. 32e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * 42e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Redistribution and use in source and binary forms, with or without 52e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * modification, are permitted provided that the following conditions 62e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * are met: 72e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * 82e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * * Redistributions of source code must retain the above copyright 92e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * notice, this list of conditions and the following disclaimer. 102e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * * Redistributions in binary form must reproduce the above copyright 112e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * notice, this list of conditions and the following disclaimer in 122e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * the documentation and/or other materials provided with the 132e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * distribution. 142e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * * Neither the name Trusted Logic nor the names of its 152e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * contributors may be used to endorse or promote products derived 162e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * from this software without specific prior written permission. 172e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * 182e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 192e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 202e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR 212e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT 222e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, 232e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT 242e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, 252e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY 262e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 272e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 282e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 292e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley */ 302e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#ifndef __S_VERSION_H__ 312e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define __S_VERSION_H__ 322e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 332e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/* 342e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Usage: define S_VERSION_BUILD on the compiler's command line. 352e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * 362e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * Then set: 372e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * - S_VERSION_OS 382e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * - S_VERSION_PLATFORM 392e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * - S_VERSION_MAIN 402e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * - S_VERSION_ENG is optional 412e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * - S_VERSION_PATCH is optional 422e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * - S_VERSION_BUILD = 0 if S_VERSION_BUILD not defined or empty 432e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley */ 442e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#if defined(WIN32) 452e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_VERSION_OS "W" /* "W" for Windows PC (XP, Vista�) */ 462e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_VERSION_PLATFORM "X" /* "X" for ix86 PC simulators */ 472e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#elif defined(__ANDROID32__) 482e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_VERSION_OS "A" /* "A" for Android */ 492e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_VERSION_PLATFORM "G" /* "G" for 4430 */ 502e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#elif defined(LINUX) 512e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_VERSION_OS "L" /* "L" for Linux */ 522e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_VERSION_PLATFORM "X" /* "X" for ix86 PC simulators */ 532e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#else 542e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_VERSION_OS "X" /* "X" for Secure-World */ 552e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_VERSION_PLATFORM "G" /* "G" for 4430 */ 562e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#endif 572e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 582e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/* 592e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley * This version number must be updated for each new release 602e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley */ 612e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_VERSION_MAIN "01.04" 622e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_VERSION_RESOURCE 1,4,0,S_VERSION_BUILD 632e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 642e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/* 652e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley* If this is a patch or engineering version use the following 662e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley* defines to set the version number. Else set these values to 0. 672e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley*/ 682e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_VERSION_PATCH 11 692e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_VERSION_ENG 0 702e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 712e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#ifdef S_VERSION_BUILD 722e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/* TRICK: detect if S_VERSION is defined but empty */ 732e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#if 0 == S_VERSION_BUILD-0 742e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#undef S_VERSION_BUILD 752e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_VERSION_BUILD 0 762e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#endif 772e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#else 782e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley/* S_VERSION_BUILD is not defined */ 792e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_VERSION_BUILD 0 802e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#endif 812e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 822e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define __STRINGIFY(X) #X 832e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define __STRINGIFY2(X) __STRINGIFY(X) 842e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 852e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#if S_VERSION_ENG != 0 862e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define _S_VERSION_ENG "e" __STRINGIFY2(S_VERSION_ENG) 872e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#else 882e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define _S_VERSION_ENG "" 892e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#endif 902e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 912e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#if S_VERSION_PATCH != 0 922e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define _S_VERSION_PATCH "p" __STRINGIFY2(S_VERSION_PATCH) 932e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#else 942e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define _S_VERSION_PATCH "" 952e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#endif 962e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 972e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#if !defined(NDEBUG) || defined(_DEBUG) 982e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_VERSION_VARIANT "D " 992e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#else 1002e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_VERSION_VARIANT " " 1012e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#endif 1022e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1032e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#define S_VERSION_STRING \ 1042e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley "SMC" \ 1052e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley S_VERSION_OS \ 1062e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley S_VERSION_PLATFORM \ 1072e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley S_VERSION_MAIN \ 1082e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley _S_VERSION_PATCH \ 1092e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley _S_VERSION_ENG \ 1102e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley "." __STRINGIFY2(S_VERSION_BUILD) " " \ 1112e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley S_VERSION_VARIANT 1122e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley 1132e9e9eca83c3dee85b7815573a8cf1e6d1780741Bryan Buckley#endif /* __S_VERSION_H__ */ 114