1 # ----------------------------------------------------------------------------
2 # Hyper Operating System V4 Advance
4 # Copyright (C) 1998-2008 by Project HOS
5 # http://sourceforge.jp/projects/hos/
6 # ----------------------------------------------------------------------------
10 # --------------------------------------
12 # --------------------------------------
14 # %jp{ターゲット名}%en{target name}
18 # %jp{ツール定義}%en{tools}
20 CMD_CC ?= $(GCC_ARCH)gcc
21 CMD_ASM ?= $(GCC_ARCH)gcc
22 CMD_LINK ?= $(GCC_ARCH)gcc
23 CMD_OBJCNV ?= $(GCC_ARCH)objcopy
26 # %jp{アーキテクチャ定義}%en{architecture}
31 # %jp{ディレクトリ定義}%en{directories}
33 KERNEL_DIR = $(TOP_DIR)/kernel
34 KERNEL_CFGRTR_DIR = $(TOP_DIR)/cfgrtr/build/gcc
35 KERNEL_MAKINC_DIR = $(KERNEL_DIR)/build/common/gmake
36 KERNEL_BUILD_DIR = $(KERNEL_DIR)/build/arm/lpc2000/gcc
40 KERNEL_CFGRTR = $(KERNEL_CFGRTR_DIR)/h4acfg-$(ARCH_NAME)
43 # %jp{共通定義読込み}%jp{common setting}
44 include $(KERNEL_MAKINC_DIR)/common.inc
47 # %jp{リンカスクリプト}%en{linker script}
48 LINK_SCRIPT = link.lds
50 # %jp{外部メモリ}%en{external memory}
52 LINK_SCRIPT = linkext.lds
55 # %jp{内蔵RAM}%en{internal RAM}
57 LINK_SCRIPT = linkram.lds
61 # %jp{パス設定}%en{add source directories}
66 # %jp{オプションフラグ}%en{option flags}
67 AFLAGS = -mcpu=arm7tdmi -mthumb-interwork
68 CFLAGS = -mcpu=arm7tdmi -mthumb-interwork
69 LNFLAGS = -mcpu=arm7tdmi -mthumb-interwork -nostartfiles -Wl,-Map,$(TARGET).map,-T$(LINK_SCRIPT)
72 # %jp{コンパイラ依存の設定読込み}%en{compiler dependent definitions}
73 include $(KERNEL_MAKINC_DIR)/$(ARCH_CC)_d.inc
75 # %jp{実行ファイル生成用設定読込み}%en{definitions for exection file}
76 include $(KERNEL_MAKINC_DIR)/makexe_d.inc
79 # %jp{出力ファイル名}%en{output files}
80 TARGET_EXE = $(TARGET).$(EXT_EXE)
81 TARGET_MOT = $(TARGET).$(EXT_MOT)
82 TARGET_HEX = $(TARGET).$(EXT_HEX)
87 # --------------------------------------
88 # %jp{ソースファイル}%en{source files}
89 # --------------------------------------
91 # %jp{アセンブラファイルの追加}%en{assembry sources}
96 # %jp{C言語ファイルの追加}%en{C sources}
97 CSRCS += ../kernel_cfg.c
100 CSRCS += ../ostimer.c
106 # --------------------------------------
107 # %jp{ルール定義}%en{rules}
108 # --------------------------------------
112 all: kernel_make makeexe_all $(TARGET_EXE) $(TARGET_MOT) $(TARGET_HEX)
114 # %jp{クリーン}%en{clean}
117 rm -f $(TARGET_EXE) $(TARGET_EXE) $(OBJS) ../kernel_cfg.c ../kernel_id.h
119 # %jp{依存関係更新}%en{depend}
121 depend: makeexe_depend
123 # %jp{ソース一括コピー}%en{source files copy}
125 srccpy: makeexe_srccpy
127 # %jp{カーネルごとクリーン}%en{mostlyclean}
129 mostlyclean: clean kernel_clean
132 # %jp{コンフィギュレータ実行}%en{configurator}
133 ../kernel_cfg.c ../kernel_id.h: ../system.cfg $(KERNEL_CFGRTR)
134 cpp -E ../system.cfg ../system.i
135 $(KERNEL_CFGRTR) ../system.i -c ../kernel_cfg.c -i ../kernel_id.h
138 # %jp{実行ファイル生成用設定読込み}%en{rules for exection file}
139 include $(KERNEL_MAKINC_DIR)/makexe_r.inc
141 # %jp{コンパイラ依存のルール定義読込み}%en{rules for compiler}
142 include $(KERNEL_MAKINC_DIR)/$(ARCH_CC)_r.inc
147 # --------------------------------------
148 # %jp{依存関係}%en{dependency}
149 # --------------------------------------
151 $(OBJS_DIR)/sample.$(EXT_OBJ) : ../kernel_id.h