# # Makefile のターゲット依存部(RPI-ARM64用) # # # ボード名,コア名,チップ名,開発環境名の定義 # BOARD = rpi_arm64 CHIP = bcm283x CORE = arm64 TOOL = gcc # # GNU開発環境のターゲットアーキテクチャの定義 # GCC_TARGET = aarch64-elf # # コンパイルオプション # COPTS := $(COPTS) -Werror -ggdb3 -mgeneral-regs-only -fno-pic -fno-builtin -fno-omit-frame-pointer #-mfix-cortex-a53-835769 -mfix-cortex-a53-843419 CDEFS := $(CDEFS) INCLUDES := $(INCLUDES) -I$(TARGETDIR) LDFLAGS := -nostdlib $(LDFLAGS) LIBS := $(LIBS) -lgcc # # システムサービスに関する定義 # SYSSVC_DIRS := $(SYSSVC_DIRS) SYSSVC_ASMOBJS := $(SYSSVC_ASMOBJS) SYSSVC_COBJS := $(SYSSVC_COBJS) SYSSVC_CFLAGS := $(SYSSVC_CFLAGS) SYSSVC_LIBS := $(SYSSVC_LIBS) # # カーネルに関する定義 # KERNEL_DIRS := $(KERNEL_DIRS) $(TARGETDIR) KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) KERNEL_COBJS := $(KERNEL_COBJS) target_config.o KERNEL_CFLAGS := $(KERNEL_CFLAGS) # # トレースログに関する設定 # ifeq ($(ENABLE_TRACE),true) COPTS := $(COPTS) -DTOPPERS_ENABLE_TRACE KERNEL_DIRS := $(KERNEL_DIRS) $(SRCDIR)/arch/logtrace KERNEL_COBJS := $(KERNEL_COBJS) trace_config.o trace_dump.o endif # # コンフィギュレータ関係の変数の定義 # CFG_TABS := $(CFG_TABS) --symval-table $(TARGETDIR)/target_sym.def CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS) CFG_OBJS := $(CFG_OBJS) CFG2_OUT := $(CFG2_OUT) # # -Wall オプションの省略 # -Wallを追加したくない場合に true に定義する # #OMIT_WARNING_ALL = true # # 最適化フラグの省略 # -O2を追加したくない場合に true に定義する # #OMIT_OPTIMIZATION = true # # リンカスクリプトの定義 # LDSCRIPT = $(SRCDIR)/target/$(BOARD)_$(TOOL)/$(BOARD).ld # # 各セクションの先頭番地の指定 # TEXT_START_ADDRESS = 0x00000000 # # スタートアップモジュールに関する定義 # # スタートアップモジュール START_OBJS = start.o # リンカスクリプトに「STARTUP(start.o)」を記述した場合, # スタートアップモジュールの名前をSTART_OBJS の代わりに HIDDEN_OBJS で定義する. HIDDEN_OBJS = # スタートアップモジュールのコンパイルルール $(START_OBJS): %.o: %.S $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $< $(HIDDEN_OBJS): %.o: %.S $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $< # スタートアップモジュールの依存関係作成ルール $(START_OBJS:.o=.d): %.d: %.S @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \ -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend $(HIDDEN_OBJS:.o=.d): %.d: %.S @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \ -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend # # 依存関係の定義 # cfg1_out.c: $(TARGETDIR)/target_sym.def kernel_cfg.timestamp: $(TARGETDIR)/target_kernel.trb check.timestamp: $(TARGETDIR)/target_check.trb # # その他 # CLEAN_FILES := $(CLEAN_FILES) REALCLEAN_FILES := $(REALCLEAN_FILES) # # チップ依存部のインクルード # include $(SRCDIR)/arch/$(CORE)_$(TOOL)/$(CHIP)/Makefile.chip