source: EcnlProtoTool/trunk/asp3_dcre/tinet/Makefile.tinet@ 321

Last change on this file since 321 was 321, checked in by coas-nagasima, 7 years ago

文字コードを設定

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-makefile;charset=UTF-8
File size: 9.8 KB
Line 
1#
2# TINET (TCP/IP Protocol Stack)
3#
4# Copyright (C) 2001-2009 by Dep. of Computer Science and Engineering
5# Tomakomai National College of Technology, JAPAN
6# Copyright (C) 2008-2009 by Hokkaido Industrial Research Institute, JAPAN
7#
8# 上記著作権者は,以下の (1)~(4) の条件か,Free Software Foundation
9# によって公表されている GNU General Public License の Version 2 に記
10# 述されている条件を満たす場合に限り,本ソフトウェア(本ソフトウェア
11# を改変したものを含む.以下同じ)を使用・複製・改変・再配布(以下,
12# 利用と呼ぶ)することを無償で許諾する.
13# (1) 本ソフトウェアをソースコードの形で利用する場合には,上記の著作
14# 権表示,この利用条件および下記の無保証規定が,そのままの形でソー
15# スコード中に含まれていること.
16# (2) 本ソフトウェアを,ライブラリ形式など,他のソフトウェア開発に使
17# 用できる形で再配布する場合には,再配布に伴うドキュメント(利用
18# 者マニュアルなど)に,上記の著作権表示,この利用条件および下記
19# の無保証規定を掲載すること.
20# (3) 本ソフトウェアを,機器に組み込むなど,他のソフトウェア開発に使
21# 用できない形で再配布する場合には,次の条件を満たすこと.
22# (a) 再配布に伴うドキュメント(利用者マニュアルなど)に,上記の著
23# 作権表示,この利用条件および下記の無保証規定を掲載すること.
24# (4) 本ソフトウェアの利用により直接的または間接的に生じるいかなる損
25# 害からも,上記著作権者およびTOPPERSプロジェクトを免責すること.
26#
27# 本ソフトウェアは,無保証で提供されているものである.上記著作権者お
28# よびTOPPERSプロジェクトは,本ソフトウェアに関して,その適用可能性も
29# 含めて,いかなる保証も行わない.また,本ソフトウェアの利用により直
30# 接的または間接的に生じたいかなる損害に関しても,その責任を負わない.
31#
32# @(#) $Id$
33#
34
35#
36# 「ミドルウェアの Makefile のインクルード」に追加する。
37#
38
39#
40# カーネルの識別
41#
42ifdef SRCLANG
43 TARGET_KERNEL = ASP
44 TINET_CDEFS := $(TINET_CDEFS) -DTARGET_KERNEL_ASP
45else
46 TARGET_KERNEL = JSP
47 TINET_CDEFS := $(TINET_CDEFS) -DTARGET_KERNEL_JSP
48endif
49
50#
51# TINET ソースファイルのディレクトリの定義
52#
53TINET_ROOT = $(SRCDIR)/tinet
54
55#
56# TINET 1.1 との互換性のための定義
57#
58ifndef SUPPORT_INET4
59 ifndef SUPPORT_INET6
60 SUPPORT_INET4 = true
61 endif
62endif
63
64#
65# ネットワークサービスに関する定義
66#
67TINET_DIR = $(TINET_ROOT)/net:$(TINET_ROOT)/netinet
68
69TINET_COBJS := $(TINET_COBJS) \
70 net_buf.o net_count.o net_subr.o net_timer.o \
71 in_subr.o tinet_cfg.o route_cfg.o
72
73ifeq ($(SUPPORT_INET4),true)
74
75 TINET_COBJS := $(TINET_COBJS) \
76 ip_input.o ip_output.o ip_icmp.o
77 TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet/ip.cfg
78 TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_INET4
79
80endif
81
82ifeq ($(SUPPORT_INET6),true)
83
84 TINET_DIR := $(TINET_DIR):$(TINET_ROOT)/netinet6
85 TINET_COBJS := $(TINET_COBJS) \
86 in6.o in6_ifattach.o nd6_rtr.o \
87 in6_subr.o ip6_input.o icmp6.o \
88 dest6.o route6.o frag6.o \
89 ah_input.o esp_input.o \
90 nd6.o nd6_nbr.o ip6_output.o scope6.o
91 TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet6/ip6.cfg
92 TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_INET6
93
94endif
95
96ifeq ($(NET_IF),loop)
97
98 TINET_COBJS := $(TINET_COBJS) if_loop.o
99 TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/net/if_loop.cfg
100 TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_LOOP
101
102endif
103
104ifeq ($(NET_IF),ppp)
105
106 TINET_COBJS := $(TINET_COBJS) \
107 ppp.o ppp_hdlc.o ppp_lcp.o ppp_fsm.o \
108 ppp_auth.o ppp_ipcp.o ppp_upap.o
109 TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/net/ppp.cfg
110 TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_PPP
111
112ifeq ($(PPP_CFG_MODEM),true)
113
114 TINET_COBJS := $(TINET_COBJS) ppp_modem.o
115 TINET_CDEFS := $(TINET_CDEFS) -DPPP_CFG_MODEM
116
117endif
118
119endif
120
121# ターゲット依存の定義のインクルード
122
123ifeq ($(TARGET_KERNEL),ASP)
124
125 -include $(TARGETDIR)/Makefile.tinet
126
127endif
128
129ifeq ($(TARGET_KERNEL),JSP)
130
131 ifdef TOOL
132 ifdef SYS
133 -include $(SRCDIR)/config/$(CPU)-$(TOOL)/$(SYS)/Makefile.tinet
134 endif
135 -include $(SRCDIR)/config/$(CPU)-$(TOOL)/Makefile.tinet
136 else
137 ifdef SYS
138 -include $(SRCDIR)/config/$(CPU)/$(SYS)/Makefile.tinet
139 endif
140 -include $(SRCDIR)/config/$(CPU)/Makefile.tinet
141 endif
142
143endif
144
145ifeq ($(NET_IF),ether)
146
147 TINET_COBJS := $(TINET_COBJS) if.o ethernet.o
148 TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/net/ethernet.cfg
149 TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_ETHER
150
151 ifeq ($(SUPPORT_INET4),true)
152
153 TINET_COBJS := $(TINET_COBJS) if_ether.o
154 TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet/if_ether.cfg
155
156 endif
157
158 ifeq ($(SUPPORT_INET6),true)
159
160 TINET_COBJS := $(TINET_COBJS) if6_ether.o
161
162 endif
163
164
165 include $(TINET_ROOT)/netdev/$(NET_DEV)/Makefile.tinet
166
167endif
168
169ifeq ($(SUPPORT_TCP),true)
170
171 TINET_COBJS := $(TINET_COBJS) \
172 tcp_input.o tcp_output.o tcp_timer.o \
173 tcp_subr.o tcp_subr_cs.o tcp_subr_ncs.o
174 TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet/tcp.cfg
175 TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_TCP
176
177endif
178
179ifeq ($(SUPPORT_UDP),true)
180
181 TINET_COBJS := $(TINET_COBJS) \
182 udp_input.o udp_output.o udp_subr.o
183 TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet/udp.cfg
184 TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_UDP
185
186endif
187
188#
189# TINET ライブラリの定義
190#
191
192ifeq ($(NO_USE_TINET_LIBRARY),true)
193
194 ifeq ($(SUPPORT_TCP),true)
195
196 TINET_COBJS := $(TINET_COBJS) tcp_usrreq.o
197
198 endif
199
200 ifeq ($(SUPPORT_UDP),true)
201
202 TINET_COBJS := $(TINET_COBJS) udp_usrreq.o
203
204 endif
205
206else
207
208 ifeq ($(SUPPORT_TCP),true)
209
210 TINET_LCSRCS := $(TINET_LCSRCS) tcp_usrreq.c
211
212 endif
213
214 ifeq ($(SUPPORT_UDP),true)
215
216 TINET_LCSRCS := $(TINET_LCSRCS) udp_usrreq.c
217
218 endif
219
220 TINET_CDEFS := $(TINET_CDEFS) -DTCP_CFG_LIBRARY -DUDP_CFG_LIBRARY
221
222 ifdef TINET_LIB
223 MAKE_TINET_LIB :=
224 LIBTINET := $(TINET_LIB)/libtinet.a
225 else
226 MAKE_TINET_LIB := libtinet.a
227 LIBTINET := $(MAKE_TINET_LIB)
228 endif
229
230 MAKE_MTASK := $(MAKE_MTASK) $(LIBTINET)
231
232endif
233
234#
235# ライブラリ化するソースファイルから生成される
236# オブジェクトファイルの定義
237#
238TINET_LCOBJS = $(foreach file,$(TINET_LCSRCS),$($(file:.c=)))
239
240tcp_usrreq = tcp_cre_rep.o tcp_del_rep.o \
241 tcp_cre_cep.o tcp_del_cep.o \
242 tcp_acp_cep.o tcp_con_cep.o tcp_sht_cep.o \
243 tcp_cls_cep.o tcp_can_cep.o \
244 tcp_snd_dat.o tcp_rcv_dat.o \
245 tcp_snd_oob.o tcp_rcv_oob.o \
246 tcp_get_buf.o tcp_snd_buf.o \
247 tcp_rcv_buf.o tcp_rel_buf.o \
248 tcp_set_opt.o tcp_get_opt.o
249
250udp_usrreq = udp_can_snd.o udp_can_rcv.o udp_can_cep.o \
251 udp_cre_cep.o udp_del_cep.o \
252 udp_snd_dat.o udp_rcv_dat.o udp_send_data.o \
253 udp_set_opt.o udp_get_opt.o
254
255#
256# ライブラリ化するソースファイルから生成される
257# オブジェクトファイルの依存関係の定義
258#
259$(tcp_usrreq) $(tcp_usrreq:.o=.s) $(tcp_usrreq:.o=.d): tcp_usrreq.c
260$(udp_usrreq) $(udp_usrreq:.o=.s) $(udp_usrreq:.o=.d): udp_usrreq.c udp_usrreq_nblk.c
261
262#
263# TINET ライブラリの定義
264#
265TINET_LIB_OBJS = $(TINET_LCOBJS)
266
267#
268# TINET コンフィギュレーションファイルの定義
269#
270
271ifeq ($(TARGET_KERNEL),ASP)
272
273TINET_CFG = $(APPLDIR)/tinet_$(APPLNAME).cfg
274TINET_CFG_OUT = tinet_cfg.c tinet_cfg.h
275TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) \
276 $(TINET_ROOT)/tinet_asp.cfg $(TINET_ROOT)/net/net_asp.cfg
277
278endif
279
280ifeq ($(TARGET_KERNEL),JSP)
281
282TINET_CFG = tinet_$(UNAME).cfg
283TINET_CFG_OUT = tinet_cfg.c tinet_id.h tinet_kern.cfg
284TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) tinet_kern.cfg \
285 $(TINET_ROOT)/tinet.cfg $(TINET_ROOT)/net/net_jsp.cfg
286TINET_CFG_OUT := $(TINET_CFG_OUT) $(IPSEC_CFG_OUT)
287
288endif
289
290#
291# 共通コンパイルオプションの定義への追加
292#
293CDEFS := $(CDEFS) $(TINET_CDEFS)
294INCLUDES := $(INCLUDES) -I$(TINET_ROOT)
295
296#
297# TINET コンパイルオプションの定義への追加
298#
299TINET_CFLAGS := $(TINET_CFLAGS) -fno-strict-aliasing
300
301#
302# システムサービス、ミドルウェアに関する定義
303#
304
305ifeq ($(TARGET_KERNEL),ASP)
306
307 SYSSVC_DIRS := $(SYSSVC_DIRS):$(TINET_DIR)
308 SYSSVC_ASMOBJS := $(SYSSVC_ASMOBJS)
309 SYSSVC_COBJS := $(SYSSVC_COBJS) $(TINET_COBJS)
310 SYSSVC_CFLAGS := $(SYSSVC_CFLAGS) $(TINET_CFLAGS)
311 SYSSVC_LIBS := $(SYSSVC_LIBS) $(LIBTINET) -lc
312
313 CLEAN_FILES := $(CLEAN_FILES) $(TINET_CFG_OUT) $(MAKE_TINET_LIB)
314
315endif
316
317ifeq ($(TARGET_KERNEL),JSP)
318
319 MTASK_CFG := $(MTASK_CFG) $(TINET_CFG)
320 MTASK_KERNEL_CFG := $(MTASK_KERNEL_CFG) $(TINET_KERNEL_CFG)
321 MTASK_DIR := $(MTASK_DIR):$(TINET_DIR)
322 MTASK_LCSRCS := $(MTASK_LCSRCS) $(TINET_LCSRCS)
323 MTASK_ASMOBJS := $(MTASK_ASMOBJS)
324 ifdef USE_CXX
325 MTASK_CXXOBJS := $(MTASK_CXXOBJS)
326 MTASK_COBJS := $(MTASK_COBJS) $(TINET_COBJS)
327 else
328 MTASK_COBJS := $(MTASK_COBJS) $(TINET_COBJS)
329 endif
330 MTASK_CFLAGS := $(MTASK_CFLAGS) $(TINET_CFLAGS)
331 MTASK_LIBS := $(MTASK_LIBS) $(LIBTINET) -lc
332 MTASK_CLEAN_FILES := $(MTASK_CLEAN_FILES) $(TINET_CFG_OUT) $(MAKE_TINET_LIB)
333
334endif
335
336#
337# TINET ライブラリファイルの生成
338#
339libtinet.a: $(TINET_LIB_OBJS)
340 rm -f libtinet.a
341 $(AR) -rcs libtinet.a $(TINET_LIB_OBJS)
342 $(RANLIB) libtinet.a
343
344#
345# コンパイルルールの定義
346#
347
348ifeq ($(TARGET_KERNEL),ASP)
349
350$(TINET_LCOBJS): %.o:
351 $(CC) -D__$(*F) -o $@ -c $(CFLAGS) $(SYSSVC_CFLAGS) $<
352
353tinet_cfg1_out.o: %.o: %.c
354 $(CC) -c $(CFLAGS) $(KERNEL_CFG_CFLAGS) $<
355
356endif
357
358ifeq ($(TARGET_KERNEL),JSP)
359
360$(TINET_LCOBJS): %.o:
361 $(CC) -D__$(*F) -o $@ -c $(CFLAGS) $(MTASK_CFLAGS) $<
362
363endif
364
365#
366# コンパイル結果の消去
367#
368cleantinet:
369 rm -f $(TINET_CFG_OUT) $(MAKE_TINET_LIB)
Note: See TracBrowser for help on using the repository browser.