diff -r 22486c9c7b15 -r 378360dbbdba sbsv1/abld/platform/GCCE.mk --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/sbsv1/abld/platform/GCCE.mk Wed Jun 30 11:35:58 2010 +0800 @@ -0,0 +1,636 @@ +# Copyright (c) 1997-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: +# This file provides the definition of variables that are used by the component specific makefile +# This is for the BPABI (Base Platform ABI) platform using the GCCE compiler. +# Functions added as the part of Plugin Architecture +# +# + +#function to find the include path +define find-inc-path + $(subst /bin/../,/,$(subst libgcc.a,%,$(shell $(CC) -print-libgcc-file-name))) +endef + +#function to find the installation path +define find_install_path + $(subst /bin/../lib/gcc/arm-none-symbianelf/3.4.3,,$(subst libgcc.a,,$(shell $(CC) -print-libgcc-file-name))) +endef + +#function to include the version info +define find-version-info +$(strip $(shell $(CC) $(VERSION_OPTION))) +endef + +#function to find the library path +#function to determine the libgcc path +define find-gcclib-path + "$(patsubst %libgcc.a,%,$(shell $(CC) -print-libgcc-file-name))" +endef + +#function to determine the libsupc++ path +define find-libsupc-path + "$(patsubst %/libsupc++.a,%,$(shell $(CC) -print-file-name=libsupc++.a))" +endef + +#--------------- +# Path Settings +#--------------- + +# Compiler Installation Location +CC_INSTALL_PATH=$(strip $(call find_install_path)) + +#---------------------------------- +# Programs used from the ToolChain +#---------------------------------- + +# C++ Compiler +CC=arm-none-symbianelf-g++ + +# Linker +LD=arm-none-symbianelf-ld + +# Assembler +ASM=arm-none-symbianelf-as + +# Archiver +AR=arm-none-symbianelf-ar + +# Translator to translate the GCC inline assembler code +TRANASM= + +#-------------------- +# Option Prefix +#-------------------- + +# This value will be used by the backend to segregate one option from the other. +# If option prefix is one among '+','*','.'or '?' (these metacharacters have specific predefined meaning +# for pattern matching in Perl) then it should be preceded with '\'. +OPTION_PREFIX= + +#------------------ +# Compiler Options +#------------------ + +# Flag whether the compiler requires Unix slashes for absolute paths +UNIX_SLASH_FOR_CC_ABS_PATHS=1 + +#------------------- +# Debug Mode Options +#------------------- + +# Optimization Level in DEBUG mode +DEBUG_OPTIMISATION= + +# Option to produce debug information: +# -g1: little information. +# -g2: more information. +# -g : same as -g2. +# -g3: maximum amount of information. For example, at this level information +# about macros is created. +DEBUG_OPTION=-g3 + +# Option to set the debug format. +# +# GCC doesn't support the full DWARF3 format. +DEBUG_FORMAT:=-gdwarf-2 + +# Specific compiler options for a UDEB build +SYMBIAN_UDEB_CCFLAGS= $(DEBUG_OPTION) $(DEBUG_FORMAT) + +#------------------------- +# Target Processor Options +#------------------------- + +# Option to select the appropriate target processor +TARGET_ARCH_OPTION=-march=armv5t + +# Option to generate the approproate ARM instruction set. +ARM_INSTRUCTION_SET=-marm + +# Option to generate the approproate thumb instruction set. +THUMB_INSTRUCTION_SET=-mthumb + +# Compiler define for thumb instruction set +COMPILER_THUMB_DEFINES=-D__MARM_THUMB__ + +# Compiler define for interwork +COMPILER_INTERWORK_DEFINES=-D__MARM_INTERWORK__ + +# Option to specify the floating point conformance. +FPMODE_OPTION= + +# Compiler option to select softvfp mode +SOFTVFPMODE_OPTION=-msoft-float + +# Compiler option to select hardware floating point unit +VFP2MODE_OPTION= + +# Option to force all enumerations to be stored in as integers. +ENUM_OPTION= + +#--------------------------------- +# Options controlling C++ Features +#--------------------------------- + +# Option for handling Virtual functions and Virtual Tables +EXPORT_VTBL_OPTION= + +# Disables unused virtual function elimination (VFE) in C++ mode. --vfe is the default +VFE_OPTION= + +# Option to turn on exception handling +EXCEPTIONS=-fexceptions +NO_EXCEPTIONS=-fno-exceptions + +#------------------------------------------------------------------------- +# Options controlling the ARM Architecture Procedure Call Standard (AAPCS) +#------------------------------------------------------------------------- + +# This Option is for ARM Architecture Procedure Call Standard with the +# qualifier to support calls between the ARM and Thumb instruction sets. +AAPCS_OPTION=-mapcs -mthumb-interwork + +#----------------------------------------------------------- +# Options controlling generation of Compiler Warnings/Errors +#----------------------------------------------------------- + +# Option to control the Compiler warnings +CC_WARNINGS_CONTROL_OPTION=-Wall -Wno-unknown-pragmas + +# Option to control the Compiler warnings for building Standard C++ application +CC_STDCPP_WARNINGS_CONTROL_OPTION=-Wall -Wno-unknown-pragmas + +# Option to suppress the Compiler errors +CC_ERRORS_CONTROL_OPTION= + +# Option to suppress the Compiler errors for building Standard C++ +CC_STDCPP_ERRORS_CONTROL_OPTION= + +# Option to modify the Compiler warnings and errors for Symbian OS +SYMBIAN_CC_MESSAGE_OPTION=$(CC_WARNINGS_CONTROL_OPTION) $(CC_ERRORS_CONTROL_OPTION) + +#----------------- +# Optional Options +#----------------- + +# Compiler option to avoid the generation of the intermediate files. (Optional) +TEMP_FILES_OPTION=-pipe + +# Library Option +OWN_LIBRARY_OPTION= + +# Option to generate the Object File +COMPILE_ONLY_OPTION=-c + +# Option to generate the Preprocessed File +PREPROCESSOR_OPTION=-E + +# Other additional Options to be passed to the compiler +EXTRA_CC_OPTION= + +#--------------------- +# Preprocessor Options +#--------------------- + +# Prefix Header File passed to the preprocessor +PREFIXFILE=$(EPOCROOT)EPOC32\INCLUDE\GCCE\GCCE.h + +# For .cpp Source files +CPP_LANG_OPTION=-x c++ -Wno-ctor-dtor-privacy + +# For .c Source files +C_LANG_OPTION=-x c + +# For .cia Source files +CIA_LANG_OPTION=-x c++ -S -Wa,-adln + +#------------------- +# Assembler Options +#------------------- + +# Option to generate the Assembler instructions +ASSEMBLER_LISTING_OPTION=-S + +# Output option used to pass the output file name +ASM_OUTPUT_OPTION=-o + +#------------------ +# Translator Options +#------------------ + +# Flags to be passed to the translator +TRANASM_FLAGS=-n -s + +# Output option used to pass the output file name +TRANASM_OUTPUT_OPTION=-o= + +# Input option used to pass the input file name +TRANASM_INPUT_OPTION= + +#--------------------------- +# Include Options and Files +#--------------------------- + +# Option to specify the location of the header files +INCLUDE_OPTION=-I + +# Preinclude file for that compiler that contains all the compiler specific definitions +# required by the Symbian OS source code. +PREINCLUDE_OPTION=-include $(EPOCROOT)EPOC32/INCLUDE/GCCE/GCCE.h + +# Include options required by Function Call Logger +FC_LOGGER_INCLUDE_OPTION=-I +FC_LOGGER_DICTIONARY_FILE_NAME=--dictionary_file_name +FC_LOGGER_GENERATED_C_FILE_NAME=--gen_c_file_name + +# Preinclude file to be passed to the Function Call Logger which uses EDG compiler +PREINCLUDE_OPTION_FCLOGGER=$(FC_LOGGER_INCLUDE_OPTION) $(EPOCROOT)EPOC32/INCLUDE/GCCE --preinclude edg_gcce.h + +# Option to control the search for the header files. For example, if we do not want to do a search in the +# standard include directory of C++, then can restrict it by providing the appropriate option. +HEADER_FILES_CONTROL_OPTION=-nostdinc + +# Path to pick the header files from the Compiler installation directory +COMPILER_INCLUDE_PATH=$(call find-inc-path)include + +# Fetches the version of the tools from the installation directory +VERSION_OPTION=-dumpversion +VERSION_INFO:=$(call find-version-info) + +GCC_MAJOR:=$(word 1,$(subst ., , $(VERSION_INFO))) +GCC_MINOR:=$(word 2,$(subst ., , $(VERSION_INFO))) + +#--------------------- +# Release Mode Options +#--------------------- + +# Optimization Level in RELEASE mode +REL_OPTIMISATION=-O2 -fno-unit-at-a-time + +# Specific compiler options for a UREL build +SYMBIAN_UREL_CCFLAGS= + +#--------------------------------- +# Symbol Attribute Setting Options +#--------------------------------- + +# Option to set the visibility of runtime symbols as DEFAULT (instead of HIDDEN) +RUNTIME_SYMBOL_VISIBILITY_OPTION= + +# Option to specify the output of the toolchain +OUTPUT_OPTION=-o + +# Options to be passed when building System Target(kernel) +KERNEL_OPTIONS=$(ARM_INSTRUCTION_SET) $(NO_EXCEPTIONS) + +# Options to be passed when building in Arm mode +ARM_OPTIONS=$(ARM_INSTRUCTION_SET) + +# Options to be passed when building in Thumb mode +THUMB_OPTIONS=$(THUMB_INSTRUCTION_SET) + +# Common compiler options for Arm and Thumb mode +COMMON_OPTIONS=$(SYMBIAN_CC_MESSAGE_OPTION) + +# Invariant Options which cannot be modified by the user from MMP file +INVARIANT_OPTIONS= $(TARGET_ARCH_OPTION) $(ENUM_OPTION) $(OWN_LIBRARY_OPTION) $(FPMODE_OPTION) $(EXPORT_VTBL_OPTION) $(VFE_OPTION) $(AAPCS_OPTION) + +# Common compiler options for compiling programs targeted at Symbian OS +CCFLAGS=$(COMMON_OPTIONS) $(INVARIANT_OPTIONS) $(TEMP_FILES_OPTION) $(HEADER_FILES_CONTROL_OPTION) $(COMPILE_ONLY_OPTION) $(EXTRA_CC_OPTION) + +#------------------ +# Linker Options +#------------------ + +# Output option used to pass the output file name +LINKER_OUTPUT_OPTION=-o + +# Option to generate debug information +LINKER_DEBUG_OPTION= + +# Option to *not* generate debug information. +LINKER_NODEBUG_OPTION=--strip-debug + +#-------------------------------------------------------------- +# Options to generate executables conforming to BPABI standards +#-------------------------------------------------------------- + +# Option to generate an executable conforming to the Base Platform ABI for the ARM Architecture +BPABI_OPTION= + +# The `R_ARM_TARGET1' relocation is typically used for entries in the `.init_array' section. It is +# interpreted as either `R_ARM_REL32' or `R_ARM_ABS32', depending on the target. The following option +# override the default export relocations. +ifeq "$(GCC_MAJOR)" "3" + TARGET_RELOCATION_OPTION:=--target1-abs +else + TARGET_RELOCATION_OPTION:=--target1-rel +endif + +#------------------------------------- +# Options to specify the output format +#------------------------------------- + +# Option to create a relocatable ELF image. A relocatable image has a dynamic segment that contains +# relocations that can be used to relocate the image post link-time. +RELOCATABLE_IMAGE_OPTION= + +# Option to create an ELF shared object. +SHARED_OBJECT_OPTION=-shared + +#------------------------------------------- +# Options to set the Start of RO/RW sections +#------------------------------------------- + +# Option to set the start of the code section (RO Region) +CODE_SEGMENT_START=-Ttext + +# Option to split object into RO and RW sections +SPLIT_OPTION= + +# Option to set the start of the Data section (RW region) +RW_BASE_OPTION=-Tdata + +# Option to be passed to the linker to set the start of the data section (RW region) +DATA_SEGMENT_START=$(SPLIT_OPTION) $(RW_BASE_OPTION) + +#--------------------------------------------------------- +# Options controlling generation of Linker Warnings/Errors +#--------------------------------------------------------- + +# Option to control the Linker warnings +LD_WARNINGS_CONTROL_OPTION= + +# Option to suppress the Linker errors +LD_ERRORS_CONTROL_OPTION= + +# Option to modify the Linker warnings and errors for Symbian OS +SYMBIAN_LD_MESSAGE_OPTION=$(LD_WARNINGS_CONTROL_OPTION) $(LD_ERRORS_CONTROL_OPTION) + +# Option to specify whether unresolved symbol references from regular object files can be allowed or not. +UNRESOLVED_SYMBOL_REF_OPTION=--no-undefined + +# Option to specify the undefined reference +UNDEFINED_SYMBOL_REF_OPTION=-u + +# Other additional Options to be passed to the Linker +EXTRA_LD_OPTION= + +#------------------- +#Entry Point Options +#------------------- + +# Option to pass the explicit symbol for beginning execution of the program +LINKER_ENTRY_OPTION=--entry + +# Symbol used to denote the Start of the gouped archives. +START_GROUP_SYMBOL= + +# Symbol used to denote the End of the gouped archives. +END_GROUP_SYMBOL= + +#------------------------- +# Library Specific Options +#------------------------- + +# Option to control the search in the standard libraries +STDLIB_OPTION=-nostdlib + +# Additional static libraries that should be supplied to the linker to be linked with +STATIC_LIBS_LIST=-lsupc++ -lgcc + +# Option to pass the path from where the runtime libraries should be picked up +STATIC_LIBS_PATH=-L + +# Fetches the library path from the installation directory, here the functions will return null if the +# proper installation path is not set in the Environment Variable +STATIC_LIBRARY_PATH=$(STATIC_LIBS_PATH)$(call find-gcclib-path) $(STATIC_LIBS_PATH)$(call find-libsupc-path) +STATIC_LIBS=$(STATIC_LIBRARY_PATH) + +# Additional runtime libraries that should be supplied to the linker to be linked with +# Provide the libraries separated by space, scppnwdl.dso should come before drtrvct2_2.dso +RUNTIME_LIBS_LIST=dfpaeabi.dso dfprvct2_2.dso drtaeabi.dso scppnwdl.dso drtrvct2_2.dso +ifeq "$(GCC_MAJOR)" "3" + RUNTIME_LIBS_LIST=dfpaeabi.dso dfprvct2_2.dso drtaeabi.dso drtrvct2_2.dso +else + RUNTIME_LIBS_LIST=drtaeabi.dso dfpaeabi.dso drtrvct3_1.dso dfprvct3_1.dso +endif + +# The library that contains operator new and operator delete. +SYM_NEW_LIB=scppnwdl.dso + +# Option to pass the path from where the runtime libraries should be picked up +RUNTIME_LIBS_PATH= + +# Option to turn on implicit symbol versioning +SYMVER_OPTION=--default-symver + +# Option to specify the shared object name that is stored in the executable +SO_NAME_OPTION=-soname + +# Option to generate the map file that provides information about the linking +LINKER_SYMBOLS_OPTION=-Map + +# Option to specify the Symbols file +LINKER_SYMBOLS_FILE_OPTION= + +# Option to produce the Map file that provides information about linking +LINKER_SYMBOLS_MAP_OPTION=$(LINKER_SYMBOLS_OPTION) $(LINKER_SYMBOLS_FILE_OPTION) + +# Option to specify the linker script file +LINKER_SCRIPT_FILE_OPTION=-T + +#Via file prefix and suffix +VIA_FILE_PREFIX=-( +VIA_FILE_SUFFIX=-) + +# option to take object file names from other(via) file, here the condition check for +# GCCE compiler version is done as the via option differs for different versions in GCCE +ifeq ($(shell $(CC) -dumpversion),3.4.3) + COMMANDFILE_OPTION= +else + COMMANDFILE_OPTION=@ +endif + +# Linker options which can be customized from BSF +LD_OPTIONS=$(SYMBIAN_LD_MESSAGE_OPTION)$(UNRESOLVED_SYMBOL_REF_OPTION) $(STDLIB_OPTION) $(EXTRA_LD_OPTION) + +# Linker option common to all link commands for UREL build +SYMBIAN_UREL_LINK_FLAGS=$(BPABI_OPTION) $(RELOCATABLE_IMAGE_OPTION) $(TARGET_RELOCATION_OPTION) $(LD_OPTIONS) + +# Linker option common to all link commands for UDEB build +SYMBIAN_UDEB_LINK_FLAGS=$(BPABI_OPTION) $(RELOCATABLE_IMAGE_OPTION) $(TARGET_RELOCATION_OPTION) $(LD_OPTIONS) + +#----------------- +# Archiver Options +#----------------- + +# ARCHIVER variable should be set since there is a dependency for this variable in e32test. +ARCHIVER= $(AR) + +ARCHIVER_CREATE_OPTION=cr + +# Archiver options which can be set from BSF files +AR_OPTIONS= + +#-------------------------------------- +# Compiler and Platform specific macros +#-------------------------------------- + +# Macro definitions required to identify the compiler. Allows for conditional compilation based on compiler +PLATFORM_DEFINES=-D__MARM_ARMV5__ + +COMPILER_DEFINES=-D__GCCE__ + +# Compiler target option +COMPILER_PLAT=GCCE + +#-------------------------------------- +# Function Call Logger Options +#-------------------------------------- +FC_LOGGER_OPTION=--wchar_t_keyword --microsoft_version=1300 --diag_suppress 66,161,611,654,815,830,997,1152,1300,1390 + +# Defines for Function Call Logger +FC_LOGGER_DEFINES= + +#------------ +# OE Options +#------------ + +# Options to export all the globol symbols and import undefined references, required by OE +OE_OPTIONS=-fvisibility=default + +# OE Glue code libs +OE_EXE_LIBS=libcrt0.lib +OE_EXE_LIBS_WCHAR=libwcrt0.lib + +# OE Import Libs +OE_IMPORT_LIBS=euser.lib + +# The library that contains operator new and operator delete. +OE_NEW_LIB=stdnew.dso + +#----------------------------------------------------------------------------------------------------- +#This section defines the interface with Symbian tools +#This SHOULD NOT be changed as any changes in this section will not be picked up by the tools back end +#----------------------------------------------------------------------------------------------------- + +# Programs used from the ToolChain +export CC +export LD +export ASM +export AR +export TRANASM + +# Preprocessor Options +export PREFIXFILE +export CPP_LANG_OPTION +export C_LANG_OPTION +export CIA_LANG_OPTION + +# Option Prefix +export OPTION_PREFIX + +# Compiler Options +export PREPROCESSOR_OPTION +export ASSEMBLER_LISTING_OPTION +export ASM_OUTPUT_OPTION +export INCLUDE_OPTION +export PREINCLUDE_OPTION +export HEADER_FILES_CONTROL_OPTION +export COMPILER_INCLUDE_PATH +export SYMBIAN_UREL_CCFLAGS +export SYMBIAN_UDEB_CCFLAGS +export REL_OPTIMISATION +export DEBUG_OPTIMISATION +export ARM_OPTIONS +export THUMB_OPTIONS +export COMMON_OPTIONS +export INVARIANT_OPTIONS +export KERNEL_OPTIONS +export COMPILER_THUMB_DEFINES +export COMPILER_INTERWORK_DEFINES +export SOFTVFPMODE_OPTION +export VFP2MODE_OPTION +export RUNTIME_SYMBOL_VISIBILITY_OPTION +export OUTPUT_OPTION +export CCFLAGS +export UNIX_SLASH_FOR_CC_ABS_PATHS +export EXCEPTIONS +export NO_EXCEPTIONS +export VERSION_INFO + +# Linker Options +export LINKER_OUTPUT_OPTION +export LINKER_DEBUG_OPTION +export LINKER_NODEBUG_OPTION +export CODE_SEGMENT_START +export DATA_SEGMENT_START +export UNDEFINED_SYMBOL_REF_OPTION +export LINKER_ENTRY_OPTION +export START_GROUP_SYMBOL +export END_GROUP_SYMBOL +export SHARED_OBJECT_OPTION +export STDLIB_OPTION +export STATIC_LIBS_LIST +export STATIC_LIBS_PATH +export STATIC_LIBRARY_PATH +export STATIC_LIBS +export RUNTIME_LIBS_LIST +export RUNTIME_LIBS_PATH +export SYM_NEW_LIB +export SYMVER_OPTION +export SO_NAME_OPTION +export LINKER_SYMBOLS_MAP_OPTION +export COMMANDFILE_OPTION +export VIA_FILE_PREFIX +export VIA_FILE_SUFFIX +export SYMBIAN_UREL_LINK_FLAGS +export SYMBIAN_UDEB_LINK_FLAGS +export LD_OPTIONS + +# Archiver Options +export ARCHIVER +export ARCHIVER_CREATE_OPTION +export AR_OPTIONS + +# Compiler Specific Defines +export COMPILER_DEFINES +export COMPILER_PLAT + +# Platform Specific Defines +export PLATFORM_DEFINES + +# Translator Options +export TRANASM_FLAGS +export TRANASM_OUTPUT_OPTION +export TRANASM_INPUT_OPTION + +# Function Call Logger options +export PREINCLUDE_OPTION_FCLOGGER +export FC_LOGGER_OPTION +export FC_LOGGER_DEFINES +export FC_LOGGER_INCLUDE_OPTION +export FC_LOGGER_DICTIONARY_FILE_NAME +export FC_LOGGER_GENERATED_C_FILE_NAME + +#OE Options +export OE_OPTIONS +export OE_EXE_LIBS +export OE_EXE_LIBS_WCHAR +export OE_IMPORT_LIBS +export OE_NEW_LIB + +#----------------------------------------------------------------------------------------------------- +