From f6e4fefbf53f251dd3a396a8e83cbf1b9499fadf Mon Sep 17 00:00:00 2001 From: kichik Date: Tue, 9 Dec 2008 22:42:12 +0000 Subject: [PATCH] moved NSISCALL detection to scons git-svn-id: https://svn.code.sf.net/p/nsis/code/NSIS/trunk@5814 212acab6-be3b-0410-9dea-997c60f758d6 --- SCons/Config/default | 5 +++++ SCons/Config/gnu | 5 +++++ SCons/Config/hpc++ | 5 +++++ SCons/Config/ms | 7 +++++++ Source/Platform.h | 21 --------------------- 5 files changed, 22 insertions(+), 21 deletions(-) diff --git a/SCons/Config/default b/SCons/Config/default index 709ab3b9..9cd7b3eb 100644 --- a/SCons/Config/default +++ b/SCons/Config/default @@ -13,6 +13,11 @@ defenv['CPP_FLAG'] = '' defenv['CPP_REQUIRES_STDLIB'] = 0 defenv['SUBSYS_CON'] = '' defenv['MSVCRT_FLAG'] = '' +defenv['STDCALL'] = '' + +### defines + +defenv.Append(CPPDEFINES = {'NSISCALL' : '$STDCALL'}) ### stub environment diff --git a/SCons/Config/gnu b/SCons/Config/gnu index ad0d9e15..de1a93e3 100644 --- a/SCons/Config/gnu +++ b/SCons/Config/gnu @@ -31,6 +31,11 @@ defenv['ALIGN_FLAG'] = '-Wl,--file-alignment,512' defenv['CPP_REQUIRES_STDLIB'] = 1 defenv['SUBSYS_CON'] = '-Wl,--subsystem,console' defenv['MSVCRT_FLAG'] = '' +defenv['STDCALL'] = '__attribute__((__stdcall__))' + +### defines + +defenv.Append(CPPDEFINES = {'NSISCALL' : '$STDCALL'}) ### helper functions diff --git a/SCons/Config/hpc++ b/SCons/Config/hpc++ index 04214810..361e0a06 100644 --- a/SCons/Config/hpc++ +++ b/SCons/Config/hpc++ @@ -13,6 +13,11 @@ defenv['CPP_FLAG'] = '' defenv['CPP_REQUIRES_STDLIB'] = 0 defenv['SUBSYS_CON'] = '' defenv['MSVCRT_FLAG'] = '' +defenv['STDCALL'] = '' + +### defines + +defenv.Append(CPPDEFINES = {'NSISCALL' : '$STDCALL'}) ### stub environment diff --git a/SCons/Config/ms b/SCons/Config/ms index e439efa3..1e2a7654 100644 --- a/SCons/Config/ms +++ b/SCons/Config/ms @@ -12,6 +12,7 @@ defenv['CPP_FLAG'] = '/TP' defenv['CPP_REQUIRES_STDLIB'] = 0 defenv['SUBSYS_CON'] = '/subsystem:console' defenv['MSVCRT_FLAG'] = '/MD' +defenv['STDCALL'] = '__stdcall' if float(defenv['MSVS_VERSION'].replace('Exp','')) >= 8.0: defenv['EXCEPTION_FLAG'] = '/EHsc' @@ -20,6 +21,12 @@ if float(defenv['MSVS_VERSION'].replace('Exp','')) >= 8.0: else: defenv['EXCEPTION_FLAG'] = '/GX' +### defines + +defenv.Append(CPPDEFINES = {'NSISCALL' : '$STDCALL'}) + +### asm + defenv.Append(ASFLAGS = ['/coff']) ### debug diff --git a/Source/Platform.h b/Source/Platform.h index c64435a3..91241011 100644 --- a/Source/Platform.h +++ b/Source/Platform.h @@ -142,27 +142,6 @@ typedef DWORDLONG ULONGLONG,*PULONGLONG; # endif #endif -// Added by Dave Laundon 19th August 2002 -// For all internal functions, use of stdcall calling convention moves the -// responsibility for tidying the stack to callee from caller, reducing the code -// involved considerably. Gives an instant saving of 0.5K. -// NB - the zlib and bzip2 portions have been given the same treatment, but with -// project compiler-options settings and/or project-wide defines. -// NB - safer for NSIS's routines to be defined explicitly to avoid problems -// calling DLL functions. -#if defined(_WIN32) && ((_MSC_VER >= 800) || defined(_STDCALL_SUPPORTED)) -# define NSISCALL __stdcall // Ordinary functions -# define NSISCALLV __cdecl // Variable-argument-list functions -#else -# if defined(__GNUC__) && defined(__i386__) -# define NSISCALL __attribute__((__stdcall__)) // Ordinary functions -# define NSISCALLV __attribute__((__cdecl__)) // Variable-argument-list functions -# else -# define NSISCALL -# define NSISCALLV -# endif -#endif - #if defined(__GNUC__) #define UNUSED __attribute__((unused)) #else