Raptor & abld build system

I always wonders why they depends on gnu make? Why not drop that staff? It’s so simple – get sources from .mmp file and feed gcc.

Build system already have mmp parser writen on perl. It’s funny but original make can’t handle generated makefile 🙂 SDK has special vetsion.

Abld build system depends from artificial ActivePerl(Rasberry Perl doesn’t work). There exist patches for new Active perl usage in sdks. But patched sdk may generate help files incorrectly.

Raptor aka sbs build system require again artificial perl, bash(even on windows!) and python 2.6 only. Yeah, Raptor use parts from abld… Why doesn’t use python to build binaries?

Carbide builtin mmp parser also generates makefile. Why doesn’t ant use?

Raptor & abld build system


error: narrowing conversion of ‘2150115144u’ from ‘unsigned int’ to ‘TInt32 {aka long int}’ inside { } [-Wnarrowing]
const TUid KUidCustomCrossCheck={KUidCustomCrossCheckValue};

warning: narrowing conversion of ‘aUid’ from ‘TInt {aka int}’ to ‘TUint32 {aka long unsigned int}’ inside { } [-Wnarrowing]
{TUid uid={aUid};return uid;}

Change in e32cmn.h TUid member type iUid in c++14 and errors became varnings! Code:

#if (__cplusplus >= 201402L)
TUint32 iUid; // warnings
TInt32 iUid; // errors




Extending S60_5th_Edition_SDK_v1.0 II

gcce.h not emits warnings now.

Whats done:

1) copied content from symcpp

2) removed EXPORT_C from operators

3) post-operators __NO_THROW in c++11 changed to noexcept:

#if __cplusplus == 199711L || __GNUC__ < 3 // last for rss preprocessor
#define __NO_THROW throw ()
#define __THROW(t) throw (t)
#elif  __cplusplus == 201103L ||  __cplusplus == 201402L
#define __NO_THROW noexcept
// #define __THROW(t) // not needed for new/delete operators in C++11/14
#error “Unknown c++ standart! Please add fix gcce.h at line 85”

4) get rid from stupid warnings:

‘void* operator new(unsigned int, unsigned int)’ is a usual (non-placement) deallocation function in C++14:

#if __GNUC__ > 4
/*get rid from endless warnings
because from C++14 :
The placement form void* operator new(size_t, size_t)
is not allowed because the matching signature of the
deallocation function, void operator delete(void*, size_t),
is a usual (not placement) deallocation function.*/
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored “-Wc++14-compat”

Extending S60_5th_Edition_SDK_v1.0 II