Merge from wip.
# Copyright (c) 2007-2009 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:
#
# FLM to build STLport libraries.
## Outputs - externally relevant targets that this FLM generates
ifeq ($(OSTYPE),unix)
STLPORT.OPT:=-fPIC -m32 -O2
STLPORT.CXXFLAGS:=-m32
else
STLPORT.OPT:=-O2
STLPORT.CXXFLAGS:=
endif
SOURCE_ARCHIVE:=$(EXTENSION_ROOT)/$(SOURCE_ARCHIVE)
EXTRACT_DIR:=$(EPOCBLD)$(TOOLPLATFORMDIR)
STL_DIR:=$(EXTRACT_DIR)/STLport-$(STLPORT_VERSION)
BUILD_DIR:=$(STL_DIR)/build/lib
UNZIPPED:=$(STL_DIR)/unzipped.ok
RELEASE_DIR:=$(EPOCROOT)/epoc32/release/tools2$(TOOLPLATFORMDIR)
RELEASE_DIR_REL:=$(RELEASE_DIR)/rel
RELEASE_DIR_DEB:=$(RELEASE_DIR)/deb
WHATFLM:=
ifeq ($(OSTYPE),unix)
STLPORT.OPT:=-fPIC -m32 -O2
STLPORT.CXXFLAGS:=-m32
else
STLPORT.OPT:=-O2
STLPORT.CXXFLAGS:=
endif
STL_REL_LIB_PATH:=$(STL_DIR)/lib/libstlport.a
STL_DEB_LIB_PATH:=$(STL_DIR)/lib/libstlportg.a
REL_LIB:=$(RELEASE_DIR_REL)/$(STL_REL_LIB_NAME)
DEB_LIB:=$(RELEASE_DIR_DEB)/$(STL_REL_LIB_NAME)
STL_HEADERS_PATH:=$(EPOCROOT)/epoc32/include/tools/stlport
CLEANTARGETS:=
CREATABLEPATHS:=
define stlportcommon
$(UNZIPPED): $(SOURCE_ARCHIVE)
$(call startrule,unzip) \
$(UNZIP) -aa -o $(SOURCE_ARCHIVE) -d $(EXTRACT_DIR) && \
echo "SHELL:=$$$${SHELL}" > "$(BUILD_DIR)/raptor_gcc.mak" && \
$(GNUCAT) $(BUILD_DIR)/gcc.mak >> "$(BUILD_DIR)/raptor_gcc.mak" && \
$(GNUTOUCH) $(UNZIPPED) \
$(call endrule,unzip)
CLEAN::
$(call startrule,clean) \
$(GNURM) -f $(UNZIPPED) ; \
$(GNURM) -rf $(STL_DIR) \
$(call endrule,clean)
CREATABLEPATHS:=$$(CREATABLEPATHS) $(dir $(UNZIPPED))
endef
# only declare targets once if they are the same for urel or udeb
ifeq ($(TARGET_$(STL_DIR)),)
$(eval $(stlportcommon))
TARGET_$(STL_DIR):=1
endif
define stlportrel
$(ALLTARGET):: $(REL_LIB)
LIBRARY:: $(REL_LIB)
$(REL_LIB): $(STL_REL_LIB_PATH)
$(call startrule,install) \
$(GNUCP) $(STL_REL_LIB_PATH) $(REL_LIB) \
$(call endrule,install)
$(STL_REL_LIB_PATH): $(UNZIPPED)
$(call startrule,make) \
$(GNUMAKE38) -C "$(BUILD_DIR)" -fraptor_gcc.mak install-release-static LIB_SUFFIX= BASE_INSTALL_DIR=../.. EXTRA_CXXFLAGS='$(STLPORT.CXXFLAGS)' OPT='$(STLPORT.OPT)' \
$(call endrule,make)
CREATABLEPATHS:=$$(CREATABLEPATHS) $(dir $(REL_LIB))
CLEANTARGETS:=$$(CLEANTARGETS) $(REL_LIB)
WHATFLM:=$$(WHATFLM) $(REL_LIB)
endef
ifeq ($(CFG_PATH),rel)
$(eval $(stlportrel))
endif
define stlportdeb
$(ALLTARGET):: $(DEB_LIB)
LIBRARY:: $(DEB_LIB)
$(DEB_LIB): $(STL_DEB_LIB_PATH)
$(call startrule,install) \
$(GNUCP) $(STL_DEB_LIB_PATH) $(DEB_LIB) \
$(call endrule,install)
$(STL_DEB_LIB_PATH): $(UNZIPPED)
$(call startrule,make) \
$(GNUMAKE38) -C "$(BUILD_DIR)" -fraptor_gcc.mak install-dbg-static LIB_SUFFIX= BASE_INSTALL_DIR=../.. EXTRA_CXXFLAGS='$(STLPORT.CXXFLAGS)' OPT='$(STLPORT.OPT)' \
$(call endrule,make)
CREATABLEPATHS:=$$(CREATABLE_PATHS) $(dir $(DEB_LIB))
CLEANTARGETS:=$$(CLEANTARGETS) $(DEB_LIB)
WHATFLM:=$$(WHATFLM) $(DEB_LIB)
endef
ifeq ($(CFG_PATH),deb)
$(eval $(stlportdeb))
endif
$(eval $(call whatmacro,$(WHATFLM),WHATTEM))
# make the output directories while reading makefile - some build engines prefer this
$(call makepath,$(CREATABLEPATHS))
## Clean up (using eval to avoid target specific variables)
$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),))