source: rc_os_nios2/atk2-sc1_1.3.2/obj/nios2_dev_rc/Makefile@ 128

Last change on this file since 128 was 128, checked in by ertl-honda, 9 years ago

追加.

File size: 16.8 KB
Line 
1#
2# TOPPERS ATK2
3# Toyohashi Open Platform for Embedded Real-Time Systems
4# Automotive Kernel Version 2
5#
6# Copyright (C) 2000-2003 by Embedded and Real-Time Systems Laboratory
7# Toyohashi Univ. of Technology, JAPAN
8# Copyright (C) 2006-2014 by Center for Embedded Computing Systems
9# Graduate School of Information Science, Nagoya Univ., JAPAN
10# Copyright (C) 2011-2014 by FUJISOFT INCORPORATED, JAPAN
11# Copyright (C) 2011-2013 by Spansion LLC, USA
12# Copyright (C) 2011-2013 by NEC Communication Systems, Ltd., JAPAN
13# Copyright (C) 2011-2014 by Panasonic Advanced Technology Development Co., Ltd., JAPAN
14# Copyright (C) 2011-2014 by Renesas Electronics Corporation, JAPAN
15# Copyright (C) 2011-2014 by Sunny Giken Inc., JAPAN
16# Copyright (C) 2011-2014 by TOSHIBA CORPORATION, JAPAN
17# Copyright (C) 2011-2014 by Witz Corporation, JAPAN
18#
19# 上記著作権者は,以下の(1)〜(4)の条件を満たす場合に限り,本ソフトウェ
20# ア(本ソフトウェアを改変したものを含む.以下同じ)を使用・複製・改
21# 変・再配布(以下,利用と呼ぶ)することを無償で許諾する.
22# (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
23# 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
24# スコード中に含まれていること.
25# (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
26# 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
27# 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
28# の無保証規定を掲載すること.
29# (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
30# 用できない形で再配布する場合には,次のいずれかの条件を満たすこ
31# と.
32# (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
33# 作権表示,この利用条件および下記の無保証規定を掲載すること.
34# (b) 再配布の形態を,別に定める方法によって,TOPPERSプロジェクトに
35# 報告すること.
36# (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
37# 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
38# また,本ソフトウェアのユーザまたはエンドユーザからのいかなる理
39# 由に基づく請求からも,上記著作権者およびTOPPERSプロジェクトを
40# 免責すること.
41#
42# 本ソフトウェアは,AUTOSAR(AUTomotive Open System ARchitecture)仕
43# 様に基づいている.上記の許諾は,AUTOSARの知的財産権を許諾するもので
44# はない.AUTOSARは,AUTOSAR仕様に基づいたソフトウェアを商用目的で利
45# 用する者に対して,AUTOSARパートナーになることを求めている.
46#
47# 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
48# よびTOPPERSプロジェクトは,本ソフトウェアに関して,特定の使用目的
49# に対する適合性も含めて,いかなる保証も行わない.また,本ソフトウェ
50# アの利用により直接的または間接的に生じたいかなる損害に関しても,そ
51# の責任を負わない.
52#
53# $Id: Makefile 8482 2014-03-07 03:55:38Z shigihara $
54#
55
56#
57# ターゲットの指定(Makefile.targetで上書きされるのを防ぐため)
58#
59all:
60
61SOF_FILE = ../../../DE0_Nano_QSYS_DEMO/DE0_Nano.sof
62COF_FILE = ../../../DE0_Nano_QSYS_DEMO/hw_sw.cof
63
64flash: atk2-sc1.exe
65 sof2flash --epcs --input=$(SOF_FILE) --output=hw.flash --quiet
66 elf2flash --epcs --after=hw.flash --input=atk2-sc1.exe --output=sw.flash --boot=epcs_controller_boot_rom.flash
67 cp hw.flash hw_sw.flash
68 cat sw.flash >> hw_sw.flash
69 nios2-elf-objcopy.exe --input-target srec --output-target ihex hw_sw.flash hw_sw.hex
70 quartus_cpf.exe -c $(COF_FILE)
71
72prog : hw_sw.jic
73 quartus_pgm.exe -c USB-BLASTER -m jtag -o pvbi\;hw_sw.jic
74
75#
76# RCカーでのROM_BOOTをサポート
77# JTAG経由の出力をbluetooth経由に変更
78CDEFS := $(CDEFS) -DRC_ROM_BOOT
79
80#
81# ターゲット略称の定義
82#
83TARGET = nios2_dev_gcc
84
85#
86# プログラミング言語の定義
87#
88SRCLANG = c
89ifeq ($(SRCLANG),c++)
90 USE_CXX = true
91 CXXLIBS = -lstdc++ -lm -lc
92 CXXRTS = cxxrt.o newlibrt.o
93endif
94
95#
96# ソースファイルのディレクトリの定義
97#
98SRCDIR = ../..
99
100#
101# オブジェクトファイル名の拡張子の設定
102#
103OBJEXT = exe
104
105#
106# 実行環境の定義(ターゲット依存に上書きされる場合がある)
107#
108DBGENV :=
109
110#
111# カーネルライブラリ(libkernel.a)のディレクトリ名
112# (カーネルライブラリもmake対象にする時は,空に定義する)
113#
114KERNEL_LIB =
115
116#
117# カーネルを関数単位でコンパイルするかどうかの定義
118#
119KERNEL_FUNCOBJS =
120
121#
122# トレースログを取得するかどうかの定義
123#
124ENABLE_TRACE =
125
126#
127# システムタイマ(タイマドライバ)を使用するかどうかの定義
128#
129ENABLE_SYS_TIMER =
130
131#
132# ハードウェアカウンタを無効にするかどうかの定義
133#
134OMIT_HW_COUNTER =
135
136#
137# コンフィギュレーションファイルに関する定義
138#
139CFGNAME = rc_car
140ifeq ($(CFGNAME),sample1)
141 CFGNAME := $(CFGNAME) target_serial
142endif
143ifdef ENABLE_SYS_TIMER
144 CFGNAME := $(CFGNAME) target_timer
145endif
146ifndef OMIT_HW_COUNTER
147 CFGNAME := $(CFGNAME) target_hw_counter
148endif
149
150CFGNAME := $(CFGNAME) comuart target_serial target_hw_counter nces_can
151
152#
153# ユーティリティプログラムの名称
154#
155PERL = /usr/bin/perl
156CFG = $(SRCDIR)/cfg/cfg/cfg
157
158#
159# オブジェクトファイル名の定義
160#
161OBJNAME = atk2-sc1
162ifdef OBJEXT
163 OBJFILE = $(OBJNAME).$(OBJEXT)
164 CFG1_OUT = cfg1_out.$(OBJEXT)
165else
166 OBJFILE = $(OBJNAME)
167 CFG1_OUT = cfg1_out
168endif
169
170#
171# ターゲット依存部のディレクトリの定義
172#
173TARGETDIR = $(SRCDIR)/target/$(TARGET)
174
175#
176# ターゲット依存の定義のインクルード
177#
178include $(TARGETDIR)/Makefile.target
179
180#
181# ジェネレータ関係の変数の定義
182#
183PASS2_TF = $(SRCDIR)/kernel/kernel.tf
184DEF_TABS = $(SRCDIR)/kernel/kernel.csv
185CFG_KERNEL = atk2
186CFG_TABS := --ini-file $(SRCDIR)/kernel/kernel.ini $(CFG_TABS)
187
188CFG_TABS := --api-table $(DEF_TABS) \
189 --cfg1-def-table $(SRCDIR)/kernel/kernel_def.csv $(CFG_TABS)
190CFG_OBJS := Os_Lcfg.o $(CFG_OBJS)
191CFG2_OUT := Os_Lcfg.c Os_Lcfg.h Os_Cfg.h $(CFG2_OUT)
192ALL_CFG_OBJS := $(CFG_OBJS) cfg1_out.o
193
194#
195# 共通コンパイルオプションの定義
196#
197COPTS := $(COPTS) -g
198ifndef OMIT_WARNING_ALL
199 COPTS := $(COPTS) -Wall -Wno-unused-label -Wpointer-arith
200endif
201ifndef OMIT_OPTIMIZATION
202 COPTS := $(COPTS) -O2
203endif
204CDEFS := $(CDEFS)
205INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR)/arch -I$(SRCDIR) $(INCLUDES)
206LDFLAGS := $(LDFLAGS)
207LIBS := $(LIBS) $(CXXLIBS)
208CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
209
210#
211# アプリケーションプログラムに関する定義
212#
213APPLNAME = rc_car
214APPLDIR =
215APPL_CFG_INPUT := $(foreach file,$(CFGNAME),$(file).arxml)
216
217APPL_DIR = $(APPLDIR) $(SRCDIR)/library
218APPL_ASMOBJS =
219ifdef USE_CXX
220 APPL_CXXOBJS = $(APPLNAME).o
221 APPL_COBJS =
222else
223 APPL_COBJS = $(APPLNAME).o comuart.o rcb3.o nces_can.o
224endif
225APPL_CFLAGS =
226APPL_LIBS =
227ifdef APPLDIR
228 INCLUDES := $(INCLUDES) $(foreach dir,$(APPLDIR),-I$(dir))
229endif
230
231
232#
233# システムモジュールに関する定義
234#
235SYSMOD_DIR := $(SYSMOD_DIR) $(SRCDIR)/sysmod $(SRCDIR)/library
236SYSMOD_ASMOBJS := $(SYSMOD_ASMOBJS)
237SYSMOD_COBJS := $(SYSMOD_COBJS) banner.o syslog.o serial.o \
238 log_output.o vasyslog.o t_perror.o strerror.o \
239 $(CXXRTS)
240SYSMOD_CFLAGS := $(SYSMOD_CFLAGS)
241SYSMOD_LIBS := $(SYSMOD_LIBS)
242INCLUDES := $(INCLUDES)
243
244#
245# カーネルに関する定義
246#
247# KERNEL_ASMOBJS: カーネルライブラリに含める,ソースがアセンブリ言語の
248# オブジェクトファイル.
249# KERNEL_COBJS: カーネルのライブラリに含める,ソースがC言語で,ソース
250# ファイルと1対1に対応するオブジェクトファイル.
251# KERNEL_LCSRCS: カーネルのライブラリに含めるC言語のソースファイルで,
252# 1つのソースファイルから複数のオブジェクトファイルを生
253# 成するもの.
254# KERNEL_LCOBJS: 上のソースファイルから生成されるオブジェクトファイル.
255# KERNEL_AUX_COBJS: ロードモジュールに含めないが,カーネルのソースファ
256# イルと同じオプションを適用してコンパイルすべき,ソー
257# スがC言語のオブジェクトファイル.
258#
259KERNEL_DIR := $(KERNEL_DIR) $(SRCDIR)/kernel
260KERNEL_ASMOBJS := $(KERNEL_ASMOBJS)
261KERNEL_COBJS := $(KERNEL_COBJS)
262KERNEL_CFLAGS := $(KERNEL_CFLAGS) -I$(SRCDIR)/kernel
263ifdef OMIT_MAKEOFFSET
264 OFFSET_H =
265else
266 OFFSET_H = offset.h
267endif
268
269
270#
271# ターゲットファイル(複数を同時に選択してはならない)
272#
273all: $(OBJFILE)
274#all: $(OBJNAME).bin
275#all: $(OBJNAME).srec
276
277##### 以下は編集しないこと #####
278
279#
280# 環境に依存するコンパイルオプションの定義
281#
282ifdef DBGENV
283 CDEFS := $(CDEFS) -D$(DBGENV)
284endif
285
286#
287# カーネルのファイル構成の定義
288#
289include $(SRCDIR)/kernel/Makefile.kernel
290ifdef KERNEL_FUNCOBJS
291 KERNEL_LCSRCS := $(KERNEL_FCSRCS)
292 KERNEL_LCOBJS := $(foreach file,$(KERNEL_FCSRCS),$($(file:.c=)))
293else
294 KERNEL_CFLAGS := -DALLFUNC $(KERNEL_CFLAGS)
295 KERNEL_COBJS := $(KERNEL_COBJS) \
296 $(foreach file,$(KERNEL_FCSRCS),$(file:.c=.o))
297endif
298
299#
300# ソースファイルのあるディレクトリに関する定義
301#
302vpath %.c $(KERNEL_DIR) $(SYSMOD_DIR) $(APPL_DIR)
303vpath %.S $(KERNEL_DIR) $(SYSMOD_DIR) $(APPL_DIR)
304vpath %.arxml $(KERNEL_DIR) $(SYSMOD_DIR) $(APPL_DIR)
305
306#
307# コンパイルのための変数の定義
308#
309KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS)
310SYSMOD_OBJS = $(SYSMOD_ASMOBJS) $(SYSMOD_COBJS)
311APPL_OBJS = $(APPL_ASMOBJS) $(APPL_COBJS) $(APPL_CXXOBJS)
312ALL_OBJS = $(START_OBJS) $(APPL_OBJS) $(SYSMOD_OBJS) $(CFG_OBJS) \
313 $(END_OBJS) $(HIDDEN_OBJS)
314ifdef KERNEL_LIB
315 ALL_LIBS = $(APPL_LIBS) $(SYSMOD_LIBS) -lkernel $(LIBS)
316 LIBS_DEP = $(filter %.a,$(ALL_LIBS)) $(KERNEL_LIB)/libkernel.a
317 LDFLAGS := $(LDFLAGS) -L$(KERNEL_LIB)
318else
319 ALL_LIBS = $(APPL_LIBS) $(SYSMOD_LIBS) libkernel.a $(LIBS)
320 LIBS_DEP = $(filter %.a,$(ALL_LIBS))
321endif
322
323ifdef TEXT_START_ADDRESS
324 LDFLAGS := $(LDFLAGS) -Wl,-Ttext,$(TEXT_START_ADDRESS)
325endif
326ifdef DATA_START_ADDRESS
327 LDFLAGS := $(LDFLAGS) -Wl,-Tdata,$(DATA_START_ADDRESS)
328endif
329ifdef LDSCRIPT
330 LDFLAGS := $(LDFLAGS) -T $(LDSCRIPT)
331endif
332
333#
334# オフセットファイル(offset.h)の生成規則
335#
336offset.h: $(APPL_CFG_INPUT) Os_Lcfg.timestamp $(SRCDIR)/kernel/genoffset.tf
337 $(CFG) --pass 3 --kernel $(CFG_KERNEL) $(INCLUDES) \
338 --rom-image cfg1_out.srec --symbol-table cfg1_out.syms \
339 -T $(OFFSET_TF) $(CFG_TABS) $(filter %.arxml,$^)
340
341#
342# カーネルのコンフィギュレーションファイルの生成
343#
344cfg1_out.c: $(APPL_CFG_INPUT) $(SRCDIR)/kernel/kernel_def.csv
345 $(CFG) --pass 1 --kernel $(CFG_KERNEL) $(INCLUDES) $(CFG_TABS) $(filter %.arxml,$^)
346
347$(CFG2_OUT): Os_Lcfg.timestamp
348Os_Lcfg.timestamp: $(APPL_CFG_INPUT) $(START_OBJS) cfg1_out.o $(END_OBJS) $(HIDDEN_OBJS) $(PASS2_TF) $(DEF_TABS)
349 $(LINK) $(CFLAGS) $(LDFLAGS) $(CFG1_OUT_LDFLAGS) -o $(CFG1_OUT) \
350 $(START_OBJS) cfg1_out.o $(END_OBJS)
351 $(NM) -n $(CFG1_OUT) > cfg1_out.syms
352 $(OBJCOPY) -O srec -S $(CFG1_OUT) cfg1_out.srec
353 $(CFG) --pass 2 --kernel $(CFG_KERNEL) $(INCLUDES) \
354 -T $(TARGETDIR)/target.tf $(CFG_TABS) $(filter %.arxml,$^)
355
356# 既存Os_Cfg.hとpass2で生成したOs_Cfg_tmp.hとの差分がある場合Os_Cfg.hを上書き
357 if ! cmp Os_Cfg.h Os_Cfg_tmp.h >/dev/null 2>&1 ; then \
358 mv Os_Cfg_tmp.h Os_Cfg.h ;\
359 else \
360 rm Os_Cfg_tmp.h ;\
361 fi
362ifdef KERNEL_LIB
363 if ! cmp Os_Cfg.h $(KERNEL_LIB)/Os_Cfg.h >/dev/null 2>&1 ; then \
364 echo Config files Os_Cfg.h and $(KERNEL_LIB)/Os_Cfg.h differ! ;\
365 diff -c Os_Cfg.h $(KERNEL_LIB)/Os_Cfg.h ;\
366 false;\
367 fi
368endif
369
370 touch -r Os_Lcfg.c Os_Lcfg.timestamp
371
372#
373# カーネルライブラリファイルの生成
374#
375libkernel.a: $(OFFSET_H) $(KERNEL_LIB_OBJS)
376 rm -f libkernel.a
377 $(AR) -rcs libkernel.a $(KERNEL_LIB_OBJS)
378 $(RANLIB) libkernel.a
379
380#
381# 特別な依存関係の定義
382#
383banner.o: Os_Lcfg.timestamp $(filter-out banner.o,$(ALL_OBJS)) $(LIBS_DEP)
384
385#
386# 全体のリンク
387#
388$(OBJFILE): $(APPL_CFG_INPUT) Os_Lcfg.timestamp $(ALL_OBJS) $(LIBS_DEP)
389 $(LINK) $(CFLAGS) $(LDFLAGS) -o $(OBJFILE) $(START_OBJS) \
390 -Wl,-Map,$(OBJNAME).map \
391 $(APPL_OBJS) $(SYSMOD_OBJS) $(CFG_OBJS) $(ALL_LIBS) $(END_OBJS)
392 $(NM) -n $(OBJFILE) > $(OBJNAME).syms
393 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
394 $(CFG) --pass 3 --kernel $(CFG_KERNEL) $(INCLUDES) \
395 --rom-image $(OBJNAME).srec --symbol-table $(OBJNAME).syms \
396 -T $(TARGETDIR)/target_check.tf $(CFG_TABS) $(filter %.arxml,$^)
397 $(OBJDUMP) -d $(OBJFILE) > $(OBJNAME).dump
398
399#
400# バイナリファイルの生成
401#
402$(OBJNAME).bin: $(OBJFILE)
403 $(OBJCOPY) -O binary -S $(OBJFILE) $(OBJNAME).bin
404
405#
406# Sレコードファイルの生成
407#
408$(OBJNAME).srec: $(OBJFILE)
409 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
410
411#
412# コンパイル結果の消去
413#
414.PHONY: clean
415clean:
416 rm -f \#* *~ *.o $(CLEAN_FILES)
417 rm -f $(OBJFILE) $(OBJNAME).syms $(OBJNAME).srec $(OBJNAME).bin $(OBJNAME).map
418 rm -f Os_Lcfg.timestamp $(CFG2_OUT)
419 rm -f cfg2_out.tf
420 rm -f cfg1_out.c $(CFG1_OUT) cfg1_out.syms cfg1_out.srec
421 rm -f $(OBJNAME).dump
422 rm -f kernel.res
423 rm -f hw.flash hw_sw.hex sw.flash hw.flash hw_sw.flash
424ifndef KERNEL_LIB
425 rm -f libkernel.a
426endif
427 rm -f offset.h
428
429.PHONY: cleankernel
430cleankernel:
431 rm -rf $(KERNEL_LIB_OBJS)
432 rm -f offset.h
433
434.PHONY: cleandep
435cleandep:
436 if ! [ -f Makefile.depend ]; then \
437 rm -f Os_Lcfg.timestamp $(CFG2_OUT); \
438 rm -f cfg1_out.c cfg1_out.o $(CFG1_OUT) cfg1_out.syms cfg1_out.srec; \
439 rm -f offset.h; \
440 fi
441 rm -f Makefile.depend
442
443.PHONY: realclean
444realclean: cleandep clean
445 rm -f $(REALCLEAN_FILES)
446
447#
448# ジェネレータが生成したファイルのコンパイルルールと依存関係作成
449# ルールの定義
450#
451# ジェネレータが生成したファイルは,アプリケーションプログラム用,シス
452# テムサービス用,カーネル用のすべてのオプションを付けてコンパイルする.
453#
454OS_LCFG_CFLAGS = $(APPL_CFLAGS) $(SYSMOD_CFLAGS) $(KERNEL_CFLAGS)
455
456$(ALL_CFG_OBJS): %.o: %.c
457 $(CC) -c $(CFLAGS) $(OS_LCFG_CFLAGS) $<
458
459$(ALL_CFG_OBJS:.o=.s): %.s: %.c
460 $(CC) -S $(CFLAGS) $(OS_LCFG_CFLAGS) $<
461
462$(ALL_CFG_OBJS:.o=.d): %.d: %.c
463 @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
464 -O "$(CFLAGS) $(OS_LCFG_CFLAGS)" $< >> Makefile.depend
465
466#
467# 特殊な依存関係作成ルールの定義
468#
469cfg1_out.depend: $(APPL_CFG_INPUT)
470 @$(CFG) -M cfg1_out.c $(INCLUDES) $< >> Makefile.depend
471
472#
473# 依存関係ファイルの生成
474#
475.PHONY: gendepend
476gendepend:
477 @echo "Generating Makefile.depend."
478
479.PHONY: depend
480ifdef KERNEL_LIB
481depend: cleandep Os_Lcfg.timestamp gendepend \
482 cfg1_out.depend cfg1_out.d \
483 $(ALL_OBJS:.o=.d)
484else
485depend: cleandep $(OFFSET_H) Os_Lcfg.timestamp gendepend \
486 cfg1_out.depend cfg1_out.d \
487 $(KERNEL_AUX_COBJS:.o=.d) $(KERNEL_ASMOBJS:.o=.d) \
488 $(KERNEL_COBJS:.o=.d) $(KERNEL_LCSRCS:.c=.d) $(ALL_OBJS:.o=.d)
489endif
490
491#
492# 依存関係ファイルをインクルード
493#
494-include Makefile.depend
495
496#
497# 開発ツールのコマンド名の定義
498#
499ifeq ($(TOOL),gcc)
500 #
501 # GNU開発環境用
502 #
503 ifdef GCC_TARGET
504 GCC_TARGET_PREFIX = $(GCC_TARGET)-
505 else
506 GCC_TARGET_PREFIX =
507 endif
508 CC = $(GCC_TARGET_PREFIX)gcc
509 CXX = $(GCC_TARGET_PREFIX)g++
510 AS = $(GCC_TARGET_PREFIX)as
511 LD = $(GCC_TARGET_PREFIX)ld
512 AR = $(GCC_TARGET_PREFIX)ar
513 NM = $(GCC_TARGET_PREFIX)nm
514 RANLIB = $(GCC_TARGET_PREFIX)ranlib
515 OBJCOPY = $(GCC_TARGET_PREFIX)objcopy
516 OBJDUMP = $(GCC_TARGET_PREFIX)objdump
517endif
518
519ifdef USE_CXX
520 LINK = $(CXX)
521else
522 LINK = $(CC)
523endif
524
525#
526# コンパイルルールの定義
527#
528KERNEL_ALL_COBJS = $(KERNEL_COBJS) $(KERNEL_AUX_COBJS)
529
530$(KERNEL_ALL_COBJS): %.o: %.c
531 $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
532
533$(KERNEL_ALL_COBJS:.o=.s): %.s: %.c
534 $(CC) -S $(CFLAGS) $(KERNEL_CFLAGS) $<
535
536$(KERNEL_LCOBJS): %.o:
537 $(CC) -DTOPPERS_$(*F) -o $@ -c $(CFLAGS) $(KERNEL_CFLAGS) $<
538
539$(KERNEL_LCOBJS:.o=.s): %.s:
540 $(CC) -DTOPPERS_$(*F) -o $@ -S $(CFLAGS) $(KERNEL_CFLAGS) $<
541
542$(KERNEL_ASMOBJS): %.o: %.S
543 $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
544
545$(SYSMOD_COBJS): %.o: %.c
546 $(CC) -c $(CFLAGS) $(SYSMOD_CFLAGS) $<
547
548$(SYSMOD_COBJS:.o=.s): %.s: %.c
549 $(CC) -S $(CFLAGS) $(SYSMOD_CFLAGS) $<
550
551$(SYSMOD_ASMOBJS): %.o: %.S
552 $(CC) -c $(CFLAGS) $(SYSMOD_CFLAGS) $<
553
554$(APPL_COBJS): %.o: %.c
555 $(CC) -c $(CFLAGS) $(APPL_CFLAGS) $<
556
557$(APPL_COBJS:.o=.s): %.s: %.c
558 $(CC) -S $(CFLAGS) $(APPL_CFLAGS) $<
559
560$(APPL_CXXOBJS): %.o: %.cpp
561 $(CXX) -c $(CFLAGS) $(APPL_CFLAGS) $<
562
563$(APPL_CXXOBJS:.o=.s): %.s: %.cpp
564 $(CXX) -S $(CFLAGS) $(APPL_CFLAGS) $<
565
566$(APPL_ASMOBJS): %.o: %.S
567 $(CC) -c $(CFLAGS) $(APPL_CFLAGS) $<
568
569#
570# 依存関係作成ルールの定義
571#
572$(KERNEL_COBJS:.o=.d): %.d: %.c
573 @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
574 -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
575
576$(KERNEL_LCSRCS:.c=.d): %.d: %.c
577 @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) -T "$($*)" \
578 -O "-DALLFUNC $(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
579
580$(KERNEL_ASMOBJS:.o=.d): %.d: %.S
581 @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
582 -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
583
584$(SYSMOD_COBJS:.o=.d): %.d: %.c
585 @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
586 -O "$(CFLAGS) $(SYSMOD_CFLAGS)" $< >> Makefile.depend
587
588$(SYSMOD_ASMOBJS:.o=.d): %.d: %.S
589 @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
590 -O "$(CFLAGS) $(SYSMOD_CFLAGS)" $< >> Makefile.depend
591
592$(APPL_COBJS:.o=.d): %.d: %.c
593 @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
594 -O "$(CFLAGS) $(APPL_CFLAGS)" $< >> Makefile.depend
595
596$(APPL_CXXOBJS:.o=.d): %.d: %.cpp
597 @$(PERL) $(SRCDIR)/utils/makedep -C $(CXX) $(MAKEDEP_OPTS) \
598 -O "$(CFLAGS) $(APPL_CFLAGS)" $< >> Makefile.depend
599
600$(APPL_ASMOBJS:.o=.d): %.d: %.S
601 @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
602 -O "$(CFLAGS) $(APPL_CFLAGS)" $< >> Makefile.depend
603
604#
605# デフォルトコンパイルルールを上書き
606#
607%.o: %.c
608 @echo "*** Default compile rules should not be used."
609 $(CC) -c $(CFLAGS) $<
610
611%.s: %.c
612 @echo "*** Default compile rules should not be used."
613 $(CC) -S $(CFLAGS) $<
614
615%.o: %.cpp
616 @echo "*** Default compile rules should not be used."
617 $(CXX) -c $(CFLAGS) $<
618
619%.s: %.cpp
620 @echo "*** Default compile rules should not be used."
621 $(CXX) -S $(CFLAGS) $<
622
623%.o: %.S
624 @echo "*** Default compile rules should not be used."
625 $(CC) -c $(CFLAGS) $<
Note: See TracBrowser for help on using the repository browser.