OSDN Git Service

renemae gmake.mak,nmake.mak to makefile
[hos/hos-v4a.git] / sample / sh / sh7144 / shc / GNUmakefile
1 # ----------------------------------------------------------------------------
2 # Hyper Operating System V4 Advance
3 #  makefile for sh2-sample
4 #
5 # Copyright (C) 1998-2007 by Project HOS
6 # http://sourceforge.jp/projects/hos/
7 # ----------------------------------------------------------------------------
8
9
10
11 # --------------------------------------
12 #  %jp{各種設定}{setting}
13 # --------------------------------------
14
15 # %jp{ターゲット名}%en{target name}
16 TARGET ?= sample
17
18
19 # %jp{アーキテクチャ定義}%en{architecture}
20 ARCH_NAME ?= sh2
21 ARCH_CC   ?= shc
22
23
24 # %jp{ディレクトリ定義}%en{directories}
25 OS_DIR            = ../../../..
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
30
31
32 # %jp{コンフィギュレータ定義}
33 KERNEL_CFGRTR = $(KERNEL_CFGRTR_DIR)/h4acfg-$(ARCH_NAME)
34
35
36 # %jp{共通定義読込み}%jp{common setting}
37 include $(KERNEL_MAKINC_DIR)/common.inc
38
39
40 ifeq ($(MEMMAP),ram)
41 # %jp{RAM実行(モニタプログラム利用を想定)}%en{external RAM}
42 TARGET := $(TARGET)_ram
43 SECTION_VECT ?= 0FFFFE160
44 SECTION_ROM  ?= 000400400
45 SECTION_RAM  ?= 000410000
46 else
47 # %jp{ROM焼きする場合}%en{internal ROM}
48 TARGET := $(TARGET)
49 SECTION_VECT ?= 000000000
50 SECTION_ROM  ?= 000000400
51 SECTION_RAM  ?= 0FFFFE000
52 endif
53
54
55 # %jp{パス設定}%en{add source directories}
56 INC_DIRS += . ..
57 SRC_DIRS += . ..
58
59
60 # %jp{オプションフラグ}%en{option flags}
61 AFLAGS  = -CPu=sh2
62 CFLAGS  = -CPu=sh2
63 LNFLAGS = 
64
65
66 # %jp{コンパイラ依存の設定読込み}%en{compiler dependent definitions}
67 include $(KERNEL_MAKINC_DIR)/$(ARCH_CC)_d.inc
68
69 # %jp{実行ファイル生成用設定読込み}%en{definitions for exection file}
70 include $(KERNEL_MAKINC_DIR)/makexe_d.inc
71
72
73 # %jp{出力ファイル名}%en{output files}
74 TARGET_EXE = $(TARGET).$(EXT_EXE)
75 TARGET_MOT = $(TARGET).$(EXT_MOT)
76
77 # %jp{Cライブラリ名の指定}%en{std library}
78 STD_LIBS = stdlib.lib
79
80
81
82
83 # --------------------------------------
84 #  %jp{ソースファイル}%en{source files}
85 # --------------------------------------
86
87 # %jp{アセンブラファイルの追加}%en{assembry sources}
88 ASRCS += ./vcttbl.src
89 ASRCS += ./startup.src
90
91
92 # %jp{C言語ファイルの追加}%en{C sources}
93 CSRCS += ./dbsct.c
94 CSRCS += ../kernel_cfg.c
95 CSRCS += ../main.c
96 CSRCS += ../sample.c
97 CSRCS += ../ostimer.c
98 CSRCS += ../sci1.c
99
100
101 # %jp{ライブラリの追加}%en{library}
102 LIBS  += $(STD_LIBS)
103
104
105
106
107 # --------------------------------------
108 #  %jp{ルール定義}%en{rules}
109 # --------------------------------------
110
111 # %jp{ALL}%en{all}
112 .PHONY : all
113 all: makeexe_all $(TARGET_EXE) $(TARGET_MOT)
114
115 # %jp{クリーン}%en{clean}
116 .PHONY : clean
117 clean: makeexe_clean
118         rm -f $(TARGET_EXE) $(TARGET_EXE) $(OBJS) ../kernel_cfg.c ../kernel_id.h
119
120 # %jp{依存関係更新}%en{depend}
121 .PHONY : depend
122 depend: makeexe_depend
123
124 # %jp{ソース一括コピー}%en{source files copy}
125 .PHONY : srccpy
126 srccpy: makeexe_srccpy
127
128 # %jp{カーネルごとクリーン}%en{mostlyclean}
129 .PHONY : mostlyclean
130 mostlyclean: clean kernel_clean
131
132
133 # %jp{標準ライブラリ}%en{std library}
134 $(STD_LIBS):
135         lbgsh -OUTPut=$(STD_LIBS) -CPu=sh2 -REent
136
137
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
142
143
144 # %jp{実行ファイル生成用設定読込み}%en{setting for execute file}
145 include $(KERNEL_MAKINC_DIR)/makeexe.inc
146
147 # %jp{shc用のルール定義読込み}
148 include $(KERNEL_MAKINC_DIR)/shc_r.inc
149
150
151
152 # --------------------------------------
153 #  %jp{依存関係}%en{dependency}
154 # --------------------------------------
155
156 $(OBJS_DIR)/sample.obj: ../sample.c ../kernel_id.h
157
158
159 # end of file
160