--- a/deprecated/buildtools/buildsystem/extension/base/bootstrap.mk Thu Oct 28 11:39:28 2010 +0800
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,391 +0,0 @@
-# Copyright (c) 2006-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:
-#
-
-# To ensure that EPOCROOT always ends with a forward slash.
-TMPROOT:=$(subst \,/,$(EPOCROOT))
-EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
-
-ifndef CPU
-CPU := arm
-endif
-
-ifndef LINKBASE
-LINKBASE := 0x00000000
-endif
-
-include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
-
-PROCEED:=build
-ifneq "$(PBUILDPID)" ""
- ifneq "$(CFG)" "UREL"
- PROCEED:=skip
- endif
-endif
-
-COPY := $(call ecopy)
-
-ifeq "$(CPU)" "x86"
- ifeq "$(MEMMODEL)" "direct"
- BLDSGL:=s
- else
- ifeq "$(MEMMODEL)" "flexible"
- BLDSGL:=f
- else
- BLDSGL:=
- endif
- endif
- ifdef SMP
- BLDSMP:=smp
- else
- BLDSMP:=
- endif
- EPOCROOT:=$(subst /,\,$(EPOCROOT))
- EPOCBLDABS := $(EPOCROOT)epoc32\build\tasm$(PBUILDPID)\$(BLDSGL)$(VNAME)$(BLDSMP)
-else
- DRIVELETTER := $(shell cd 2>NUL)
- DRIVELETTER_2 := $(word 1,$(subst \, ,$(DRIVELETTER)))
- EPOCBLDABS_1 := $(subst $(TO_ROOT),,$(EPOCBLD))
- EPOCBLDABS_2 := $(subst $(DRIVELETTER_2),,$(EPOCBLDABS_1))
-
- EPOCBLDABS := $(call epocbldabs,$(DRIVELETTER_2),$(EPOCBLDABS_2))/$(NAME)
-endif
-
-EPOCINC := $(INC_PATH)
-EPOCKERNINC := $(EPOCINC)/kernel
-EPOCCPUINC := $(EPOCKERNINC)/$(CPU)
-EPOCMMINC := $(INC_PATH)/memmodel/epoc/$(MEMMODEL)/$(CPU)
-EPOCTRG := $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)
-TRG := $(EPOCTRG)/$(NAME).bin
-TEMPTRG := $(EPOCBLDABS)/$(NAME).bin
-
-ifdef EXTRA_INC_PATH
-ASMINCPATH := $(EXTRA_INC_PATH)
-endif
-
-ifeq "$(CPU)" "arm"
-ASMINCPATH := . $(EPOCBLDABS) $(ASMINCPATH) $(EXTENSION_ROOT) $(EPOCCPUINC)
-ARMASM_OUT := $(shell armasm 2>&1)
-ARMASM_OUT_4 := $(word 4,$(ARMASM_OUT))
-ARMASM_OUT_6 := $(word 6,$(ARMASM_OUT))
-
-# Use GCC toolchain if no other is available
-TOOLVER := GCC
-
-RVCTSTR := $(strip $(findstring RVCT, $(ARMASM_OUT_4)))
-ifeq "$(RVCTSTR)" "RVCT"
- TOOLVER := RVCT
- OP := --
-endif
-ifeq "$(ARMASM_OUT_6)" "2.37"
- TOOLVER := 211
-endif
-endif
-
-ifeq "$(MEMMODEL)" "direct"
-CFG_MM := CFG_MMDirect
-endif
-ifeq "$(MEMMODEL)" "moving"
-CFG_MM := CFG_MMMoving
-endif
-ifeq "$(MEMMODEL)" "multiple"
-CFG_MM := CFG_MMMultiple
-endif
-ifeq "$(MEMMODEL)" "flexible"
-CFG_MM := CFG_MMFlexible
-endif
-ifndef CFG_MM
-$(error Memory model unknown)
-endif
-
-ASM_MACROS += $(CFG_MM)
-ifdef SMP
- ASM_MACROS += SMP
-endif
-
-ifeq "$(CPU)" "x86"
- ifndef BASEINCLUDES
- BASEINCLUDES := bootcpu.inc bootmacr.inc
- endif
- ifndef BASESOURCES
- BASESOURCES := bootmain.asm bootcpu.asm bootutil.asm
- endif
- GENINCLUDES := $(GENINCLUDES) x86boot.h
- ASMINCPATH := .
- ASM := tasm
- LINK := tlink
- EXE2BIN := exe2bin
- SRCEXT := asm
- INCEXT := inc
- OBJEXT := obj
- EXEEXT := exe
-
- ASMINCPATHCMD := $(foreach dir,$(ASMINCPATH),$(join /i,$(call slash2generic,$(dir))))
- ASM_MACRO_CMD := $(foreach macro,$(ASM_MACROS),/d$(macro)=1)
- AFLAGS := /l /m3 /ML /W-PDC $(ASM_MACRO_CMD) $(ASMINCPATHCMD)
- LFLAGS := /m /s /n /3 /c
- ASMTYP := TASM
- LINKFILE :=
- define do_asm
- cd $(EPOCBLDABS) && $(CP) $(call slash2generic,$<) .
- cd $(EPOCBLDABS) && $(ASM) $(AFLAGS) $(notdir $<)
- endef
- define do_link
- cd $(EPOCBLDABS) && $(LINK) $(LFLAGS) $(filter %.$(OBJEXT),$(foreach obj,$^,$(notdir $(obj)))), temp.exe
- cd $(EPOCBLDABS) && $(COPY) temp.exe $@
- cd $(EPOCBLDABS) && $(ERASE) temp.exe
- endef
- define do_strip
- cd $(EPOCBLDABS) && $(COPY) $< temp.exe
- cd $(EPOCBLDABS) && $(EXE2BIN) temp.exe temp.bin
- cd $(EPOCBLDABS) && $(COPY) temp.bin $@
- cd $(EPOCBLDABS) && $(ERASE) temp.exe temp.bin
- endef
-endif
-ifeq "$(CPU)" "arm"
- ifeq "$(TOOLVER)" "211"
- ASM := armasm
- LINK := armlink
- SRCEXT := s
- INCEXT := inc
- OBJEXT := o
- EXEEXT := in
- ASMINCPATHCMD := $(foreach dir,$(ASMINCPATH),$(join -I ,$(dir)))
- ASM_MACRO_CMD := $(foreach macro,$(ASM_MACROS),-predefine "$(macro) SETL {TRUE}")
- AFLAGS := $(ASM_ARM211_VARIANTFLAGS) -apcs 3/32bit/nosw -Length 0 -Width 200 $(ASM_MACRO_CMD) $(ASMINCPATHCMD)
- LFLAGS := -Base $(LINKBASE) -Data 0xf0000000 -Entry $(LINKBASE) -Bin -map
- SYMOPT := -symbols
- ASMTYP := ARMASM
- LINKFILE :=
- define do_asm
- $(ASM) $(AFLAGS) -o $@ -LIST $(join $(basename $@),.lst) $<
- endef
- define do_link
- $(LINK) $(LFLAGS) $(SYMOPT) $(join $(basename $@),.sym) -o $@ $(filter %.$(OBJEXT),$^)
- endef
- define do_strip
- @if exist $@ $(ERASE) $(call slash2generic,$@)
- $(COPY) $< $@
- endef
- endif
- ifeq "$(TOOLVER)" "RVCT"
- ASM_MACROS += USE_CXSF
- ASM := armasm
- LINK := armlink
- FROMELF := fromelf
- SRCEXT := s
- INCEXT := inc
- OBJEXT := o
- EXEEXT := in
- ASMINCPATHCMD := $(foreach dir,$(ASMINCPATH),$(join -I ,$(dir)))
- ASM_MACRO_CMD := $(foreach macro,$(ASM_MACROS),$(OP)predefine "$(macro) SETL {TRUE}")
- AFLAGS := -g $(OP)keep $(ASM_MACRO_CMD) $(ASMINCPATHCMD) $(ASM_RVCT_VARIANTFLAGS)
- LFLAGS := $(OP)ro-base $(LINKBASE) $(OP)entry $(LINKBASE) $(OP)map
- SYMOPT := $(OP)symdefs
- ASMTYP := ARMASM
- LINKFILE :=
- define do_asm
- $(ASM) $(AFLAGS) -o $@ $(OP)LIST $(join $(basename $@),.lst) $<
- endef
- define do_link
- $(LINK) $(LFLAGS) $(SYMOPT) $(join $(basename $@),.sym) -o $@ $(filter %.$(OBJEXT),$^)
- $(COPY) $@ $(join $(basename $(TRG)),.sym)
- endef
- define do_strip
- $(FROMELF) $(OP)bin $(OP)output $@ $<
- endef
- endif
- ifeq "$(TOOLVER)" "GCC"
- ASM_MACROS += USE_CXSF GNU_ASM
- ASM := as
- LINK := ld
- STRIP := strip
- SRCEXT := s
- INCEXT := ginc
- OBJEXT := o
- EXEEXT := in
- ASMINCPATHCMD := $(foreach dir,$(ASMINCPATH),$(join -I ,$(dir)))
- ASM_MACRO_CMD := $(foreach macro,$(ASM_MACROS),--defsym $(macro)=1 )
- AFLAGS := -mapcs-32 -R -n $(ASM_MACRO_CMD) -I- $(ASMINCPATHCMD)
- LFLAGS := -n -x --section-alignment 4 --file-alignment 2 -no-whole-archive
- SYMOPT := -symdefs
- ASMTYP := AS
- PROCESS_INCLUDES := 1
- ifndef LINKFILE
- LINKFILE := bootstrap.lnk
- endif
- define do_asm
- perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $(join $(basename $@),.ss)
- $(ASM) $(AFLAGS) -acdhlms=$(join $(basename $@),.lst) -o $@ $(join $(basename $@),.ss)
- endef
- define do_link
- if exist $(join $(basename $@),.lnk) $(ERASE) $(call slash2generic,$(join $(basename $@),.lnk))
- $(COPY) $(subst /,\,$(filter %.lnk,$^)) $(join $(basename $@),.lnk)
- $(LINK) -M -o $@ $(filter %.$(OBJEXT),$^) $(LFLAGS) --script=$(join $(basename $@),.lnk) >$(join $(basename $@),.map)
- endef
- define do_strip
- $(STRIP) -O binary -o $(TEMPTRG) $<
- $(COPY) $(TEMPTRG) $@
- $(ERASE) $(call slash2generic,$(TEMPTRG))
- endef
- endif
-endif
-
-
-
-# Generic source files
-ifndef BASESOURCES
-BASESOURCES := bootmain.s bootcpu.s bootutils.s
-endif
-
-# Path for generic source files
-ifndef BASESRCPATH
-BASESRCPATH := $(E32PATH)/eka/kernel/$(CPU)
-endif
-
-
-# Generated include files
-GENINCLUDES := $(foreach f,$(GENINCLUDES),$(basename $(f)).$(INCEXT))
-GENINCLUDES := $(GENINCLUDES) e32rom.$(INCEXT) kernboot.$(INCEXT)
-GENINCLUDES := $(GENINCLUDES) bootdefs.$(INCEXT)
-ifneq "$(MEMMODEL)" "direct"
-GENINCLUDES := $(GENINCLUDES) mmboot.$(INCEXT)
-endif
-
-# Headers from which GENINCLUDES are generated
-GENHEADERS = $(foreach inc,$(GENINCLUDES),$(basename $(inc)).h)
-
-# Non-generated generic include files
-ifndef BASEINCLUDES
-BASEINCLUDES := bootcpu.inc bootmacro.inc
-endif
-BASEINCLUDES := $(foreach f,$(BASEINCLUDES),$(basename $(f)).$(INCEXT))
-INCLUDES := $(foreach f,$(INCLUDES),$(basename $(f)).$(INCEXT))
-
-# Generic object files
-BASEOBJECTS = $(foreach src, $(BASESOURCES), $(basename $(src)).$(OBJEXT))
-
-# Platform specific object files
-OBJECTS = $(foreach src, $(SOURCES), $(basename $(src)).$(OBJEXT))
-
-# Object files with paths
-FULLBASEOBJECTS = $(addprefix $(EPOCBLDABS)/,$(BASEOBJECTS))
-FULLOBJECTS = $(addprefix $(EPOCBLDABS)/,$(OBJECTS))
-LINKOBJECTS = $(FULLBASEOBJECTS) $(FULLOBJECTS)
-
-# Generated include files with paths
-FULLGENINCLUDES = $(addprefix $(EPOCBLDABS)/,$(GENINCLUDES))
-
-# Tell make where to look for things
-vpath %.h . $(EXTRA_INC_PATH) $(EPOCINC) $(EPOCKERNINC) $(EPOCCPUINC) $(EPOCMMINC)
-vpath %.inc . $(EXTRA_INC_PATH) $(EXTENSION_ROOT) $(EPOCINC) $(EPOCKERNINC) $(EPOCCPUINC) $(EPOCMMINC) $(EPOCBLDABS)
-vpath %.ginc $(EPOCBLDABS)
-vpath %.$(SRCEXT) . $(EXTRA_SRC_PATH) $(EXTENSION_ROOT) $(BASESRCPATH)
-vpath %.$(OBJEXT) $(EPOCBLDABS)
-vpath %.lnk . $(EXTENSION_ROOT) $(EPOCCPUINC)
-
-# How to link the object files
-$(EPOCBLDABS)/$(NAME).$(EXEEXT): $(LINKOBJECTS) $(LINKFILE) $(call pipe,$(EPOCBLDABS))
- $(do_link)
-
-# How to strip linked object to binary
-$(TRG): $(EPOCBLDABS)/$(NAME).$(EXEEXT)
- $(do_strip)
-
-# How to assemble the source files
-ifdef PROCESS_INCLUDES
-FULLBASEINCLUDES := $(addprefix $(EPOCBLDABS)/,$(BASEINCLUDES))
-FULLINCLUDES := $(addprefix $(EPOCBLDABS)/,$(INCLUDES))
-
-$(FULLBASEINCLUDES) : $(EPOCBLDABS)/%.$(INCEXT) : %.inc $(call pipe,$(EPOCBLDABS))
- perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $@
-
-$(FULLINCLUDES) : $(EPOCBLDABS)/%.$(INCEXT) : %.inc $(call pipe,$(EPOCBLDABS))
- perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $@
-
-$(FULLBASEOBJECTS) : $(EPOCBLDABS)/%.$(OBJEXT) : %.$(SRCEXT) $(FULLINCLUDES) $(FULLBASEINCLUDES) $(FULLGENINCLUDES) $(call pipe,$(EPOCBLDABS))
- $(do_asm)
-
-$(FULLOBJECTS) : $(EPOCBLDABS)/%.$(OBJEXT) : %.$(SRCEXT) $(FULLINCLUDES) $(FULLBASEINCLUDES) $(FULLGENINCLUDES) $(call pipe,$(EPOCBLDABS))
- $(do_asm)
-
-else
-
-ifeq "$(CPU)" "x86"
-FULLBASEINCLUDES := $(addprefix $(EPOCBLDABS)/,$(BASEINCLUDES))
-FULLINCLUDES := $(addprefix $(EPOCBLDABS)/,$(INCLUDES))
-
-$(FULLBASEINCLUDES) $(FULLINCLUDES) : $(EPOCBLDABS)/%.inc : %.inc
- $(CP) $(call slash2generic,$<) $(call slash2generic,$@)
-
-$(FULLBASEOBJECTS) $(FULLOBJECTS) : $(EPOCBLDABS)/%.$(OBJEXT) : %.$(SRCEXT) $(FULLBASEINCLUDES) $(FULLGENINCLUDES) $(FULLINCLUDES)
- $(do_asm)
-
-else
-$(FULLBASEOBJECTS) $(FULLOBJECTS) : $(EPOCBLDABS)/%.$(OBJEXT) : %.$(SRCEXT) $(BASEINCLUDES) $(FULLGENINCLUDES) $(INCLUDES) $(call pipe,$(EPOCBLDABS))
- $(do_asm)
-
-endif
-endif
-
-# How to translate the .h files to .inc
-$(FULLGENINCLUDES) : $(EPOCBLDABS)/%.$(INCEXT) : %.h $(call pipe,$(EPOCBLDABS))
- perl $(EPOCROOT)epoc32/tools/h2inc.pl $< $@ $(ASMTYP)
-
-
-# How to make the working directories
-$(EPOCBLDABS) $(EPOCTRG) :
- $(call ifnotexistd,$(call slash2generic,$@))
-
-# Makmake targets
-.PHONY : MAKMAKE FREEZE LIB CLEANLIB RESOURCE FINAL BLD SAVESPACE RELEASABLES CLEAN
-.PHONY : build skip
-
-MAKMAKE :
- echo Nothing to do
- echo $(BASESRCPATH)
-
-FREEZE :
- echo Nothing to do
- echo $(BASESRCPATH)
-
-LIB :
- echo Nothing to do
- echo $(BASESRCPATH)
-
-CLEANLIB :
- echo Nothing to do
- echo $(BASESRCPATH)
-
-RESOURCE :
- echo Nothing to do
- echo $(BASESRCPATH)
-
-FINAL :
- echo Nothing to do
-
-BLD SAVESPACE : $(PROCEED)
-
-RELEASABLES :
- @echo $(TRG)
-
-CLEAN :
- -$(ERASE) $(call slash2generic,$(TRG))
- -$(ERASE) $(call slash2generic,$(EPOCBLDABS)/*.*)
-
-build: $(EPOCTRG) $(EPOCBLDABS) $(TRG)
- echo Bootstrap built for $(PLATFORM) $(CFG)
-
-skip:
- echo Bootstrap build skipped for $(PLATFORM) $(CFG)