sbsv1/buildsystem/extension/base/lab_restricted_miniboot.mk
changeset 607 378360dbbdba
parent 599 fa7a3cc6effd
equal deleted inserted replaced
591:22486c9c7b15 607:378360dbbdba
       
     1 # lab_restricted_miniboot.mk
       
     2 #
       
     3 # Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
       
     4 # All rights reserved.
       
     5 # This component and the accompanying materials are made available
       
     6 # under the terms of "Eclipse Public License v1.0"
       
     7 # which accompanies this distribution, and is available
       
     8 # at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     9 #
       
    10 # Initial Contributors:
       
    11 # Nokia Corporation - initial contribution.
       
    12 #
       
    13 # Contributors:
       
    14 #
       
    15 # 
       
    16 #
       
    17 
       
    18 TMPROOT:=$(subst \,/,$(EPOCROOT))
       
    19 EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
       
    20 include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
       
    21 
       
    22 #Set the directories
       
    23 SRCDIR := $(EXTENSION_ROOT)/../../lab_restricted/unistore2/nandboot/miniboot_largeblk
       
    24 
       
    25 # Build directory (EPOCBLD too long)
       
    26 BUILDLOC = $(EPOCROOT)epoc32/build/lab_restricted/unistore2/nandboot/miniboot/$(PLATFORM_PATH)
       
    27 
       
    28 # Set the target name
       
    29 TARGETDIR := $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)
       
    30 TARGET = $(TARGETDIR)$/lab_miniboot.bin
       
    31 TMPTARGET = $(BUILDLOC)$/lab_miniboot.elf
       
    32 TMPTARGET2 = $(BUILDLOC)$/lab_miniboot.bin
       
    33 
       
    34 # Set the Load Address for the miniboot
       
    35 # This is currently set to the beginning of SRAM
       
    36 LINKBASE=0x40200000
       
    37 
       
    38 #Rules
       
    39 vpath %.s . $(SRCDIR)
       
    40 
       
    41 ASMSOURCE := miniboot_largeblk.s
       
    42 
       
    43 ARMASM_OUT := $(shell armasm 2>&1)
       
    44 ARMASM_OUT_4 := $(word 4,$(ARMASM_OUT))
       
    45 
       
    46 # Select the toolchain: ARM RVCT, then GCC
       
    47 #TOOLVER := RVCT
       
    48 OP := --
       
    49 OB := o
       
    50 
       
    51 #Arm RVCT tools
       
    52 ASM_TRUE_MACROS += USE_CXSF
       
    53 ASM := armasm
       
    54 LINK := armlink
       
    55 FROMELF := fromelf
       
    56 
       
    57 OBJEXT := o
       
    58 
       
    59 ASM_TRUE_MACRO_CMD := $(foreach macro,$(ASM_TRUE_MACROS),$(OP)predefine "$(macro) SETL {TRUE}")
       
    60 ASM_FALSE_MACRO_CMD := $(foreach macro,$(ASM_FALSE_MACROS),$(OP)predefine "$(macro) SETL {FALSE}")
       
    61 
       
    62 AFLAGS := -g $(OP)keep $(ASM_TRUE_MACRO_CMD) $(ASM_FALSE_MACRO_CMD) -I$(BUILDLOC)
       
    63 LFLAGS := $(OP)ro-base $(LINKBASE) $(OP)entry BootEntry $(OP)FIRST BootEntry $(OP)map
       
    64 SYMOPT := $(OP)symdefs
       
    65 ASMTYP := ARMASM
       
    66 
       
    67 define do_asm
       
    68 	$(ASM) $(AFLAGS) -$(OB) $@ $(OP)LIST $(join $(basename $@),.lst) $<
       
    69 endef
       
    70 
       
    71 define do_link
       
    72 	$(LINK) $(LFLAGS) -$(OB) $@ $(FULLOBJECTS)
       
    73 endef
       
    74 
       
    75 define do_strip
       
    76 	$(FROMELF) $(OP)bin $(OP)output $@ $<
       
    77 endef
       
    78 
       
    79 define do_omapsig
       
    80 	perl -S $(EPOCROOT)epoc32/tools/omapsig.pl $(LINKBASE) $< $@
       
    81 endef
       
    82 
       
    83 ASMOBJECTS := $(foreach f,$(ASMSOURCE),$(basename $(f)).$(OBJEXT))
       
    84 FULLASMOBJECTS := $(addprefix $(BUILDLOC)/,$(ASMOBJECTS))
       
    85 
       
    86 FULLOBJECTS := $(FULLASMOBJECTS)
       
    87 
       
    88 
       
    89 #Link
       
    90 $(TMPTARGET) : $(FULLOBJECTS)
       
    91 	$(do_link)
       
    92 
       
    93 #strip
       
    94 $(TMPTARGET2) : $(TMPTARGET)
       
    95 	$(do_strip)
       
    96 
       
    97 #omapsig
       
    98 $(TARGET) : $(TMPTARGET2)
       
    99 	$(do_omapsig)
       
   100 
       
   101 #Asm objects
       
   102 
       
   103 $(FULLASMOBJECTS) : $(BUILDLOC)/%.$(OBJEXT) : $(SRCDIR)/$(ASMSOURCE) $(FULLINCLUDES) $(FULLBUILTINCLUDES) $(FULLBUILTINCLUDES2) $(FULLBLDINCLUDES) $(FULLGENINCLUDES) $(FULLPLATINCLUDES)
       
   104 	$(do_asm)
       
   105 
       
   106 # make the work directories
       
   107 $(TARGETDIR) :
       
   108 	$(call ifnotexistd,"$(TARGETDIR)")
       
   109    
       
   110 $(BUILDLOC) :
       
   111 	$(call ifnotexistd,"$(BUILDLOC)")
       
   112 	
       
   113 
       
   114 
       
   115 MAKMAKE :
       
   116 	echo Nothing to do
       
   117 
       
   118 FREEZE :
       
   119 	echo Nothing to do
       
   120 
       
   121 LIB :
       
   122 	echo Nothing to do
       
   123 
       
   124 CLEANLIB :
       
   125 	echo Nothing to do
       
   126 
       
   127 RESOURCE :
       
   128 	echo Nothing to do
       
   129 
       
   130 FINAL :
       
   131 	echo Nothing to do
       
   132 
       
   133 BLD SAVESPACE : $(TARGETDIR) $(BUILDLOC) $(TARGET)
       
   134 
       
   135 RELEASABLES :
       
   136 	@echo "$(TARGET)"
       
   137 
       
   138 CLEAN :
       
   139 	-$(ERASE) $(call slash2generic,"$(TARGET)")
       
   140 	-$(ERASE) $(call slash2generic,"$(BUILDLOC)/*.*")
       
   141