sbsv2/raptor/lib/flm/e32abiv2exexp.flm
author Mike Kinghan <mikek@symbian.org>
Thu, 25 Nov 2010 13:59:07 +0000
changeset 40 68f68128601f
parent 28 b8fa7dfeeaa1
permissions -rw-r--r--
1) Add the sbsv1 components from sftools/dev/build to make the linux_build package independent of the obsolete buildtools package. 2) Enhance romnibus.pl so that it generate the symbol file for the built rom when invoked by Raptor 3) Make the maksym.pl tool portable for Linux as well as Windows. 4) Remove the of armasm2as.pl from the e32tools component in favour of the copy now exported from sbsv1/e32util.

# 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:
# ARMv5 EXE/DLL ABIv2 Function Like Makefile (FLM)
# Build an e32 EXE with exports
# 
#

ifeq ($(TARGETTYPE),exexp)
include $(FLMHOME)/e32abiv2defaults.mk

# What we need to build an EXEXP
CANHAVEEXPORTS:=1
POSTLINKTARGETTYPE:=EXEXP
POSTLINKFILETYPE:=exe
DOPOSTLINK:=1
EPOCALLOWDLLDATA:=1
CANIGNORENONCALLABLE:=1

$(call vsave,CDEFS)
# Determine what kind of entrypoint option to set
FIRSTLIB_OBJECTFILE=uc_exe_.o
STATIC_RUNTIME_LIB:=$(USER_STATIC_RUNTIME_LIB)

ifeq ($(FIRSTLIB),)
FIRSTLIB:=eexe.lib
else
ifneq ($(findstring kc_exe,$(FIRSTLIB))$(findstring KC_EXE,$(FIRSTLIB)),)
STATIC_RUNTIME_LIB:=$(KERNEL_STATIC_RUNTIME_LIB)
CDEFS:=$(CDEFS) __KERNEL_MODE__
FIRSTLIB_OBJECTFILE=k_entry_.o
# Kernel code builds as arm
ALWAYS_BUILD_AS_ARM:=1
# No exception support for kernel code
EXCEPTIONS:=$(NO_EXCEPTIONS)
# No dedicated library for operator new/delete functions.
HAS_DEDICATED_OP_NEWDEL_LIB:=

endif
endif

LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/$(FIRSTLIB)

ifeq ("$(TOOLCHAIN)","RVCT")
LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_PREFIX)$(ENTRYPOINT) $(call dblquote,$(STATIC_RUNTIME_DIR)/$(FIRSTLIB)($(FIRSTLIB_OBJECTFILE)))
else
# GCC
LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_PREFIX)$(ENTRYPOINT) -Wl,-u$(LINKER_SEPARATOR)$(LINKER_ENTRYPOINT_PREFIX)$(ENTRYPOINT)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/$(FIRSTLIB))
endif

POSTLINKDEFFILE:=$(DEFFILE)
SUPPORT_FREEZE:=1
ifeq ($(NOEXPORTLIBRARY),)
IMPORTLIBRARYREQUIRED:=1
else
IMPORTLIBRARYREQUIRED:=
endif


CDEFS:=$(CDEFS) __EXE__
include $(FLMHOME)/e32abiv2.flm
$(call vrestore)


else
$(error $e32abiv2exexp.flm called with wrong TARGETTYPE (should be 'exexp' but is '$(TARGETTYPE)'))
endif