source: rtos_arduino/trunk/lib/Makefile.rca@ 224

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

1.7.10のファイルに更新

File size: 16.0 KB
Line 
1#
2# Arduinoライブラリ用の定義
3#
4ARDUINO_LIB_DIR = $(RCA_DIR)/arduino_lib
5
6#
7# コアライブラリ
8#
9APPL_COBJS += delay.o \
10 wiring.o wiring_digital.o wiring_analog.o wiring_shift.o \
11 WInterrupts.o \
12 samd21_host.o \
13 dtostrf.o \
14 itoa.o \
15 syscalls.o \
16
17APPL_CXXOBJS += rca_lib.o \
18 variant.o \
19 SERCOM.o Uart.o RingBuffer.o Print.o \
20 CDC.o HID.o USBCore.o Reset.o \
21 Stream.o \
22 wiring_pulse.o \
23 WMath.o \
24 WString.o \
25 IPAddress.o \
26 Tone.o \
27
28ifeq ($(USE_ETHERNET2), true)
29#
30# Ethenet2ライブラリ
31#
32APPL_DIR += $(RCA_DIR)/arduino_lib/libraries/Ethernet2/src/ $(RCA_DIR)/arduino_lib/libraries/Ethernet2/src/utility
33APPL_CXXOBJS += Dhcp.o Dns.o Ethernet2.o EthernetClient.o EthernetServer.o EthernetUdp2.o Twitter.o socket.o w5500.o
34APPL_COBJS +=
35USE_ARDUINO_SPI = true
36endif
37
38ifeq ($(USE_NCESCAN), true)
39#
40# NCESCANライブラリ
41#
42APPL_DIR += $(RCA_DIR)/arduino_lib/libraries/NcesCan/
43APPL_CXXOBJS += mcp_can.o
44APPL_COBJS +=
45USE_ARDUINO_SPI = true
46endif
47
48ifeq ($(USE_NAXESMOTION), true)
49#
50# NAxesMotionライブラリ
51#
52APPL_DIR += $(RCA_DIR)/arduino_lib/libraries/NAxesMotion $(RCA_DIR)/arduino_lib/libraries/NAxesMotion/utility
53APPL_CXXOBJS += NAxisMotion.o
54APPL_COBJS += BNO055.o
55USE_WIRE = true
56endif
57
58ifeq ($(USE_ARDUINO_SD), true)
59#
60# SDライブラリ
61#
62APPL_DIR += $(RCA_DIR)/arduino_lib/libraries/SD/src/ $(RCA_DIR)/arduino_lib/libraries/SD/src/utility
63APPL_CXXOBJS += File.o SD.o Sd2Card.o SdFile.o SdVolume.o
64APPL_COBJS +=
65endif
66
67ifeq ($(USE_ARDUINO_TFT), true)
68#
69# TFTライブラリ
70#
71APPL_DIR += $(RCA_DIR)/arduino_lib/libraries/TFT/src/ $(RCA_DIR)/arduino_lib/libraries/TFT/src/utility
72APPL_CXXOBJS += TFT.o Adafruit_GFX.o Adafruit_ST7735.o
73APPL_COBJS += glcdfont.o
74endif
75
76ifeq ($(USE_WIRE), true)
77#
78# Wireライブラリ
79#
80APPL_DIR += $(RCA_DIR)/arduino_lib/hardware/arduino/samd/libraries/Wire/
81APPL_CXXOBJS += Wire.o
82APPL_COBJS +=
83endif
84
85ifeq ($(USE_ARDUINO_SPI), true)
86#
87# SPIライブラリ
88#
89APPL_DIR += $(RCA_DIR)/arduino_lib/hardware/arduino/samd/libraries/SPI/
90APPL_CXXOBJS += SPI.o
91APPL_COBJS +=
92endif
93
94ifeq ($(USE_ARDUINO_RTC), true)
95#
96# RTCライブラリ
97#
98APPL_DIR += $(RCA_DIR)/arduino_lib/libraries/RTC/src/
99APPL_CXXOBJS += RTCInt.o
100APPL_COBJS +=
101endif
102
103
104APPL_DIR += $(RCA_DIR)/lib \
105 $(ARDUINO_LIB_DIR)/hardware/arduino/samd/cores/arduino/ \
106 $(ARDUINO_LIB_DIR)/hardware/arduino/samd/cores/arduino/avr \
107 $(ARDUINO_LIB_DIR)/hardware/arduino/samd/cores/arduino/USB \
108 $(ARDUINO_LIB_DIR)/hardware/arduino/samd/variants/arduino_zero/
109
110CDEFS += -Dprintf=iprintf \
111 -DF_CPU=48000000L \
112 -DARDUINO=10710 \
113 -DARDUINO_SAM_ZERO \
114 -DARDUINO_ARCH_SAMD \
115 -D__SAMD21G18A__ \
116 -DUSB_VID=0x2a03 \
117 -DUSB_PID=0x804f \
118 -DUSBCON \
119 -DUSB_MANUFACTURER= \
120 -DTOPPERS_WITH_ARDUINO
121
122CXXLIBS += -lm -lstdc++
123
124CXXFLAGS = -fno-rtti -fno-exceptions
125
126vpath %.cpp $(APPL_DIR) $(TOPPERS_ARDUINO_DIR)/lib
127
128INCLUDES += -I$(TOPPERS_ARDUINO_DIR)/lib
129
130#
131# Serialの扱い
132#
133ifeq ($(ARDUINO_SERIAL), NOUSE_SERIAL)
134 USE_LOGTASK = true
135endif
136
137ifeq ($(ARDUINO_SERIAL), USE_SERIAL)
138 CDEFS += -DTOPPERS_USE_ARDUINO_SERIAL
139endif
140
141#
142# ターゲット略称の定義
143#
144TARGET = arduino_m0_gcc
145
146#
147# プログラミング言語の定義
148#
149SRCLANG = c
150ifeq ($(SRCLANG),c)
151 LIBS = -lc
152endif
153ifeq ($(SRCLANG),c++)
154 USE_CXX = true
155 CXXLIBS = -lstdc++ -lm -lc
156 CXXRTS = cxxrt.o newlibrt.o
157endif
158
159#
160# オブジェクトファイル名の拡張子の設定
161#
162OBJEXT = elf
163
164#
165# 実行環境の定義(ターゲット依存に上書きされる場合がある)
166#
167DBGENV :=
168
169#
170# カーネルライブラリ(libkernel.a)のディレクトリ名
171# (カーネルライブラリもmake対象にする時は,空に定義する)
172#
173KERNEL_LIB =
174
175#
176# カーネルを関数単位でコンパイルするかどうかの定義
177#
178KERNEL_FUNCOBJS =
179
180#
181# トレースログを取得するかどうかの定義
182#
183ENABLE_TRACE =
184
185#
186# ユーティリティプログラムの名称
187#
188PERL = /usr/bin/perl
189CFG = "$(SRCDIR)/cfg/cfg/cfg"
190
191#
192# オブジェクトファイル名の定義
193#
194OBJNAME = rca
195ifdef OBJEXT
196 OBJFILE = $(OBJNAME).$(OBJEXT)
197 CFG1_OUT = cfg1_out.$(OBJEXT)
198else
199 OBJFILE = $(OBJNAME)
200 CFG1_OUT = cfg1_out
201endif
202
203#
204# ターゲット依存部のディレクトリの定義
205#
206TARGETDIR = $(SRCDIR)/target/$(TARGET)
207
208#
209# ターゲット依存の定義のインクルード
210#
211include $(TARGETDIR)/Makefile.target
212
213#
214# コンフィギュレータ関係の変数の定義
215#
216CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.csv \
217 --cfg1-def-table $(SRCDIR)/kernel/kernel_def.csv $(CFG_TABS)
218
219CFG_ASMOBJS := $(CFG_ASMOBJS)
220CFG_COBJS := kernel_cfg.o $(CFG_COBJS)
221CFG_OBJS := $(CFG_ASMOBJS) $(CFG_COBJS)
222CFG2_OUT_SRCS := kernel_cfg.h kernel_cfg.c $(CFG2_OUT_SRCS)
223
224#
225# å…
226±é€šã‚³ãƒ³ãƒ‘イルオプションの定義
227#
228COPTS := $(COPTS) -g -MD
229ifndef OMIT_WARNING_ALL
230 COPTS := $(COPTS) -Wall
231endif
232ifndef OMIT_OPTIMIZATION
233 COPTS := $(COPTS) -Os
234endif
235CDEFS := $(CDEFS)
236INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR)/arch -I$(SRCDIR) $(INCLUDES)
237LDFLAGS := $(LDFLAGS)
238CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS)
239LIBS := $(LIBS) $(CXXLIBS)
240CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
241
242#
243# アプリケーションプログラムに関する定義
244#
245APPL_DIR += $(SRCDIR)/library
246APPL_COBJS := $(APPL_COBJS) log_output.o vasyslog.o t_perror.o strerror.o
247ifdef APPL_DIR
248 INCLUDES := $(INCLUDES) $(foreach dir,$(APPL_DIR),-I$(dir))
249endif
250
251#
252# システムサービスに関する定義
253#
254SYSSVC_DIR := $(SYSSVC_DIR) $(SRCDIR)/syssvc $(SRCDIR)/library
255SYSSVC_ASMOBJS := $(SYSSVC_ASMOBJS)
256SYSSVC_COBJS := $(SYSSVC_COBJS) banner.o syslog.o \
257 $(CXXRTS)
258
259ifeq ($(USE_LOGTASK),true)
260 SYSSVC_COBJS := $(SYSSVC_COBJS) serial.o logtask.o
261 CDEFS := $(CDEFS) -DTOPPERS_USE_LOGTASK
262endif
263
264SYSSVC_CFLAGS := $(SYSSVC_CFLAGS)
265SYSSVC_LIBS := $(SYSSVC_LIBS)
266INCLUDES := $(INCLUDES)
267
268#
269# カーネルに関する定義
270#
271# KERNEL_ASMOBJS: カーネルライブラリに含める,ソースがアセンブリ言語の
272# オブジェクトファイル.
273# KERNEL_COBJS: カーネルのライブラリに含める,ソースがC言語で,ソース
274# ファイルと1対1に対応するオブジェクトファイル.
275# KERNEL_LCSRCS: カーネルのライブラリに含めるC言語のソースファイルで,
276# 1つのソースファイルから複数のオブジェクトファイルを生
277# 成するもの.
278# KERNEL_LCOBJS: 上のソースファイルから生成されるオブジェクトファイル.
279# KERNEL_AUX_COBJS: ロードモジュールに含めないが,カーネルのソースファ
280# イルと同じオプションを適用してコンパイルすべき,ソー
281# スがC言語のオブジェクトファイル.
282#
283KERNEL_DIR := $(KERNEL_DIR) $(SRCDIR)/kernel
284KERNEL_ASMOBJS := $(KERNEL_ASMOBJS)
285KERNEL_COBJS := $(KERNEL_COBJS)
286KERNEL_CFLAGS := $(KERNEL_CFLAGS) -I$(SRCDIR)/kernel
287ifdef OMIT_MAKEOFFSET
288 OFFSET_H =
289else
290 OFFSET_H = offset.h
291ifndef OFFSET_TF
292 KERNEL_AUX_COBJS := $(KERNEL_AUX_COBJS) makeoffset.o
293endif
294endif
295
296#
297# ターゲットファイル(複数を同時に選択してはならない)
298#
299all: $(OBJFILE)
300#all: $(OBJNAME).bin
301#all: $(OBJNAME).srec
302
303##### 以下は編集しないこと #####
304
305#
306# 環境に依存するコンパイルオプションの定義
307#
308ifdef DBGENV
309 CDEFS := $(CDEFS) -D$(DBGENV)
310endif
311
312#
313# 実行環境の判定
314#
315ifneq (,$(findstring /cygdrive/,$(PATH)))
316 UNAME := Cygwin
317else
318ifeq ($(OS),Windows_NT)
319 UNAME := Windows
320else
321ifeq ($(UNAME),Linux)
322 UNAME := Linux
323ifeq ($(UNAME),Darwin)
324 UNAME := Darwin
325endif
326endif
327endif
328endif
329
330#
331# カーネルのファイル構成の定義
332#
333include $(SRCDIR)/kernel/Makefile.kernel
334ifdef KERNEL_FUNCOBJS
335 KERNEL_LCSRCS := $(KERNEL_FCSRCS)
336 KERNEL_LCOBJS := $(foreach file,$(KERNEL_FCSRCS),$($(file:.c=)))
337else
338 KERNEL_CFLAGS := -DALLFUNC $(KERNEL_CFLAGS)
339 KERNEL_COBJS := $(KERNEL_COBJS) \
340 $(foreach file,$(KERNEL_FCSRCS),$(file:.c=.o))
341endif
342
343#
344# ソースファイルのあるディレクトリに関する定義
345#
346vpath %.c $(KERNEL_DIR) $(SYSSVC_DIR) $(APPL_DIR)
347vpath %.S $(KERNEL_DIR) $(SYSSVC_DIR) $(APPL_DIR)
348vpath %.cfg $(APPL_DIR)
349
350#
351# コンパイルのための変数の定義
352#
353KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS)
354SYSSVC_OBJS = $(SYSSVC_ASMOBJS) $(SYSSVC_COBJS)
355APPL_OBJS = $(APPL_ASMOBJS) $(APPL_COBJS) $(APPL_CXXOBJS)
356ALL_OBJS = $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
357 $(END_OBJS) $(HIDDEN_OBJS)
358ifdef KERNEL_LIB
359 ALL_LIBS = $(APPL_LIBS) $(SYSSVC_LIBS) -lkernel $(LIBS)
360 LIBS_DEP = $(filter %.a,$(ALL_LIBS)) $(KERNEL_LIB)/libkernel.a
361 LDFLAGS := $(LDFLAGS) -L$(KERNEL_LIB)
362 REALCLEAN_FILES := libkernel.a $(REALCLEAN_FILES)
363else
364 ALL_LIBS = $(APPL_LIBS) $(SYSSVC_LIBS) libkernel.a $(LIBS)
365 LIBS_DEP = $(filter %.a,$(ALL_LIBS))
366endif
367
368ifdef TEXT_START_ADDRESS
369 LDFLAGS := $(LDFLAGS) -Wl,-Ttext,$(TEXT_START_ADDRESS)
370 CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS) -Wl,-Ttext,$(TEXT_START_ADDRESS)
371endif
372ifdef DATA_START_ADDRESS
373 LDFLAGS := $(LDFLAGS) -Wl,-Tdata,$(DATA_START_ADDRESS)
374 CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS) -Wl,-Tdata,$(DATA_START_ADDRESS)
375endif
376ifdef LDSCRIPT
377 LDFLAGS := $(LDFLAGS) -T $(LDSCRIPT)
378 CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS) -T $(LDSCRIPT)
379endif
380
381#
382# オフセットファイル(offset.h)の生成規則
383#
384ifdef OFFSET_TF
385offset.h: $(APPL_CFG) kernel_cfg.timestamp
386 $(CFG) --pass 3 --kernel asp $(INCLUDES) \
387 --rom-image cfg1_out.srec --symbol-table cfg1_out.syms \
388 -T $(OFFSET_TF) $(CFG_TABS) $<
389else
390offset.h: makeoffset.s $(SRCDIR)/utils/genoffset
391 $(PERL) $(SRCDIR)/utils/genoffset makeoffset.s > offset.h
392endif
393
394#
395# カーネルのコンフィギュレーションファイルの生成
396#
397cfg1_out.c: $(APPL_CFG)
398 $(CFG) --pass 1 --kernel asp $(INCLUDES) $(CFG_TABS) $<
399 $(CFG) -M cfg1_out.c $(INCLUDES) $< > cfg1_out.c.d
400
401$(CFG2_OUT_SRCS): kernel_cfg.timestamp
402kernel_cfg.timestamp: $(APPL_CFG) \
403 $(START_OBJS) cfg1_out.o $(END_OBJS) $(HIDDEN_OBJS)
404 $(LINK) $(CFLAGS) $(CFG1_OUT_LDFLAGS) -o $(CFG1_OUT) \
405 $(START_OBJS) cfg1_out.o $(END_OBJS)
406 $(NM) -n $(CFG1_OUT) > cfg1_out.syms
407 $(OBJCOPY) -O srec -S $(CFG1_OUT) cfg1_out.srec
408 $(CFG) --pass 2 --kernel asp $(INCLUDES) \
409 -T $(TARGETDIR)/target.tf $(CFG_TABS) $<
410ifeq ($(UNAME), Windows)
411 copy /B kernel_cfg.c +,,
412 echo -n > kernel_cfg.timestamp
413else
414 touch -r kernel_cfg.c kernel_cfg.timestamp
415endif
416
417#
418# カーネルライブラリファイルの生成
419#
420libkernel.a: $(OFFSET_H) $(KERNEL_LIB_OBJS)
421 rm -f libkernel.a
422 $(AR) -rcs libkernel.a $(KERNEL_LIB_OBJS)
423 $(RANLIB) libkernel.a
424
425#
426# 特別な依存関係の定義
427#
428banner.o: kernel_cfg.timestamp $(filter-out banner.o,$(ALL_OBJS)) $(LIBS_DEP)
429
430#
431# å…
432¨ä½“のリンク
433#
434$(OBJFILE): $(APPL_CFG) kernel_cfg.timestamp $(ALL_OBJS) $(LIBS_DEP)
435 $(LINK) $(CFLAGS) $(LDFLAGS) -o $(OBJFILE) $(START_OBJS) \
436 $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) $(ALL_LIBS) $(END_OBJS)
437 $(NM) -n $(OBJFILE) > $(OBJNAME).syms
438 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
439 $(CFG) --pass 3 --kernel asp $(INCLUDES) \
440 --rom-image $(OBJNAME).srec --symbol-table $(OBJNAME).syms \
441 -T $(TARGETDIR)/target_check.tf $(CFG_TABS) $<
442
443#
444# バイナリファイルの生成
445#
446$(OBJNAME).bin: $(OBJFILE)
447 $(OBJCOPY) -O binary -R .bss -S $(OBJFILE) $(OBJNAME).bin
448
449#
450# Sレコードファイルの生成
451#
452$(OBJNAME).srec: $(OBJFILE)
453 $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
454
455#
456# コンパイル結果の消去
457#
458.PHONY: clean
459clean:
460 rm -f $(OBJFILE) $(OBJNAME).syms $(OBJNAME).srec $(OBJNAME).bin $(OBJFILE).shadow
461 rm -f kernel_cfg.timestamp $(CFG2_OUT_SRCS)
462 rm -f cfg1_out.c $(CFG1_OUT) cfg1_out.syms cfg1_out.srec
463 rm -f kernel_cfg.timestamp $(CFG2_OUT_SRCS);
464 rm -f cfg1_out.c cfg1_out.o $(CFG1_OUT) cfg1_out.syms cfg1_out.srec;
465 rm -f makeoffset.s offset.h;
466ifndef KERNEL_LIB
467 rm -f libkernel.a
468endif
469 rm -f makeoffset.s offset.h
470 rm -f \#* *~ *.o *.d $(CLEAN_FILES)
471
472.PHONY: cleankernel
473cleankernel:
474 rm -rf $(KERNEL_LIB_OBJS)
475 rm -f makeoffset.s offset.h
476
477.PHONY: cleandep
478cleandep:
479 if ! [ -f Makefile.depend ]; then \
480 rm -f kernel_cfg.timestamp $(CFG2_OUT_SRCS); \
481 rm -f cfg1_out.c cfg1_out.o $(CFG1_OUT) cfg1_out.syms cfg1_out.srec; \
482 rm -f makeoffset.s offset.h; \
483 fi
484 rm -f Makefile.depend
485
486.PHONY: realclean
487realclean: cleandep clean
488 rm -f $(REALCLEAN_FILES)
489
490#
491# コンフィギュレータが生成したファイルのコンパイルルールと依存関係作成
492# ルールの定義
493#
494# コンフィギュレータが生成したファイルは,アプリケーションプログラム用,
495# システムサービス用,カーネル用のすべてのオプションを付けてコンパイル
496# する.
497#
498ALL_CFG_COBJS = $(CFG_COBJS) cfg1_out.o
499ALL_CFG_ASMOBJS = $(CFG_ASMOBJS)
500CFG_CFLAGS = $(APPL_CFLAGS) $(SYSSVC_CFLAGS) $(KERNEL_CFLAGS)
501
502$(ALL_CFG_COBJS): %.o: %.c
503 $(CC) -c $(CFLAGS) $(CFG_CFLAGS) $<
504
505#$(ALL_CFG_COBJS:.o=.s): %.s: %.c
506# $(CC) -S $(CFLAGS) $(CFG_CFLAGS) $<
507
508$(ALL_CFG_ASMOBJS): %.o: %.S
509 $(CC) -c $(CFLAGS) $(CFG_CFLAGS) $<
510
511#
512# 依存関係ファイルをインクルード
513#
514-include *.d
515
516#
517# 開発ツールのコマンド名の定義
518#
519ifeq ($(TOOL),gcc)
520 #
521 # GNU開発環境用
522 #
523 ifdef GCC_TARGET
524 GCC_TARGET_PREFIX = $(GCC_TARGET)-
525 else
526 GCC_TARGET_PREFIX =
527 endif
528#
529# Windowsの場合はフルパスにする
530#
531ifeq ($(UNAME),Windows)
532 GCC_PATH_WIN = $(ARDUINO_BASE_DIR_WIN)\hardware\tools\gcc-arm-none-eabi-4.8.3-2014q1\bin
533 CC = "$(GCC_PATH_WIN)\$(GCC_TARGET_PREFIX)gcc"
534 CXX = "$(GCC_PATH_WIN)\$(GCC_TARGET_PREFIX)g++"
535 AS = "$(GCC_PATH_WIN)\$(GCC_TARGET_PREFIX)as"
536 LD = "$(GCC_PATH_WIN)\$(GCC_TARGET_PREFIX)ld"
537 AR = "$(GCC_PATH_WIN)\$(GCC_TARGET_PREFIX)ar"
538 NM = "$(GCC_PATH_WIN)\$(GCC_TARGET_PREFIX)nm"
539 RANLIB = "$(GCC_PATH_WIN)\$(GCC_TARGET_PREFIX)ranlib"
540 OBJCOPY = "$(GCC_PATH_WIN)\$(GCC_TARGET_PREFIX)objcopy"
541 OBJDUMP = "$(GCC_PATH_WIN)\$(GCC_TARGET_PREFIX)objdump"
542else
543 CC = $(GCC_TARGET_PREFIX)gcc
544 CXX = $(GCC_TARGET_PREFIX)g++
545 AS = $(GCC_TARGET_PREFIX)as
546 LD = $(GCC_TARGET_PREFIX)ld
547 AR = $(GCC_TARGET_PREFIX)ar
548 NM = $(GCC_TARGET_PREFIX)nm
549 RANLIB = $(GCC_TARGET_PREFIX)ranlib
550 OBJCOPY = $(GCC_TARGET_PREFIX)objcopy
551 OBJDUMP = $(GCC_TARGET_PREFIX)objdump
552endif
553endif
554
555ifdef USE_CXX
556 LINK = $(CXX)
557else
558 LINK = $(CC)
559endif
560
561#
562# コンパイルルールの定義
563#
564KERNEL_ALL_COBJS = $(KERNEL_COBJS) $(KERNEL_AUX_COBJS)
565
566$(KERNEL_ALL_COBJS): %.o: %.c
567 $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
568
569#$(KERNEL_ALL_COBJS:.o=.s): %.s: %.c
570# $(CC) -S $(CFLAGS) $(KERNEL_CFLAGS) $<
571
572$(KERNEL_LCOBJS): %.o:
573 $(CC) -DTOPPERS_$(*F) -o $@ -c $(CFLAGS) $(KERNEL_CFLAGS) $<
574
575#$(KERNEL_LCOBJS:.o=.s): %.s:
576# $(CC) -DTOPPERS_$(*F) -o $@ -S $(CFLAGS) $(KERNEL_CFLAGS) $<
577
578$(KERNEL_ASMOBJS): %.o: %.S
579 $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
580
581$(SYSSVC_COBJS): %.o: %.c
582 $(CC) -c $(CFLAGS) $(SYSSVC_CFLAGS) $<
583
584#$(SYSSVC_COBJS:.o=.s): %.s: %.c
585# $(CC) -S $(CFLAGS) $(SYSSVC_CFLAGS) $<
586
587$(SYSSVC_ASMOBJS): %.o: %.S
588 $(CC) -c $(CFLAGS) $(SYSSVC_CFLAGS) $<
589
590$(APPL_COBJS): %.o: %.c
591 $(CC) -c $(CFLAGS) $(APPL_CFLAGS) $<
592
593#$(APPL_COBJS:.o=.s): %.s: %.c
594# $(CC) -S $(CFLAGS) $(APPL_CFLAGS) $<
595
596$(APPL_CXXOBJS): %.o: %.cpp
597 $(CXX) -c $(CFLAGS) $(APPL_CFLAGS) $(CXXFLAGS) $<
598
599#$(APPL_CXXOBJS:.o=.s): %.s: %.cpp
600# $(CXX) -S $(CFLAGS) $(APPL_CFLAGS) $(CXXFLAGS) $<
601
602$(APPL_ASMOBJS): %.o: %.S
603 $(CC) -c $(CFLAGS) $(APPL_CFLAGS) $<
604
605#
606# デフォルトコンパイルルールを上書き
607#
608%.o: %.c
609 @echo "*** Default compile rules should not be used."
610 $(CC) -c $(CFLAGS) $<
611
612#%.s: %.c
613# @echo "*** Default compile rules should not be used."
614# $(CC) -S $(CFLAGS) $<
615
616%.o: %.cpp
617 @echo "*** Default compile rules should not be used."
618 $(CXX) -c $(CFLAGS) $(CXXFLAGS) $<
619
620#%.s: %.cpp
621# @echo "*** Default compile rules should not be used."
622# $(CXX) -S $(CFLAGS) $(CXXFLAGS) $<
623
624%.o: %.S
625 @echo "*** Default compile rules should not be used."
626 $(CC) -c $(CFLAGS) $<
Note: See TracBrowser for help on using the repository browser.