deprecated/buildtools/buildsystem/extension/base/bootstrap.mk
author kelvzhu
Mon, 18 Oct 2010 16:16:46 +0800
changeset 655 3f65fd25dfd4
permissions -rw-r--r--
sync up SVN codes
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
655
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
     1
# Copyright (c) 2006-2009 Nokia Corporation and/or its subsidiary(-ies).
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
     2
# All rights reserved.
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
     3
# This component and the accompanying materials are made available
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
     4
# under the terms of "Eclipse Public License v1.0"
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
     5
# which accompanies this distribution, and is available
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
     6
# at the URL "http://www.eclipse.org/legal/epl-v10.html".
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
     7
#
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
     8
# Initial Contributors:
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
     9
# Nokia Corporation - initial contribution.
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    10
#
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    11
# Contributors:
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    12
#
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    13
# Description:
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    14
#
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    15
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    16
# To ensure that EPOCROOT always ends with a forward slash. 
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    17
TMPROOT:=$(subst \,/,$(EPOCROOT))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    18
EPOCROOT:=$(patsubst %/,%,$(TMPROOT))/
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    19
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    20
ifndef CPU
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    21
CPU := arm
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    22
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    23
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    24
ifndef LINKBASE
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    25
LINKBASE := 0x00000000
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    26
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    27
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    28
include $(EPOCROOT)epoc32/tools/shell/$(notdir $(basename $(SHELL))).mk
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    29
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    30
PROCEED:=build
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    31
ifneq "$(PBUILDPID)" ""
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    32
        ifneq "$(CFG)" "UREL"
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    33
                PROCEED:=skip
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    34
        endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    35
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    36
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    37
COPY := $(call ecopy)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    38
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    39
ifeq "$(CPU)" "x86"
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    40
        ifeq "$(MEMMODEL)" "direct"
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    41
                BLDSGL:=s
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    42
        else
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    43
                ifeq "$(MEMMODEL)" "flexible"
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    44
                        BLDSGL:=f
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    45
                else
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    46
                        BLDSGL:=
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    47
                endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    48
        endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    49
        ifdef SMP
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    50
                BLDSMP:=smp
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    51
        else
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    52
                BLDSMP:=
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    53
        endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    54
        EPOCROOT:=$(subst /,\,$(EPOCROOT))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    55
        EPOCBLDABS := $(EPOCROOT)epoc32\build\tasm$(PBUILDPID)\$(BLDSGL)$(VNAME)$(BLDSMP)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    56
else
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    57
        DRIVELETTER := $(shell cd 2>NUL)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    58
        DRIVELETTER_2 := $(word 1,$(subst \, ,$(DRIVELETTER)))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    59
        EPOCBLDABS_1 := $(subst $(TO_ROOT),,$(EPOCBLD))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    60
        EPOCBLDABS_2 := $(subst $(DRIVELETTER_2),,$(EPOCBLDABS_1))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    61
        
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    62
        EPOCBLDABS := $(call epocbldabs,$(DRIVELETTER_2),$(EPOCBLDABS_2))/$(NAME)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    63
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    64
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    65
EPOCINC := $(INC_PATH)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    66
EPOCKERNINC := $(EPOCINC)/kernel
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    67
EPOCCPUINC := $(EPOCKERNINC)/$(CPU)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    68
EPOCMMINC := $(INC_PATH)/memmodel/epoc/$(MEMMODEL)/$(CPU)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    69
EPOCTRG := $(EPOCROOT)epoc32/release/$(PLATFORM_PATH)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    70
TRG := $(EPOCTRG)/$(NAME).bin
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    71
TEMPTRG := $(EPOCBLDABS)/$(NAME).bin
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    72
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    73
ifdef EXTRA_INC_PATH
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    74
ASMINCPATH := $(EXTRA_INC_PATH)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    75
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    76
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    77
ifeq "$(CPU)" "arm"
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    78
ASMINCPATH := . $(EPOCBLDABS) $(ASMINCPATH) $(EXTENSION_ROOT) $(EPOCCPUINC)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    79
ARMASM_OUT := $(shell armasm 2>&1)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    80
ARMASM_OUT_4 := $(word 4,$(ARMASM_OUT))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    81
ARMASM_OUT_6 := $(word 6,$(ARMASM_OUT))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    82
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    83
# Use GCC toolchain if no other is available
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    84
TOOLVER := GCC
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    85
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    86
RVCTSTR := $(strip $(findstring RVCT, $(ARMASM_OUT_4)))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    87
ifeq "$(RVCTSTR)" "RVCT"
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    88
        TOOLVER := RVCT
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    89
        OP := --
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    90
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    91
ifeq "$(ARMASM_OUT_6)" "2.37"
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    92
        TOOLVER := 211
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    93
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    94
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    95
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    96
ifeq "$(MEMMODEL)" "direct"
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    97
CFG_MM := CFG_MMDirect
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    98
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
    99
