OSDN Git Service

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