sbsv2/raptor/lib/flm/e32abiv2ldd.flm
author timothy.murphy@nokia.com
Thu, 25 Mar 2010 13:43:28 +0000
branchfix
changeset 408 a819f9223567
parent 230 3d05ccc51d1a
permissions -rw-r--r--
fix: stop using "magic" numbers in string operations for the copyannofile2log feature fix: When using the copylogfromannofile workaround, extract the build ID and build duration and add to the log as these are useful for analysis. The log should now be identical to the stdout file. fix: Remove extra blank lines from output in copylogfromannofile mode.

# 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 ldd ABIv2 Function Like Makefile (FLM)
# Build an e32 ldd (Logical Device Driver)
# 
#

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


# What we need to build a Logical Device Driver
CANHAVEEXPORTS:=1
POSTLINKTARGETTYPE:=LDD
POSTLINKFILETYPE:=ldd
DOPOSTLINK:=1
AUTOEXPORTS:=_Z19CreateLogicalDevicev,1;

# Determine what kind of entrypoint option to set
LINKER_ENTRYPOINT_LIBDEP:=$(STATIC_RUNTIME_DIR)/edev.lib
LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRY_OPTION)=_E32Dll $(LINKER_ENTRYPOINT_DECORATION)$(LINKER_SEPARATOR)$(call dblquote,$(STATIC_RUNTIME_DIR)/edev.lib$(LINKER_ENTRYPOINT_ADORNMENT))

ifeq ("$(NEED_ENTRYPOINT_LIBRARY)","True")
LINKER_ENTRYPOINT_SETTING:=$(LINKER_ENTRYPOINT_SETTING) $(LINKER_ENTRYPOINT_LIBDEP)
endif

LINKER_STUB_LIBRARY:=$(STATIC_RUNTIME_DIR)/edllstub.lib
STATIC_RUNTIME_LIB:=$(KERNEL_STATIC_RUNTIME_LIB)
RUNTIME_LIBS_LIST:=
CANIGNORENONCALLABLE:=1

# Kernel code builds as arm
ALWAYS_BUILD_AS_ARM:=1

# No dedicated library for operator new/delete functions.
HAS_DEDICATED_OP_NEWDEL_LIB:=

# Fixed export TARGETTYPEs should only reference a .def file if an explicit DEFFILE statement is present in the .mmp file
ifneq ($(DEFFILEKEYWORD),)
POSTLINKDEFFILE:=$(DEFFILE)
SUPPORT_FREEZE:=1
ifeq ($(NOEXPORTLIBRARY),)
IMPORTLIBRARYREQUIRED:=1
endif
endif

BASELIBS:=edev
UID2:=100000af

# No exception support for kernel code?
EXCEPTIONS:=$(NO_EXCEPTIONS)

# Only process a def file if it's specified
# in the MMP - not if it's merely the frontend's guess
# at what the def file name might be
IMPORTLIBRARYREQUIRED:=

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

# We are appending to CDEFS but we don't want this to affect
# other invocations so we are going to save it on a stack
# and restore it afterwards
$(call vsave,CDEFS SYSTEMINCLUDE)
SYSTEMINCLUDE:=$(SYSTEMINCLUDE) $(EPOCROOT)/epoc32/include/nkern $(EPOCROOT)/epoc32/include/kernel/arm $(EPOCROOT)/epoc32/include/memmodel/epoc $(EPOCROOT)/epoc32/include/kernel  $(EPOCROOT)/epoc32/include/nkern/arm
CDEFS:=$(CDEFS) __DLL__ __KERNEL_MODE__
include $(FLMHOME)/e32abiv2.flm
$(call vrestore)

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