OSDN Git Service

add sh2a-fpu
[hos/hos-v4a.git] / sample / sh / sh7262 / gcc / Makefile
1 # ----------------------------------------------------------------------------
2 # Hyper Operating System V4 Advance
3 #  makefile for sh2-sample
4 #
5 # Copyright (C) 1998-2010 by Project HOS
6 # http://sourceforge.jp/projects/hos/
7 # ----------------------------------------------------------------------------
8
9
10
11 # --------------------------------------
12 #  %jp{各種設定}{setting}
13 # --------------------------------------
14
15 # %jp{ターゲット名}
16 TARGET ?= sample
17
18
19 # %jp{ツール定義}
20 GCC_ARCH   ?= sh-elf-
21 CMD_CC     ?= $(GCC_ARCH)gcc
22 CMD_ASM    ?= $(GCC_ARCH)gcc
23 CMD_LINK   ?= $(GCC_ARCH)gcc
24 CMD_OBJCNV ?= $(GCC_ARCH)objcopy
25
26
27 # %jp{アーキテクチャ定義}%en{architecture}
28 ARCH_NAME ?= sh2a-fpu
29 ARCH_CC   ?= gcc
30
31
32 # %jp{ディレクトリ定義}
33 TOP_DIR           = ../../../..
34 KERNEL_DIR        = $(TOP_DIR)/kernel
35 KERNEL_CFGRTR_DIR = $(TOP_DIR)/cfgrtr/build/gcc
36 KERNEL_MAKINC_DIR = $(KERNEL_DIR)/build/common/gmake
37 KERNEL_BUILD_DIR  = $(KERNEL_DIR)/build/sh/$(ARCH_NAME)/$(ARCH_CC)
38
39
40 # %jp{コンフィギュレータ定義}
41 KERNEL_CFGRTR = $(KERNEL_CFGRTR_DIR)/h4acfg-$(ARCH_NAME)
42
43
44 # %jp{共通定義読込み}
45 include $(KERNEL_MAKINC_DIR)/common.inc
46
47
48 # %jp{リンカスクリプト}%en{linker script}
49 LINK_SCRIPT = rom.lds
50
51 # default ram
52 MEMMAP ?= ram
53
54 ifeq ($(MEMMAP),ram)
55 # %jp{RAM実行(モニタプログラム利用を想定)}
56 LINK_SCRIPT = ram.lds
57 TARGET     := $(TARGET)_ram
58 endif
59
60
61 # %jp{パス設定}%en{add source directories}
62 INC_DIRS += . ..
63 SRC_DIRS += . ..
64
65
66 # %jp{オプションフラグ}%en{option flags}
67 CFLAGS  = -m2
68 AFLAGS  = -m2
69 LNFLAGS = -m2 -nostartfiles -Wl,-Map,$(TARGET).map,-T$(LINK_SCRIPT)
70
71
72 # %jp{コンパイラ依存の設定読込み}%en{compiler dependent definitions}
73 include $(KERNEL_MAKINC_DIR)/$(ARCH_CC)_d.inc
74
75 # %jp{実行ファイル生成用設定読込み}%en{definitions for exection file}
76 include $(KERNEL_MAKINC_DIR)/makexe_d.inc
77
78
79 # %jp{出力ファイル名}%en{output files}
80 TARGET_EXE = $(TARGET).$(EXT_EXE)
81 TARGET_MOT = $(TARGET).$(EXT_MOT)
82 TARGETS    = $(TARGET_EXE) $(TARGET_MOT)
83
84
85 # --------------------------------------
86 #  %jp{ソースファイル}%en{source files}
87 # --------------------------------------
88
89
90 # %jp{アセンブラファイルの追加}%en{assembry sources}
91 ASRCS += ./vector.S
92 ASRCS += ./crt0.S
93
94 # %jp{C言語ファイルの追加}%en{C sources}
95 CSRCS += ../kernel_cfg.c
96 CSRCS += ../main.c
97 CSRCS += ../sample.c
98 CSRCS += ../ostimer.c
99 CSRCS += ../sci1.c
100
101
102 # %jp{リンク制御対象制御}
103 #LINK_RENESASSCI = Yes
104
105
106
107 # --------------------------------------
108 #  %jp{ルール定義}%en{rules}
109 # --------------------------------------
110
111 # %jp{ALL}%en{all}
112 .PHONY : all
113 all: kernel_make makeexe_all $(TARGETS)
114
115 # %jp{クリーン}%en{clean}
116 .PHONY : clean
117 clean: makeexe_clean
118         rm -f $(TARGETS) $(OBJS) ../kernel_cfg.c ../kernel_id.h
119
120 # %jp{依存関係更新}%en{depend}
121 .PHONY : depend
122 depend: makeexe_depend
123
124
125 # %jp{カーネルごとクリーン}%en{mostlyclean}
126 .PHONY : mostlyclean
127 mostlyclean: clean kernel_clean
128
129
130 # %jp{コンフィギュレータ実行}%en{configurator}
131 ../kernel_cfg.c ../kernel_id.h: ../system.cfg $(KERNEL_CFGRTR)
132         cpp -E ../system.cfg ../system.i
133         $(KERNEL_CFGRTR) ../system.i -c ../kernel_cfg.c -i ../kernel_id.h
134
135
136
137 # %jp{実行ファイル生成用設定読込み}%en{rules for exection file}
138 include $(KERNEL_MAKINC_DIR)/makexe_r.inc
139
140 # %jp{コンパイラ依存のルール定義読込み}%en{rules for compiler}
141 include $(KERNEL_MAKINC_DIR)/$(ARCH_CC)_r.inc
142
143
144
145 # --------------------------------------
146 #  %jp{依存関係}
147 # --------------------------------------
148
149 $(OBJS_DIR)/sample.$(EXT_OBJ): ../sample.c ../kernel_id.h
150
151
152 # end of file
153