source: sample/Makefile @ 7

このファイルの 7 以降における最終更新内容7 で kominami が 2015/09/12 9:22:12 に更新しました

TOPPERS/ASP 1.9.1

ファイルサイズ: 15.0 KB
Rev 
[7]1#
2#  TOPPERS/ASP Kernel
3#      Toyohashi Open Platform for Embedded Real-Time Systems/
4#      Advanced Standard Profile Kernel
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 Embedded and Real-Time Systems Laboratory
9#              Graduate School of Information Science, Nagoya Univ., JAPAN
10#
11#  Ÿåµ­Ãøºîž¢ŒÔ€Ï¡€°Ê²Œ€Î(1)¡Á(4)€ÎŸò·ï€òËþ€¿€¹Ÿì¹ç€ËžÂ€ê¡€ËÜ¥œ¥Õ¥È¥Š¥§
12#  ¥¢¡ÊËÜ¥œ¥Õ¥È¥Š¥§¥¢€ò²þÊÑ€·€¿€â€Î€òŽÞ€à¡¥°Ê²ŒÆ±€ž¡Ë€ò»ÈÍÑ¡ŠÊ£Àœ¡Š²þ
13#  ÊÑ¡ŠºÆÇÛÉۡʰʲŒ¡€ÍøÍрȞƀ֡ˀ¹€ë€³€È€ò̵œþ€ÇµöÂú€¹€ë¡¥
14#  (1) ËÜ¥œ¥Õ¥È¥Š¥§¥¢€ò¥œ¡Œ¥¹¥³¡Œ¥É€Î·Á€ÇÍøÍÑ€¹€ëŸì¹ç€Ë€Ï¡€Ÿåµ­€ÎÃøºî
15#      ž¢ÉœŒš¡€€³€ÎÍøÍÑŸò·ï€ª€è€Ó²Œµ­€Î̵ÊÝŸÚµ¬Äꀬ¡€€œ€Î€Þ€Þ€Î·Á€Ç¥œ¡Œ
16#      ¥¹¥³¡Œ¥ÉÃæ€ËŽÞ€Þ€ì€Æ€€€ë€³€È¡¥
17#  (2) ËÜ¥œ¥Õ¥È¥Š¥§¥¢€ò¡€¥é¥€¥Ö¥é¥ê·ÁŒ°€Ê€É¡€ÂŸ€Î¥œ¥Õ¥È¥Š¥§¥¢³«È¯€Ë»È
18#      Íрǀ­€ë·Á€ÇºÆÇÛÉÛ€¹€ëŸì¹ç€Ë€Ï¡€ºÆÇÛÉÛ€ËÈŒ€Š¥É¥­¥å¥á¥ó¥È¡ÊÍøÍÑ
19#      ŒÔ¥Þ¥Ë¥å¥¢¥ë€Ê€É¡Ë€Ë¡€Ÿåµ­€ÎÃøºîž¢ÉœŒš¡€€³€ÎÍøÍÑŸò·ï€ª€è€Ó²Œµ­
20#      €Î̵ÊÝŸÚµ¬Äê€ò·ÇºÜ€¹€ë€³€È¡¥
21#  (3) ËÜ¥œ¥Õ¥È¥Š¥§¥¢€ò¡€µ¡Žï€ËÁȀ߹þ€à€Ê€É¡€ÂŸ€Î¥œ¥Õ¥È¥Š¥§¥¢³«È¯€Ë»È
22#      Íрǀ­€Ê€€·Á€ÇºÆÇÛÉÛ€¹€ëŸì¹ç€Ë€Ï¡€Œ¡€Î€€€º€ì€«€ÎŸò·ï€òËþ€¿€¹€³
23#      €È¡¥
24#    (a) ºÆÇÛÉÛ€ËÈŒ€Š¥É¥­¥å¥á¥ó¥È¡ÊÍøÍьԥޥ˥奢¥ë€Ê€É¡Ë€Ë¡€Ÿåµ­€ÎÃø
25#        ºîž¢ÉœŒš¡€€³€ÎÍøÍÑŸò·ï€ª€è€Ó²Œµ­€Î̵ÊÝŸÚµ¬Äê€ò·ÇºÜ€¹€ë€³€È¡¥
26#    (b) ºÆÇÛÉۀηÁÂÖ€ò¡€ÊÌ€ËÄê€á€ëÊýË¡€Ë€è€Ã€Æ¡€TOPPERS¥×¥í¥ž¥§¥¯¥È€Ë
27#        Êó¹ð€¹€ë€³€È¡¥
28#  (4) ËÜ¥œ¥Õ¥È¥Š¥§¥¢€ÎÍøÍрˀè€êÄŸÀÜŪ€Þ€¿€ÏŽÖÀÜŪ€ËÀž€ž€ë€€€«€Ê€ë»
29#      ³²€«€é€â¡€Ÿåµ­Ãøºîž¢ŒÔ€ª€è€ÓTOPPERS¥×¥í¥ž¥§¥¯¥È€òÌÈÀÕ€¹€ë€³€È¡¥
30#      €Þ€¿¡€ËÜ¥œ¥Õ¥È¥Š¥§¥¢€Î¥æ¡Œ¥¶€Þ€¿€Ï¥š¥ó¥É¥æ¡Œ¥¶€«€é€Î€€€«€Ê€ëÍý
31#      ͳ€ËŽð€Å€¯ÀÁµá€«€é€â¡€Ÿåµ­Ãøºîž¢ŒÔ€ª€è€ÓTOPPERS¥×¥í¥ž¥§¥¯¥È€ò
32#      ÌÈÀÕ€¹€ë€³€È¡¥
33#
34#  ËÜ¥œ¥Õ¥È¥Š¥§¥¢€Ï¡€ÌµÊÝŸÚ€ÇÄó¶¡€µ€ì€Æ€€€ë€â€Î€Ç€¢€ë¡¥Ÿåµ­Ãøºîž¢ŒÔ€ª
35#  €è€ÓTOPPERS¥×¥í¥ž¥§¥¯¥È€Ï¡€ËÜ¥œ¥Õ¥È¥Š¥§¥¢€ËŽØ€·€Æ¡€ÆÃÄê€Î»ÈÍÑÌÜŪ
36#  €ËÂЀ¹€ëŬ¹çÀ­€âŽÞ€á€Æ¡€€€€«€Ê€ëÊÝŸÚ€â¹Ô€ï€Ê€€¡¥€Þ€¿¡€ËÜ¥œ¥Õ¥È¥Š¥§
37#  ¥¢€ÎÍøÍрˀè€êÄŸÀÜŪ€Þ€¿€ÏŽÖÀÜŪ€ËÀž€ž€¿€€€«€Ê€ë»³²€ËŽØ€·€Æ€â¡€€œ
38#  €ÎÀÕÇ€€òÉé€ï€Ê€€¡¥
39#
40#  $Id$
41#
42
43#
44#  ¥¿¡Œ¥²¥Ã¥È€Î»ØÄê¡ÊMakefile.target€ÇŸåœñ€­€µ€ì€ë€Î€òËÉ€°€¿€á¡Ë
45#
46all:
47
48#
49#  ¥¿¡Œ¥²¥Ã¥ÈάŸÎ€ÎÄêµÁ
50#
51TARGET = @(TARGET)
52
53#
54#  ¥×¥í¥°¥é¥ß¥ó¥°žÀžì€ÎÄêµÁ
55#
56SRCLANG = @(SRCLANG)
57ifeq ($(SRCLANG),c)
58  LIBS = -lc
59endif
60ifeq ($(SRCLANG),c++)
61  USE_CXX = true
62  CXXLIBS = -lstdc++ -lm -lc
63  CXXRTS = cxxrt.o newlibrt.o
64endif
65
66#
67#  ¥œ¡Œ¥¹¥Õ¥¡¥€¥ë€Î¥Ç¥£¥ì¥¯¥È¥ê€ÎÄêµÁ
68#
69SRCDIR = @(SRCDIR)
70
71#
72#  ¥ª¥Ö¥ž¥§¥¯¥È¥Õ¥¡¥€¥ëÌŸ€Î³ÈÄ¥»Ò€ÎÀßÄê
73#
74OBJEXT = @(OBJEXT)
75
76#
77#  ŒÂ¹ÔŽÄ¶­€ÎÄêµÁ¡Ê¥¿¡Œ¥²¥Ã¥È°Íž€ËŸåœñ€­€µ€ì€ëŸì¹ç€¬€¢€ë¡Ë
78#
79DBGENV := @(DBGENV)
80
81#
82#  ¥«¡Œ¥Í¥ë¥é¥€¥Ö¥é¥ê¡Êlibkernel.a¡Ë€Î¥Ç¥£¥ì¥¯¥È¥êÌŸ
83#  ¡Ê¥«¡Œ¥Í¥ë¥é¥€¥Ö¥é¥ê€âmakeÂП݀ˀ¹€ë»þ€Ï¡€¶õ€ËÄêµÁ€¹€ë¡Ë
84#
85KERNEL_LIB = @(KERNEL_LIB)
86
87#
88#  ¥«¡Œ¥Í¥ë€òŽØ¿ôñ°Ì€Ç¥³¥ó¥Ñ¥€¥ë€¹€ë€«€É€Š€«€ÎÄêµÁ
89#
90KERNEL_FUNCOBJS = @(KERNEL_FUNCOBJS)
91
92#
93#  ¥È¥ì¡Œ¥¹¥í¥°€òŒèÆÀ€¹€ë€«€É€Š€«€ÎÄêµÁ
94#
95ENABLE_TRACE = @(ENABLE_TRACE)
96
97#
98#  ¥æ¡Œ¥Æ¥£¥ê¥Æ¥£¥×¥í¥°¥é¥à€ÎÌŸŸÎ
99#
100PERL = @(PERL)
101CFG = @(CFG)
102
103#
104#  ¥ª¥Ö¥ž¥§¥¯¥È¥Õ¥¡¥€¥ëÌŸ€ÎÄêµÁ
105#
106OBJNAME = asp
107ifdef OBJEXT
108  OBJFILE = $(OBJNAME).$(OBJEXT)
109  CFG1_OUT = cfg1_out.$(OBJEXT)
110else
111  OBJFILE = $(OBJNAME)
112  CFG1_OUT = cfg1_out
113endif
114
115#
116#  ¥¿¡Œ¥²¥Ã¥È°ÍžÉô€Î¥Ç¥£¥ì¥¯¥È¥ê€ÎÄêµÁ
117#
118TARGETDIR = $(SRCDIR)/target/$(TARGET)
119
120#
121#  ¥¿¡Œ¥²¥Ã¥È°Íž€ÎÄêµÁ€Î¥€¥ó¥¯¥ë¡Œ¥É
122#
123include $(TARGETDIR)/Makefile.target
124
125#
126#  ¥³¥ó¥Õ¥£¥®¥å¥ì¡Œ¥¿ŽØ·ž€ÎÊÑ¿ô€ÎÄêµÁ
127#
128CFG_TABS := --api-table $(SRCDIR)/kernel/kernel_api.csv \
129                        --cfg1-def-table $(SRCDIR)/kernel/kernel_def.csv $(CFG_TABS)
130
131CFG_ASMOBJS := $(CFG_ASMOBJS)
132CFG_COBJS := kernel_cfg.o $(CFG_COBJS)
133CFG_OBJS := $(CFG_ASMOBJS) $(CFG_COBJS)
134CFG2_OUT_SRCS := kernel_cfg.h kernel_cfg.c $(CFG2_OUT_SRCS)
135
136#
137#  ¶ŠÄÌ¥³¥ó¥Ñ¥€¥ë¥ª¥×¥·¥ç¥ó€ÎÄêµÁ
138#
139COPTS := $(COPTS) -g @(COPTS)
140ifndef OMIT_WARNING_ALL
141  COPTS := $(COPTS) -Wall
142endif
143ifndef OMIT_OPTIMIZATION
144  COPTS := $(COPTS) -O2
145endif
146CDEFS := $(CDEFS) @(CDEFS)
147INCLUDES := -I. -I$(SRCDIR)/include -I$(SRCDIR)/arch -I$(SRCDIR) $(INCLUDES)
148LDFLAGS := $(LDFLAGS) @(LDFLAGS)
149CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS) @(LDFLAGS)
150LIBS := $(LIBS) $(CXXLIBS)
151CFLAGS = $(COPTS) $(CDEFS) $(INCLUDES)
152
153#
154#  ¥¢¥×¥ê¥±¡Œ¥·¥ç¥ó¥×¥í¥°¥é¥à€ËŽØ€¹€ëÄêµÁ
155#
156APPLNAME = @(APPLNAME)
157APPLDIR = @(APPLDIR)
158APPL_CFG = $(APPLNAME).cfg
159
160APPL_DIR = $(APPLDIR) $(SRCDIR)/library
161APPL_ASMOBJS =
162ifdef USE_CXX
163  APPL_CXXOBJS = $(APPLNAME).o @(APPLOBJS)
164  APPL_COBJS =
165else
166  APPL_COBJS = $(APPLNAME).o @(APPLOBJS)
167endif
168APPL_COBJS := $(APPL_COBJS) log_output.o vasyslog.o t_perror.o strerror.o
169APPL_CFLAGS =
170APPL_LIBS =
171ifdef APPLDIR
172  INCLUDES := $(INCLUDES) $(foreach dir,$(APPLDIR),-I$(dir))
173endif
174
175#
176#  ¥·¥¹¥Æ¥à¥µ¡Œ¥Ó¥¹€ËŽØ€¹€ëÄêµÁ
177#
178SYSSVC_DIR := $(SYSSVC_DIR) $(SRCDIR)/syssvc $(SRCDIR)/library
179SYSSVC_ASMOBJS := $(SYSSVC_ASMOBJS)
180SYSSVC_COBJS := $(SYSSVC_COBJS) banner.o syslog.o serial.o logtask.o \
181                                @(SYSSVCOBJS) $(CXXRTS)
182SYSSVC_CFLAGS := $(SYSSVC_CFLAGS)
183SYSSVC_LIBS := $(SYSSVC_LIBS)
184INCLUDES := $(INCLUDES)
185
186#
187#  ¥«¡Œ¥Í¥ë€ËŽØ€¹€ëÄêµÁ
188#
189#  KERNEL_ASMOBJS: ¥«¡Œ¥Í¥ë¥é¥€¥Ö¥é¥ê€ËŽÞ€á€ë¡€¥œ¡Œ¥¹€¬¥¢¥»¥ó¥Ö¥êžÀžì€Î
190#                                  ¥ª¥Ö¥ž¥§¥¯¥È¥Õ¥¡¥€¥ë¡¥
191#  KERNEL_COBJS: ¥«¡Œ¥Í¥ë€Î¥é¥€¥Ö¥é¥ê€ËŽÞ€á€ë¡€¥œ¡Œ¥¹€¬CžÀžì€Ç¡€¥œ¡Œ¥¹
192#                                ¥Õ¥¡¥€¥ë€È1ÂÐ1€ËÂбþ€¹€ë¥ª¥Ö¥ž¥§¥¯¥È¥Õ¥¡¥€¥ë¡¥
193#  KERNEL_LCSRCS: ¥«¡Œ¥Í¥ë€Î¥é¥€¥Ö¥é¥ê€ËŽÞ€á€ëCžÀžì€Î¥œ¡Œ¥¹¥Õ¥¡¥€¥ë€Ç¡€
194#                                 1€Ä€Î¥œ¡Œ¥¹¥Õ¥¡¥€¥ë€«€éÊ£¿ô€Î¥ª¥Ö¥ž¥§¥¯¥È¥Õ¥¡¥€¥ë€òÀž
195#                                 À®€¹€ë€â€Î¡¥
196#  KERNEL_LCOBJS: Ÿå€Î¥œ¡Œ¥¹¥Õ¥¡¥€¥ë€«€éÀžÀ®€µ€ì€ë¥ª¥Ö¥ž¥§¥¯¥È¥Õ¥¡¥€¥ë¡¥
197#  KERNEL_AUX_COBJS: ¥í¡Œ¥É¥â¥ž¥å¡Œ¥ë€ËŽÞ€á€Ê€€€¬¡€¥«¡Œ¥Í¥ë€Î¥œ¡Œ¥¹¥Õ¥¡
198#                                        ¥€¥ë€ÈƱ€ž¥ª¥×¥·¥ç¥ó€òŬÍÑ€·€Æ¥³¥ó¥Ñ¥€¥ë€¹€Ù€­¡€¥œ¡Œ
199#                                        ¥¹€¬CžÀžì€Î¥ª¥Ö¥ž¥§¥¯¥È¥Õ¥¡¥€¥ë¡¥
200#
201KERNEL_DIR := $(KERNEL_DIR) $(SRCDIR)/kernel
202KERNEL_ASMOBJS := $(KERNEL_ASMOBJS)
203KERNEL_COBJS := $(KERNEL_COBJS)
204KERNEL_CFLAGS := $(KERNEL_CFLAGS) -I$(SRCDIR)/kernel
205ifdef OMIT_MAKEOFFSET
206  OFFSET_H =
207else
208  OFFSET_H = offset.h
209ifndef OFFSET_TF
210  KERNEL_AUX_COBJS := $(KERNEL_AUX_COBJS) makeoffset.o
211endif
212endif
213
214#
215#  ¥¿¡Œ¥²¥Ã¥È¥Õ¥¡¥€¥ë¡ÊÊ£¿ô€òƱ»þ€ËÁªÂò€·€Æ€Ï€Ê€é€Ê€€¡Ë
216#
217all: $(OBJFILE)
218#all: $(OBJNAME).bin
219#all: $(OBJNAME).srec
220
221##### °Ê²Œ€ÏÊÔœž€·€Ê€€€³€È #####
222
223#
224#  ŽÄ¶­€Ë°Íž€¹€ë¥³¥ó¥Ñ¥€¥ë¥ª¥×¥·¥ç¥ó€ÎÄêµÁ
225#
226ifdef DBGENV
227  CDEFS := $(CDEFS) -D$(DBGENV)
228endif
229
230#
231#  ¥«¡Œ¥Í¥ë€Î¥Õ¥¡¥€¥ë¹œÀ®€ÎÄêµÁ
232#
233include $(SRCDIR)/kernel/Makefile.kernel
234ifdef KERNEL_FUNCOBJS
235  KERNEL_LCSRCS := $(KERNEL_FCSRCS)
236  KERNEL_LCOBJS := $(foreach file,$(KERNEL_FCSRCS),$($(file:.c=)))
237else
238  KERNEL_CFLAGS := -DALLFUNC $(KERNEL_CFLAGS)
239  KERNEL_COBJS := $(KERNEL_COBJS) \
240                                        $(foreach file,$(KERNEL_FCSRCS),$(file:.c=.o))
241endif
242
243#
244#  ¥œ¡Œ¥¹¥Õ¥¡¥€¥ë€Î€¢€ë¥Ç¥£¥ì¥¯¥È¥ê€ËŽØ€¹€ëÄêµÁ
245#
246vpath %.c $(KERNEL_DIR) $(SYSSVC_DIR) $(APPL_DIR)
247vpath %.S $(KERNEL_DIR) $(SYSSVC_DIR) $(APPL_DIR)
248vpath %.cfg $(APPL_DIR)
249
250#
251#  ¥³¥ó¥Ñ¥€¥ë€Î€¿€á€ÎÊÑ¿ô€ÎÄêµÁ
252#
253KERNEL_LIB_OBJS = $(KERNEL_ASMOBJS) $(KERNEL_COBJS) $(KERNEL_LCOBJS)
254SYSSVC_OBJS = $(SYSSVC_ASMOBJS) $(SYSSVC_COBJS)
255APPL_OBJS = $(APPL_ASMOBJS) $(APPL_COBJS) $(APPL_CXXOBJS)
256ALL_OBJS = $(START_OBJS) $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) \
257                                                                                        $(END_OBJS) $(HIDDEN_OBJS)
258ifdef KERNEL_LIB
259  ALL_LIBS = $(APPL_LIBS) $(SYSSVC_LIBS) -lkernel $(LIBS)
260  LIBS_DEP = $(filter %.a,$(ALL_LIBS)) $(KERNEL_LIB)/libkernel.a
261  LDFLAGS := $(LDFLAGS) -L$(KERNEL_LIB)
262  REALCLEAN_FILES := libkernel.a $(REALCLEAN_FILES)
263else
264  ALL_LIBS = $(APPL_LIBS) $(SYSSVC_LIBS) libkernel.a $(LIBS)
265  LIBS_DEP = $(filter %.a,$(ALL_LIBS))
266endif
267
268ifdef TEXT_START_ADDRESS
269  LDFLAGS := $(LDFLAGS) -Wl,-Ttext,$(TEXT_START_ADDRESS)
270  CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS) -Wl,-Ttext,$(TEXT_START_ADDRESS)
271endif
272ifdef DATA_START_ADDRESS
273  LDFLAGS := $(LDFLAGS) -Wl,-Tdata,$(DATA_START_ADDRESS)
274  CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS) -Wl,-Tdata,$(DATA_START_ADDRESS)
275endif
276ifdef LDSCRIPT
277  LDFLAGS := $(LDFLAGS) -T $(LDSCRIPT)
278  CFG1_OUT_LDFLAGS := $(CFG1_OUT_LDFLAGS) -T $(LDSCRIPT)
279endif
280
281#
282#  ¥ª¥Õ¥»¥Ã¥È¥Õ¥¡¥€¥ë¡Êoffset.h¡Ë€ÎÀžÀ®µ¬Â§
283#
284ifdef OFFSET_TF
285offset.h: $(APPL_CFG) kernel_cfg.timestamp
286        $(CFG) --pass 3 --kernel asp $(INCLUDES) \
287                                --rom-image cfg1_out.srec --symbol-table cfg1_out.syms \
288                                -T $(OFFSET_TF) $(CFG_TABS) $<
289else
290offset.h: makeoffset.s $(SRCDIR)/utils/genoffset
291        $(PERL) $(SRCDIR)/utils/genoffset makeoffset.s > offset.h
292endif
293
294#
295#  ¥«¡Œ¥Í¥ë€Î¥³¥ó¥Õ¥£¥®¥å¥ì¡Œ¥·¥ç¥ó¥Õ¥¡¥€¥ë€ÎÀžÀ®
296#
297cfg1_out.c: $(APPL_CFG)
298        $(CFG) --pass 1 --kernel asp $(INCLUDES) $(CFG_TABS) $<
299
300$(CFG2_OUT_SRCS): kernel_cfg.timestamp
301kernel_cfg.timestamp: $(APPL_CFG) \
302                                                $(START_OBJS) cfg1_out.o $(END_OBJS) $(HIDDEN_OBJS)
303        $(LINK) $(CFLAGS) $(CFG1_OUT_LDFLAGS) -o $(CFG1_OUT) \
304                                                $(START_OBJS) cfg1_out.o $(END_OBJS)
305        $(NM) -n $(CFG1_OUT) > cfg1_out.syms
306        $(OBJCOPY) -O srec -S $(CFG1_OUT) cfg1_out.srec
307        $(CFG) --pass 2 --kernel asp $(INCLUDES) \
308                                -T $(TARGETDIR)/target.tf $(CFG_TABS) $<
309        touch -r kernel_cfg.c kernel_cfg.timestamp
310
311#
312#  ¥«¡Œ¥Í¥ë¥é¥€¥Ö¥é¥ê¥Õ¥¡¥€¥ë€ÎÀžÀ®
313#
314libkernel.a: $(OFFSET_H) $(KERNEL_LIB_OBJS)
315        rm -f libkernel.a
316        $(AR) -rcs libkernel.a $(KERNEL_LIB_OBJS)
317        $(RANLIB) libkernel.a
318
319#
320#  ÆÃỀʰÍÂžŽØ·ž€ÎÄêµÁ
321#
322banner.o: kernel_cfg.timestamp $(filter-out banner.o,$(ALL_OBJS)) $(LIBS_DEP)
323
324#
325#  ÁŽÂ΀Υê¥ó¥¯
326#
327$(OBJFILE): $(APPL_CFG) kernel_cfg.timestamp $(ALL_OBJS) $(LIBS_DEP)
328        $(LINK) $(CFLAGS) $(LDFLAGS) -o $(OBJFILE) $(START_OBJS) \
329                        $(APPL_OBJS) $(SYSSVC_OBJS) $(CFG_OBJS) $(ALL_LIBS) $(END_OBJS)
330        $(NM) -n $(OBJFILE) > $(OBJNAME).syms
331        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
332        $(CFG) --pass 3 --kernel asp $(INCLUDES) \
333                                --rom-image $(OBJNAME).srec --symbol-table $(OBJNAME).syms \
334                                -T $(TARGETDIR)/target_check.tf $(CFG_TABS) $<
335
336#
337#  ¥Ð¥€¥Ê¥ê¥Õ¥¡¥€¥ë€ÎÀžÀ®
338#
339$(OBJNAME).bin: $(OBJFILE)
340        $(OBJCOPY) -O binary -S $(OBJFILE) $(OBJNAME).bin
341
342#
343#  S¥ì¥³¡Œ¥É¥Õ¥¡¥€¥ë€ÎÀžÀ®
344#
345$(OBJNAME).srec: $(OBJFILE)
346        $(OBJCOPY) -O srec -S $(OBJFILE) $(OBJNAME).srec
347
348#
349#  ¥³¥ó¥Ñ¥€¥ë·ë²Ì€ÎŸÃµî
350#
351.PHONY: clean
352clean:
353        rm -f \#* *~ *.o $(CLEAN_FILES)
354        rm -f $(OBJFILE) $(OBJNAME).syms $(OBJNAME).srec $(OBJNAME).bin
355        rm -f kernel_cfg.timestamp $(CFG2_OUT_SRCS)
356        rm -f cfg1_out.c $(CFG1_OUT) cfg1_out.syms cfg1_out.srec
357ifndef KERNEL_LIB
358        rm -f libkernel.a
359endif
360        rm -f makeoffset.s offset.h
361
362.PHONY: cleankernel
363cleankernel:
364        rm -rf $(KERNEL_LIB_OBJS)
365        rm -f makeoffset.s offset.h
366
367.PHONY: cleandep
368cleandep:
369        if ! [ -f Makefile.depend ]; then \
370                rm -f kernel_cfg.timestamp $(CFG2_OUT_SRCS); \
371                rm -f cfg1_out.c cfg1_out.o $(CFG1_OUT) cfg1_out.syms cfg1_out.srec; \
372                rm -f makeoffset.s offset.h; \
373        fi
374        rm -f Makefile.depend
375
376.PHONY: realclean
377realclean: cleandep clean
378        rm -f $(REALCLEAN_FILES)
379
380#
381#  ¥³¥ó¥Õ¥£¥®¥å¥ì¡Œ¥¿€¬ÀžÀ®€·€¿¥Õ¥¡¥€¥ë€Î¥³¥ó¥Ñ¥€¥ë¥ë¡Œ¥ë€È°ÍÂžŽØ·žºîÀ®
382#  ¥ë¡Œ¥ë€ÎÄêµÁ
383#
384#  ¥³¥ó¥Õ¥£¥®¥å¥ì¡Œ¥¿€¬ÀžÀ®€·€¿¥Õ¥¡¥€¥ë€Ï¡€¥¢¥×¥ê¥±¡Œ¥·¥ç¥ó¥×¥í¥°¥é¥àÍÑ¡€
385#  ¥·¥¹¥Æ¥à¥µ¡Œ¥Ó¥¹ÍÑ¡€¥«¡Œ¥Í¥ëÍр΀¹€Ù€Æ€Î¥ª¥×¥·¥ç¥ó€òÉÕ€±€Æ¥³¥ó¥Ñ¥€¥ë
386#  €¹€ë¡¥
387#
388ALL_CFG_COBJS = $(CFG_COBJS) cfg1_out.o
389ALL_CFG_ASMOBJS = $(CFG_ASMOBJS)
390CFG_CFLAGS = $(APPL_CFLAGS) $(SYSSVC_CFLAGS) $(KERNEL_CFLAGS)
391
392$(ALL_CFG_COBJS): %.o: %.c
393        $(CC) -c $(CFLAGS) $(CFG_CFLAGS) $<
394
395$(ALL_CFG_COBJS:.o=.s): %.s: %.c
396        $(CC) -S $(CFLAGS) $(CFG_CFLAGS) $<
397
398$(ALL_CFG_COBJS:.o=.d): %.d: %.c
399        @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
400                -O "$(CFLAGS) $(CFG_CFLAGS)" $< >> Makefile.depend
401
402$(ALL_CFG_ASMOBJS): %.o: %.S
403        $(CC) -c $(CFLAGS) $(CFG_CFLAGS) $<
404
405$(ALL_CFG_ASMOBJS:.o=.d): %.d: %.S
406        @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
407                -O "$(CFLAGS) $(CFG_CFLAGS)" $< >> Makefile.depend
408
409#
410#  ÆÃŒì€Ê°ÍÂžŽØ·žºîÀ®¥ë¡Œ¥ë€ÎÄêµÁ
411#
412cfg1_out.depend: $(APPL_CFG)
413        @$(CFG) -M cfg1_out.c $(INCLUDES) $< >> Makefile.depend
414
415makeoffset.d: makeoffset.c
416        @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
417                -T "makeoffset.s" -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
418
419#
420#  °ÍÂžŽØ·ž¥Õ¥¡¥€¥ë€ÎÀžÀ®
421#
422.PHONY: gendepend
423gendepend:
424        @echo "Generating Makefile.depend."
425
426.PHONY: depend
427ifdef KERNEL_LIB
428depend: cleandep kernel_cfg.timestamp gendepend \
429                cfg1_out.depend cfg1_out.d \
430                $(ALL_OBJS:.o=.d)
431else
432depend: cleandep $(OFFSET_H) kernel_cfg.timestamp gendepend \
433                cfg1_out.depend cfg1_out.d \
434                $(KERNEL_AUX_COBJS:.o=.d) $(KERNEL_ASMOBJS:.o=.d) \
435                $(KERNEL_COBJS:.o=.d) $(KERNEL_LCSRCS:.c=.d) $(ALL_OBJS:.o=.d)
436endif
437
438#
439#  °ÍÂžŽØ·ž¥Õ¥¡¥€¥ë€ò¥€¥ó¥¯¥ë¡Œ¥É
440#
441-include Makefile.depend
442
443#
444#  ³«È¯¥Ä¡Œ¥ë€Î¥³¥Þ¥ó¥ÉÌŸ€ÎÄêµÁ
445#
446ifeq ($(TOOL),gcc)
447  #
448  #  GNU³«È¯ŽÄ¶­ÍÑ
449  #
450  ifdef GCC_TARGET
451    GCC_TARGET_PREFIX = $(GCC_TARGET)-
452  else
453    GCC_TARGET_PREFIX =
454  endif
455  CC = $(GCC_TARGET_PREFIX)gcc
456  CXX = $(GCC_TARGET_PREFIX)g++
457  AS = $(GCC_TARGET_PREFIX)as
458  LD = $(GCC_TARGET_PREFIX)ld
459  AR = $(GCC_TARGET_PREFIX)ar
460  NM = $(GCC_TARGET_PREFIX)nm
461  RANLIB = $(GCC_TARGET_PREFIX)ranlib
462  OBJCOPY = $(GCC_TARGET_PREFIX)objcopy
463  OBJDUMP = $(GCC_TARGET_PREFIX)objdump
464endif
465
466ifdef USE_CXX
467  LINK = $(CXX)
468else
469  LINK = $(CC)
470endif
471
472#
473#  ¥³¥ó¥Ñ¥€¥ë¥ë¡Œ¥ë€ÎÄêµÁ
474#
475KERNEL_ALL_COBJS = $(KERNEL_COBJS) $(KERNEL_AUX_COBJS)
476
477$(KERNEL_ALL_COBJS): %.o: %.c
478        $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
479
480$(KERNEL_ALL_COBJS:.o=.s): %.s: %.c
481        $(CC) -S $(CFLAGS) $(KERNEL_CFLAGS) $<
482
483$(KERNEL_LCOBJS): %.o:
484        $(CC) -DTOPPERS_$(*F) -o $@ -c $(CFLAGS) $(KERNEL_CFLAGS) $<
485
486$(KERNEL_LCOBJS:.o=.s): %.s:
487        $(CC) -DTOPPERS_$(*F) -o $@ -S $(CFLAGS) $(KERNEL_CFLAGS) $<
488
489$(KERNEL_ASMOBJS): %.o: %.S
490        $(CC) -c $(CFLAGS) $(KERNEL_CFLAGS) $<
491
492$(SYSSVC_COBJS): %.o: %.c
493        $(CC) -c $(CFLAGS) $(SYSSVC_CFLAGS) $<
494
495$(SYSSVC_COBJS:.o=.s): %.s: %.c
496        $(CC) -S $(CFLAGS) $(SYSSVC_CFLAGS) $<
497
498$(SYSSVC_ASMOBJS): %.o: %.S
499        $(CC) -c $(CFLAGS) $(SYSSVC_CFLAGS) $<
500
501$(APPL_COBJS): %.o: %.c
502        $(CC) -c $(CFLAGS) $(APPL_CFLAGS) $<
503
504$(APPL_COBJS:.o=.s): %.s: %.c
505        $(CC) -S $(CFLAGS) $(APPL_CFLAGS) $<
506
507$(APPL_CXXOBJS): %.o: %.cpp
508        $(CXX) -c $(CFLAGS) $(APPL_CFLAGS) $<
509
510$(APPL_CXXOBJS:.o=.s): %.s: %.cpp
511        $(CXX) -S $(CFLAGS) $(APPL_CFLAGS) $<
512
513$(APPL_ASMOBJS): %.o: %.S
514        $(CC) -c $(CFLAGS) $(APPL_CFLAGS) $<
515
516#
517#  °ÍÂžŽØ·žºîÀ®¥ë¡Œ¥ë€ÎÄêµÁ
518#
519$(KERNEL_COBJS:.o=.d): %.d: %.c
520        @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
521                -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
522
523$(KERNEL_LCSRCS:.c=.d): %.d: %.c
524        @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) -T "$($*)" \
525                -O "-DALLFUNC $(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
526
527$(KERNEL_ASMOBJS:.o=.d): %.d: %.S
528        @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
529                -O "$(CFLAGS) $(KERNEL_CFLAGS)" $< >> Makefile.depend
530
531$(SYSSVC_COBJS:.o=.d): %.d: %.c
532        @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
533                -O "$(CFLAGS) $(SYSSVC_CFLAGS)" $< >> Makefile.depend
534
535$(SYSSVC_ASMOBJS:.o=.d): %.d: %.S
536        @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
537                -O "$(CFLAGS) $(SYSSVC_CFLAGS)" $< >> Makefile.depend
538
539$(APPL_COBJS:.o=.d): %.d: %.c
540        @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
541                -O "$(CFLAGS) $(APPL_CFLAGS)" $< >> Makefile.depend
542
543$(APPL_CXXOBJS:.o=.d): %.d: %.cpp
544        @$(PERL) $(SRCDIR)/utils/makedep -C $(CXX) $(MAKEDEP_OPTS) \
545                -O "$(CFLAGS) $(APPL_CFLAGS)" $< >> Makefile.depend
546
547$(APPL_ASMOBJS:.o=.d): %.d: %.S
548        @$(PERL) $(SRCDIR)/utils/makedep -C $(CC) $(MAKEDEP_OPTS) \
549                -O "$(CFLAGS) $(APPL_CFLAGS)" $< >> Makefile.depend
550
551#
552#  ¥Ç¥Õ¥©¥ë¥È¥³¥ó¥Ñ¥€¥ë¥ë¡Œ¥ë€òŸåœñ€­
553#
554%.o: %.c
555        @echo "*** Default compile rules should not be used."
556        $(CC) -c $(CFLAGS) $<
557
558%.s: %.c
559        @echo "*** Default compile rules should not be used."
560        $(CC) -S $(CFLAGS) $<
561
562%.o: %.cpp
563        @echo "*** Default compile rules should not be used."
564        $(CXX) -c $(CFLAGS) $<
565
566%.s: %.cpp
567        @echo "*** Default compile rules should not be used."
568        $(CXX) -S $(CFLAGS) $<
569
570%.o: %.S
571        @echo "*** Default compile rules should not be used."
572        $(CC) -c $(CFLAGS) $<
詳しい使い方は TracBrowser を参照してください。