# ----------------------------------------------------------------------------
-# Hyper Operating System V4 Advance Application Framework
+# Hyper Operating System Application Framework
# makefile for ARM V4T
#
-# Copyright (C) 1998-2007 by Project HOS
+# Copyright (C) 1998-2008 by Project HOS
# http://sourceforge.jp/projects/hos/
# ----------------------------------------------------------------------------
# %jp{オプションフラグ}
-CFLAGS += --cpu=4T --apcs=inter --thumb
-AFLAGS += --cpu=4T --apcs=inter --thumb
-ARFLAGS +=
-
+CFLAGS = --cpu=4T --apcs=inter --thumb
+AFLAGS = --cpu=4T --apcs=inter --thumb
+ARFLAGS =
# %jp{リンク制御対象制御}
# %jp{フラグ設定}
-CFLAGS += --cpu=ARM7TDMI-S --apcs=inter --thumb
-AFLAGS += --cpu=ARM7TDMI-S --apcs=inter --thumb
-LNFLAGS += --ro_base=$(SECTION_ROM) --rw_base=$(SECTION_RAM) --first=vectors.o --entry=$(SECTION_ROM)
+CFLAGS = --cpu=ARM7TDMI-S --apcs=inter --thumb
+AFLAGS = --cpu=ARM7TDMI-S --apcs=inter --thumb
+LNFLAGS = --ro_base=$(SECTION_ROM) --rw_base=$(SECTION_RAM) --first=vectors.o --entry=$(SECTION_ROM)
# %jp{出力ファイル名}
$(MAKE) -C $(KERNEL_BUILD_DIR) -f gmake.mak srccpy
$(MAKE) -C $(HOSAPLFW_BUILD_DIR) -f gmake.mak srccpy
-../kernel_cfg.c ../kernel_id.h: ../system.cfg
+../kernel_cfg.c ../kernel_id.h: ../system.cfg $(KERNEL_CFGRTR)
cpp -E ../system.cfg ../system.i
$(KERNEL_CFGRTR) ../system.i -c ../kernel_cfg.c -i ../kernel_id.h
+$(KERNEL_CFGRTR) : kernel_make
# %jp{ライブラリ生成用設定読込み}
$(CMD_CP) .\*.src $(OBJS_DIR)
$(CMD_CP) .\*.c $(OBJS_DIR)
$(CMD_CP) ..\*.c $(OBJS_DIR)
+ $(CMD_CP) ..\*.h $(OBJS_DIR)
TARGET ?= libhosv4a
-# ディレクトリ定義
+# %jp{アーキテクチャ指定}
+ARCH_PROC ?= arm/arm_v4t
+ARCH_IRC ?= arm/lpc2000
+ARCH_CC ?= armcc
+
+
+# %jp{ディレクトリ定義}
HOSV4A_DIR = ../../../../..
KERNEL_DIR = $(HOSV4A_DIR)/kernel
KERNEL_MAKINC_DIR = $(KERNEL_DIR)/build/common/gmake
include $(KERNEL_MAKINC_DIR)/common.inc
-# %jp{アーキテクチャ定義}
-ARCH_PROC ?= arm/arm_v4t
-ARCH_IRC ?= arm/lpc2000
-ARCH_CC ?= armcc
-
# %jp{アーキテクチャパス}
INC_PROC_DIR = $(KERNEL_DIR)/include/arch/proc/$(ARCH_PROC)
INC_IRC_DIR = $(KERNEL_DIR)/include/arch/irc/$(ARCH_IRC)
SRC_IRC_DIR = $(KERNEL_DIR)/source/arch/irc/$(ARCH_IRC)
SRC_IRC_CC_DIR = $(KERNEL_DIR)/source/arch/irc/$(ARCH_IRC)/$(ARCH_CC)
+
# %jp{パス設定}
INC_DIRS += $(INC_PROC_DIR) $(INC_IRC_DIR)
SRC_DIRS += $(SRC_PROC_DIR) $(SRC_PROC_DIR) $(SRC_PROC_CC_DIR) $(SRC_IRC_DIR) $(SRC_IRC_CC_DIR)
+
# %jp{オプションフラグ}
-AFLAGS += --cpu ARM7TDMI-S --apcs=inter --thumb
-CFLAGS += --cpu ARM7TDMI-S --apcs=inter --thumb
-ARFLAGS +=
+AFLAGS = --cpu ARM7TDMI-S --apcs=inter --thumb
+CFLAGS = --cpu ARM7TDMI-S --apcs=inter --thumb
+ARFLAGS =
+
# %jp{コンフィギュレータ定義}
CFGRTR_DIR = $(HOSV4A_DIR)/cfgrtr/build/gcc
$(RM) -f *.lst
+
# %jp{ライブラリ生成用設定読込み}
include $(KERNEL_MAKINC_DIR)/makelib.inc
-# %jp{armcc用のルール定義読込み}
+# %jp{コンパイラ依存のルール定義読込み}
include $(KERNEL_MAKINC_DIR)/armcc_r.inc
# %jp{カーネル依存関係読込み}
# %jp{カーネルライブラリの選択}
# --------------------------------------
-KERNEL_LIB ?= libhosv4a
-KERNEL_MAKOPT ?=
+KERNEL_LIB_NAME ?= libhosv4a
+KERNEL_MAKOPT ?=
# %jp{デバッグ指定}
KERNEL_MAKOPT += DEBUG=$(KERNEL_DEBUG)
ifeq ($(KERNEL_DEBUG),Yes)
-KERNEL_LIB := $(KERNEL_LIB)dbg
+KERNEL_LIB_NAME := $(KERNEL_LIB_NAME)dbg
endif
# %jp{エラーレベル指定}
KERNEL_MAKOPT += ERRLEVEL=$(KERNEL_ERRLEVEL)
ifeq ($(KERNEL_ERRLEVEL),0)
-KERNEL_LIB := $(KERNEL_LIB)er0
+KERNEL_LIB_NAME := $(KERNEL_LIB_NAME)er0
endif
ifeq ($(KERNEL_ERRLEVEL),1)
-KERNEL_LIB := $(KERNEL_LIB)er1
+KERNEL_LIB_NAME := $(KERNEL_LIB_NAME)er1
endif
ifeq ($(KERNEL_ERRLEVEL),2)
-KERNEL_LIB := $(KERNEL_LIB)er2
+KERNEL_LIB_NAME := $(KERNEL_LIB_NAME)er2
endif
ifeq ($(KERNEL_ERRLEVEL),3)
-KERNEL_LIB := $(KERNEL_LIB)er3
+KERNEL_LIB_NAME := $(KERNEL_LIB_NAME)er3
endif
ifeq ($(KERNEL_ERRLEVEL),4)
-KERNEL_LIB := $(KERNEL_LIB)er4
+KERNEL_LIB_NAME := $(KERNEL_LIB_NAME)er4
endif
# %jp{カーネルフック指定}%en{kernel hook}
KERNEL_MAKOPT += HOK_TSK=$(KERNEL_HOK_TSK)
ifeq ($(KERNEL_HOK_TSK),Yes)
-KERNEL_LIB := $(KERNEL_LIB)tsk
+KERNEL_LIB_NAME := $(KERNEL_LIB_NAME)tsk
endif
KERNEL_MAKOPT += HOK_INH=$(KERNEL_HOK_INH)
ifeq ($(KERNEL_HOK_INH),Yes)
-KERNEL_LIB := $(KERNEL_LIB)inh
+KERNEL_LIB_NAME := $(KERNEL_LIB_NAME)inh
endif
KERNEL_MAKOPT += HOK_ISR=$(KERNEL_HOK_ISR)
ifeq ($(KERNEL_HOK_ISR),Yes)
-KERNEL_LIB := $(KERNEL_LIB)isr
+KERNEL_LIB_NAME := $(KERNEL_LIB_NAME)isr
endif
+# %jp{カーネルライブラリ}%en{kernel library}
+KERNEL_LIB = $(KERNEL_BUILD_DIR)/$(KERNEL_LIB_NAME).$(EXT_LIB)
# --------------------------------------
# --------------------------------------
INC_DIRS += $(KERNEL_DIR)/include
-LIBS += $(KERNEL_BUILD_DIR)/$(KERNEL_LIB).$(EXT_LIB)
+LIBS += $(KERNEL_LIB)
# %jp{カーネルライブラリ}
-$(KERNEL_BUILD_DIR)/$(KERNEL_LIB).$(EXT_LIB): kernel_make
+$(KERNEL_LIB): kernel_make
-# %jp{ライブラリ生成}
+# %jp{実行ファイル生成}
.PHONY : makeexe_all
-makeexe_all: makeexe_mkobjsdir $(CSRCS) $(ASRCS)
+makeexe_all: $(KERNEL_LIB) makeexe_mkobjsdir $(CSRCS) $(ASRCS)
# %jp{クリーンナップ}
# %jp{カーネルライブラリの選択}
# --------------------------------------
-!ifndef OS_LIB
-OS_LIB = libhosv4a
+!ifndef KERNEL_LIB_NAME
+KERNEL_LIB_NAME = libhosv4a
!endif
# %jp{デバッグ指定}
!if $(KERNEL_DEBUG) == "Yes"
-OS_LIB = $(OS_LIB)dbg
+KERNEL_LIB_NAME = $(KERNEL_LIB_NAME)dbg
!endif
# %jp{エラーレベル指定}
!ifdef KERNEL_ERRLEVEL
!if $(KERNEL_ERRLEVEL) == 0
-OS_LIB = $(OS_LIB)er0
+KERNEL_LIB_NAME = $(KERNEL_LIB_NAME)er0
!elseif $(KERNEL_ERRLEVEL) == 1
-OS_LIB = $(OS_LIB)er1
+KERNEL_LIB_NAME = $(KERNEL_LIB_NAME)er1
!elseif $(KERNEL_ERRLEVEL) == 2
-OS_LIB = $(OS_LIB)er2
+KERNEL_LIB_NAME = $(KERNEL_LIB_NAME)er2
!elseif $(KERNEL_ERRLEVEL) == 3
-OS_LIB = $(OS_LIB)er3
+KERNEL_LIB_NAME = $(KERNEL_LIB_NAME)er3
!elseif $(KERNEL_ERRLEVEL) == 4
-OS_LIB = $(OS_LIB)er4
+KERNEL_LIB_NAME = $(KERNEL_LIB_NAME)er4
!endif
!endif
+# kernel library
+KERNEL_LIB = $(KERNEL_BUILD_DIR)\$(KERNEL_LIB_NAME).$(EXT_LIB)
# --------------------------------------
# --------------------------------------
INC_DIRS = $(INC_DIRS) $(KERNEL_DIR)\include
-LIBS = $(LIBS) $(KERNEL_BUILD_DIR)\$(OS_LIB).$(EXT_LIB)
+LIBS = $(LIBS) $(KERNEL_LIB)
# %jp{カーネルライブラリ}
-$(KERNEL_BUILD_DIR)\$(OS_LIB).$(EXT_LIB): kernel_make
+$(KERNEL_LIB): kernel_make
# %jp{all処理}
-makeexe_all: mkdir_objs $(CSRCS) $(ASRCS)
+makeexe_all: $(KERNEL_LIB) mkdir_objs $(CSRCS) $(ASRCS)
# %jp{オブジェクト出力ディレクトリ作成}