OSDN Git Service

modify MicroBlaze sample
[hos/hos-v4a.git] / sample / mb / smm / gcc / Makefile
1 # ----------------------------------------------------------------------------
2 # Hyper Operating System V4 Advance
3 #
4 # Copyright (C) 1998-2011 by Project HOS
5 # http://sourceforge.jp/projects/hos/
6 # ----------------------------------------------------------------------------
7
8
9
10 # --------------------------------------
11 #  %jp{各種設定}{setting}
12 # --------------------------------------
13
14 # %jp{ターゲット名}%en{target name}
15 TARGET ?= sample
16
17
18 # %jp{ツール定義}%en{tools}
19 GCC_ARCH   ?= mb-
20 CMD_CC     ?= $(GCC_ARCH)gcc
21 CMD_ASM    ?= $(GCC_ARCH)gcc
22 CMD_LINK   ?= $(GCC_ARCH)gcc
23 CMD_OBJCNV ?= $(GCC_ARCH)objcopy
24
25
26 # %jp{アーキテクチャ定義}%en{architecture}
27 ARCH_NAME ?= mb_v8
28 ARCH_CC   ?= gcc
29 EXT_EXE   ?= elf
30
31
32 # %jp{ディレクトリ定義}%en{directories}
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/mb/mb_v8_smm/gcc
38
39
40 # %jp{コンフィギュレータ定義}
41 KERNEL_CFGRTR = $(KERNEL_CFGRTR_DIR)/h4acfg-$(ARCH_NAME)
42
43
44 # %jp{共通定義読込み}%jp{common setting}
45 include $(KERNEL_MAKINC_DIR)/common.inc
46
47
48 # %jp{リンカスクリプト}%en{linker script}
49 LINK_SCRIPT = link.lds
50
51
52
53 # %jp{パス設定}%en{add source directories}
54 INC_DIRS += . ..
55 SRC_DIRS += . ..
56
57
58 # %jp{オプションフラグ}%en{option flags}
59 AFLAGS  = -mcpu=v7.30.a -mbig-endian -mno-xl-soft-mul
60 CFLAGS  = -mcpu=v7.30.a -mbig-endian -mno-xl-soft-mul
61 LNFLAGS = -mcpu=v7.30.a -mbig-endian -nostartfiles -Wl,-Map,$(TARGET).map,-T$(LINK_SCRIPT)
62
63
64 # %jp{コンパイラ依存の設定読込み}%en{compiler dependent definitions}
65 include $(KERNEL_MAKINC_DIR)/$(ARCH_CC)_d.inc
66
67 # %jp{実行ファイル生成用設定読込み}%en{definitions for exection file}
68 include $(KERNEL_MAKINC_DIR)/makexe_d.inc
69
70
71 # %jp{出力ファイル名}%en{output files}
72 TARGET_EXE = $(TARGET).$(EXT_EXE)
73 TARGET_MOT = $(TARGET).$(EXT_MOT)
74 TARGET_HEX = $(TARGET).$(EXT_HEX)
75 TARGET_BIN = $(TARGET).$(EXT_BIN)
76 TARGET_V   = $(TARGET).v
77
78
79 # --------------------------------------
80 #  %jp{ソースファイル}%en{source files}
81 # --------------------------------------
82
83 # %jp{アセンブラファイルの追加}%en{assembry sources}
84 ASRCS += ./vectors.S
85 ASRCS += ./crt0.S
86
87
88 # %jp{C言語ファイルの追加}%en{C sources}
89 CSRCS += ../main.c
90 CSRCS += ../kernel_cfg.c
91 CSRCS += ../sample.c
92 CSRCS += ../uart.c
93 CSRCS += ../ostimer.c
94
95
96
97 # --------------------------------------
98 #  %jp{ルール定義}%en{rules}
99 # --------------------------------------
100
101 # %jp{ALL}%en{all}
102 .PHONY : all
103 all: kernel_make makeexe_all $(TARGET_EXE) $(TARGET_MOT) $(TARGET_HEX) $(TARGET_BIN) $(TARGET_V)
104         mb-objdump -D $(TARGET_EXE) > $(TARGET).dis
105
106 $(TARGET_V) : $(TARGET_EXE)
107         data2mem.exe -bm smm.bmm -bd $(TARGET_EXE) -o v $(TARGET_V)
108
109 # %jp{クリーン}%en{clean}
110 .PHONY : clean
111 clean: makeexe_clean
112         rm -f $(TARGET_EXE) $(TARGET_EXE) $(OBJS) ../kernel_cfg.c ../kernel_id.h
113
114 # %jp{依存関係更新}%en{depend}
115 .PHONY : depend
116 depend: makeexe_depend
117
118 # %jp{ソース一括コピー}%en{source files copy}
119 .PHONY : srccpy
120 srccpy: makeexe_srccpy
121
122 # %jp{カーネルごとクリーン}%en{mostlyclean}
123 .PHONY : mostlyclean
124 mostlyclean: clean kernel_clean
125
126
127 # %jp{コンフィギュレータ実行}%en{configurator}
128 ../kernel_cfg.c ../kernel_id.h: ../system.cfg $(KERNEL_CFGRTR)
129         cpp -E ../system.cfg ../system.i
130         $(KERNEL_CFGRTR) ../system.i -c ../kernel_cfg.c -i ../kernel_id.h
131
132
133 # %jp{実行ファイル生成用設定読込み}%en{rules for exection file}
134 include $(KERNEL_MAKINC_DIR)/makexe_r.inc
135
136 # %jp{コンパイラ依存のルール定義読込み}%en{rules for compiler}
137 include $(KERNEL_MAKINC_DIR)/$(ARCH_CC)_r.inc
138
139
140
141
142 # --------------------------------------
143 #  %jp{依存関係}%en{dependency}
144 # --------------------------------------
145
146 $(TARGET_EXE): $(LINK_SCRIPT)
147
148 $(OBJS_DIR)/sample.$(EXT_OBJ) : ../kernel_id.h
149
150
151
152 # end of file
153