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 # --------------------------------------
12 # %jp{
\8ae
\8eí
\90Ý
\92è}{setting}
13 # --------------------------------------
15 # %jp{
\83^
\81[
\83Q
\83b
\83g
\96¼}%en{target name}
19 # %jp{
\83A
\81[
\83L
\83e
\83N
\83`
\83\83\92è
\8b`}%en{architecture}
24 # %jp{
\83f
\83B
\83\8c\83N
\83g
\83\8a\92è
\8b`}%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/sh2a-fpu/shc
32 # %jp{
\83R
\83\93\83t
\83B
\83M
\83\85\83\8c\81[
\83^
\92è
\8b`}
33 KERNEL_CFGRTR = $(KERNEL_CFGRTR_DIR)/h4acfg-$(ARCH_NAME)
36 # %jp{
\8b¤
\92Ê
\92è
\8b`
\93Ç
\8d\9e\82Ý}%jp{common setting}
37 include $(KERNEL_MAKINC_DIR)/common.inc
41 # %jp{RAM
\8eÀ
\8ds}%en{external RAM}
42 TARGET := $(TARGET)_ram
43 SECTION_VECT ?= 01c000000
44 SECTION_RO ?= 01c000800
45 SECTION_RW ?= 01c028000
47 # %jp{ROM
\8fÄ
\82«
\82·
\82é
\8fê
\8d\87}%en{internal ROM}
49 SECTION_VECT ?= 000000000
50 SECTION_RO ?= 000000800
51 SECTION_RW ?= 01c000000
55 # %jp{
\83p
\83X
\90Ý
\92è}%en{add source directories}
60 # %jp{
\83I
\83v
\83V
\83\87\83\93\83t
\83\89\83O}%en{option flags}
66 # %jp{
\83R
\83\93\83p
\83C
\83\89\88Ë
\91¶
\82Ì
\90Ý
\92è
\93Ç
\8d\9e\82Ý}%en{compiler dependent definitions}
67 include $(KERNEL_MAKINC_DIR)/$(ARCH_CC)_d.inc
69 # %jp{
\8eÀ
\8ds
\83t
\83@
\83C
\83\8b\90¶
\90¬
\97p
\90Ý
\92è
\93Ç
\8d\9e\82Ý}%en{definitions for exection file}
70 include $(KERNEL_MAKINC_DIR)/makexe_d.inc
73 # %jp{
\8fo
\97Í
\83t
\83@
\83C
\83\8b\96¼}%en{output files}
74 TARGET_EXE = $(TARGET).$(EXT_EXE)
75 TARGET_MOT = $(TARGET).$(EXT_MOT)
77 # %jp{C
\83\89\83C
\83u
\83\89\83\8a\96¼
\82Ì
\8ew
\92è}%en{std library}
83 # --------------------------------------
84 # %jp{
\83\
\81[
\83X
\83t
\83@
\83C
\83\8b}%en{source files}
85 # --------------------------------------
87 # %jp{
\83A
\83Z
\83\93\83u
\83\89\83t
\83@
\83C
\83\8b\82Ì
\92Ç
\89Á}%en{assembry sources}
89 ASRCS += ./startup.src
92 # %jp{C
\8c¾
\8cê
\83t
\83@
\83C
\83\8b\82Ì
\92Ç
\89Á}%en{C sources}
94 CSRCS += ../kernel_cfg.c
101 # %jp{
\83\89\83C
\83u
\83\89\83\8a\82Ì
\92Ç
\89Á}%en{library}
107 # --------------------------------------
108 # %jp{
\83\8b\81[
\83\8b\92è
\8b`}%en{rules}
109 # --------------------------------------
113 all: makeexe_all $(TARGET_EXE) $(TARGET_MOT)
115 # %jp{
\83N
\83\8a\81[
\83\93}%en{clean}
118 rm -f $(TARGET_EXE) $(TARGET_EXE) $(OBJS) ../kernel_cfg.c ../kernel_id.h
120 # %jp{
\88Ë
\91¶
\8aÖ
\8cW
\8dX
\90V}%en{depend}
122 depend: makeexe_depend
124 # %jp{
\83\
\81[
\83X
\88ê
\8a\87\83R
\83s
\81[}%en{source files copy}
126 srccpy: makeexe_srccpy
128 # %jp{
\83J
\81[
\83l
\83\8b\82²
\82Æ
\83N
\83\8a\81[
\83\93}%en{mostlyclean}
130 mostlyclean: clean kernel_clean
133 # %jp{
\95W
\8f\80\83\89\83C
\83u
\83\89\83\8a}%en{std library}
135 lbgsh -OUTPut=$(STD_LIBS) -CPu=sh2 -REent
138 # %jp{
\83R
\83\93\83t
\83B
\83M
\83\85\83\8c\81[
\83^
\8eÀ
\8ds}%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{
\8eÀ
\8ds
\83t
\83@
\83C
\83\8b\90¶
\90¬
\97p
\90Ý
\92è
\93Ç
\8d\9e\82Ý}%en{setting for execute file}
145 include $(KERNEL_MAKINC_DIR)/makeexe.inc
147 # %jp{shc
\97p
\82Ì
\83\8b\81[
\83\8b\92è
\8b`
\93Ç
\8d\9e\82Ý}
148 include $(KERNEL_MAKINC_DIR)/shc_r.inc
152 # --------------------------------------
153 # %jp{
\88Ë
\91¶
\8aÖ
\8cW}%en{dependency}
154 # --------------------------------------
156 $(OBJS_DIR)/sample.obj: ../sample.c ../kernel_id.h