1 # ----------------------------------------------------------------------------
2 # Hyper Operating System V4 Advance
3 # makefile for sh2-sample
5 # Copyright (C) 1998-2007 by Project HOS
6 # http://sourceforge.jp/projects/hos/
7 # ----------------------------------------------------------------------------
11 # --------------------------------------
13 # --------------------------------------
15 # %jp{ターゲット名}%en{target name}
19 # %jp{アーキテクチャ定義}%en{architecture}
24 # %jp{ディレクトリ定義}%en{directories}
26 KERNEL_DIR = $(OS_DIR)/kernel
27 KERNEL_CFGRTR_DIR = $(OS_DIR)/cfgrtr/build/gcc
28 KERNEL_MAKINC_DIR = $(KERNEL_DIR)/build/common/gmake
29 KERNEL_BUILD_DIR = $(KERNEL_DIR)/build/sh/sh2/shc
33 KERNEL_CFGRTR = $(KERNEL_CFGRTR_DIR)/h4acfg-$(ARCH_NAME)
36 # %jp{共通定義読込み}%jp{common setting}
37 include $(KERNEL_MAKINC_DIR)/common.inc
41 # %jp{RAM実行(モニタプログラム利用を想定)}%en{external RAM}
42 TARGET := $(TARGET)_ram
43 SECTION_VECT ?= 0FFFFE160
44 SECTION_ROM ?= 000400400
45 SECTION_RAM ?= 000410000
47 # %jp{ROM焼きする場合}%en{internal ROM}
49 SECTION_VECT ?= 000000000
50 SECTION_ROM ?= 000000400
51 SECTION_RAM ?= 0FFFFE000
55 # %jp{パス設定}%en{add source directories}
60 # %jp{オプションフラグ}%en{option flags}
66 # %jp{コンパイラ依存の設定読込み}%en{compiler dependent definitions}
67 include $(KERNEL_MAKINC_DIR)/$(ARCH_CC)_d.inc
69 # %jp{実行ファイル生成用設定読込み}%en{definitions for exection file}
70 include $(KERNEL_MAKINC_DIR)/makexe_d.inc
73 # %jp{出力ファイル名}%en{output files}
74 TARGET_EXE = $(TARGET).$(EXT_EXE)
75 TARGET_MOT = $(TARGET).$(EXT_MOT)
77 # %jp{Cライブラリ名の指定}%en{std library}
83 # --------------------------------------
84 # %jp{ソースファイル}%en{source files}
85 # --------------------------------------
87 # %jp{アセンブラファイルの追加}%en{assembry sources}
89 ASRCS += ./startup.src
92 # %jp{C言語ファイルの追加}%en{C sources}
94 CSRCS += ../kernel_cfg.c
101 # %jp{ライブラリの追加}%en{library}
107 # --------------------------------------
108 # %jp{ルール定義}%en{rules}
109 # --------------------------------------
113 all: makeexe_all $(TARGET_EXE) $(TARGET_MOT)
115 # %jp{クリーン}%en{clean}
118 rm -f $(TARGET_EXE) $(TARGET_EXE) $(OBJS) ../kernel_cfg.c ../kernel_id.h
120 # %jp{依存関係更新}%en{depend}
122 depend: makeexe_depend
124 # %jp{ソース一括コピー}%en{source files copy}
126 srccpy: makeexe_srccpy
128 # %jp{カーネルごとクリーン}%en{mostlyclean}
130 mostlyclean: clean kernel_clean
133 # %jp{標準ライブラリ}%en{std library}
135 lbgsh -OUTPut=$(STD_LIBS) -CPu=sh2 -REent
138 # %jp{コンフィギュレータ実行}%en{configurator}
139 ../kernel_cfg.c ../kernel_id.h: ../system.cfg $(KERNEL_CFGRTR)
140 cpp -E ../system.cfg ../system.i
141 $(KERNEL_CFGRTR) ../system.i -c ../kernel_cfg.c -i ../kernel_id.h
144 # %jp{実行ファイル生成用設定読込み}%en{setting for execute file}
145 include $(KERNEL_MAKINC_DIR)/makeexe.inc
148 include $(KERNEL_MAKINC_DIR)/shc_r.inc
152 # --------------------------------------
153 # %jp{依存関係}%en{dependency}
154 # --------------------------------------
156 $(OBJS_DIR)/sample.obj: ../sample.c ../kernel_id.h