[353] | 1 | #
|
---|
| 2 | # Makefile のターゲット依存部(QEMU-VIRT用)
|
---|
| 3 | #
|
---|
| 4 |
|
---|
| 5 | #
|
---|
| 6 | # ボード名,プロセッサ名,開発環境名の定義
|
---|
| 7 | #
|
---|
| 8 | BOARD = qemu_virt
|
---|
| 9 | PRC = arm64
|
---|
| 10 | TOOL = gcc
|
---|
| 11 |
|
---|
| 12 | #
|
---|
| 13 | # GNU開発環境のターゲットアーキテクチャの定義
|
---|
| 14 | #
|
---|
| 15 | GCC_TARGET = aarch64-elf
|
---|
| 16 |
|
---|
| 17 | #
|
---|
| 18 | # コンパイルオプション
|
---|
| 19 | #
|
---|
| 20 | COPTS := $(COPTS) -Werror -mgeneral-regs-only -ggdb3 -fno-pic -fno-builtin -mstrict-align -mtune=cortex-a53 -mcpu=cortex-a53+nofp #-mfix-cortex-a53-835769 -mfix-cortex-a53-843419
|
---|
| 21 | CDEFS := $(CDEFS) #-DTOPPERS_LABEL_ASM
|
---|
| 22 | INCLUDES := $(INCLUDES) -I$(TARGETDIR)
|
---|
| 23 | LDFLAGS := -nostdlib $(LDFLAGS)
|
---|
| 24 | LIBS := $(LIBS) -lgcc
|
---|
| 25 |
|
---|
| 26 | #
|
---|
| 27 | # システムサービスに関する定義
|
---|
| 28 | #
|
---|
| 29 | SYSSVC_DIRS := $(SYSSVC_DIRS)
|
---|
| 30 | SYSSVC_ASMOBJS := $(SYSSVC_ASMOBJS)
|
---|
| 31 | SYSSVC_COBJS := $(SYSSVC_COBJS) target_serial.o
|
---|
| 32 | SYSSVC_CFLAGS := $(SYSSVC_CFLAGS)
|
---|
| 33 | SYSSVC_LIBS := $(SYSSVC_LIBS)
|
---|
| 34 |
|
---|
| 35 | #
|
---|
| 36 | # カーネルに関する定義
|
---|
| 37 | #
|
---|
| 38 | KERNEL_DIRS := $(KERNEL_DIRS) $(TARGETDIR)
|
---|
| 39 | KERNEL_ASMOBJS := $(KERNEL_ASMOBJS)
|
---|
| 40 | KERNEL_COBJS := $(KERNEL_COBJS) target_config.o
|
---|
| 41 | KERNEL_CFLAGS := $(KERNEL_CFLAGS) #-fno-strict-aliasing
|
---|
| 42 |
|
---|
| 43 | #
|
---|
| 44 | # トレースログに関する設定
|
---|
| 45 | #
|
---|
| 46 | ifeq ($(ENABLE_TRACE),true)
|
---|
| 47 | COPTS := $(COPTS) -DTOPPERS_ENABLE_TRACE
|
---|
| 48 | KERNEL_DIRS := $(KERNEL_DIRS) $(SRCDIR)/arch/logtrace
|
---|
| 49 | KERNEL_COBJS := $(KERNEL_COBJS) trace_config.o trace_dump.o
|
---|
| 50 | endif
|
---|
| 51 |
|
---|
| 52 | #
|
---|
| 53 | # コンフィギュレータ関係の変数の定義
|
---|
| 54 | #
|
---|
| 55 | CFG_TABS := $(CFG_TABS) --symval-table $(TARGETDIR)/target_sym.def
|
---|
| 56 | CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS)
|
---|
| 57 | CFG_OBJS := $(CFG_OBJS)
|
---|
| 58 | CFG2_OUT := $(CFG2_OUT)
|
---|
| 59 |
|
---|
| 60 | #
|
---|
| 61 | # -Wall オプションの省略
|
---|
| 62 | # -Wallを追加したくない場合に true に定義する
|
---|
| 63 | #
|
---|
| 64 | #OMIT_WARNING_ALL = true
|
---|
| 65 |
|
---|
| 66 | #
|
---|
| 67 | # 最適化フラグの省略
|
---|
| 68 | # -O2を追加したくない場合に true に定義する
|
---|
| 69 | #
|
---|
| 70 | #OMIT_OPTIMIZATION = true
|
---|
| 71 |
|
---|
| 72 | #
|
---|
| 73 | # リンカスクリプトの定義
|
---|
| 74 | #
|
---|
| 75 | LDSCRIPT = $(SRCDIR)/target/$(BOARD)_$(TOOL)/$(BOARD).ld
|
---|
| 76 |
|
---|
| 77 | #
|
---|
| 78 | # 各セクションの先頭番地の指定
|
---|
| 79 | #
|
---|
| 80 | #TEXT_START_ADDRESS =
|
---|
| 81 | #DATA_START_ADDRESS =
|
---|
| 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/$(PRC)_$(TOOL)/Makefile.prc
|
---|