symbianosbld/cedarutils/platform_paths.hrh
changeset 0 6d65d5acee06
child 1 72c313936b02
equal deleted inserted replaced
-1:000000000000 0:6d65d5acee06
       
     1 /*
       
     2 * Copyright (c) 2002-2009 Nokia Corporation and/or its subsidiary(-ies). 
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:  Predefined include paths to be used in the mmp-files for the 
       
    15 *                components in the layered model. There is one definition for
       
    16 *                each layer. The mmp-file should use the statement that is 
       
    17 *                intended for the same layer as where the mmp-file resides.
       
    18 *
       
    19 *                There is also macros to be used in the bld.inf-files to 
       
    20 *                export of Public  and Platform headers into 
       
    21 *                correct locations. 
       
    22 *
       
    23 * Usage examples:
       
    24 *     ---------------------------------------------
       
    25 *      How to include this file in bld.inf and mmp-files.
       
    26 *       Reasoning: The build system is such that at the time the 
       
    27 *                  bld.inf and mmp-files are "compiled" the available
       
    28 *                  include paths are limited. Only the /epoc32/include
       
    29 *                  can be guaranteed. Thus to get this file available
       
    30 *                  you need to make include relative to the mentioned
       
    31 *                  directory. 
       
    32 *     ---------------------------------------------
       
    33 *
       
    34 *      #include <platform_paths.hrh>
       
    35 *    
       
    36 *     *************************************************************
       
    37 *     * MMP file related macro usages to add the system include paths
       
    38 *     * 
       
    39 *     * The include paths has to be related to the layer in which your SW 
       
    40 *     * resides. Thus as an example: a component residing in middleware
       
    41 *     * layer should use the MW specific macro.
       
    42 *     * Keep this as a separate line in the mmp-files. If you need to
       
    43 *     * add your own SYSTEMINCLUDE paths, please defined them as
       
    44 *     * separate statement.
       
    45 *     *************************************************************
       
    46 *         APP_LAYER_SYSTEMINCLUDE
       
    47 *         MW_LAYER_SYSTEMINCLUDE
       
    48 *         OS_LAYER_SYSTEMINCLUDE
       
    49 **
       
    50 *     *************************************************************
       
    51 *     * Macros related to using various parts of stdapis
       
    52 *     *************************************************************
       
    53 *       To use STLLIB you need to have this in your mmp-file
       
    54 *         STLLIB_USAGE_DEFINITIONS
       
    55 *
       
    56 *       Depending on what module you are using from stdapis you need to have
       
    57 *       one or more of the following macros in your mmp-file (every one in 
       
    58 *       separate line !)
       
    59 *
       
    60 *          OS_LAYER_LIBC_SYSTEMINCLUDE
       
    61 *          OS_LAYER_GLIB_SYSTEMINCLUDE
       
    62 *          OS_LAYER_SSL_SYSTEMINCLUDE
       
    63 *          OS_LAYER_STDCPP_SYSTEMINCLUDE
       
    64 *          OS_LAYER_BOOST_SYSTEMINCLUDE
       
    65 *          OS_LAYER_DBUS_SYSTEMINCLUDE
       
    66 *          OS_LAYER_LIBUTILITY_SYSTEMINCLUDE
       
    67 *
       
    68 *     *************************************************************
       
    69 *     * Macros related to exporting Public and Platform APIs into 
       
    70 *     * correct place in the new system. 
       
    71 *     *
       
    72 *     * The macro that you should use depends on 2 things:
       
    73 *     *  - in which layer your package, which exports the APIs resides
       
    74 *     *  - what is the visibility of the API (public or platform)
       
    75 *     *************************************************************
       
    76 *      // the exporting of public APIs should use one of below macros
       
    77 *      // depending on which layer the API belogs to
       
    78 *      APP_LAYER_PUBLIC_EXPORT_PATH
       
    79 *      MW_LAYER_PUBLIC_EXPORT_PATH
       
    80 *      OS_LAYER_PUBLIC_EXPORT_PATH
       
    81 *
       
    82 *      // the exporting of platform APIs should use one of below macros
       
    83 *      // depending on which layer the API belogs to
       
    84 *      APP_LAYER_PLATFORM_EXPORT_PATH
       
    85 *      MW_LAYER_PLATFORM_EXPORT_PATH
       
    86 *      OS_LAYER_PLATFORM_EXPORT_PATH
       
    87 *
       
    88 *      The hierarchy how APIs should reside in foundation has been specified
       
    89 *      in developer documentation. See further details from documentation.
       
    90 *      Below is example case relying on the structure
       
    91 *        my_own_api/group/bld.inf
       
    92 *        my_own_api/inc/header1.h
       
    93 *        my_own_api/inc/subdir/header2.h
       
    94 *  
       
    95 *      Assuming that the API is in middleware layer and a public API. 
       
    96 *      Then the bld.inf should have the following      
       
    97 *        ../inc/header1.h  APP_LAYER_PUBLIC_EXPORT_PATH(header1.h)
       
    98 *        ../inc/subdir/header2.h  APP_LAYER_PUBLIC_EXPORT_PATH(subdir/header2.h)
       
    99 *  
       
   100 *      In the above case the locations are as follow (with current MACRO settings):
       
   101 *        header1.h in /epoc32/include/app
       
   102 *        header2.h in /epoc32/include/app/subdir
       
   103 *
       
   104 *
       
   105 *     *************************************************************
       
   106 *     * Macros related to IBY file exporting
       
   107 *     *************************************************************
       
   108 *			
       
   109 *	    Component bld.inf files need to include platform_paths.hrh, see
       
   110 *           beginning of this file on how to do this correctly. Component bld.inf 
       
   111 *           files need to use these macros in PRJ_EXPORTS to get their IBY files 
       
   112 *           to ROM image.
       
   113 *
       
   114 *     ---------------------------------------------
       
   115 *     Usage for Core image (ROM+ROFS1):
       
   116 *     ---------------------------------------------
       
   117 *	 // Layer specific specific macros. Use the macro, which is specified
       
   118 *        // for the layer, in which your component resides
       
   119 *        <somepath>/<file1.iby>  CORE_APP_LAYER_IBY_EXPORT_PATH(<file1.iby>)
       
   120 *	 <somepath>/<file2.iby>  CORE_MW_LAYER_IBY_EXPORT_PATH(<file2.iby>)
       
   121 *	 <somepath>/<file3.iby>  CORE_OS_LAYER_IBY_EXPORT_PATH(<file3.iby>)
       
   122 *
       
   123 *	 //stub iby files
       
   124 *	 <somepath>/<file4.iby>  CORE_IBY_EXPORT_PATH(stubs,<file4.iby>)
       
   125 *	 //tool iby files
       
   126 *	 <somepath>/<file5.iby>  CORE_IBY_EXPORT_PATH(tools,<file5.iby>)
       
   127 *		
       
   128 *     ---------------------------------------------
       
   129 *     Usage for Variant image, Language part (ROFS2):
       
   130 *     ---------------------------------------------
       
   131 *	 // Layer specific specific macros. Use the macro, which is specified
       
   132 *        // for the layer, in which your component resides
       
   133 *        <somepath>/<file1.iby>  LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(<file1.iby>)
       
   134 *	 <somepath>/<file2.iby>  LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(<file2.iby>)
       
   135 *	 <somepath>/<file3.iby>  LANGUAGE_OS_LAYER_IBY_EXPORT_PATH(<file3.iby>)			
       
   136 *
       
   137 *     ---------------------------------------------
       
   138 *     Usage for Variant image, Language part  (ROFS2):
       
   139 *     ---------------------------------------------
       
   140 *	 // Layer specific specific macros. Use the macro, which is specified
       
   141 *        // for the layer, in which your component resides
       
   142 *        <somepath>/<file1.iby>  CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(<file1.iby>)
       
   143 *	 <somepath>/<file2.iby>  CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(<file2.iby>)
       
   144 *	 <somepath>/<file3.iby>  CUSTOMER_OS_LAYER_IBY_EXPORT_PATH(<file3.iby>)			
       
   145 *
       
   146 *     ---------------------------------------------
       
   147 *     Usage for Customer Variant image, (ROFS3):
       
   148 *     ---------------------------------------------
       
   149 *	 // Layer specific specific macros. Use the macro, which is specified
       
   150 *        // for the layer, in which your component resides
       
   151 *        <somepath>/<f1.iby> CUSTOMER_VARIANT_APP_LAYER_IBY_EXPORT_PATH(<f1.iby>)
       
   152 *	 <somepath>/<f2.iby> CUSTOMER_VARIANT_MW_LAYER_IBY_EXPORT_PATH(<f2.iby>)
       
   153 *	 <somepath>/<f3.iby> CUSTOMER_VARIANT_OS_LAYER_IBY_EXPORT_PATH(<f3.iby>)			
       
   154 *	
       
   155 *
       
   156 *     *************************************************************
       
   157 *     * Macro related to Exporting localization .loc files into 
       
   158 *     * correct place in the system. 
       
   159 *     *************************************************************
       
   160 *
       
   161 *     ---------------------------------------------
       
   162 *     Usage for components:
       
   163 *     ---------------------------------------------
       
   164 *	    Component bld.inf files need to include platform_paths.hrh, see
       
   165 *           beginning of this file on how to do this correctly. Component bld.inf 
       
   166 *           files need to use these macros in PRJ_EXPORTS to get their loc files 
       
   167 *           for localization.
       
   168 *     loc files that should be localized by localisation team should be in 
       
   169 *     loc-folder in the source tree (see developer guidelines)
       
   170 *
       
   171 *	 // Layer specific specific macros. Use the macro, which is specified
       
   172 *        // for the layer, in which your component resides
       
   173 *	 <somepath>/loc/<file>.loc  APP_LAYER_LOC_EXPORT_PATH(<file>.loc)
       
   174 *	 <somepath>/loc/<file>.loc  MW_LAYER_LOC_EXPORT_PATH(<file>.loc)
       
   175 *	 <somepath>/loc/<file>.loc  OS_LAYER_LOC_EXPORT_PATH(<file>.loc)
       
   176 *
       
   177 * 
       
   178 *
       
   179 *
       
   180 */
       
   181 
       
   182 
       
   183 #ifndef PLATFORM_PATHS_HRH
       
   184 #define PLATFORM_PATHS_HRH
       
   185 
       
   186 /**
       
   187 **************************************************************************
       
   188 * General comments about the exporting of headers macros
       
   189 *  1) The definitions point currently to the old locations. (which makes some 
       
   190 *     macros to have same values. The idea is that you can already start using
       
   191 *     them now and those will be later on changed => change affects everybody.
       
   192 ***************************************************************************
       
   193 */
       
   194 
       
   195 /**
       
   196 * ---------------------------------------
       
   197 * Location, where the applications layer specific public headers should be exported
       
   198 * See usage on top of this hrh-file.
       
   199 * ---------------------------------------
       
   200 */
       
   201 
       
   202 #if __GNUC__ >= 3
       
   203 #define APP_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
       
   204 #define APP_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/app/exported
       
   205 #else
       
   206 #define APP_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
       
   207 #define APP_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/app/##exported
       
   208 #endif
       
   209 
       
   210 /**
       
   211 * ---------------------------------------
       
   212 * Location, where the applications layer specific platform headers should be exported
       
   213 * See usage on top of this hrh-file.
       
   214 * ---------------------------------------
       
   215 */
       
   216 #if __GNUC__ >= 3
       
   217 #define APP_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
       
   218 #define APP_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/app/exported
       
   219 #else
       
   220 #define APP_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
       
   221 #define APP_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/app/##exported
       
   222 #endif
       
   223 
       
   224 /**
       
   225 * ---------------------------------------
       
   226 * Location, where the middleware layer specific public headers should be exported
       
   227 * See usage on top of this hrh-file.
       
   228 * ---------------------------------------
       
   229 */
       
   230 #if __GNUC__ >= 3
       
   231 #define MW_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
       
   232 #define MW_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/mw/exported
       
   233 #else
       
   234 #define MW_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
       
   235 #define MW_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/mw/##exported
       
   236 #endif
       
   237 
       
   238 /**
       
   239 * ---------------------------------------
       
   240 * Location, where the middleware layer specific platform headers should be exported
       
   241 * ---------------------------------------
       
   242 */
       
   243 #if __GNUC__ >= 3
       
   244 #define MW_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
       
   245 #define MW_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/mw/exported
       
   246 #else
       
   247 #define MW_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
       
   248 #define MW_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/mw/##exported
       
   249 #endif
       
   250 
       
   251 /**
       
   252 * ---------------------------------------
       
   253 * Location, where the os layer specific public headers should be exported
       
   254 * ---------------------------------------
       
   255 */
       
   256 #if __GNUC__ >= 3
       
   257 #define  OSEXT_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
       
   258 #define  OS_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/exported
       
   259 #else
       
   260 #define  OSEXT_LAYER_SDK_EXPORT_PATH(exported) do not use intentionally generates error
       
   261 #define  OS_LAYER_PUBLIC_EXPORT_PATH(exported) /epoc32/include/##exported
       
   262 #endif
       
   263 
       
   264 /**
       
   265 * ---------------------------------------
       
   266 * Location, where the os specific platform headers should be exported
       
   267 * ---------------------------------------
       
   268 */
       
   269 #if __GNUC__ >= 3
       
   270 #define OSEXT_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
       
   271 #define OS_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/exported
       
   272 #else
       
   273 #define OSEXT_LAYER_DOMAIN_EXPORT_PATH(exported) do not use intentionally generates error
       
   274 #define OS_LAYER_PLATFORM_EXPORT_PATH(exported) /epoc32/include/platform/##exported
       
   275 #endif
       
   276 
       
   277 /**
       
   278 * ---------------------------------------
       
   279 * Location, where the  cenrep excel sheets should be exported
       
   280 * Deprecated: should no longer be used. Kept for compability.
       
   281 * ---------------------------------------
       
   282 */
       
   283 #if __GNUC__ >= 3
       
   284 #define CENREP_XLS_EXPORT_PATH(exported) /epoc32/tools/cenrep/data/src/exported
       
   285 #else
       
   286 #define CENREP_XLS_EXPORT_PATH(exported) /epoc32/tools/cenrep/data/src/##exported
       
   287 #endif
       
   288 
       
   289 /**
       
   290 **************************************************************************
       
   291 *  General comments about the 3 define statements related to include paths:
       
   292 *  1) the /epoc32/include/oem is now defined there for backward compability.
       
   293 *     Once the directory is empty, the directory will be removed. However this 
       
   294 *     enables us to ensure that if you use these define statements => you do 
       
   295 *     not have to remove the statements later on, when the directory no longer 
       
   296 *     exists.
       
   297 *  2) These statements should be enough in normal cases. For certain specific 
       
   298 *     cases you migth need to add some specific directory from /epoc32/include
       
   299 *     (for instance /epoc32/include/ecom).
       
   300 *     In normal cases the include staments in code should be relative to one of 
       
   301 *     the system include paths, but in certain cases, the included files requires
       
   302 *     that the subdirectory is also part of the system include paths.
       
   303 ****************************************************************************
       
   304 */
       
   305 
       
   306 /**
       
   307 * Delete or comment out this macro definition to turn on header relocation.
       
   308 */
       
   309 #define SYMBIAN_OLD_EXPORT_LOCATION
       
   310 
       
   311 
       
   312 /**
       
   313 * This define statements defines the SYSTEMINCLUDE-line, which is intended to be 
       
   314 * used in the mmp-files that are part of the applications-layer. It includes all 
       
   315 * the needed directories from the /epoc32/include, that are valid ones for the 
       
   316 * application-layer components. 
       
   317 *
       
   318 * Applications layer is the last one in the list, since most likely the most of 
       
   319 * the headers come from middleware or os-layer  => thus they are first.
       
   320 */
       
   321 #define APP_LAYER_SYSTEMINCLUDE SYSTEMINCLUDE \
       
   322  /epoc32/include \
       
   323  /epoc32/include/mw \
       
   324  /epoc32/include/platform/mw \
       
   325  /epoc32/include/platform \
       
   326  /epoc32/include/app \
       
   327  /epoc32/include/platform/app \
       
   328  /epoc32/include/platform/loc \
       
   329  /epoc32/include/platform/mw/loc \
       
   330  /epoc32/include/platform/app/loc \
       
   331  /epoc32/include/platform/loc/sc \
       
   332  /epoc32/include/platform/mw/loc/sc \
       
   333  /epoc32/include/platform/app/loc/sc
       
   334 
       
   335 #ifdef SYMBIAN_OLD_EXPORT_LOCATION
       
   336 #define APP_LAYER_SYSTEMINCLUDE_SYMBIAN SYSTEMINCLUDE \
       
   337  /epoc32/include \
       
   338  /epoc32/include/platform 
       
   339 #else
       
   340 #define APP_LAYER_SYSTEMINCLUDE_SYMBIAN SYSTEMINCLUDE \
       
   341  /epoc32/include \
       
   342  /epoc32/include/mw \
       
   343  /epoc32/include/platform/mw \
       
   344  /epoc32/include/platform \
       
   345  /epoc32/include/app \
       
   346  /epoc32/include/platform/app
       
   347 #endif
       
   348 /*
       
   349  /epoc32/include/platform/loc \
       
   350  /epoc32/include/platform/mw/loc \
       
   351  /epoc32/include/platform/app/loc \
       
   352  /epoc32/include/platform/loc/sc \
       
   353  /epoc32/include/platform/mw/loc/sc \
       
   354  /epoc32/include/platform/app/loc/sc
       
   355 */
       
   356  
       
   357 /**
       
   358 * This define statements defines the SYSTEMINCLUDE-line, which is intended to be
       
   359 * used in the mmp-files that are part of the middleware-layer. It includes all 
       
   360 * the needed directories from the /epoc32/include, that are valid ones for the 
       
   361 * middleware-layer components. 
       
   362 */
       
   363 #define MW_LAYER_SYSTEMINCLUDE SYSTEMINCLUDE \
       
   364  /epoc32/include \
       
   365  /epoc32/include/mw \
       
   366  /epoc32/include/platform/mw \
       
   367  /epoc32/include/platform \
       
   368  /epoc32/include/platform/loc \
       
   369  /epoc32/include/platform/mw/loc \
       
   370  /epoc32/include/platform/loc/sc \
       
   371  /epoc32/include/platform/mw/loc/sc
       
   372 
       
   373 #ifdef SYMBIAN_OLD_EXPORT_LOCATION
       
   374 #define MW_LAYER_SYSTEMINCLUDE_SYMBIAN SYSTEMINCLUDE \
       
   375  /epoc32/include \
       
   376  /epoc32/include/platform 
       
   377 #else
       
   378 #define MW_LAYER_SYSTEMINCLUDE_SYMBIAN SYSTEMINCLUDE \
       
   379  /epoc32/include \
       
   380  /epoc32/include/mw \
       
   381  /epoc32/include/platform/mw \
       
   382  /epoc32/include/platform 
       
   383 #endif
       
   384 /*
       
   385  /epoc32/include/platform/loc \
       
   386  /epoc32/include/platform/mw/loc \
       
   387  /epoc32/include/platform/loc/sc \
       
   388  /epoc32/include/platform/mw/loc/sc
       
   389 */
       
   390 
       
   391 /**
       
   392 * This define statements defines the SYSTEMINCLUDE-line, which is intended to be
       
   393 * used in the mmp-files that are part of the  osextensions-layer. It includes all
       
   394 * the needed directories from the /epoc32/include, that are valid ones for the
       
   395 * os-layer components. 
       
   396 */
       
   397 #define OS_LAYER_SYSTEMINCLUDE SYSTEMINCLUDE \
       
   398  /epoc32/include \
       
   399  /epoc32/include/platform \
       
   400  /epoc32/include/platform/loc \
       
   401  /epoc32/include/platform/loc/sc
       
   402 
       
   403 #ifdef SYMBIAN_OLD_EXPORT_LOCATION
       
   404 #define OS_LAYER_SYSTEMINCLUDE_SYMBIAN SYSTEMINCLUDE \
       
   405  /epoc32/include \
       
   406  /epoc32/include/platform
       
   407 #else
       
   408 #define OS_LAYER_SYSTEMINCLUDE_SYMBIAN SYSTEMINCLUDE \
       
   409  /epoc32/include \
       
   410  /epoc32/include/platform 
       
   411 #endif
       
   412 /*
       
   413  /epoc32/include/platform/loc \
       
   414  /epoc32/include/platform/loc/sc
       
   415 */
       
   416 
       
   417 // Below statement is Deprecated and the OS_LAYER_SYSTEMINCLUDE-macro has to be
       
   418 // used.
       
   419 // Removed, use teh OS_LAYER_SYSTEMINCLUDE instead.
       
   420 // #define OSEXT_LAYER_SYSTEMINCLUDE OS_LAYER_SYSTEMINCLUDE
       
   421 
       
   422 /**
       
   423 * This define statements defines the SYSTEMINCLUDE-line, which is intended to be
       
   424 * used in the mmp-files that are part of the os-layer. This is intended 
       
   425 * to be only used by those components which need to use in their mmp-file either
       
   426 * kern_ext.mmh or nkern_ext.mmh. Reason is that those
       
   427 * 2 files already contain the /epoc32/include  as system include path.
       
   428 * 
       
   429 */
       
   430 #define OS_LAYER_KERNEL_SYSTEMINCLUDE SYSTEMINCLUDE \
       
   431  /epoc32/include/platform
       
   432 
       
   433 // Below statement is Deprecated and the OS_LAYER_KERNEL_SYSTEMINCLUDE-macro 
       
   434 // has to be used.
       
   435 // Removed, use the OS_LAYER_KERNER_SYSTEMINCLUDE instead.
       
   436 // #define OSEXT_LAYER_KERNEL_SYSTEMINCLUDE OS_LAYER_KERNEL_SYSTEMINCLUDE
       
   437 
       
   438 /**
       
   439 ****************************************************************************
       
   440 * Definitions that also define the systeminclude paths for various
       
   441 * part of stdapis. Each statement has to be in its own line in the using
       
   442 * mmp-file. There are be more than 1 statement in single mmp-file.
       
   443 ****************************************************************************
       
   444 */
       
   445 #define OS_LAYER_LIBC_SYSTEMINCLUDE SYSTEMINCLUDE  OS_LAYER_PUBLIC_EXPORT_PATH(stdapis)
       
   446 
       
   447 #define OS_LAYER_GLIB_SYSTEMINCLUDE SYSTEMINCLUDE  OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0) \
       
   448                                                    OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0/glib) \
       
   449                                                    OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/glib-2.0/gobject)
       
   450 
       
   451 
       
   452 #define OS_LAYER_SSL_SYSTEMINCLUDE SYSTEMINCLUDE   OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/openssl)
       
   453                   
       
   454 #define OS_LAYER_STDCPP_SYSTEMINCLUDE SYSTEMINCLUDE  OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlport) 
       
   455 
       
   456 #define OS_LAYER_BOOST_SYSTEMINCLUDE SYSTEMINCLUDE   OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/boost)
       
   457 
       
   458 #define OS_LAYER_DBUS_SYSTEMINCLUDE SYSTEMINCLUDE    OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/dbus-1.0) \
       
   459                                                      OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/dbus-1.0/dbus)
       
   460 #define OS_LAYER_LIBUTILITY_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PLATFORM_EXPORT_PATH(stdapis/utility)
       
   461 
       
   462 #define OS_LAYER_LIBOIL_SYSTEMINCLUDE SYSTEMINCLUDE OS_LAYER_PLATFORM_EXPORT_PATH(stdapis/liboil)
       
   463 
       
   464 #define MW_LAYER_GSTREAMER_SYSTEMINCLUDE SYSTEMINCLUDE \
       
   465  /epoc32/include/platform/mw/gstreamer/10_18 \
       
   466  /epoc32/include/platform/mw/gstreamer/10_18/gst \
       
   467  /epoc32/include/platform/mw/gstreamer/10_18/gst/gstcontroller \
       
   468  /epoc32/include/stdapis/machine
       
   469 
       
   470 // You need to add STLLIB_USAGE_DEFINITIONS as a separate line into your mmp-file, if you are using
       
   471 // the stllib. 
       
   472 #define STLLIB_USAGE_DEFINITIONS OPTION CW -wchar_t on\
       
   473         MACRO _WCHAR_T_DECLARED
       
   474 
       
   475 
       
   476 /**
       
   477  *  Symbian systeminclude macros for standard APIs.
       
   478 */
       
   479 #define OS_LAYER_ESTLIB_SYSTEMINCLUDE SYSTEMINCLUDE  OS_LAYER_PUBLIC_EXPORT_PATH(libc)
       
   480 
       
   481 #define OS_LAYER_STLPORTV5_SYSTEMINCLUDE SYSTEMINCLUDE    OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/stlportv5)
       
   482 
       
   483 #define OS_LAYER_LIBXML2_SYSTEMINCLUDE SYSTEMINCLUDE  OS_LAYER_PUBLIC_EXPORT_PATH(stdapis/libxml2)
       
   484 
       
   485 
       
   486 /**
       
   487 ****************************************************************************
       
   488 * Definitions that also define the paths to the layer specific source directories.
       
   489 ****************************************************************************
       
   490 */
       
   491 /**
       
   492 * The below 3 macros define the paths to the layer-specific source dirs.
       
   493 * See usage on top of this hrh-file, these are used the same way as 
       
   494 * for instance the OS_LAYER_DOMAIN_EXPORT_PATH
       
   495 * Deprecated: is not allowed to be using in Symbian Foundation
       
   496 */
       
   497 #if __GNUC__ >= 3
       
   498 #define APP_LAYER_SOURCE_PATH(rest)    do not use intentionally generates error in export
       
   499 #define MW_LAYER_SOURCE_PATH(rest)     do not use intentionally generates error in export
       
   500 #define OSEXT_LAYER_SOURCE_PATH(rest)  do not use intentionally generates error in export
       
   501 #else
       
   502 #define APP_LAYER_SOURCE_PATH(rest)    do not use intentionally generates error in export
       
   503 #define MW_LAYER_SOURCE_PATH(rest)     do not use intentionally generates error in export
       
   504 #define OSEXT_LAYER_SOURCE_PATH(rest)  do not use intentionally generates error in export
       
   505 #endif
       
   506 
       
   507 /**
       
   508 ****************************************************************************
       
   509 * Definitions to export IBY files to different folders where they will be taken 
       
   510 * to ROM image
       
   511 ****************************************************************************
       
   512 */
       
   513 
       
   514 // Following three definitions are used for exporting IBY files to 
       
   515 // Core image (ROM+ROFS1). IBY files are exported according to their layer.
       
   516 #if __GNUC__ >= 3
       
   517 #define CORE_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/app/exported
       
   518 #define CORE_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/mw/exported
       
   519 #define CORE_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
       
   520 #define CORE_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/os/exported
       
   521 #define CORE_ADAPT_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/exported
       
   522 #else
       
   523 #define CORE_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/app/##exported
       
   524 #define CORE_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/mw/##exported
       
   525 #define CORE_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
       
   526 #define CORE_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/core/os/##exported
       
   527 #define CORE_ADAPT_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/##exported
       
   528 #endif
       
   529 
       
   530 // Following three definitions are used for exporting IBY files to Variant image, 
       
   531 // Language part (ROFS2). IBY files are exported according to their layer.
       
   532 #if __GNUC__ >= 3
       
   533 #define LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/app/exported
       
   534 #define LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/mw/exported
       
   535 #define LANGUAGE_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
       
   536 #define LANGUAGE_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/os/exported
       
   537 #else
       
   538 #define LANGUAGE_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/app/##exported
       
   539 #define LANGUAGE_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/mw/##exported
       
   540 #define LANGUAGE_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
       
   541 #define LANGUAGE_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/language/os/##exported
       
   542 #endif
       
   543 
       
   544 // Following three definitions are used for exporting IBY files to Variant image, (ROFS2). 
       
   545 // BY files are exported according to their layer.
       
   546 #if __GNUC__ >= 3
       
   547 #define CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/app/exported
       
   548 #define CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/mw/exported
       
   549 #define CUSTOMER_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
       
   550 #define CUSTOMER_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/os/exported
       
   551 #else
       
   552 #define CUSTOMER_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/app/##exported
       
   553 #define CUSTOMER_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/mw/##exported
       
   554 #define CUSTOMER_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
       
   555 #define CUSTOMER_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customer/os/##exported
       
   556 #endif
       
   557 
       
   558 // Following three definitions are used for exporting IBY files to 
       
   559 // Variant Customer part, (ROFS3). IBY files are exported according to 
       
   560 // their layer.
       
   561 #if __GNUC__ >= 3
       
   562 #define CUSTOMER_VARIANT_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/app/exported
       
   563 #define CUSTOMER_VARIANT_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/mw/exported
       
   564 #define CUSTOMER_VARIANT_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
       
   565 #define CUSTOMER_VARIANT_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/os/exported
       
   566 #else
       
   567 #define CUSTOMER_VARIANT_APP_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/app/##exported
       
   568 #define CUSTOMER_VARIANT_MW_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/mw/##exported
       
   569 #define CUSTOMER_VARIANT_OSEXT_LAYER_IBY_EXPORT_PATH(exported) do not use intentionally generates error
       
   570 #define CUSTOMER_VARIANT_OS_LAYER_IBY_EXPORT_PATH(exported) /epoc32/rom/include/customervariant/os/##exported
       
   571 #endif
       
   572 
       
   573 
       
   574 // Following definition is used for exporting tools and stubs IBY files to 
       
   575 // Core image.
       
   576 #if __GNUC__ >= 3
       
   577 #define CORE_IBY_EXPORT_PATH(path,exported)  /epoc32/rom/include/core/path/exported
       
   578 #else
       
   579 #define CORE_IBY_EXPORT_PATH(path,exported)  /epoc32/rom/include/core/##path##/##exported
       
   580 #endif
       
   581 
       
   582 /**
       
   583 * ---------------------------------------
       
   584 * Location, where the localization .loc file should be exported
       
   585 * ---------------------------------------
       
   586 */
       
   587 // Location, where the os layer localization .loc file should be 
       
   588 // exported
       
   589 #if __GNUC__ >= 3
       
   590 // Deprecated: use the OS_LAYER_LOC_EXPORT_PATH instead
       
   591 #define OSEXT_LAYER_LOC_EXPORT_PATH(exported) do not use intentionally generates error
       
   592 #define OS_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/loc/sc/exported
       
   593 
       
   594 // Location, where the middleware layer localization .loc file should be 
       
   595 // exported
       
   596 #define MW_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/mw/loc/sc/exported
       
   597 
       
   598 // Location, where the application layer localization .loc file should be 
       
   599 // exported
       
   600 #define APP_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/app/loc/sc/exported
       
   601 
       
   602 #else
       
   603 
       
   604 // Deprecated: use the OS_LAYER_LOC_EXPORT_PATH instead
       
   605 #define OSEXT_LAYER_LOC_EXPORT_PATH(exported) do not use intentionally generates error
       
   606 #define OS_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/loc/sc/##exported
       
   607 
       
   608 // Location, where the middleware layer localization .loc file should be exported
       
   609 #define MW_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/mw/loc/sc/##exported
       
   610 
       
   611 // Location, where the application layer localization .loc file should be exported
       
   612 #define APP_LAYER_LOC_EXPORT_PATH(exported) /epoc32/include/platform/app/loc/sc/##exported
       
   613 #endif
       
   614 
       
   615 /**
       
   616 * ---------------------------------------
       
   617 * Macros for Configuration tool migration. 
       
   618 * The below macros define the location under epoc32, where the confml 
       
   619 * (Configuration Markup Language) and crml (Central Repository Markup Language) 
       
   620 * files should be exported.
       
   621 * ---------------------------------------
       
   622 */
       
   623 #if __GNUC__ >= 3
       
   624 #define CONFML_EXPORT_PATH(file,category)           /epoc32/rom/config/assets/category/confml/file
       
   625 #define CRML_EXPORT_PATH(file,category)             /epoc32/rom/config/assets/category/implml/file
       
   626 #define GCFML_EXPORT_PATH(file,category)            /epoc32/rom/config/assets/category/implml/file
       
   627 #define CONFML_CONFIG_EXPORT_PATH(file,category)    /epoc32/rom/config/assets/category/confml/file
       
   628 #else
       
   629 #define CONFML_EXPORT_PATH(file,category)           /epoc32/rom/config/assets/##category##/confml/##file
       
   630 #define CRML_EXPORT_PATH(file,category)             /epoc32/rom/config/assets/##category##/implml/##file
       
   631 #define GCFML_EXPORT_PATH(file,category)            /epoc32/rom/config/assets/##category##/implml/##file
       
   632 #define CONFML_CONFIG_EXPORT_PATH(file,category)    /epoc32/rom/config/assets/##category##/confml/##file
       
   633 #endif
       
   634 
       
   635 #define APP_LAYER_CONFML(exported)                  CONFML_EXPORT_PATH(exported,s60)
       
   636 #define APP_LAYER_CRML(exported)                    CRML_EXPORT_PATH(exported,s60)
       
   637 #define APP_LAYER_GCFML(exported)                   GCFML_EXPORT_PATH(exported,s60)
       
   638 #define APP_LAYER_CONFML_CONFIG(exported)           CONFML_CONFIG_EXPORT_PATH(exported,s60)
       
   639                                                     
       
   640 #define MW_LAYER_CONFML(exported)                   CONFML_EXPORT_PATH(exported,s60)
       
   641 #define MW_LAYER_CRML(exported)                     CRML_EXPORT_PATH(exported,s60)
       
   642 #define MW_LAYER_GCFML(exported)                    GCFML_EXPORT_PATH(exported,s60)
       
   643 #define MW_LAYER_CONFML_CONFIG(exported)            CONFML_CONFIG_EXPORT_PATH(exported,s60)
       
   644        
       
   645 // Deprecate: Use the OS_LAYER_* macros instead of OSEXT_LAYER_*                                             
       
   646 #define OSEXT_LAYER_CONFML(exported)                do not use intentionally generates error
       
   647 #define OSEXT_LAYER_CRML(exported)                  do not use intentionally generates error
       
   648 #define OSEXT_LAYER_GCFML(exported)                 do not use intentionally generates error
       
   649 #define OSEXT_LAYER_CONFML_CONFIG(exported)         do not use intentionally generates error
       
   650 #define OS_LAYER_CONFML(exported)                   CONFML_EXPORT_PATH(exported,s60)
       
   651 #define OS_LAYER_CRML(exported)                     CRML_EXPORT_PATH(exported,s60)
       
   652 #define OS_LAYER_GCFML(exported)                    GCFML_EXPORT_PATH(exported,s60)
       
   653 #define OS_LAYER_CONFML_CONFIG(exported)            CONFML_CONFIG_EXPORT_PATH(exported,s60)
       
   654 
       
   655 #define APP_LAYER_EXPORTS_CONFML(exported)           CONFML_EXPORT_PATH(exported,symbianos)
       
   656 #define APP_LAYER_EXPORTS_CRML(exported)             CRML_EXPORT_PATH(exported,symbianos)
       
   657 #define APP_LAYER_EXPORTS_GCFML(exported)            GCFML_EXPORT_PATH(exported,symbianos)
       
   658 
       
   659 #define MW_LAYER_EXPORTS_CONFML(exported)            CONFML_EXPORT_PATH(exported,symbianos)
       
   660 #define MW_LAYER_EXPORTS_CRML(exported)              CRML_EXPORT_PATH(exported,symbianos)
       
   661 #define MW_LAYER_EXPORTS_GCFML(exported)             GCFML_EXPORT_PATH(exported,symbianos)
       
   662        
       
   663 // Deprecate: Use the OS_LAYER_* macros instead of OSEXT_LAYER_*                                             
       
   664 #define OSEXT_LAYER_CONFML(exported)                do not use intentionally generates error
       
   665 #define OSEXT_LAYER_CRML(exported)                  do not use intentionally generates error
       
   666 #define OSEXT_LAYER_GCFML(exported)                 do not use intentionally generates error
       
   667 #define OSEXT_LAYER_CONFML_CONFIG(exported)         do not use intentionally generates error
       
   668 #define OS_LAYER_EXPORTS_CONFML(exported)            CONFML_EXPORT_PATH(exported,symbianos)
       
   669 #define OS_LAYER_EXPORTS_CRML(exported)              CRML_EXPORT_PATH(exported,symbianos)
       
   670 #define OS_LAYER_EXPORTS_GCFML(exported)             GCFML_EXPORT_PATH(exported,symbianos)
       
   671 
       
   672 /**
       
   673  * Macros to be used in kernel and BSP files to specify systeminclude locations. These macros are necessary
       
   674  * because in some case, the systeminclude location changes based on, e.g., hardware platform.
       
   675  */
       
   676 #if __GNUC__ >= 3
       
   677 #define SYMBIAN_BASE_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(included)
       
   678 #define SYMBIAN_NE1_TB_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ne1_tb/included)
       
   679 #define SYMBIAN_TIOMAP3_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(tiomap3/included)
       
   680 #define SYMBIAN_H2_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(h2/included)
       
   681 #define SYMBIAN_ASSP_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(assp/included)
       
   682 #define SYMBIAN_OMAP_HRP_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(omap_hrp/included)
       
   683 #define SYMBIAN_WINS_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(wins/included)
       
   684 #define SYMBIAN_8500ED_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(included)
       
   685 #define SYMBIAN_8500_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(included)
       
   686 #define SYMBIAN_INTERNAL_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(internal/included)
       
   687 #define SYMBIAN_CONFIG_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(included)
       
   688 #define SYMBIAN_NDKX_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(included)
       
   689 #else
       
   690 #define SYMBIAN_BASE_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(##included)
       
   691 #define SYMBIAN_NE1_TB_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(ne1_tb/##included)
       
   692 #define SYMBIAN_TIOMAP3_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(tiomap3/##included)
       
   693 #define SYMBIAN_H2_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(h2/##included)
       
   694 #define SYMBIAN_ASSP_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(assp/##included)
       
   695 #define SYMBIAN_OMAP_HRP_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(omap_hrp/##included)
       
   696 #define SYMBIAN_WINS_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(wins/##included)
       
   697 #define SYMBIAN_8500ED_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(##included)
       
   698 #define SYMBIAN_8500_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(##included)
       
   699 #define SYMBIAN_INTERNAL_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(internal/##included)
       
   700 #define SYMBIAN_CONFIG_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(##included)
       
   701 #define SYMBIAN_NDKX_SYSTEMINCLUDE(included) SYSTEMINCLUDE SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(##included)
       
   702 #endif
       
   703    
       
   704 
       
   705 /**
       
   706 * Temporary macros for Symbian exports.
       
   707 */
       
   708 #ifdef SYMBIAN_OLD_EXPORT_LOCATION
       
   709 #if __GNUC__ >= 3
       
   710 #define SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(exported) OS_LAYER_PUBLIC_EXPORT_PATH(exported)
       
   711 #define SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(exported) OS_LAYER_PUBLIC_EXPORT_PATH(exported)
       
   712 #define SYMBIAN_MW_LAYER_PUBLIC_EXPORT_PATH(exported) OS_LAYER_PUBLIC_EXPORT_PATH(exported)
       
   713 #define SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(exported) OS_LAYER_PUBLIC_EXPORT_PATH(exported)
       
   714 #define SYMBIAN_APP_LAYER_PUBLIC_EXPORT_PATH(exported) OS_LAYER_PUBLIC_EXPORT_PATH(exported)
       
   715 #define SYMBIAN_APP_LAYER_PLATFORM_EXPORT_PATH(exported) OS_LAYER_PUBLIC_EXPORT_PATH(exported)
       
   716 #else
       
   717 #define SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(exported) OS_LAYER_PUBLIC_EXPORT_PATH(##exported)
       
   718 #define SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(exported) OS_LAYER_PUBLIC_EXPORT_PATH(##exported)
       
   719 #define SYMBIAN_MW_LAYER_PUBLIC_EXPORT_PATH(exported) OS_LAYER_PUBLIC_EXPORT_PATH(##exported)
       
   720 #define SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(exported) OS_LAYER_PUBLIC_EXPORT_PATH(##exported)
       
   721 #define SYMBIAN_APP_LAYER_PUBLIC_EXPORT_PATH(exported) OS_LAYER_PUBLIC_EXPORT_PATH(##exported)
       
   722 #define SYMBIAN_APP_LAYER_PLATFORM_EXPORT_PATH(exported) OS_LAYER_PUBLIC_EXPORT_PATH(##exported)
       
   723 #endif
       
   724 #else // not SYMBIAN_OLD_EXPORT_LOCATION
       
   725 #if __GNUC__ >= 3
       
   726 #define SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(exported) OS_LAYER_PUBLIC_EXPORT_PATH(exported)
       
   727 #define SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(exported) OS_LAYER_PLATFORM_EXPORT_PATH(exported)
       
   728 #define SYMBIAN_MW_LAYER_PUBLIC_EXPORT_PATH(exported) MW_LAYER_PUBLIC_EXPORT_PATH(exported)
       
   729 #define SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(exported) MW_LAYER_PLATFORM_EXPORT_PATH(exported)
       
   730 #define SYMBIAN_APP_LAYER_PUBLIC_EXPORT_PATH(exported) APP_LAYER_PUBLIC_EXPORT_PATH(exported)
       
   731 #define SYMBIAN_APP_LAYER_PLATFORM_EXPORT_PATH(exported) APP_LAYER_PLATFORM_EXPORT_PATH(exported)
       
   732 #else
       
   733 #define SYMBIAN_OS_LAYER_PUBLIC_EXPORT_PATH(exported) OS_LAYER_PUBLIC_EXPORT_PATH(##exported)
       
   734 #define SYMBIAN_OS_LAYER_PLATFORM_EXPORT_PATH(exported) OS_LAYER_PLATFORM_EXPORT_PATH(##exported)
       
   735 #define SYMBIAN_MW_LAYER_PUBLIC_EXPORT_PATH(exported) MW_LAYER_PUBLIC_EXPORT_PATH(##exported)
       
   736 #define SYMBIAN_MW_LAYER_PLATFORM_EXPORT_PATH(exported) MW_LAYER_PLATFORM_EXPORT_PATH(##exported)
       
   737 #define SYMBIAN_APP_LAYER_PUBLIC_EXPORT_PATH(exported) APP_LAYER_PUBLIC_EXPORT_PATH(##exported)
       
   738 #define SYMBIAN_APP_LAYER_PLATFORM_EXPORT_PATH(exported) APP_LAYER_PLATFORM_EXPORT_PATH(##exported)
       
   739 #endif
       
   740 #endif
       
   741 
       
   742 #endif  // end of PLATFORM_PATHS_HRH
       
   743