OSDN Git Service

(none)
[hos/hos-v4a.git] / aplfw / sample / sh / cq7144a / gcc / gmake.mak
1 # ----------------------------------------------------------------------------
2 # Hyper Operating System V4 Advance
3 #  makefile for sh2-sample
4 #
5 # Copyright (C) 1998-2006 by Project HOS
6 # http://sourceforge.jp/projects/hos/
7 # ----------------------------------------------------------------------------
8
9 # %jp{ターゲット名}
10 TARGET ?= sample
11
12 # %jp{ツール定義}
13 GCC_SYS    ?= elf
14 CMD_CC     ?= sh-$(GCC_SYS)-gcc
15 CMD_ASM    ?= sh-$(GCC_SYS)-gcc
16 CMD_LINK   ?= sh-$(GCC_SYS)-gcc
17 CMD_OBJCNV ?= sh-$(GCC_SYS)-objcopy
18
19
20 # %jp{ディレクトリ定義}
21 TOP_DIR            = ../../../../..
22 KERNEL_DIR         = $(TOP_DIR)/kernel
23 KERNEL_CFGRTR_DIR  = $(TOP_DIR)/cfgrtr/build/gcc
24 KERNEL_MAKINC_DIR  = $(KERNEL_DIR)/build/common/gmake
25 KERNEL_BUILD_DIR   = $(KERNEL_DIR)/build/sh/sh2/gcc
26 HOSAPLFW_DIR       = $(TOP_DIR)/aplfw
27 HOSAPLFW_INC_DIR   = $(HOSAPLFW_DIR)
28 HOSAPLFW_BUILD_DIR = $(HOSAPLFW_DIR)/build/sh/sh2/gcc
29 OBJS_DIR           = objs_$(TARGET)
30
31
32 # %jp{共通定義読込み}
33 include $(KERNEL_MAKINC_DIR)/common.inc
34
35
36 # %jp{コンフィギュレータ定義}
37 KERNEL_CFGRTR = $(KERNEL_CFGRTR_DIR)/h4acfg-sh2
38
39
40 # %jp{ライブラリ定義}
41 HOSAPLFW_LIB = $(HOSAPLFW_BUILD_DIR)/hosaplfw.$(EXT_LIB)
42
43
44 # %jp{メモリマップ}
45 ifeq ($(MEMMAP),ext)
46 # %jp{外部メモリ(モニタプログラム利用を想定)}
47 TARGET     := $(TARGET)ext
48 LINK_SCRIPT = link_ext.x
49 else
50 # %jp{ROM実行}
51 LINK_SCRIPT = link_rom.x
52 endif
53
54
55 # %jp{デバッグ版の定義変更}
56 ifeq ($(DEBUG),Yes)
57 TARGET := $(TARGET)dbg
58 HOSAPLFW_LIB = $(HOSAPLFW_BUILD_DIR)/hosaplfwdbg.$(EXT_LIB)
59 endif
60
61
62 # %jp{フラグ設定}
63 CFLAGS  = -m2
64 AFLAGS  = -m2
65 LNFLAGS = -m2 -nostartfiles -Wl,-Map,$(TARGET).map,-T$(LINK_SCRIPT)
66
67
68 # %jp{出力ファイル名}
69 TARGET_EXE = $(TARGET).$(EXT_EXE)
70 TARGET_MOT = $(TARGET).$(EXT_MOT)
71
72
73 # %jp{gcc用の設定読込み}
74 include $(KERNEL_MAKINC_DIR)/gcc_d.inc
75
76
77 # %jp{インクルードディレクトリ}
78 INC_DIRS += $(HOSAPLFW_INC_DIR)
79
80
81 # %jp{ソースディレクトリ}
82 SRC_DIRS += . ..
83
84
85 # %jp{アセンブラファイルの追加}
86 ASRCS += ./vector.S                     \
87          ./crt0.S
88
89 # %jp{C言語ファイルの追加}
90 CSRCS += ../kernel_cfg.c        \
91          ../main.c                      \
92          ../boot.c                      \
93          ../ostimer.c
94
95 # %jp{ライブラリの追加}
96 LIBS  += $(HOSAPLFW_LIB)
97
98
99
100 # --------------------------------------
101 #  %jp{ルール}
102 # --------------------------------------
103
104 .PHONY : all
105 all: make_libs makeexe_all $(TARGET_EXE) $(TARGET_MOT)
106
107 .PHONY : make_libs
108 make_libs:
109         make -C $(HOSAPLFW_BUILD_DIR) -f gmake.mak
110
111 .PHONY : clean
112 clean: makeexe_clean
113         rm -f $(TARGET_EXE) $(TARGET_EXE) $(OBJS) ../kernel_cfg.c ../kernel_id.h
114
115 .PHONY : mostlyclean
116 mostlyclean: clean kernel_clean
117         make -C $(HOSAPLFW_BUILD_DIR) -f gmake.mak clean
118
119 .PHONY : depend
120 depend: makeexe_depend
121
122 .PHONY : mostlydepend
123 mostlydepend: depend kernel_depend
124         make -C $(HOSAPLFW_BUILD_DIR) -f gmake.mak depend
125
126 .PHONY : srccpy
127 srccpy: makeexe_srccpy
128         make -C $(KERNEL_BUILD_DIR) -f gmake.mak srccpy
129         make -C $(HOSAPLFW_BUILD_DIR) -f gmake.mak srccpy
130
131 ../kernel_cfg.c ../kernel_id.h: ../system.cfg
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{ライブラリ生成用設定読込み}
138 include $(KERNEL_MAKINC_DIR)/makeexe.inc
139
140
141 # %jp{shc用のルール定義読込み}
142 include $(KERNEL_MAKINC_DIR)/gcc_r.inc
143
144
145
146 # --------------------------------------
147 #  %jp{依存関係}
148 # --------------------------------------
149
150 $(OBJS_DIR)/sample.$(EXT_OBJ): ../sample.c ../kernel_id.h
151
152
153 # end of file
154