diff -r f5050f1da672 -r 04becd199f91 build/Makefile.subsystem --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/build/Makefile.subsystem Tue Apr 27 16:30:29 2010 +0300 @@ -0,0 +1,250 @@ +# +# Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). +# All rights reserved. +# This component and the accompanying materials are made available +# under the terms of "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: +# + +ifndef JAVA_SRC_ROOT +$(error JAVA_SRC_ROOT variable not defined!) +endif + +# ------------------------------------------------ + + +ifndef SUBTARGETS +# If order is not explicitly defined, use the following +SUBTARGETS = $(COMPONENTS) $(SUBSYSTEMS) $(NONQTSUBSYSTEMS) +endif + +.PHONY: subtargets $(SUBTARGETS) + +# Check for overlaps +OVERLAPS = \ + $(filter $(SUBSYSTEMS) $(NONQTSUBSYSTEMS), $(COMPONENTS)) \ + $(filter $(COMPONENTS) $(NONQTSUBSYSTEMS), $(SUBSYSTEMS)) \ + $(filter $(COMPONENTS) $(SUBSYSTEMS), $(NONQTSUBSYSTEMS)) +ifneq ($(strip $(OVERLAPS)),) +$(error Overlap(s) in COMPONENTS/SUBSYSTEMS/NONQTSUBSYSTEMS definition) +endif + +ifdef ALLTARGETS +REALTARGETS := $(SUBTARGETS) +endif + +ifndef REALTARGETS +# This is the real target list. Allow skipping of targets +REALTARGETS := $(filter-out $(SKIPTARGETS),$(SUBTARGETS)) +# Filter targets by platform +ifeq ($(BUILDENV),symbian) +REALTARGETS := $(filter-out $(LINUX_ONLY), $(REALTARGETS)) +else +REALTARGETS := $(filter-out $(SYMBIAN_ONLY), $(REALTARGETS)) +endif +endif + +subtargets: $(REALTARGETS) + + +$(SUBSYSTEMS): + $(MAKE) TARGET_SUB=$@ -C $@ -f subsystem.mk $(TARGET_PHASE) + +$(COMPONENTS): + $(MAKE) TARGET_SUB=$@ -C $@ -f ${JAVA_SRC_ROOT}/build/Makefile.comp $(TARGET_PHASE) + +$(NONQTSUBSYSTEMS): + $(MAKE) TARGET_SUB=$@ -C $@ -f ${JAVA_SRC_ROOT}/build/Makefile.nonqt $(TARGET_PHASE) + +test: + $(PHASEINFO) + $(MAKE) -f subsystem.mk TARGET_PHASE=$@ subtargets + $(EXEC_SUB) + +finalactions: + +configure: configure_qmake + +configure_qmake: + $(PHASEINFO) + $(call CATCOMMAND,$(JAVA_SRC_ROOT)/build/templates/generated_header_hash.txt) > $(COMPONENT_NAME).pro && \ + echo TEMPLATE = subdirs>> $(COMPONENT_NAME).pro + $(MAKE) -f subsystem.mk TARGET_PHASE=configure_qmake TARGET_PRO=$(CURDIR)/$(COMPONENT_NAME).pro subtargets +ifeq ($(BUILDENV),symbian) +ifeq ($(notdir $(basename $(SHELL))),sh) + $(foreach d, $(filter $(NONQTSUBSYSTEMS),$(REALTARGETS)),echo 'BLD_INF_RULES.prj_extensions += "$$$${LITERAL_HASH}include \"$(d)/bld.inf\""' >> $(COMPONENT_NAME).pro &&) \ + echo BLD_INF_RULES.prj_extensions += "prj_extensions" >> $(COMPONENT_NAME).pro +else + $(foreach d, $(filter $(NONQTSUBSYSTEMS),$(REALTARGETS)),echo BLD_INF_RULES.prj_extensions += "$$$${LITERAL_HASH}include \"$(d)/bld.inf\"" >> $(COMPONENT_NAME).pro &&) \ + echo BLD_INF_RULES.prj_extensions += "prj_extensions" >> $(COMPONENT_NAME).pro +endif +endif +ifdef TARGET_PRO + echo SUBDIRS += $(TARGET_SUB) >> $(TARGET_PRO) +endif + +configure_qmake_recurse: + $(MAKE) -f subsystem.mk TARGET_PHASE=configure_qmake subtargets + +clean_configure: + $(PHASEINFO) + $(MAKE) -f subsystem.mk TARGET_PHASE=clean_configure subtargets + $(call RMFILES,$(COMPONENT_NAME).pro) + + +# Symbian ---------------------------------- +ifeq ($(BUILDENV),symbian) + +ifeq ($(COMPONENT_NAME),jrt) +# When building from top level, the native compilation does also export, java and finalactions +all: configure qmake native +clean: clean_native clean_generated +else +all: configure qmake export java native finalactions +clean: clean_java clean_native clean_generated +endif + +# On top level symbian build, the java building happens always during native +# phase, through bld.inf -file, so no direct Java building is done (unless it +# building _is_ made from the bld.inf). +ifeq ($(COMPONENT_NAME),jrt) +ifndef BLD_INF_JAVA +NOJAVA=1 +endif +endif + +ifdef NOJAVA +java clean_java: +else +java clean_java: + $(MAKE) -f subsystem.mk TARGET_PHASE=$@ subtargets +endif + +javareleasables makestubs: + $(MAKE) -f subsystem.mk TARGET_PHASE=$@ subtargets + +qmake: + $(QMAKE) +ifndef RD_JAVA_UI_QT + $(MAKE) -f subsystem.mk qmakefix +endif + +qmakefix: + $(PHASEINFO) + $(call RMFILES,bld.inf* Makefile*) + $(MAKE) -f subsystem.mk TARGET_PHASE=qmakefix subtargets + $(call CATCOMMAND,$(JAVA_SRC_ROOT)/build/templates/bld.inf) > bld.inf \ + $(foreach d, $(REALTARGETS), && echo #include "$d/bld.inf" >> bld.inf ) + +build_all: configure qmake +ifdef USESBS + $(SBS) -c winscw_udeb -c armv5_urel -f - +else + $(MAKE) -f subsystem.mk PLATFORM=winscw VARIANT=debug NODEP=1 native + $(MAKE) -f subsystem.mk PLATFORM=armv5 VARIANT=release NODEP=1 native +endif + + +reallyclean_all: + $(MAKE) -f subsystem.mk PLATFORM=winscw VARIANT=debug reallyclean_native + $(MAKE) -f subsystem.mk PLATFORM=armv5 VARIANT=release reallyclean_native + $(MAKE) -f subsystem.mk clean_java clean_generated + +clean_generated: + $(PHASEINFO) + $(MAKE) -f subsystem.mk TARGET_PHASE=clean_generated subtargets + $(call RMFILES,bld.inf abld.bat bld.inf* Makefile*) + + +# Target for cleaning, in case bld.inf does not exist +bld.inf: + $(MAKE) -f subsystem.mk makestubs qmake + + +# Symbian SBS ------------------------------ +ifdef USESBS + +export: + $(PHASEINFO) + $(SBS) -c $(PLATFORM)_$(CFG) EXPORT + +cleanexport: + $(PHASEINFO) + $(SBS) -c $(PLATFORM)_$(CFG) CLEANEXPORT + +# BUILD combines commands EXPORT MAKEFILE BITMAP RESOURCE LIBRARY TARGET FINAL +native: + $(PHASEINFO) + $(SBS) -c $(PLATFORM)_$(CFG) + +fastbuild: export java + $(SBS) -c $(PLATFORM)_$(CFG) TARGET + +clean_native: + $(PHASEINFO) + $(SBS) -c $(PLATFORM)_$(CFG) clean + +reallyclean: reallyclean_native clean_java clean_generated +reallyclean_native: bld.inf + $(PHASEINFO) + $(SBS) -c $(PLATFORM)_$(CFG) reallyclean + + +# Symbian ABLD MAKEFILE -------------------- +else + +export: + $(PHASEINFO) + $(BLDMAKE) bldfiles $(PLATFORM) + $(ABLDMAKE) -f $(BUILDDIR)/EXPORT.make EXPORT + +native: + $(PHASEINFO) + $(BLDMAKE) bldfiles $(PLATFORM) + $(ABLDMAKE) -f $(BUILDDIR)/EXPORT.make EXPORT + $(ABLDMAKE) -f $(BUILDDIR)/$(PLATFORM).make MAKEFILE $(VERBOSE) + $(ABLDMAKE) -f $(BUILDDIR)/$(PLATFORM).make LIBRARY $(VERBOSE) + $(ABLDMAKE) -f $(BUILDDIR)/$(PLATFORM).make RESOURCE CFG=$(CFG) $(VERBOSE) + $(ABLDMAKE) -f $(BUILDDIR)/$(PLATFORM).make TARGET CFG=$(CFG) $(VERBOSE) + $(ABLDMAKE) -f $(BUILDDIR)/$(PLATFORM).make FINAL CFG=$(CFG) $(VERBOSE) + +fastbuild: export java + $(ABLDMAKE) -f $(BUILDDIR)/$(PLATFORM).make TARGET CFG=$(CFG) $(VERBOSE) + +cleanexport: + $(PHASEINFO) + $(BLDMAKE) bldfiles $(PLATFORM) + -$(ABLDMAKE) -f $(BUILDDIR)/EXPORT.make CLEANEXPORT + +clean_native: + -$(ABLDMAKE) -f $(BUILDDIR)/$(PLATFORM).make CLEAN CFG=$(CFG) $(VERBOSE) + +reallyclean: reallyclean_native clean_java clean_generated +reallyclean_native: bld.inf + $(PHASEINFO) + $(BLDMAKE) bldfiles $(PLATFORM) + $(ABLDMAKE) -f $(BUILDDIR)/$(PLATFORM).make MAKEFILE $(VERBOSE) NO_DEPENDENCIES=-nd + -abld reallyclean $(PLATFORM) $(CFG) + -$(BLDMAKE) clean + +endif + + +# Linux ------------------------------------ +else + +all: configure qmake export java native finalactions + +java export qmake native clean reallyclean clean_generated cleanexport: + $(PHASEINFO) + $(MAKE) -f subsystem.mk TARGET_PHASE=$@ subtargets + +endif