source: asp3_gr_sakura/trunk/tinet/Makefile.tinet@ 317

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

GR-SAKURA向けASP3を追加

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