OSDN Git Service

88a757bc338be8e488e8c9179dfe49ad405884ce
[hos/hos-v4a.git] / aplfw / sample / mn103 / mn103sfa5k / gcc / gmake.mak
1 # ----------------------------------------------------------------------------
2 # Hyper Operating System V4 Advance
3 #
4 # Copyright (C) 1998-2007 by Project HOS
5 # http://sourceforge.jp/projects/hos/
6 # ----------------------------------------------------------------------------
7
8
9 # %jp{ターゲット名}
10 TARGET ?= sample
11
12 # %jp{ツール定義}
13 GCC_ARCH   ?= mn10300-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 # %jp{ディレクトリ}
20 OS_DIR            = ../../../../..
21 KERNEL_DIR        = $(OS_DIR)/kernel
22 KERNEL_CFGRTR_DIR = $(OS_DIR)/cfgrtr/build/gcc
23 KERNEL_MAKINC_DIR = $(KERNEL_DIR)/build/common/gmake
24 KERNEL_BUILD_DIR  = $(KERNEL_DIR)/build/mn103/mn103s/gcc
25 APLFW_DIR         = $(OS_DIR)/aplfw
26 APLFW_INC_DIR     = $(APLFW_DIR)
27 APLFW_BUILD_DIR   = $(APLFW_DIR)/build/mn103/mn103s/gcc
28 OBJS_DIR          = objs_$(TARGET)
29
30
31 # %jp{共通定義読込み}
32 include $(KERNEL_MAKINC_DIR)/common.inc
33
34
35 # %jp{コンフィギュレータ定義}
36 KERNEL_CFGRTR = $(KERNEL_CFGRTR_DIR)/h4acfg-mn103s
37
38
39 # %jp{ライブラリ定義}
40 APLFW_LIB = $(APLFW_BUILD_DIR)/hosaplfw.a
41
42
43 # %jp{デバッグ版の定義変更}
44 ifeq ($(DEBUG),Yes)
45 TARGET := $(TARGET)dbg
46 APLFW_LIB = $(APLFW_BUILD_DIR)/hosaplfwdbg.a
47 endif
48
49
50 # %jp{メモリマップ}
51 LINK_SCRIPT = link.x
52
53
54 # %jp{フラグ設定}
55 CFLAGS  =
56 AFLAGS  =
57 LNFLAGS = -nostartfiles -Wl,-Map,$(TARGET).map,-T$(LINK_SCRIPT)
58
59
60 # %jp{出力ファイル名}
61 TARGET_EXE = $(TARGET).elf
62 TARGET_MOT = $(TARGET).mot
63 TARGET_HEX = $(TARGET).hex
64
65
66 # %jp{gcc用の設定読込み}
67 include $(KERNEL_MAKINC_DIR)/gcc_d.inc
68
69
70 # %jp{インクルードディレクトリ}
71 INC_DIRS += $(APLFW_INC_DIR)
72
73 # %jp{ソースディレクトリ}
74 SRC_DIRS += . ..
75
76
77 # %jp{アセンブラファイルの追加}
78 ASRCS += ./crt0.S
79
80
81 # %jp{C言語ファイルの追加}
82 CSRCS += ../kernel_cfg.c        \
83          ../main.c                      \
84          ../boot.c                      \
85          ../ostimer.c
86
87 # %jp{ライブラリファイルの追加}
88 LIBS += $(APLFW_LIB)
89
90
91
92 # --------------------------------------
93 #  %jp{ルール}
94 # --------------------------------------
95
96 .PHONY : all
97 all: make_subprj makeexe_all $(TARGET_EXE) $(TARGET_MOT) $(TARGET_HEX)
98
99
100 .PHONY : make_subprj
101 make_subprj:
102         $(MAKE) -C $(APLFW_BUILD_DIR) -f gmake.mak
103
104 .PHONY : clean
105 clean: makeexe_clean
106         rm -f $(TARGET_EXE) $(TARGET_EXE) $(OBJS) ../kernel_cfg.c ../kernel_id.h
107
108 .PHONY : depend
109 depend: makeexe_depend
110
111 .PHONY : mostlyclean
112 mostlyclean: clean
113         $(MAKE) -C $(APLFW_BUILD_DIR) -f gmake.mak clean
114
115 .PHONY : mostlydepend
116 mostlydepend: depend
117         $(MAKE) -C $(APLFW_BUILD_DIR) -f gmake.mak depend
118
119
120 ../kernel_cfg.c ../kernel_id.h: ../system.cfg
121         cpp -E ../system.cfg ../system.i
122         $(KERNEL_CFGRTR) ../system.i -c ../kernel_cfg.c -i ../kernel_id.h
123
124
125
126 # %jp{ライブラリ生成用設定読込み}
127 include $(KERNEL_MAKINC_DIR)/makeexe.inc
128
129 # %jp{gcc用のルール定義読込み}
130 include $(KERNEL_MAKINC_DIR)/gcc_r.inc
131
132
133
134 # --------------------------------------
135 #  %jp{依存関係}
136 # --------------------------------------
137
138 $(OBJS_DIR)/sample.obj: ../sample.c ../kernel_id.h
139
140
141 # end of file