source: ssp_arm_gcc/trunk/target/at91skyeye_gcc/Makefile.target@ 92

Last change on this file since 92 was 92, checked in by nmir-saito, 9 years ago

add separate package of SSP kernel for ARM + SkyEye(experimental)

File size: 3.2 KB
Line 
1#
2# @(#) $Id: Makefile.target 619 2014-03-18 06:10:27Z nmir-saito $
3#
4
5#
6# Makefile のターゲット依存部(AT91SKYEYE用)
7#
8
9#
10# ボード名,プロセッサ名,開発環境名の定義
11#
12BOARD = at91skyeye
13PRC = arm
14TOOL = gcc
15
16#
17# コンパイルオプション
18#
19INCLUDES := $(INCLUDES) -I$(TARGETDIR)
20COPTS := $(COPTS) -mcpu=arm7tdmi -mlittle-endian -g -gdwarf-2 -gstrict-dwarf
21LDFLAGS := $(LDFLAGS) -mcpu=arm7tdmi -N -mlittle-endian -lc -lrdimon
22CDEFS := $(CDEFS) -D__TARGET_ARCH_ARM=4
23
24#
25# カーネルに関する定義
26#
27KERNEL_DIR := $(KERNEL_DIR) $(TARGETDIR)
28KERNEL_ASMOBJS := $(KERNEL_ASMOBJS) target_support.o
29KERNEL_COBJS := $(KERNEL_COBJS) target_config.o target_timer.o
30
31#
32# システムサービスに関する定義
33#
34SYSSVC_DIR := $(SYSSVC_DIR)
35SYSSVC_COBJS := $(SYSSVC_COBJS) target_serial.o
36
37#
38# コンフィギュレータ関係の変数の定義
39#
40CFG_TABS := $(CFG_TABS) --cfg1-def-table $(TARGETDIR)/target_def.csv
41
42#
43# トレースログに関する設定
44#
45ifeq ($(ENABLE_TRACE),true)
46 COPTS := $(COPTS)
47 CDEFS := $(CDEFS) -DTOPPERS_ENABLE_TRACE
48 KERNEL_DIR := $(KERNEL_DIR) $(SRCDIR)/arch/logtrace
49 KERNEL_COBJS := $(KERNEL_COBJS) trace_config.o trace_dump.o
50endif
51
52#
53# GNU開発環境のターゲットアーキテクチャの定義
54#
55GCC_TARGET = arm-none-eabi
56
57#
58# リンカスクリプトの定義
59#
60LDSCRIPT = $(TARGETDIR)/at91skyeye.ld
61
62#
63# スタートアップモジュールに関する定義
64#
65# at91skyeye.ldに「STARTUP(start.o)」を記述したため,スタートアップモジュー
66# ルの名前をHIDDEN_OBJSに定義する.
67#
68HIDDEN_OBJS = start.o
69
70$(HIDDEN_OBJS): %.o: %.S
71 $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
72
73$(HIDDEN_OBJS:.o=.d): %.d: %.S
74 @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) \
75 -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
76
77LDFLAGS := $(LDFLAGS)
78
79#
80# 依存関係の定義
81#
82cfg1_out.c: $(TARGETDIR)/target_def.csv
83kernel_cfg.timestamp: $(TARGETDIR)/target.tf
84$(OBJFILE): $(TARGETDIR)/target_check.tf
85
86#
87# プロセッサ依存部のインクルード
88#
89include $(SRCDIR)/arch/$(PRC)_$(TOOL)/common/Makefile.core
90
91#
92# gcovを有効に
93#
94
95#
96# ENABLE_GCOVに設定可能な値
97# full : 全体取得
98# part : 一部取得
99# only_kernel_full : 全体取得(カーネルコードのみ)
100# only_kernel_part : 一部取得(カーネルコードのみ)
101# false : 無効
102ifdef ENABLE_GCOV
103ifneq ($(ENABLE_GCOV),false)
104ifeq ($(ENABLE_GCOV),full)
105 CDEFS := $(CDEFS) -DTOPPERS_ENABLE_GCOV_FULL
106 COPTS := $(COPTS) -fprofile-arcs -ftest-coverage
107endif
108ifeq ($(ENABLE_GCOV),part)
109 CDEFS := $(CDEFS) -DTOPPERS_ENABLE_GCOV_PART
110 COPTS := $(COPTS) -fprofile-arcs -ftest-coverage
111endif
112ifeq ($(ENABLE_GCOV),only_kernel_full)
113 CDEFS := $(CDEFS) -DTOPPERS_ENABLE_GCOV_FULL
114 KERNEL_CFLAGS := $(KERNEL_CFLAGS) -fprofile-arcs -ftest-coverage
115 CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS) -fprofile-arcs -ftest-coverage
116endif
117ifeq ($(ENABLE_GCOV),only_kernel_part)
118 CDEFS := $(CDEFS) -DTOPPERS_ENABLE_GCOV_PART
119 KERNEL_CFLAGS := $(KERNEL_CFLAGS) -fprofile-arcs -ftest-coverage
120 CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS) -fprofile-arcs -ftest-coverage
121endif
122 LIBS := $(LIBS) -lgcov
123 CLEAN_FILES := $(CLEAN_FILES) *.gcda *.gcda.bak *.gcno *.gcov coverage.info
124lcov:
125 rm -f makeoffset.gcno cfg1_out.*
126 lcov -c -d . -o coverage.info --gcov-tool $(GCC_TARGET)-gcov.exe
127 genhtml coverage.info -o coverage_html
128endif
129endif
Note: See TracBrowser for help on using the repository browser.