1 | #
|
---|
2 | # Makefile のターゲット依存部(RPI-ARM64用)
|
---|
3 | #
|
---|
4 |
|
---|
5 | #
|
---|
6 | # ボード名,コア名,チップ名,開発環境名の定義
|
---|
7 | #
|
---|
8 | BOARD = rpi_arm64
|
---|
9 | CHIP = bcm283x
|
---|
10 | CORE = arm64
|
---|
11 | TOOL = gcc
|
---|
12 |
|
---|
13 | #
|
---|
14 | # GNU開発環境のターゲットアーキテクチャの定義
|
---|
15 | #
|
---|
16 | GCC_TARGET = aarch64-elf
|
---|
17 |
|
---|
18 | #
|
---|
19 | # コンパイルオプション
|
---|
20 | #
|
---|
21 | COPTS := $(COPTS) -Werror -ggdb3 -mgeneral-regs-only -fno-pic -fno-builtin -fno-omit-frame-pointer #-mfix-cortex-a53-835769 -mfix-cortex-a53-843419
|
---|
22 | CDEFS := $(CDEFS)
|
---|
23 | INCLUDES := $(INCLUDES) -I$(TARGETDIR)
|
---|
24 | LDFLAGS := -nostdlib $(LDFLAGS)
|
---|
25 | LIBS := $(LIBS) -lgcc
|
---|
26 |
|
---|
27 | #
|
---|
28 | # システムサービスに関する定義
|
---|
29 | #
|
---|
30 | SYSSVC_DIRS := $(SYSSVC_DIRS)
|
---|
31 | SYSSVC_ASMOBJS := $(SYSSVC_ASMOBJS)
|
---|
32 | SYSSVC_COBJS := $(SYSSVC_COBJS)
|
---|
33 | SYSSVC_CFLAGS := $(SYSSVC_CFLAGS)
|
---|
34 | SYSSVC_LIBS := $(SYSSVC_LIBS)
|
---|
35 |
|
---|
36 | #
|
---|
37 | # カーネルに関する定義
|
---|
38 | #
|
---|
39 | KERNEL_DIRS := $(KERNEL_DIRS) $(TARGETDIR)
|
---|
40 | KERNEL_ASMOBJS := $(KERNEL_ASMOBJS)
|
---|
41 | KERNEL_COBJS := $(KERNEL_COBJS) target_config.o
|
---|
42 | KERNEL_CFLAGS := $(KERNEL_CFLAGS)
|
---|
43 |
|
---|
44 | #
|
---|
45 | # トレースログに関する設定
|
---|
46 | #
|
---|
47 | ifeq ($(ENABLE_TRACE),true)
|
---|
48 | COPTS := $(COPTS) -DTOPPERS_ENABLE_TRACE
|
---|
49 | KERNEL_DIRS := $(KERNEL_DIRS) $(SRCDIR)/arch/logtrace
|
---|
50 | KERNEL_COBJS := $(KERNEL_COBJS) trace_config.o trace_dump.o
|
---|
51 | endif
|
---|
52 |
|
---|
53 | #
|
---|
54 | # コンフィギュレータ関係の変数の定義
|
---|
55 | #
|
---|
56 | CFG_TABS := $(CFG_TABS) --symval-table $(TARGETDIR)/target_sym.def
|
---|
57 | CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS)
|
---|
58 | CFG_OBJS := $(CFG_OBJS)
|
---|
59 | CFG2_OUT := $(CFG2_OUT)
|
---|
60 |
|
---|
61 | #
|
---|
62 | # -Wall オプションの省略
|
---|
63 | # -Wallを追加したくない場合に true に定義する
|
---|
64 | #
|
---|
65 | #OMIT_WARNING_ALL = true
|
---|
66 |
|
---|
67 | #
|
---|
68 | # 最適化フラグの省略
|
---|
69 | # -O2を追加したくない場合に true に定義する
|
---|
70 | #
|
---|
71 | #OMIT_OPTIMIZATION = true
|
---|
72 |
|
---|
73 | #
|
---|
74 | # リンカスクリプトの定義
|
---|
75 | #
|
---|
76 | LDSCRIPT = $(SRCDIR)/target/$(BOARD)_$(TOOL)/$(BOARD).ld
|
---|
77 |
|
---|
78 | #
|
---|
79 | # 各セクションの先頭番地の指定
|
---|
80 | #
|
---|
81 | TEXT_START_ADDRESS = 0x00000000
|
---|
82 |
|
---|
83 | #
|
---|
84 | # スタートアップモジュールに関する定義
|
---|
85 | #
|
---|
86 |
|
---|
87 | # スタートアップモジュール
|
---|
88 | START_OBJS = start.o
|
---|
89 | # リンカスクリプトに「STARTUP(start.o)」を記述した場合,
|
---|
90 | # スタートアップモジュールの名前をSTART_OBJS の代わりに HIDDEN_OBJS で定義する.
|
---|
91 | HIDDEN_OBJS =
|
---|
92 |
|
---|
93 |
|
---|
94 | # スタートアップモジュールのコンパイルルール
|
---|
95 | $(START_OBJS): %.o: %.S
|
---|
96 | $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
|
---|
97 | $(HIDDEN_OBJS): %.o: %.S
|
---|
98 | $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
|
---|
99 |
|
---|
100 |
|
---|
101 | # スタートアップモジュールの依存関係作成ルール
|
---|
102 | $(START_OBJS:.o=.d): %.d: %.S
|
---|
103 | @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
|
---|
104 | -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
|
---|
105 | $(HIDDEN_OBJS:.o=.d): %.d: %.S
|
---|
106 | @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
|
---|
107 | -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
|
---|
108 |
|
---|
109 | #
|
---|
110 | # 依存関係の定義
|
---|
111 | #
|
---|
112 | cfg1_out.c: $(TARGETDIR)/target_sym.def
|
---|
113 | kernel_cfg.timestamp: $(TARGETDIR)/target_kernel.trb
|
---|
114 | check.timestamp: $(TARGETDIR)/target_check.trb
|
---|
115 |
|
---|
116 | #
|
---|
117 | # その他
|
---|
118 | #
|
---|
119 | CLEAN_FILES := $(CLEAN_FILES)
|
---|
120 | REALCLEAN_FILES := $(REALCLEAN_FILES)
|
---|
121 |
|
---|
122 |
|
---|
123 | #
|
---|
124 | # チップ依存部のインクルード
|
---|
125 | #
|
---|
126 | include $(SRCDIR)/arch/$(CORE)_$(TOOL)/$(CHIP)/Makefile.chip
|
---|