OSDN Git Service

renemae gmake.mak,nmake.mak to makefile
[hos/hos-v4a.git] / kernel / build / mn103 / mn1030 / gcc / Makefile
1 # ----------------------------------------------------------------------------
2 # Hyper Operating System V4 Advance
3 #  makefile for MN1030 Series
4 #
5 # Copyright (C) 1998-2006 by Project HOS
6 # http://sourceforge.jp/projects/hos/
7 # ----------------------------------------------------------------------------
8
9
10 # ターゲット名
11 TARGET    ?= libhosv4a
12
13 # アーキテクチャパス
14 ARCH_PROC ?= mn103/mn1030
15 ARCH_IRC  ?= none
16 ARCH_CC   ?= gcc
17
18
19 # ディレクトリ定義
20 TOP_DIR      = ../../../../..
21 KNL_DIR      = $(TOP_DIR)/kernel
22 OBJS_DIR     = objs_$(TARGET)
23
24
25 # %jp{カーネル指定}
26 KERNEL = Yes
27
28
29 # インクルードディレクトリ定義
30 INC_KNL_DIR  = $(KNL_DIR)/include
31 INC_PROC_DIR = $(INC_KNL_DIR)/arch/proc/$(ARCH_PROC)
32 INC_IRC_DIR  = $(INC_KNL_DIR)/arch/irc/$(ARCH_IRC)
33
34 # ソースディレクトリ定義
35 SRC_KNL_DIR      = $(KNL_DIR)/source
36 SRC_PROC_DIR     = $(SRC_KNL_DIR)/arch/proc/$(ARCH_PROC)
37 SRC_PROC_ASM_DIR = $(SRC_KNL_DIR)/arch/proc/$(ARCH_PROC)/$(ARCH_CC)
38 SRC_IRC_DIR      = $(SRC_KNL_DIR)/arch/irc/$(ARCH_IRC)
39 SRC_IRC_ASM_DIR  = $(SRC_KNL_DIR)/arch/irc/$(ARCH_IRC)/$(ARCH_CC)
40
41 # コンフィギュレータ定義
42 CFGRTR_DIR   = $(TOP_DIR)/cfgrtr/build/gcc
43 CFGRTR       = h4acfg-mn1030
44
45
46 # 共通設定インクルード
47 include $(TOP_DIR)/kernel/build/common/gmake.inc
48
49
50 # ターゲットライブラリファイル名
51 TARGET_LIB = $(TARGET).a
52
53 # アセンブラファイルの追加
54 ASRCS += $(SRC_PROC_ASM_DIR)/ctxctl.S           \
55          $(SRC_PROC_ASM_DIR)/intctl.S
56
57
58 # C言語ファイルの追加
59 # CSRCS += $(SRC_IRC_DIR)/intc.c
60
61
62 # 検索パスの追加
63 VPATH := $(VPATH):$(SRC_PROC_DIR):$(SRC_PROC_DIR):$(SRC_PROC_ASM_DIR):$(SRC_IRC_DIR):$(SRC_IRC_ASM_DIR)
64
65
66 # Tools
67 CC     = mn10300-elf-gcc
68 ASM    = mn10300-elf-gcc
69 LIBR   = mn10300-elf-ar
70 DEPEND = mn10300-elf-gcc -M
71 LINT   = splint
72 AWK    = gawk
73 LINT   = splint
74 MKDIR  = mkdir
75 RM     = rm
76
77
78 # オプションフラグ
79 AFLAGS    += -c -Wall
80 CFLAGS    += -I$(INC_KNL_DIR) -I$(INC_PROC_DIR) -I$(INC_IRC_DIR)        \
81              -c -Wall
82 LFLAGS    += 
83 LINTFLAGS += -I$(INC_KNL_DIR) -I$(INC_PROC_DIR) -I$(INC_IRC_DIR) -weak 
84
85
86 # オブジェクトファイル
87 OBJS = $(addprefix $(OBJS_DIR)/, $(addsuffix .o, $(basename $(notdir $(CSRCS)))))   \
88        $(addprefix $(OBJS_DIR)/, $(addsuffix .o, $(basename $(notdir $(ASRCS)))))
89
90
91 all: $(ASRCS) $(CSRCS) $(TARGET_LIB) $(CFGRTR)
92
93
94 $(TARGET_LIB): mkdir_objs $(OBJS)
95         $(LIBR) -r $(TARGET_LIB) $(OBJS)
96
97 mkdir_objs:
98         $(MKDIR) -p $(OBJS_DIR)
99
100
101 $(CFGRTR):
102         $(MAKE) -C $(CFGRTR_DIR) TARGET=$(CFGRTR) ARCH_PROC=$(ARCH_PROC) ARCH_IRC=$(ARCH_IRC)
103
104 clean:
105         $(RM) -f $(TARGET) $(OBJS) $(CFGRTR)
106         $(MAKE) -C $(CFGRTR_DIR) TARGET=$(CFGRTR) ARCH_PROC=$(ARCH_PROC) ARCH_IRC=$(ARCH_IRC) clean
107
108 lint:
109         $(LINT) $(LINTFLAGS) $(CSRCS)
110
111 depend:
112         $(DEPEND) $(CFLAGS) $(CSRCS) | awk '/^[^ ]/{print "$(OBJS_DIR)/"$$0} /^ /{print $$0}' > $(OBJS_DIR)/depend.inc
113
114
115 -include $(OBJS_DIR)/depend.inc
116
117
118 # 推論規則
119 $(OBJS_DIR)/%.o :: %.c
120         $(CC) $(CFLAGS) -c $< -o $@
121
122 $(OBJS_DIR)/%.o :: %.S
123         $(ASM) $(AFLAGS) $< -o $@
124
125
126 # end of file