sbsv2/raptor/lib/flm/e32abiv2defaults.mk
author Jon Chatten
Thu, 26 Aug 2010 13:41:01 +0100
changeset 630 31ef8a13d4f4
parent 625 a1925fb7753a
permissions -rw-r--r--
sbs version 2.15.1

#
# Copyright (c) 2007-2010 Nokia Corporation and/or its subsidiary(-ies).
# All rights reserved.
# This component and the accompanying materials are made available
# under the terms of the License "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: 
# e32abiv2defaults.flm
# ARMv5 EXE/DLL ABIv2 Function Like Makefile (FLM)
#

# This is for variables that are not set in an FLM call but
# only in e32abiv2 flms.  

AUTOEXPORTS:=
CANHAVEEXPORTS:=
CANIGNORENONCALLABLE:=
DOPOSTLINK:=
IMPORTLIBRARYREQUIRED:=
LINKER_ENTRYPOINT_LIBDEP:=
LINKER_ENTRYPOINT_SETTING:=
LINKER_STUB_LIBRARY:=
NAMEDSYMLKUP:=
POSTLINKDEFFILE:=
POSTLINKFILETYPE:=
POSTLINKTARGETTYPE:=
STATIC_RUNTIME_LIB:=
SUPPORT_FREEZE:=
NOHIDEALL:=
DEFAULT_NEWLIB:=$(DEFAULT_SYMBIAN_NEWLIB)


# Reset these variables as they change for every single target type
# LINKER_ENTRYPOINT_ADORNMENT will be blank for GCC; for RVCT it will look like "(uc_exe_.o)"
# LINKER_ENTRYPOINT_DECORATION will be blank for RVCT; for GCC it will look like "-u _E32Startup"
# LINKER_SEPARATOR is a comma for GCC as g++ is used for linking; for RVCT is should be a space, but
# as make strips trailing spaces, we use the CHAR_SPACE variable.

LINKER_ENTRYPOINT_ADORNMENT:=
LINKER_ENTRYPOINT_DECORATION:=
LINKER_SEPARATOR:=

# For GCC
ifneq ($(findstring GCC,$(TOOLCHAIN)),)
LINKER_ENTRYPOINT_DECORATION:=$(if $(call isoneof,$(TARGETTYPE),exexp exe),-Wl$(CHAR_COMMA)-u$(CHAR_COMMA)$(LINKER_ENTRYPOINT_PREFIX)$(ENTRYPOINT),-Wl$(CHAR_COMMA)-u$(CHAR_COMMA)$(LINKER_ENTRYPOINT_PREFIX)$(ENTRYPOINT))
LINKER_SEPARATOR:=$(CHAR_COMMA)
endif

# For RVCT
ifeq ($(TOOLCHAIN),RVCT)
  ifeq ($(call isoneof,$(TARGETTYPE),exe stdexe),1) # isoneof returns 1 if true, empty string if false
	LINKER_ENTRYPOINT_ADORNMENT:=(uc_exe_.o)
  endif

  ifeq ($(call isoneof,$(TARGETTYPE),ani textnotifier2 stddll plugin plugin3 fsy pdl dll pdll),1)
	LINKER_ENTRYPOINT_ADORNMENT:=(uc_dll_.o)
  endif

  ifeq ($(call isoneof,$(TARGETTYPE),var var2),1)
	LINKER_ENTRYPOINT_ADORNMENT:=(v_entry_.o)
  endif

  ifeq ($(call isoneof,$(TARGETTYPE),ldd pdd),1)
	LINKER_ENTRYPOINT_ADORNMENT:=(D_ENTRY_.o)
  endif

  ifeq ($(TARGETTYPE),kext)
	LINKER_ENTRYPOINT_ADORNMENT:=(X_ENTRY_.o)
  endif

  ifeq ($(TARGETTYPE),kdll)
	LINKER_ENTRYPOINT_ADORNMENT:=(L_ENTRY_.o)
  endif
LINKER_SEPARATOR:=$(CHAR_SPACE)
endif

# "OPTION" metadata from the front-end can potentially be supplied simultaneously for both GCCE and RVCT,
# so we need to make a decision on what we make use of based on the TOOLCHAIN in use.
# Currently we only support changes to RVCT tool calls.

LINKEROPTION:=
OPTION_COMPILER:=
OPTION_REPLACE_COMPILER:=

ifeq ($(TOOLCHAIN),RVCT)
  LINKEROPTION:=$(LINKEROPTION_ARMCC)
  OPTION_COMPILER:=$(OPTION_ARMCC)
  OPTION_REPLACE_COMPILER:=$(OPTION_REPLACE_ARMCC)
endif

# "ARMFPU" overrides for 'fpu-ness' in compiler and postlinker calls in .mmp files are currently only
# supported for RVCT-based builds, other builds always make use of the interface defined defaults.
ifneq ($(TOOLCHAIN),RVCT)
  ARMFPU:=
endif