1 # Copyright (c) 2008-2009 Nokia Corporation and/or its subsidiary(-ies). |
1 # Copyright (c) 2008-2010 Nokia Corporation and/or its subsidiary(-ies). |
2 # All rights reserved. |
2 # All rights reserved. |
3 # This component and the accompanying materials are made available |
3 # This component and the accompanying materials are made available |
4 # under the terms of the License "Eclipse Public License v1.0" |
4 # under the terms of the License "Eclipse Public License v1.0" |
5 # which accompanies this distribution, and is available |
5 # which accompanies this distribution, and is available |
6 # at the URL "http://www.eclipse.org/legal/epl-v10.html". |
6 # at the URL "http://www.eclipse.org/legal/epl-v10.html". |
26 |
26 |
27 # make the output directories while reading makefile - some build engines prefer this |
27 # make the output directories while reading makefile - some build engines prefer this |
28 $(call makepath,$(RELEASEPATH)) |
28 $(call makepath,$(RELEASEPATH)) |
29 $(call makepath,$(BUILDPATH)) |
29 $(call makepath,$(BUILDPATH)) |
30 |
30 |
31 CLEANTARGETS:=$(CLEANTARGETS) $(RELEASETARGET) |
31 RELEASABLES:=$(RELEASABLES) $(RELEASETARGET) |
32 RELEASEABLES:=$(RELEASEABLES) $(RELEASETARGET) |
|
33 |
32 |
34 GENDEBUGINFO:=$(if $(findstring deb,$(VARIANTTYPE)),1,) |
33 GENDEBUGINFO:=$(if $(findstring deb,$(VARIANTTYPE)),1,) |
35 |
34 |
36 # MSVC "no space" arguments must take the form /<ARG><PATH_WITH_DOS_SLASHES> e.g. |
35 # MSVC "no space" arguments must take the form /<ARG><PATH_WITH_DOS_SLASHES> e.g. |
37 # /FoF:\object\file\to\be\created.obj |
36 # /FoF:\object\file\to\be\created.obj |
56 PINCLUDE:=$(OPT.PREINCLUDE)$(notdir $(PRODUCT_INCLUDE)) |
55 PINCLUDE:=$(OPT.PREINCLUDE)$(notdir $(PRODUCT_INCLUDE)) |
57 INCLUDES:=$(PINCLUDE) $(UINCLUDE) $(SINCLUDE) |
56 INCLUDES:=$(PINCLUDE) $(UINCLUDE) $(SINCLUDE) |
58 |
57 |
59 # macros |
58 # macros |
60 DEFINES:=$(call makemacrodef,$(OPT.DEFINE),$(CDEFS) $(BASE_MACRO) $(CFLAGS.ADD)) |
59 DEFINES:=$(call makemacrodef,$(OPT.DEFINE),$(CDEFS) $(BASE_MACRO) $(CFLAGS.ADD)) |
61 |
|
62 # other |
|
63 PDBFILE:=$(if $(GENDEBUGINFO),$(RELEASEPATH)/$(TARGET).pdb,) |
|
64 CLEANTARGETS:=$(CLEANTARGETS) $(PDBFILE) |
|
65 |
60 |
66 #compile |
61 #compile |
67 define msvctoolscompile |
62 define msvctoolscompile |
68 $(BUILDPATH)/$(basename $(notdir $(1))).obj: $(1) $(PROJECT_META) $(if $(HAVE_ORDERONLY),|,) EXPORT |
63 $(BUILDPATH)/$(basename $(notdir $(1))).obj: $(1) $(PROJECT_META) $(if $(HAVE_ORDERONLY),|,) EXPORT |
69 $(call startrule,msvctoolscompile,,$(1)) \ |
64 $(call startrule,msvctoolscompile,,$(1)) \ |
70 $(CC) \ |
65 $(CC) \ |
71 $(if $(findstring staticlib,$(BASE_TYPE)),,$(CFLAGS.LIB)) \ |
66 $(if $(findstring staticlib,$(BASE_TYPE)),,$(CFLAGS.LIB)) \ |
72 $(CFLAGS) $$(subst /,-,$(OPTION_MSVC)) \ |
67 $(CFLAGS) $$(subst /,-,$(OPTION_MSVC)) \ |
73 $(if $(findstring /W,$(OPTION_MSVC)),,$(CFLAGS.DEFAULT.WARNLEVEL)) \ |
68 $(if $(findstring /W,$(OPTION_MSVC)),,$(CFLAGS.DEFAULT.WARNLEVEL)) \ |
74 $(if $(PDBFILE),$$(call msvcformatarg,$(OPT.PDBFILE),$(PDBFILE)),) \ |
|
75 $(DEFINES) $(INCLUDES) \ |
69 $(DEFINES) $(INCLUDES) \ |
76 $$(call msvcformatarg,$(OPT.BROWSEFILE),$(BUILDPATH)/$(basename $(notdir $(1))).sbr) \ |
70 $$(call msvcformatarg,$(OPT.BROWSEFILE),$(BUILDPATH)/$(basename $(notdir $(1))).sbr) \ |
77 $$(call msvcformatarg,$(OPT.OBJECTFILE),$$@) $(1) \ |
71 $$(call msvcformatarg,$(OPT.OBJECTFILE),$$@) $(1) \ |
78 $(call endrule,msvctoolscompile) |
72 $(call endrule,msvctoolscompile) |
79 endef |
73 endef |
155 ## INSTALL ## |
149 ## INSTALL ## |
156 ############# |
150 ############# |
157 |
151 |
158 ifneq ($(INSTALLPATH),) |
152 ifneq ($(INSTALLPATH),) |
159 INSTALLTARGET:=$(INSTALLPATH)/$(TARGET).$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(TARGETTYPE)) |
153 INSTALLTARGET:=$(INSTALLPATH)/$(TARGET).$(if $(REQUESTEDTARGETEXT),$(REQUESTEDTARGETEXT),$(TARGETTYPE)) |
160 CLEANTARGETS:=$(CLEANTARGETS) $(INSTALLTARGET) |
154 RELEASABLES:=$(RELEASABLES) $(INSTALLTARGET) |
161 RELEASEABLES:=$(RELEASEABLES) $(INSTALLTARGET) |
|
162 |
155 |
163 define msvctoolsinstall |
156 define msvctoolsinstall |
164 $(INSTALLTARGET): $(RELEASETARGET) |
157 $(INSTALLTARGET): $(RELEASETARGET) |
165 $(call startrule,msvctoolsinstall) \ |
158 $(call startrule,msvctoolsinstall) \ |
166 $(GNUCP) $$< $$@ && \ |
159 $(GNUCP) $$< $$@ && \ |
178 ########################## |
171 ########################## |
179 |
172 |
180 ifneq ($(GENDEBUGINFO),) |
173 ifneq ($(GENDEBUGINFO),) |
181 BSCFILE:=$(RELEASEPATH)/$(TARGET).bsc |
174 BSCFILE:=$(RELEASEPATH)/$(TARGET).bsc |
182 BSCRESPONSEFILE:=$(BUILDPATH)/$(TARGET).brf |
175 BSCRESPONSEFILE:=$(BUILDPATH)/$(TARGET).brf |
183 CLEANTARGETS:=$(CLEANTARGETS) $(BSCFILE) $(BSCRESPONSEFILE) |
176 CLEANTARGETS:=$(CLEANTARGETS) $(BSCRESPONSEFILE) |
184 RELEASEABLES:=$(RELEASEABLES) $(BSCFILE) |
177 RELEASABLES:=$(RELEASABLES) $(BSCFILE) |
185 |
178 |
186 define msvctoolsgenbrowse |
179 define msvctoolsgenbrowse |
187 $(BSCFILE): $(OBJFILES) |
180 $(BSCFILE): $(OBJFILES) |
188 @echo "" > $(BSCRESPONSEFILE); |
181 @echo "" > $(BSCRESPONSEFILE); |
189 $(call groupin10infile,$(BSCRESPONSEFILE),$(SBRFILES)) ; |
182 $(call groupin10infile,$(BSCRESPONSEFILE),$(SBRFILES)) ; |
197 endif |
190 endif |
198 |
191 |
199 |
192 |
200 # Global targets |
193 # Global targets |
201 .PHONY:: $(ALLTARGET) |
194 .PHONY:: $(ALLTARGET) |
202 $(ALLTARGET):: $(RELEASEABLES) |
195 $(ALLTARGET):: $(RELEASABLES) |
203 TARGET:: $(RELEASEABLES) |
196 TARGET:: $(RELEASABLES) |
204 |
197 |
205 ifeq ($(BASE_TYPE),staticlib) |
198 ifeq ($(BASE_TYPE),staticlib) |
206 LIBRARY:: $(RELEASETARGET) $(INSTALLTARGET) |
199 LIBRARY:: $(RELEASETARGET) $(INSTALLTARGET) |
207 endif |
200 endif |
208 |
201 |
209 # clean up |
202 # clean up |
210 $(eval $(call GenerateStandardCleanTarget,$(CLEANTARGETS),,)) |
203 $(call raptor_clean,$(CLEANTARGETS)) |
211 # for the abld -what target |
204 # for the --what option and the log file |
212 $(eval $(call whatmacro,$(INSTALLTARGET),WHATTOOLS)) |
205 $(call raptor_release,$(INSTALLTARGET)) |