OSDN Git Service

linker script rename -> .lds
[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_ARCH   ?= sh-elf-
14 CMD_CC     ?= $(GCC_ARCH)gcc
15 CMD_ASM    ?= $(GCC_ARCH)gcc
16 CMD_LINK   ?= $(GCC_ARCH)gcc
17 CMD_OBJCNV ?= $(GCC_ARCH)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 KERNEL_HOK_TSK = Yes
34 KERNEL_HOK_ISR = Yes
35
36
37 # %jp{共通定義読込み}
38 include $(KERNEL_MAKINC_DIR)/common.inc
39
40
41 # %jp{コンフィギュレータ定義}
42 KERNEL_CFGRTR = $(KERNEL_CFGRTR_DIR)/h4acfg-sh2
43
44
45 # %jp{ライブラリ定義}
46 HOSAPLFW_LIB = $(HOSAPLFW_BUILD_DIR)/hosaplfw.$(EXT_LIB)
47
48
49 # %jp{メモリマップ}
50 ifeq ($(MEMMAP),ext)
51 # %jp{外部メモリ(モニタプログラム利用を想定)}
52 TARGET     := $(TARGET)ext
53 LINK_SCRIPT = link_ext.lds
54 else
55 # %jp{ROM実行}
56 LINK_SCRIPT = link_rom.lds
57 endif
58
59
60 # %jp{デバッグ版の定義変更}
61 ifeq ($(DEBUG),Yes)
62 TARGET := $(TARGET)dbg
63 HOSAPLFW_LIB = $(HOSAPLFW_BUILD_DIR)/hosaplfwdbg.$(EXT_LIB)
64 endif
65
66
67 # %jp{フラグ設定}
68 CFLAGS  = -m2
69 AFLAGS  = -m2
70 LNFLAGS = -m2 -nostartfiles -Wl,-Map,$(TARGET).map,-T$(LINK_SCRIPT)
71
72
73 # %jp{出力ファイル名}
74 TARGET_EXE = $(TARGET).$(EXT_EXE)
75 TARGET_MOT = $(TARGET).$(EXT_MOT)
76
77
78 # %jp{gcc用の設定読込み}
79 include $(KERNEL_MAKINC_DIR)/gcc_d.inc
80
81
82 # %jp{インクルードディレクトリ}
83 INC_DIRS += $(HOSAPLFW_INC_DIR)
84
85
86 # %jp{ソースディレクトリ}
87 SRC_DIRS += . ..
88
89
90 # %jp{アセンブラファイルの追加}
91 ASRCS += ./vector.S                     \
92          ./crt0.S
93
94 # %jp{C言語ファイルの追加}
95 CSRCS += ../kernel_cfg.c        \
96          ../main.c                      \
97          ../boot.c                      \
98          ../ostimer.c
99
100 # %jp{ライブラリの追加}
101 LIBS  += $(HOSAPLFW_LIB)
102
103
104
105 # --------------------------------------
106 #  %jp{ルール}
107 # --------------------------------------
108
109 .PHONY : all
110 all: kernel_make make_subprj makeexe_all $(TARGET_EXE) $(TARGET_MOT)
111
112 .PHONY : make_subprj
113 make_subprj:
114         $(MAKE) -C $(HOSAPLFW_BUILD_DIR) -f gmake.mak
115
116 .PHONY : clean
117 clean: makeexe_clean
118         rm -f $(TARGET_EXE) $(TARGET_EXE) $(OBJS) ../kernel_cfg.c ../kernel_id.h
119
120 .PHONY : mostlyclean
121 mostlyclean: clean kernel_clean
122         $(MAKE) -C $(HOSAPLFW_BUILD_DIR) -f gmake.mak clean
123
124 .PHONY : depend
125 depend: makeexe_depend
126
127 .PHONY : mostlydepend
128 mostlydepend: depend kernel_depend
129         $(MAKE) -C $(HOSAPLFW_BUILD_DIR) -f gmake.mak depend
130
131 .PHONY : srccpy
132 srccpy: makeexe_srccpy
133         $(MAKE) -C $(KERNEL_BUILD_DIR) -f gmake.mak srccpy
134         $(MAKE) -C $(HOSAPLFW_BUILD_DIR) -f gmake.mak srccpy
135
136 ../kernel_cfg.c ../kernel_id.h: ../system.cfg $(KERNEL_CFGRTR)
137         cpp -E ../system.cfg ../system.i
138         $(KERNEL_CFGRTR) ../system.i -c ../kernel_cfg.c -i ../kernel_id.h
139
140 $(KERNEL_CFGRTR) : kernel_make
141
142
143 # %jp{ライブラリ生成用設定読込み}
144 include $(KERNEL_MAKINC_DIR)/makeexe.inc
145
146
147 # %jp{shc用のルール定義読込み}
148 include $(KERNEL_MAKINC_DIR)/gcc_r.inc
149
150
151
152 # --------------------------------------
153 #  %jp{依存関係}
154 # --------------------------------------
155
156 $(OBJS_DIR)/sample.$(EXT_OBJ): ../sample.c ../kernel_id.h
157
158
159 # end of file
160