ifeq "$(MEMMODEL)" "moving"
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   100
CFG_MM := CFG_MMMoving
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   101
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   102
ifeq "$(MEMMODEL)" "multiple"
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   103
CFG_MM := CFG_MMMultiple
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   104
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   105
ifeq "$(MEMMODEL)" "flexible"
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   106
CFG_MM := CFG_MMFlexible
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   107
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   108
ifndef CFG_MM
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   109
$(error Memory model unknown)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   110
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   111
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   112
ASM_MACROS += $(CFG_MM)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   113
ifdef SMP
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   114
        ASM_MACROS += SMP
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   115
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   116
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   117
ifeq "$(CPU)" "x86"
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   118
        ifndef BASEINCLUDES
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   119
                BASEINCLUDES := bootcpu.inc bootmacr.inc
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   120
        endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   121
        ifndef BASESOURCES
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   122
                BASESOURCES := bootmain.asm bootcpu.asm bootutil.asm
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   123
        endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   124
        GENINCLUDES := $(GENINCLUDES) x86boot.h
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   125
        ASMINCPATH := . 
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   126
        ASM := tasm
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   127
        LINK := tlink
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   128
        EXE2BIN := exe2bin
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   129
        SRCEXT := asm
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   130
        INCEXT := inc
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   131
        OBJEXT := obj
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   132
        EXEEXT := exe
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   133
        
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   134
        ASMINCPATHCMD := $(foreach dir,$(ASMINCPATH),$(join /i,$(call slash2generic,$(dir))))   
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   135
        ASM_MACRO_CMD := $(foreach macro,$(ASM_MACROS),/d$(macro)=1)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   136
        AFLAGS := /l /m3 /ML /W-PDC $(ASM_MACRO_CMD) $(ASMINCPATHCMD)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   137
        LFLAGS := /m /s /n /3 /c
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   138
        ASMTYP := TASM
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   139
        LINKFILE :=
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   140
        define do_asm
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   141
                cd $(EPOCBLDABS) && $(CP) $(call slash2generic,$<) .
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   142
                cd $(EPOCBLDABS) && $(ASM) $(AFLAGS) $(notdir $<)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   143
        endef
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   144
        define do_link
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   145
                cd $(EPOCBLDABS) && $(LINK) $(LFLAGS) $(filter %.$(OBJEXT),$(foreach obj,$^,$(notdir $(obj)))), temp.exe
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   146
                cd $(EPOCBLDABS) && $(COPY) temp.exe $@
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   147
                cd $(EPOCBLDABS) && $(ERASE) temp.exe
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   148
        endef
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   149
        define do_strip
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   150
                cd $(EPOCBLDABS) && $(COPY) $< temp.exe
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   151
                cd $(EPOCBLDABS) && $(EXE2BIN) temp.exe temp.bin
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   152
                cd $(EPOCBLDABS) && $(COPY) temp.bin $@
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   153
                cd $(EPOCBLDABS) && $(ERASE) temp.exe temp.bin
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   154
        endef
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   155
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   156
ifeq "$(CPU)" "arm"
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   157
        ifeq "$(TOOLVER)" "211"
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   158
                ASM := armasm
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   159
                LINK := armlink
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   160
                SRCEXT := s
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   161
                INCEXT := inc
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   162
                OBJEXT := o
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   163
                EXEEXT := in
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   164
                ASMINCPATHCMD := $(foreach dir,$(ASMINCPATH),$(join -I ,$(dir)))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   165
                ASM_MACRO_CMD := $(foreach macro,$(ASM_MACROS),-predefine "$(macro) SETL {TRUE}")
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   166
                AFLAGS := $(ASM_ARM211_VARIANTFLAGS) -apcs 3/32bit/nosw -Length 0 -Width 200 $(ASM_MACRO_CMD) $(ASMINCPATHCMD)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   167
                LFLAGS := -Base $(LINKBASE) -Data 0xf0000000 -Entry $(LINKBASE) -Bin -map
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   168
                SYMOPT := -symbols
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   169
                ASMTYP := ARMASM
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   170
                LINKFILE :=
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   171
                define do_asm
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   172
                        $(ASM) $(AFLAGS) -o $@ -LIST $(join $(basename $@),.lst) $<
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   173
                endef
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   174
                define do_link
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   175
                        $(LINK) $(LFLAGS) $(SYMOPT) $(join $(basename $@),.sym) -o $@ $(filter %.$(OBJEXT),$^)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   176
                endef
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   177
                define do_strip
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   178
                        @if exist $@ $(ERASE) $(call slash2generic,$@) 
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   179
                        $(COPY) $< $@
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   180
                endef
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   181
        endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   182
        ifeq "$(TOOLVER)" "RVCT"
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   183
                ASM_MACROS += USE_CXSF
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   184
                ASM := armasm
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   185
                LINK := armlink
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   186
                FROMELF := fromelf
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   187
                SRCEXT := s
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   188
                INCEXT := inc
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   189
                OBJEXT := o
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   190
                EXEEXT := in
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   191
                ASMINCPATHCMD := $(foreach dir,$(ASMINCPATH),$(join -I ,$(dir)))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   192
                ASM_MACRO_CMD := $(foreach macro,$(ASM_MACROS),$(OP)predefine "$(macro) SETL {TRUE}")
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   193
                AFLAGS := -g $(OP)keep $(ASM_MACRO_CMD) $(ASMINCPATHCMD) $(ASM_RVCT_VARIANTFLAGS)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   194
                LFLAGS := $(OP)ro-base $(LINKBASE) $(OP)entry $(LINKBASE) $(OP)map
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   195
                SYMOPT := $(OP)symdefs
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   196
                ASMTYP := ARMASM
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   197
                LINKFILE :=
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   198
                define do_asm
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   199
                        $(ASM) $(AFLAGS) -o $@ $(OP)LIST $(join $(basename $@),.lst) $<
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   200
                endef
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   201
                define do_link
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   202
                        $(LINK) $(LFLAGS) $(SYMOPT) $(join $(basename $@),.sym) -o $@ $(filter %.$(OBJEXT),$^)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   203
                        $(COPY) $@ $(join $(basename $(TRG)),.sym)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   204
                endef
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   205
                define do_strip
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   206
                        $(FROMELF) $(OP)bin $(OP)output $@ $<
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   207
                endef
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   208
        endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   209
        ifeq "$(TOOLVER)" "GCC"
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   210
                ASM_MACROS += USE_CXSF GNU_ASM
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   211
                ASM := as
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   212
                LINK := ld
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   213
                STRIP := strip
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   214
                SRCEXT := s
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   215
                INCEXT := ginc
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   216
                OBJEXT := o
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   217
                EXEEXT := in
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   218
                ASMINCPATHCMD := $(foreach dir,$(ASMINCPATH),$(join -I ,$(dir)))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   219
                ASM_MACRO_CMD := $(foreach macro,$(ASM_MACROS),--defsym $(macro)=1 )
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   220
                AFLAGS := -mapcs-32 -R -n $(ASM_MACRO_CMD) -I- $(ASMINCPATHCMD)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   221
                LFLAGS := -n -x --section-alignment 4 --file-alignment 2 -no-whole-archive
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   222
                SYMOPT := -symdefs
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   223
                ASMTYP := AS
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   224
                PROCESS_INCLUDES := 1
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   225
                ifndef LINKFILE
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   226
                        LINKFILE := bootstrap.lnk
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   227
                endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   228
                define do_asm
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   229
                        perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $(join $(basename $@),.ss)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   230
                        $(ASM) $(AFLAGS) -acdhlms=$(join $(basename $@),.lst) -o $@ $(join $(basename $@),.ss)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   231
                endef
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   232
                define do_link
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   233
                        if exist $(join $(basename $@),.lnk) $(ERASE) $(call slash2generic,$(join $(basename $@),.lnk)) 
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   234
                        $(COPY) $(subst /,\,$(filter %.lnk,$^)) $(join $(basename $@),.lnk)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   235
                        $(LINK) -M -o $@ $(filter %.$(OBJEXT),$^) $(LFLAGS) --script=$(join $(basename $@),.lnk) >$(join $(basename $@),.map)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   236
                endef
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   237
                define do_strip
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   238
                        $(STRIP) -O binary -o $(TEMPTRG) $<
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   239
                        $(COPY) $(TEMPTRG) $@
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   240
                        $(ERASE) $(call slash2generic,$(TEMPTRG)) 
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   241
                endef
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   242
        endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   243
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   244
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   245
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   246
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   247
# Generic source files
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   248
ifndef BASESOURCES
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   249
BASESOURCES := bootmain.s bootcpu.s bootutils.s
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   250
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   251
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   252
# Path for generic source files
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   253
ifndef BASESRCPATH
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   254
BASESRCPATH := $(E32PATH)/eka/kernel/$(CPU)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   255
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   256
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   257
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   258
# Generated include files
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   259
GENINCLUDES := $(foreach f,$(GENINCLUDES),$(basename $(f)).$(INCEXT))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   260
GENINCLUDES := $(GENINCLUDES) e32rom.$(INCEXT) kernboot.$(INCEXT)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   261
GENINCLUDES := $(GENINCLUDES) bootdefs.$(INCEXT)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   262
ifneq "$(MEMMODEL)" "direct"
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   263
GENINCLUDES := $(GENINCLUDES) mmboot.$(INCEXT)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   264
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   265
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   266
# Headers from which GENINCLUDES are generated
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   267
GENHEADERS = $(foreach inc,$(GENINCLUDES),$(basename $(inc)).h)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   268
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   269
# Non-generated generic include files
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   270
ifndef BASEINCLUDES
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   271
BASEINCLUDES := bootcpu.inc bootmacro.inc
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   272
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   273
BASEINCLUDES := $(foreach f,$(BASEINCLUDES),$(basename $(f)).$(INCEXT))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   274
INCLUDES := $(foreach f,$(INCLUDES),$(basename $(f)).$(INCEXT))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   275
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   276
# Generic object files
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   277
BASEOBJECTS = $(foreach src, $(BASESOURCES), $(basename $(src)).$(OBJEXT))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   278
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   279
# Platform specific object files
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   280
OBJECTS = $(foreach src, $(SOURCES), $(basename $(src)).$(OBJEXT))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   281
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   282
# Object files with paths
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   283
FULLBASEOBJECTS = $(addprefix $(EPOCBLDABS)/,$(BASEOBJECTS))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   284
FULLOBJECTS = $(addprefix $(EPOCBLDABS)/,$(OBJECTS))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   285
LINKOBJECTS = $(FULLBASEOBJECTS) $(FULLOBJECTS)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   286
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   287
# Generated include files with paths
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   288
FULLGENINCLUDES = $(addprefix $(EPOCBLDABS)/,$(GENINCLUDES))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   289
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   290
# Tell make where to look for things
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   291
vpath %.h . $(EXTRA_INC_PATH) $(EPOCINC) $(EPOCKERNINC) $(EPOCCPUINC) $(EPOCMMINC)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   292
vpath %.inc . $(EXTRA_INC_PATH) $(EXTENSION_ROOT) $(EPOCINC) $(EPOCKERNINC) $(EPOCCPUINC) $(EPOCMMINC) $(EPOCBLDABS)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   293
vpath %.ginc $(EPOCBLDABS)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   294
vpath %.$(SRCEXT) . $(EXTRA_SRC_PATH) $(EXTENSION_ROOT) $(BASESRCPATH)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   295
vpath %.$(OBJEXT) $(EPOCBLDABS)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   296
vpath %.lnk . $(EXTENSION_ROOT) $(EPOCCPUINC)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   297
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   298
# How to link the object files 
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   299
$(EPOCBLDABS)/$(NAME).$(EXEEXT): $(LINKOBJECTS) $(LINKFILE) $(call pipe,$(EPOCBLDABS)) 
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   300
	$(do_link)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   301
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   302
# How to strip linked object to binary
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   303
$(TRG): $(EPOCBLDABS)/$(NAME).$(EXEEXT)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   304
	$(do_strip)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   305
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   306
# How to assemble the source files
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   307
ifdef PROCESS_INCLUDES
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   308
FULLBASEINCLUDES := $(addprefix $(EPOCBLDABS)/,$(BASEINCLUDES))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   309
FULLINCLUDES := $(addprefix $(EPOCBLDABS)/,$(INCLUDES))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   310
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   311
$(FULLBASEINCLUDES) : $(EPOCBLDABS)/%.$(INCEXT) : %.inc $(call pipe,$(EPOCBLDABS))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   312
	perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $@
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   313
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   314
$(FULLINCLUDES) : $(EPOCBLDABS)/%.$(INCEXT) : %.inc $(call pipe,$(EPOCBLDABS))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   315
	perl $(EPOCROOT)epoc32/tools/armasm2as.pl $< $@
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   316
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   317
$(FULLBASEOBJECTS) : $(EPOCBLDABS)/%.$(OBJEXT) : %.$(SRCEXT) $(FULLINCLUDES) $(FULLBASEINCLUDES) $(FULLGENINCLUDES) $(call pipe,$(EPOCBLDABS))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   318
	$(do_asm)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   319
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   320
$(FULLOBJECTS) : $(EPOCBLDABS)/%.$(OBJEXT) : %.$(SRCEXT) $(FULLINCLUDES) $(FULLBASEINCLUDES) $(FULLGENINCLUDES) $(call pipe,$(EPOCBLDABS))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   321
	$(do_asm)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   322
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   323
else
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   324
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   325
ifeq "$(CPU)" "x86"
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   326
FULLBASEINCLUDES := $(addprefix $(EPOCBLDABS)/,$(BASEINCLUDES))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   327
FULLINCLUDES := $(addprefix $(EPOCBLDABS)/,$(INCLUDES))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   328
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   329
$(FULLBASEINCLUDES) $(FULLINCLUDES) : $(EPOCBLDABS)/%.inc : %.inc
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   330
	$(CP) $(call slash2generic,$<) $(call slash2generic,$@) 
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   331
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   332
$(FULLBASEOBJECTS) $(FULLOBJECTS) : $(EPOCBLDABS)/%.$(OBJEXT) : %.$(SRCEXT) $(FULLBASEINCLUDES) $(FULLGENINCLUDES) $(FULLINCLUDES)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   333
	$(do_asm)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   334
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   335
else
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   336
$(FULLBASEOBJECTS) $(FULLOBJECTS) : $(EPOCBLDABS)/%.$(OBJEXT) : %.$(SRCEXT) $(BASEINCLUDES) $(FULLGENINCLUDES) $(INCLUDES) $(call pipe,$(EPOCBLDABS))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   337
	$(do_asm)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   338
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   339
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   340
endif
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   341
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   342
# How to translate the .h files to .inc
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   343
$(FULLGENINCLUDES) : $(EPOCBLDABS)/%.$(INCEXT) : %.h $(call pipe,$(EPOCBLDABS))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   344
	perl $(EPOCROOT)epoc32/tools/h2inc.pl $< $@ $(ASMTYP)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   345
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   346
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   347
# How to make the working directories
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   348
$(EPOCBLDABS) $(EPOCTRG) :
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   349
	$(call ifnotexistd,$(call slash2generic,$@))
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   350
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   351
# Makmake targets
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   352
.PHONY : MAKMAKE FREEZE LIB CLEANLIB RESOURCE FINAL BLD SAVESPACE RELEASABLES CLEAN
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   353
.PHONY : build skip
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   354
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   355
MAKMAKE :
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   356
	echo Nothing to do
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   357
	echo $(BASESRCPATH)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   358
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   359
FREEZE :
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   360
	echo Nothing to do
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   361
	echo $(BASESRCPATH)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   362
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   363
LIB :
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   364
	echo Nothing to do
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   365
	echo $(BASESRCPATH)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   366
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   367
CLEANLIB :
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   368
	echo Nothing to do
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   369
	echo $(BASESRCPATH)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   370
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   371
RESOURCE :
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   372
	echo Nothing to do
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   373
	echo $(BASESRCPATH)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   374
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   375
FINAL :
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   376
	echo Nothing to do
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   377
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   378
BLD SAVESPACE : $(PROCEED)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   379
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   380
RELEASABLES :
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   381
	@echo $(TRG)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   382
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   383
CLEAN :
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   384
	-$(ERASE) $(call slash2generic,$(TRG)) 
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   385
	-$(ERASE) $(call slash2generic,$(EPOCBLDABS)/*.*) 
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   386
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   387
build: $(EPOCTRG) $(EPOCBLDABS) $(TRG)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   388
	echo Bootstrap built for $(PLATFORM) $(CFG)
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   389
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   390
skip:
3f65fd25dfd4 sync up SVN codes
kelvzhu
parents:
diff changeset
   391
	echo Bootstrap build skipped for $(PLATFORM) $(CFG)