MegaGlest/mk/linux/mojosetup/buildver.c

98 lines
2.9 KiB
C

/**
* MojoSetup; a portable, flexible installation application.
*
* Please see the file LICENSE.txt in the source's root directory.
*
* This file written by Ryan C. Gordon.
*
Copyright (c) 2006-2010 Ryan C. Gordon and others.
This software is provided 'as-is', without any express or implied warranty.
In no event will the authors be held liable for any damages arising from
the use of this software.
Permission is granted to anyone to use this software for any purpose,
including commercial applications, and to alter it and redistribute it
freely, subject to the following restrictions:
1. The origin of this software must not be misrepresented; you must not
claim that you wrote the original software. If you use this software in a
product, an acknowledgment in the product documentation would be
appreciated but is not required.
2. Altered source versions must be plainly marked as such, and must not be
misrepresented as being the original software.
3. This notice may not be removed or altered from any source distribution.
Ryan C. Gordon <icculus@icculus.org>
*
*/
/*
* This is in a separate file so that we can recompile it every time
* without it forcing a recompile on something ccache would otherwise not
* have to rebuild...this file's checksum changes every time you build it
* due to the __DATE__ and __TIME__ macros.
*
* The makefile will rebuild this file everytime it relinks an executable
* so that we'll always have a unique build string.
*
* APPNAME and APPREV need to be predefined in the build system.
* The rest are supposed to be supplied by the compiler.
*/
#ifndef APPID
#error Please define APPID in the build system.
#endif
#ifndef APPREV
#error Please define APPREV in the build system.
#endif
#if (defined __GNUC__)
# define VERSTR2(x) #x
# define VERSTR(x) VERSTR2(x)
# define COMPILERVER " " VERSTR(__GNUC__) "." VERSTR(__GNUC_MINOR__) "." VERSTR(__GNUC_PATCHLEVEL__)
#elif (defined __SUNPRO_C)
# define VERSTR2(x) #x
# define VERSTR(x) VERSTR2(x)
# define COMPILERVER " " VERSTR(__SUNPRO_C)
#elif (defined __VERSION__)
# define COMPILERVER " " __VERSION__
#else
# define COMPILERVER ""
#endif
#ifndef __DATE__
#define __DATE__ "(Unknown build date)"
#endif
#ifndef __TIME__
#define __TIME__ "(Unknown build time)"
#endif
#ifndef COMPILER
#if (defined __GNUC__)
#define COMPILER "GCC"
#elif (defined _MSC_VER)
#define COMPILER "Visual Studio"
#elif (defined __SUNPRO_C)
#define COMPILER "Sun Studio"
#else
#error Please define your platform.
#endif
#endif
// macro mess so we can turn APPID and APPREV into a string literal...
#define MAKEBUILDVERSTRINGLITERAL2(id, rev) \
#id ", revision " #rev ", built " __DATE__ " " __TIME__ \
", by " COMPILER COMPILERVER
#define MAKEBUILDVERSTRINGLITERAL(id, rev) MAKEBUILDVERSTRINGLITERAL2(id, rev)
const char *GBuildVer = MAKEBUILDVERSTRINGLITERAL(APPID, APPREV);
// end of buildver.c ...