#ifndef __MORDOR_VERSION_H__
#define __MORDOR_VERSION_H__

// OS
#ifdef _WIN32
#   define WINDOWS
#else
#   define POSIX
#endif
#ifdef __CYGWIN__
#   define WINDOWS
#   define CYGWIN
#endif

#if defined(linux) || defined(__linux__)
#   define LINUX
#endif

#ifdef __APPLE__
#   define OSX
#   ifndef BSD
#       define BSD
#   endif
#endif

#ifdef __FreeBSD__
#   define FREEBSD
#   define BSD
#endif

#ifdef WINDOWS
#define MORDOR_NATIVE(win32, posix) win32
#else
#define MORDOR_NATIVE(win32, posix) posix
#endif

// Architecture
#ifdef _MSC_VER
#   define MSVC
#   ifdef _M_X64
#       define X86_64
#   elif defined(_M_IX86)
#       define X86
#   endif
#endif

#ifdef __GNUC__
#   define GCC
#   ifdef __x86_64
#       define X86_64
#   elif defined(i386)
#       define X86
#   elif defined(__ppc__)
#       define PPC
#   elif defined(__arm__)
#       define ARM
#   endif
#endif

#ifdef MSVC
#ifndef _DEBUG
#define NDEBUG
#endif
#endif

#endif

#ifndef __MORDOR_VERSION_H__
#define __MORDOR_VERSION_H__

// OS
#ifdef _WIN32
#   define WINDOWS
#else
#   define POSIX
#endif
#ifdef __CYGWIN__
#   define WINDOWS
#   define CYGWIN
#endif

#if defined(linux) || defined(__linux__)
#   define LINUX
#endif

#ifdef __APPLE__
#   define OSX
#   ifndef BSD
#       define BSD
#   endif
#endif

#ifdef __FreeBSD__
#   define FREEBSD
#   define BSD
#endif

#ifdef WINDOWS
#define MORDOR_NATIVE(win32, posix) win32
#else
#define MORDOR_NATIVE(win32, posix) posix
#endif

// Architecture
#ifdef _MSC_VER
#   define MSVC
#   ifdef _M_X64
#       define X86_64
#   elif defined(_M_IX86)
#       define X86
#   endif
#endif

#ifdef __GNUC__
#   define GCC
#   ifdef __x86_64
#       define X86_64
#   elif defined(i386)
#       define X86
#   elif defined(__ppc__)
#       define PPC
#   elif defined(__arm__)
#       define ARM
#   endif
#endif

#ifdef MSVC
#   ifndef _DEBUG
#       ifndef NDEBUG
#           define NDEBUG
#       endif
#   endif
#endif

#endif

Fix compiler warning in release
Fix compiler warning in release

Fix long standing warning that appears multiple time in Stash
release build:

warning C4005: 'NDEBUG' : macro redefinition

(example:
http://build.dechocorp.com/job/sync-release/arch=i386,dist=windows/2043/console)

If NDEBUG is already defined there is no need to define it

Change-Id: I1573a99f0908e879642c3c33ee9f0dda22e885d1
Signed-off-by: Andrew Skowronski <96924f7a4dbe24093bb2da18f50a76703cb4a362@mozy.com>
Reviewed-on: https://gerrit.dechocorp.com/37185
Reviewed-by: Jeff Tulley <85f87182ef9726107fb7bae84686c93fca64c9ab@vmware.com>
Reviewed-by: Jenkins <49695b0f9c673fd73dab0ff3f84b5ced9302cc6a@mozy.com>
