--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/dependencies/platform_paths.hrh Fri Mar 19 13:46:28 2010 +0200
@@ -0,0 +1,585 @@
+/*
+* Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Predefined include paths to be used in the mmp-files for the
+* components in the layered model. There is one definition for
+* each layer. The mmp-file should use the statement that is
+* intended for the same layer as where the mmp-file resides.
+*
+* There is also macros to be used in the bld.inf-files to
+* export of Public and Platform headers into
+* correct locations.
+*
+* Usage examples:
+* ---------------------------------------------
+* How to include this file in bld.inf and mmp-files.
+* Reasoning: The build system is such that at the time the
+* bld.inf and mmp-files are "compiled" the available
+* include paths are limited. Only the /epoc32/include
+* can be guaranteed. Thus to get this file available
+* you need to make include relative to the mentioned
+* directory.
+* ---------------------------------------------
+*
+* #include <platform_paths.hrh>
+*
+* *************************************************************
+* * MMP file related macro usages to add the system include paths
+* *
+* * The include paths has to be related to the layer in which your SW
+* * resides. Thus as an example: a component residing in middleware
+* * layer should use the MW specific macro.
+* * Keep this as a separate line in the mmp-files. If you need to
+* * add your own SYSTEMINCLUDE paths, please defined them as
+* * separate statement.
+* *************************************************************
+* APP_LAYER_SYSTEMINCLUDE
+* MW_LAYER_SYSTEMINCLUDE
+* OS_LAYER_SYSTEMINCLUDE
+**
+* *************************************************************
+* * Macros related to using various parts of stdapis
+* *************************************************************
+* To use STLLIB you need to have this in your mmp-file
+* STLLIB_USAGE_DEFINITIONS
+*
+* Depending on what module you are using from stdapis you need to have
+* one or more of the following macros in your mmp-file (every one in
+* separate line !)
+*
+* OS_LAYER_LIBC_SYSTEMINCLUDE
+* OS_LAYER_GLIB_SYSTEMINCLUDE
+* OS_LAYER_SSL_SYSTEMINCLUDE
+* OS_LAYER_STDCPP_SYSTEMINCLUDE
+* OS_LAYER_BOOST_SYSTEMINCLUDE
+* OS_LAYER_DBUS_SYSTEMINCLUDE
+* OS_LAYER_LIBUTILITY_SYSTEMINCLUDE
+*
+* *************************************************************
+* * Macros related to exporting Public and Platform APIs into
+* * correct place in the new system.
+* *
+* * The macro that you should use depends on 2 things:
+* * - in which layer your package, which exports the APIs resides
+* * - what is the visibility of the API (public or platform)
+* *************************************************************
+* // the exporting of public APIs should use one of below macros
+* // depending on which layer the API belogs to
+* APP_LAYER_PUBLIC_EXPORT_PATH
+* MW_LAYER_PUBLIC_EXPORT_PATH
+* OS_LAYER_PUBLIC_EXPORT_PATH
+*
+* // the exporting of platform APIs should use one of below macros
+* // depending on which layer the API belogs to
+* APP_LAYER_PLATFORM_EXPORT_PATH
+* MW_LAYER_PLATFORM_EXPORT_PATH
+* OS_LAYER_PLATFORM_EXPORT_PATH
+*
+* The hierarchy how APIs should reside in foundation has been specified
+* in developer documentation. See further details from documentation.
+* Below is example case relying on the structure
+* my_own_api/group/bld.inf
+* my_own_api/inc/header1.h
+* my_own_api/inc/subdir/header2.h
+*
+* Assuming that the API is in middleware layer and a public API.
+* Then the bld.inf should have the following
+* ../inc/header1.h APP_LAYER_PUBLIC_EXPORT_PATH(header1.h)
+* ../inc/subdir/header2.h APP_LAYER_PUBLIC_EXPORT_PATH(subdir/header2.h)
+*
+* In the above case the locations are as follow (with current MACRO settings):
+* header1.h in /epoc32/include/app
+* header2.h in /epoc32/include/app/subdir
+*
+*
+* *************************************************************
+* * Macros related to IBY file exporting
+* *************************************************************
+*
+* Component bld.inf files need to include platform_paths.hrh, see
+* beginning of this file on how to do this correctly. Component bld.inf
+* files need to use these macros in PRJ_EXPORTS to get their IBY files
+* to ROM image.
+*
+* ---------------------------------------------
+* Usage for Core image (ROM+ROFS1):
+* ---------------------------------------------
+* // Layer specific specific macros. Use the macro, which is specified
+* // for the layer, in which your component resides
+* <somepath>/<file1.iby> CORE_APP_LAYER_IBY_EXPORT_PATH(<file1.iby>)
+* <somepath>/<file2.iby> CORE_MW_LAYER_IBY_EXPORT_PATH(<file2.iby>)
+* <somepath>/<file3.iby> CORE_OS_LAYER_IBY_EXPORT_PATH(<file3.iby>)
+*
+* //stub iby files
+* <somepath>/<file4.iby> CORE_IBY_EXPORT_PATH(stubs,<file4.iby>)
+* //tool iby files
+* <somepath>/<file5.iby> CORE_IBY_EXPORT_PATH(tools,<file5.iby>)
+*
+* ---------------------------------------------
+* Usage for Variant image, Language part (ROFS2):
+* ---------------------------------------------
+* // Layer specific specific macros. Use the macro, which is specified
+* // for the layer, in which your component resides
+* <somepath>/<file1.iby> LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(<file1.iby>)
+* <somepath>/<file2.iby> LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(<file2.iby>)
+* <somepath>/<file3.iby> LANGUAGE_OS_LAYER_IBY_EXPORT_PATH(<file3.iby>)
+*
+* ---------------------------------------------
+* Usage for Variant image, Language part (ROFS2):
+* ---------------------------------------------
+* // Layer specific specific macros. Use the macro, which is specified
+* // for the layer, in which your component resides
+* <somepath>/<file1.iby> CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(<file1.iby>)
+* <somepath>/<file2.iby> CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(<file2.iby>)
+* <somepath>/<file3.iby> CUSTOMER_OS_LAYER_IBY_EXPORT_PATH(<file3.iby>)
+*
+* ---------------------------------------------
+* Usage for Customer Variant image, (ROFS3):
+* ---------------------------------------------
+* // Layer specific specific macros. Use the macro, which is specified
+* // for the layer, in which your component resides
+* <somepath>/<f1.iby> CUSTOMER_VARIANT_APP_LAYER_IBY_EXPORT_PATH(<f1.iby>)
+* <somepath>/<f2.iby> CUSTOMER_VARIANT_MW_LAYER_IBY_EXPORT_PATH(<f2.iby>)
+* <somepath>/<f3.iby> CUSTOMER_VARIANT_OS_LAYER_IBY_EXPORT_PATH(<f3.iby>)
+*
+*
+* *************************************************************
+* * Macro related to Exporting localization .loc files into
+* * correct place in the system.
+* *************************************************************
+*
+* ---------------------------------------------
+* Usage for components:
+* ---------------------------------------------
+* Component bld.inf files need to include platform_paths.hrh, see
+* beginning of this file on how to do this correctly. Component bld.inf
+* files need to use these macros in PRJ_EXPORTS to get their loc files
+* for localization.
+* loc files that should be localized by localisation team should be in
+* loc-folder in the source tree (see developer guidelines)
+*
+* // Layer specific specific macros. Use the macro, which is specified
+* // for the layer, in which your component resides
+* <somepath>/loc/<file>.loc APP_LAYER_LOC_EXPORT_PATH(<file>.loc)
+* <somepath>/loc/<file>.loc MW_LAYER_LOC_EXPORT_PATH(<file>.loc)
+* <somepath>/loc/<file>.loc OS_LAYER_LOC_EXPORT_PATH(<file>.loc)
+*
+*
+*
+*
+*/
+
+
+#ifndef PLATFORM_PATHS_HRH
+#define PLATFORM_PATHS_HRH
+
+/**
+**************************************************************************
+* General comments about the exporting of headers macros
+* 1) The definitions point currently to the old locations. (which makes some
+* macros to have same values. The idea is that you can already start using
+* them now and those will be later on changed => change affects everybody.
+***************************************************************************
+*/
+
+/**
+* ---------------------------------------
+* Location, where the applications layer specific public headers should be exported
+* See usage on top of this hrh-file.
+* ---------------------------------------
+*/
+
+#if __GNUC__ >= 3
+#define APP_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
+#define APP_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/app/exported
+#else
+#define APP_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
+#define APP_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/app/##exported
+#endif
+
+/**
+* ---------------------------------------
+* Location, where the applications layer specific platform headers should be exported
+* See usage on top of this hrh-file.
+* ---------------------------------------
+*/
+#if __GNUC__ >= 3
+#define APP_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
+#define APP_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/app/exported
+#else
+#define APP_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
+#define APP_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/app/##exported
+#endif
+
+/**
+* ---------------------------------------
+* Location, where the middleware layer specific public headers should be exported
+* See usage on top of this hrh-file.
+* ---------------------------------------
+*/
+#if __GNUC__ >= 3
+#define MW_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
+#define MW_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/mw/exported
+#else
+#define MW_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
+#define MW_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/mw/##exported
+#endif
+
+/**
+* ---------------------------------------
+* Location, where the middleware layer specific platform headers should be exported
+* ---------------------------------------
+*/
+#if __GNUC__ >= 3
+#define MW_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
+#define MW_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/mw/exported
+#else
+#define MW_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
+#define MW_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/mw/##exported
+#endif
+
+/**
+* ---------------------------------------
+* Location, where the os layer specific public headers should be exported
+* ---------------------------------------
+*/
+#if __GNUC__ >= 3
+#define OSEXT_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
+#define OS_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/exported
+#else
+#define OSEXT_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
+#define OS_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/##exported
+#endif
+
+/**
+* ---------------------------------------
+* Location, where the os specific platform headers should be exported
+* ---------------------------------------
+*/
+#if __GNUC__ >= 3
+#define OSEXT_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
+#define OS_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/exported
+#else
+#define OSEXT_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
+#define OS_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/##exported
+#endif
+
+/**
+* ---------------------------------------
+* Location, where the cenrep excel sheets should be exported
+* Deprecated: should no longer be used. Kept for compability.
+* ---------------------------------------
+*/
+#if __GNUC__ >= 3
+#define CENREP_XLS_EXPORT_PATH(exported) /epoc32/tools/cenrep/data/src/exported
+#else
+#define CENREP_XLS_EXPORT_PATH(exported) /epoc32/tools/cenrep/data/src/##exported
+#endif
+
+/**
+**************************************************************************
+* General comments about the 3 define statements related to include paths:
+* 1) the /epoc32/include/oem is now defined there for backward compability.
+* Once the directory is empty, the directory will be removed. However this
+* enables us to ensure that if you use these define statements => you do
+* not have to remove the statements later on, when the directory no longer
+* exists.
+* 2) These statements should be enough in normal cases. For certain specific
+* cases you migth need to add some specific directory from /epoc32/include
+* (for instance /epoc32/include/ecom).
+* In normal cases the include staments in code should be relative to one of
+* the system include paths, but in certain cases, the included files requires
+* that the subdirectory is also part of the system include paths.
+****************************************************************************
+*/
+
+/**
+* This define statements defines the SYSTEMINCLUDE-line, which is intended to be
+* used in the mmp-files that are part of the applications-layer. It includes all
+* the needed directories from the /epoc32/include, that are valid ones for the
+* application-layer components.
+*
+* Applications layer is the last one in the list, since most likely the most of
+* the headers come from middleware or os-layer => thus they are first.
+*/
+#define APP_LAYER_SYSTEMINCLUDE SYSTEMINCLUDE \
+ /epoc32/include \
+ /epoc32/include/platform/mw \
+ /epoc32/include/platform \
+/*
+ /epoc32/include/app \
+ /epoc32/include/platform/app \
+ /epoc32/include/platform/loc \
+ /epoc32/include/platform/mw/loc \
+ /epoc32/include/platform/app/loc \
+ /epoc32/include/platform/loc/sc \
+ /epoc32/include/platform/mw/loc/sc \
+ /epoc32/include/platform/app/loc/sc
+ */
+/**
+* This define statements defines the SYSTEMINCLUDE-line, which is intended to be
+* used in the mmp-files that are part of the middleware-layer. It includes all
+* the needed directories from the /epoc32/include, that are valid ones for the
+* middleware-layer components.
+*/
+#define MW_LAYER_SYSTEMINCLUDE SYSTEMINCLUDE \
+ /epoc32/include \
+ /epoc32/include/mw \
+ /epoc32/include/platform/mw \
+ /epoc32/include/platform \
+ /epoc32/include/platform/loc \
+ /epoc32/include/platform/mw/loc \
+ /epoc32/include/platform/loc/sc \
+ /epoc32/include/platform/mw/loc/sc
+
+/**
+* This define statements defines the SYSTEMINCLUDE-line, which is intended to be
+* used in the mmp-files that are part of the osextensions-layer. It includes all
+* the needed directories from the /epoc32/include, that are valid ones for the
+* os-layer components.
+*/
+#define OS_LAYER_SYSTEMINCLUDE SYSTEMINCLUDE \
+ /epoc32/include \
+ /epoc32/include/platform \
+ /epoc32/include/platform/loc \
+ /epoc32/include/platform/loc/sc
+
+// Below statement is Deprecated and the OS_LAYER_SYSTEMINCLUDE-macro has to be
+// used.
+// Removed, use teh OS_LAYER_SYSTEMINCLUDE instead.
+// #define OSEXT_LAYER_SYSTEMINCLUDE OS_LAYER_SYSTEMINCLUDE
+
+/**
+* This define statements defines the SYSTEMINCLUDE-line, which is intended to be
+* used in the mmp-files that are part of the os-layer. This is intended
+* to be only used by those components which need to use in their mmp-file either
+* kern_ext.mmh or nkern_ext.mmh. Reason is that those
+* 2 files already contain the /epoc32/include as system include path.
+*
+*/
+#define OS_LAYER_KERNEL_SYSTEMINCLUDE SYSTEMINCLUDE \
+ /epoc32/include/platform
+
+// Below statement is Deprecated and the OS_LAYER_KERNEL_SYSTEMINCLUDE-macro
+// has to be used.
+// Removed, use the OS_LAYER_KERNER_SYSTEMINCLUDE instead.
+// #define OSEXT_LAYER_KERNEL_SYSTEMINCLUDE OS_LAYER_KERNEL_SYSTEMINCLUDE
+
+/**
+****************************************************************************
+* Definitions that also define the systeminclude paths for various
+* part of stdapis. Each statement has to be in its own line in the using
+* mmp-file. There are be more than 1 statement in single mmp-file.
+****************************************************************************
+*/
+#define OS_LAYER_LIBC_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis)
+
+#define OS_LAYER_GLIB_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0) \
+ OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0/glib) \
+ OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0/gobject)
+
+
+#define OS_LAYER_SSL_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/openssl)
+
+#define OS_LAYER_STDCPP_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlport)
+
+#define OS_LAYER_BOOST_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/boost)
+
+#define OS_LAYER_DBUS_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/dbus-1.0) \
+ OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/dbus-1.0/dbus)
+#define OS_LAYER_LIBUTILITY_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PLATFORM_EXPORT_PATH(stdapis/utility)
+
+#define OS_LAYER_LIBOIL_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PLATFORM_EXPORT_PATH(stdapis/liboil)
+
+#define MW_LAYER_GSTREAMER_SYSTEMINCLUDE SYSTEMINCLUDE \
+ /epoc32/include/platform/mw/gstreamer/10_18 \
+ /epoc32/include/platform/mw/gstreamer/10_18/gst \
+ /epoc32/include/platform/mw/gstreamer/10_18/gst/gstcontroller \
+ /epoc32/include/stdapis/machine
+
+// You need to add STLLIB_USAGE_DEFINITIONS as a separate line into your mmp-file, if you are using
+// the stllib.
+#define STLLIB_USAGE_DEFINITIONS OPTION CW -wchar_t on\
+ MACRO _WCHAR_T_DECLARED
+
+
+/**
+****************************************************************************
+* Definitions that also define the paths to the layer specific source directories.
+****************************************************************************
+*/
+/**
+* The below 3 macros define the paths to the layer-specific source dirs.
+* See usage on top of this hrh-file, these are used the same way as
+* for instance the OS_LAYER_DOMAIN_EXPORT_PATH
+* Deprecated: is not allowed to be using in Symbian Foundation
+*/
+#if __GNUC__ >= 3
+#define APP_LAYER_SOURCE_PATH(rest) do not use intentionally generates error in export
+#define MW_LAYER_SOURCE_PATH(rest) do not use intentionally generates error in export
+#define OSEXT_LAYER_SOURCE_PATH(rest) do not use intentionally generates error in export
+#else
+#define APP_LAYER_SOURCE_PATH(rest) do not use intentionally generates error in export
+#define MW_LAYER_SOURCE_PATH(rest) do not use intentionally generates error in export
+#define OSEXT_LAYER_SOURCE_PATH(rest) do not use intentionally generates error in export
+#endif
+
+/**
+****************************************************************************
+* Definitions to export IBY files to different folders where they will be taken
+* to ROM image
+****************************************************************************
+*/
+
+// Following three definitions are used for exporting IBY files to
+// Core image (ROM+ROFS1). IBY files are exported according to their layer.
+#if __GNUC__ >= 3
+#define CORE_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/app/exported
+#define CORE_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/mw/exported
+#define CORE_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
+#define CORE_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/os/exported
+#define CORE_ADAPT_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/exported
+#else
+#define CORE_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/app/##exported
+#define CORE_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/mw/##exported
+#define CORE_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
+#define CORE_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/os/##exported
+#define CORE_ADAPT_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/##exported
+#endif
+
+// Following three definitions are used for exporting IBY files to Variant image,
+// Language part (ROFS2). IBY files are exported according to their layer.
+#if __GNUC__ >= 3
+#define LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/app/exported
+#define LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/mw/exported
+#define LANGUAGE_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
+#define LANGUAGE_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/os/exported
+#else
+#define LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/app/##exported
+#define LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/mw/##exported
+#define LANGUAGE_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
+#define LANGUAGE_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/os/##exported
+#endif
+
+// Following three definitions are used for exporting IBY files to Variant image, (ROFS2).
+// BY files are exported according to their layer.
+#if __GNUC__ >= 3
+#define CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/app/exported
+#define CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/mw/exported
+#define CUSTOMER_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
+#define CUSTOMER_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/os/exported
+#else
+#define CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/app/##exported
+#define CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/mw/##exported
+#define CUSTOMER_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
+#define CUSTOMER_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/os/##exported
+#endif
+
+// Following three definitions are used for exporting IBY files to
+// Variant Customer part, (ROFS3). IBY files are exported according to
+// their layer.
+#if __GNUC__ >= 3
+#define CUSTOMER_VARIANT_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/app/exported
+#define CUSTOMER_VARIANT_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/mw/exported
+#define CUSTOMER_VARIANT_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
+#define CUSTOMER_VARIANT_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/os/exported
+#else
+#define CUSTOMER_VARIANT_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/app/##exported
+#define CUSTOMER_VARIANT_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/mw/##exported
+#define CUSTOMER_VARIANT_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
+#define CUSTOMER_VARIANT_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/os/##exported
+#endif
+
+
+// Following definition is used for exporting tools and stubs IBY files to
+// Core image.
+#if __GNUC__ >= 3
+#define CORE_IBY_EXPORT_PATH(path,exported) /epoc32/rom/include/core/path/exported
+#else
+#define CORE_IBY_EXPORT_PATH(path,exported) /epoc32/rom/include/core/##path##/##exported
+#endif
+
+/**
+* ---------------------------------------
+* Location, where the localization .loc file should be exported
+* ---------------------------------------
+*/
+// Location, where the os layer localization .loc file should be
+// exported
+#if __GNUC__ >= 3
+// Deprecated: use the OS_LAYER_LOC_EXPORT_PATH instead
+#define OSEXT_LAYER_LOC_EXPORT_PATH(exported) do not use intentionally generates error
+#define OS_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/loc/sc/exported
+
+// Location, where the middleware layer localization .loc file should be
+// exported
+#define MW_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/mw/loc/sc/exported
+
+// Location, where the application layer localization .loc file should be
+// exported
+#define APP_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/app/loc/sc/exported
+
+#else
+
+// Deprecated: use the OS_LAYER_LOC_EXPORT_PATH instead
+#define OSEXT_LAYER_LOC_EXPORT_PATH(exported) do not use intentionally generates error
+#define OS_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/loc/sc/##exported
+
+// Location, where the middleware layer localization .loc file should be exported
+#define MW_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/mw/loc/sc/##exported
+
+// Location, where the application layer localization .loc file should be exported
+#define APP_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/app/loc/sc/##exported
+#endif
+
+/**
+* ---------------------------------------
+* Macros for Configuration tool migration.
+* The below macros define the location under epoc32, where the confml
+* (Configuration Markup Language) and crml (Central Repository Markup Language)
+* files should be exported.
+* ---------------------------------------
+*/
+#if __GNUC__ >= 3
+#define CONFML_EXPORT_PATH(file,category) /epoc32/rom/config/confml_data/category/file
+#define CRML_EXPORT_PATH(file,category) /epoc32/rom/config/confml_data/category/file
+#define GCFML_EXPORT_PATH(file,category) /epoc32/rom/config/confml_data/category/file
+#define CONFML_CONFIG_EXPORT_PATH(file,category) /epoc32/rom/config/confml_data/category/config/file
+#else
+#define CONFML_EXPORT_PATH(file,category) /epoc32/rom/config/confml_data/##category##/##file
+#define CRML_EXPORT_PATH(file,category) /epoc32/rom/config/confml_data/##category##/##file
+#define GCFML_EXPORT_PATH(file,category) /epoc32/rom/config/confml_data/##category##/##file
+#define CONFML_CONFIG_EXPORT_PATH(file,category) /epoc32/rom/config/confml_data/##category##/config/##file
+#endif
+
+#define APP_LAYER_CONFML(exported) CONFML_EXPORT_PATH(exported,s60)
+#define APP_LAYER_CRML(exported) CRML_EXPORT_PATH(exported,s60)
+#define APP_LAYER_GCFML(exported) GCFML_EXPORT_PATH(exported,s60)
+#define APP_LAYER_CONFML_CONFIG(exported) CONFML_CONFIG_EXPORT_PATH(exported,s60)
+
+#define MW_LAYER_CONFML(exported) CONFML_EXPORT_PATH(exported,s60)
+#define MW_LAYER_CRML(exported) CRML_EXPORT_PATH(exported,s60)
+#define MW_LAYER_GCFML(exported) GCFML_EXPORT_PATH(exported,s60)
+#define MW_LAYER_CONFML_CONFIG(exported) CONFML_CONFIG_EXPORT_PATH(exported,s60)
+
+// Deprecate: Use the OS_LAYER_* macros instead of OSEXT_LAYER_*
+#define OSEXT_LAYER_CONFML(exported) do not use intentionally generates error
+#define OSEXT_LAYER_CRML(exported) do not use intentionally generates error
+#define OSEXT_LAYER_GCFML(exported) do not use intentionally generates error
+#define OSEXT_LAYER_CONFML_CONFIG(exported) do not use intentionally generates error
+#define OS_LAYER_CONFML(exported) CONFML_EXPORT_PATH(exported,s60)
+#define OS_LAYER_CRML(exported) CRML_EXPORT_PATH(exported,s60)
+#define OS_LAYER_GCFML(exported) GCFML_EXPORT_PATH(exported,s60)
+#define OS_LAYER_CONFML_CONFIG(exported) CONFML_CONFIG_EXPORT_PATH(exported,s60)
+
+#endif // end of PLATFORM_PATHS_HRH