3
|
1 |
# Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
|
|
2 |
# All rights reserved.
|
|
3 |
# This component and the accompanying materials are made available
|
|
4 |
# under the terms of the License "Eclipse Public License v1.0"
|
|
5 |
# which accompanies this distribution, and is available
|
|
6 |
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
|
|
7 |
#
|
|
8 |
# Initial Contributors:
|
|
9 |
# Nokia Corporation - initial contribution.
|
|
10 |
#
|
|
11 |
# Contributors:
|
|
12 |
#
|
|
13 |
# Description:
|
|
14 |
#
|
|
15 |
|
|
16 |
# FLM to build STLport libraries.
|
|
17 |
|
|
18 |
## Outputs - externally relevant targets that this FLM generates
|
|
19 |
|
|
20 |
ifeq ($(OSTYPE),unix)
|
|
21 |
STLPORT.OPT:=-fPIC -m32 -O2
|
|
22 |
STLPORT.CXXFLAGS:=-m32
|
|
23 |
else
|
|
24 |
STLPORT.OPT:=-O2
|
|
25 |
STLPORT.CXXFLAGS:=
|
|
26 |
endif
|
|
27 |
|
|
28 |
|
|
29 |
SOURCE_ARCHIVE:=$(EXTENSION_ROOT)/$(SOURCE_ARCHIVE)
|
|
30 |
|
|
31 |
EXTRACT_DIR:=$(EPOCBLD)$(TOOLPLATFORMDIR)
|
|
32 |
STL_DIR:=$(EXTRACT_DIR)/STLport-$(STLPORT_VERSION)
|
|
33 |
BUILD_DIR:=$(STL_DIR)/build/lib
|
|
34 |
UNZIPPED:=$(STL_DIR)/unzipped.ok
|
|
35 |
|
|
36 |
RELEASE_DIR:=$(EPOCROOT)/epoc32/release/tools2$(TOOLPLATFORMDIR)
|
|
37 |
RELEASE_DIR_REL:=$(RELEASE_DIR)/rel
|
|
38 |
RELEASE_DIR_DEB:=$(RELEASE_DIR)/deb
|
|
39 |
WHATFLM:=
|
|
40 |
|
|
41 |
ifeq ($(OSTYPE),unix)
|
|
42 |
STLPORT.OPT:=-fPIC -m32 -O2
|
|
43 |
STLPORT.CXXFLAGS:=-m32
|
|
44 |
else
|
|
45 |
STLPORT.OPT:=-O2
|
|
46 |
STLPORT.CXXFLAGS:=
|
|
47 |
endif
|
|
48 |
|
|
49 |
STL_REL_LIB_PATH:=$(STL_DIR)/lib/libstlport.a
|
|
50 |
STL_DEB_LIB_PATH:=$(STL_DIR)/lib/libstlportg.a
|
|
51 |
|
|
52 |
REL_LIB:=$(RELEASE_DIR_REL)/$(STL_REL_LIB_NAME)
|
|
53 |
DEB_LIB:=$(RELEASE_DIR_DEB)/$(STL_REL_LIB_NAME)
|
|
54 |
|
|
55 |
STL_HEADERS_PATH:=$(EPOCROOT)/epoc32/include/tools/stlport
|
|
56 |
|
|
57 |
CLEANTARGETS:=
|
|
58 |
CREATABLEPATHS:=
|
|
59 |
|
|
60 |
define stlportcommon
|
|
61 |
|
|
62 |
$(UNZIPPED): $(SOURCE_ARCHIVE)
|
|
63 |
$(call startrule,unzip) \
|
|
64 |
$(UNZIP) -aa -o $(SOURCE_ARCHIVE) -d $(EXTRACT_DIR) && \
|
|
65 |
echo "SHELL:=$$$${SHELL}" > "$(BUILD_DIR)/raptor_gcc.mak" && \
|
|
66 |
$(GNUCAT) $(BUILD_DIR)/gcc.mak >> "$(BUILD_DIR)/raptor_gcc.mak" && \
|
|
67 |
$(GNUTOUCH) $(UNZIPPED) \
|
|
68 |
$(call endrule,unzip)
|
|
69 |
|
|
70 |
CLEAN::
|
|
71 |
$(call startrule,clean) \
|
|
72 |
$(GNURM) -f $(UNZIPPED) ; \
|
|
73 |
$(GNURM) -rf $(STL_DIR) \
|
|
74 |
$(call endrule,clean)
|
|
75 |
|
|
76 |
CREATABLEPATHS:=$$(CREATABLEPATHS) $(dir $(UNZIPPED))
|
|
77 |
endef
|
|
78 |
|
|
79 |
# only declare targets once if they are the same for urel or udeb
|
|
80 |
|
|
81 |
ifeq ($(TARGET_$(STL_DIR)),)
|
|
82 |
$(eval $(stlportcommon))
|
|
83 |
TARGET_$(STL_DIR):=1
|
|
84 |
endif
|
|
85 |
|
|
86 |
|
|
87 |
define stlportrel
|
|
88 |
$(ALLTARGET):: $(REL_LIB)
|
|
89 |
LIBRARY:: $(REL_LIB)
|
|
90 |
|
|
91 |
$(REL_LIB): $(STL_REL_LIB_PATH)
|
|
92 |
$(call startrule,install) \
|
|
93 |
$(GNUCP) $(STL_REL_LIB_PATH) $(REL_LIB) \
|
|
94 |
$(call endrule,install)
|
|
95 |
|
|
96 |
$(STL_REL_LIB_PATH): $(UNZIPPED)
|
|
97 |
$(call startrule,make) \
|
|
98 |
$(GNUMAKE38) -C "$(BUILD_DIR)" -fraptor_gcc.mak install-release-static LIB_SUFFIX= BASE_INSTALL_DIR=../.. EXTRA_CXXFLAGS='$(STLPORT.CXXFLAGS)' OPT='$(STLPORT.OPT)' \
|
|
99 |
$(call endrule,make)
|
|
100 |
|
|
101 |
CREATABLEPATHS:=$$(CREATABLEPATHS) $(dir $(REL_LIB))
|
|
102 |
CLEANTARGETS:=$$(CLEANTARGETS) $(REL_LIB)
|
|
103 |
WHATFLM:=$$(WHATFLM) $(REL_LIB)
|
|
104 |
endef
|
|
105 |
|
|
106 |
ifeq ($(CFG_PATH),rel)
|
|
107 |
$(eval $(stlportrel))
|
|
108 |
endif
|
|
109 |
|
|
110 |
define stlportdeb
|
|
111 |
$(ALLTARGET):: $(DEB_LIB)
|
|
112 |
LIBRARY:: $(DEB_LIB)
|
|
113 |
|
|
114 |
$(DEB_LIB): $(STL_DEB_LIB_PATH)
|
|
115 |
$(call startrule,install) \
|
|
116 |
$(GNUCP) $(STL_DEB_LIB_PATH) $(DEB_LIB) \
|
|
117 |
$(call endrule,install)
|
|
118 |
|
|
119 |
$(STL_DEB_LIB_PATH): $(UNZIPPED)
|
|
120 |
$(call startrule,make) \
|
|
121 |
$(GNUMAKE38) -C "$(BUILD_DIR)" -fraptor_gcc.mak install-dbg-static LIB_SUFFIX= BASE_INSTALL_DIR=../.. EXTRA_CXXFLAGS='$(STLPORT.CXXFLAGS)' OPT='$(STLPORT.OPT)' \
|
|
122 |
$(call endrule,make)
|
|
123 |
|
|
124 |
|
|
125 |
CREATABLEPATHS:=$$(CREATABLE_PATHS) $(dir $(DEB_LIB))
|
|
126 |
CLEANTARGETS:=$$(CLEANTARGETS) $(DEB_LIB)
|
|
127 |
WHATFLM:=$$(WHATFLM) $(DEB_LIB)
|
|
128 |
endef
|
|
129 |
|
|
130 |
ifeq ($(CFG_PATH),deb)
|
|
131 |
$(eval $(stlportdeb))
|
|
132 |
endif
|
|
133 |
|
|
134 |
$(eval $(call whatmacro,$(WHATFLM),WHATTEM))
|
|
135 |
# make the output directories while reading makefile - some build engines prefer this
|
|
136 |
$(call makepath,$(CREATABLEPATHS))
|
|
137 |
|
|
138 |
## Clean up (using eval to avoid target specific variables)
|
|
139 |
$(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),))
|