#
# 

#
#	Makefile のプロセッサ依存部（Blackfin用）
#

#
#  ターゲットアーキテクチャの定義
#
TARGET = bfin-elf

#
#  コンパイルオプション
#  -fno-optimize-sibling-calls は、spurious_int_handler()を正常動作させるために必須。削除してはいけない。
#
INCLUDES := $(INCLUDES) -I$(SRCDIR)/config/$(CPU)
COPTS := $(COPTS) -Wall -g2 -O  -fno-optimize-sibling-calls
CDEFS := $(CDEFS) -D __ADSPLPBLACKFIN__ -DLABEL_ASM

#
#  カーネルに関する定義
#    cpu_mmr.oは、gdbのためのcore mmr用デバッグ・シンボル。
#
KERNEL_DIR := $(KERNEL_DIR):$(SRCDIR)/config/$(CPU)
KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) cpu_support.o
KERNEL_COBJS := $(KERNEL_COBJS) cpu_config.o cpu_defs.o

#
#  スタートアップモジュールに関する定義
#
START_OBJS = start.o

$(START_OBJS): %.o: %.S
	$(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<

$(START_OBJS:.o=.d): %.d: %.S
	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) \
		-O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend

#
#  C++大域オブジェクト初期化モジュールに関する定義
#
CXX_BEGIN_OBJS = cpu_crtbegin.o
CXX_END_OBJS = cpu_crtend.o

$(CXX_BEGIN_OBJS): %.o: %.c
	$(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<

$(CXX_END_OBJS): %.o: %.c
	$(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<

$(CXX_BEGIN_OBJS:.o=.d): %.d: %.c
	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) \
		-O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend

$(CXX_END_OBJS:.o=.d): %.d: %.c
	@$(PERL) $(SRCDIR)/utils/makedep -C $(CC) \
		-O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
		