source: rubycfg_asp/trunk/asp_dcre/tinet/Makefile.tinet@ 313

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

ソースを追加

  • Property svn:eol-style set to native
  • Property svn:mime-type set to text/x-makefile
File size: 10.3 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_DIR = $(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 tinet_cfg.o route_cfg.o
102
103# IPv6
104
105TINET_COBJS := $(TINET_COBJS) \
106 in6.o in6_ifattach.o nd6_rtr.o \
107 in6_subr.o ip6_input.o icmp6.o \
108 dest6.o route6.o frag6.o \
109 ah_input.o esp_input.o \
110 nd6.o nd6_nbr.o ip6_output.o scope6.o
111TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet6/ip6.cfg
112
113# IPv4
114
115TINET_COBJS := $(TINET_COBJS) \
116 ip_input.o ip_output.o ip_icmp.o in4_subr.o
117TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet/ip.cfg
118
119# loop back
120
121ifeq ($(NET_IF),loop)
122
123 TINET_COBJS := $(TINET_COBJS) if_loop.o
124 TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/net/if_loop.cfg
125 TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_LOOP
126
127endif
128
129# ppp
130
131ifeq ($(NET_IF),ppp)
132
133 TINET_COBJS := $(TINET_COBJS) \
134 ppp.o ppp_hdlc.o ppp_lcp.o ppp_fsm.o \
135 ppp_auth.o ppp_upap.o
136 TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/net/ppp.cfg
137 TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_PPP
138
139# IPv6用 cp
140 TINET_COBJS := $(TINET_COBJS) ppp_ipv6cp.o
141
142# IPv4用 cp
143 TINET_COBJS := $(TINET_COBJS) ppp_ipcp.o
144
145ifeq ($(PPP_CFG_MODEM),true)
146
147 TINET_COBJS := $(TINET_COBJS) ppp_modem.o
148 TINET_CDEFS := $(TINET_CDEFS) -DPPP_CFG_MODEM
149
150endif
151
152endif
153
154# ターゲット依存の定義のインクルード
155
156ifeq ($(TARGET_KERNEL),ASP)
157
158 -include $(TARGETDIR)/Makefile.tinet
159
160endif
161
162ifeq ($(TARGET_KERNEL),JSP)
163
164 ifdef TOOL
165 ifdef SYS
166 -include $(SRCDIR)/config/$(CPU)-$(TOOL)/$(SYS)/Makefile.tinet
167 endif
168 -include $(SRCDIR)/config/$(CPU)-$(TOOL)/Makefile.tinet
169 else
170 ifdef SYS
171 -include $(SRCDIR)/config/$(CPU)/$(SYS)/Makefile.tinet
172 endif
173 -include $(SRCDIR)/config/$(CPU)/Makefile.tinet
174 endif
175
176endif
177
178# ethernet
179
180ifeq ($(NET_IF),ether)
181
182 TINET_COBJS := $(TINET_COBJS) ethernet.o if6_ether.o if_ether.o
183 TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) \
184 $(TINET_ROOT)/net/ethernet.cfg \
185 $(TINET_ROOT)/netinet/if_ether.cfg
186 TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_ETHER
187 include $(TINET_ROOT)/netdev/$(NET_DEV)/Makefile.tinet
188
189endif
190
191# TCP
192
193ifeq ($(SUPPORT_TCP),true)
194
195 TINET_COBJS := $(TINET_COBJS) \
196 tcp_input.o tcp_output.o tcp_timer.o \
197 tcp_subr.o tcp_subr_cs.o tcp_subr_ncs.o
198 TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet/tcp.cfg
199 TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_TCP
200
201endif
202
203# UDP
204
205ifeq ($(SUPPORT_UDP),true)
206
207 TINET_COBJS := $(TINET_COBJS) \
208 udp_input.o udp_output.o udp_subr.o
209 TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet/udp.cfg
210 TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_UDP
211
212endif
213
214#
215# TINET ライブラリの定義
216#
217
218ifeq ($(NO_USE_TINET_LIBRARY),true)
219
220 ifeq ($(SUPPORT_TCP),true)
221 TINET_COBJS := $(TINET_COBJS) tcp_usrreq.o
222 endif
223
224 ifeq ($(SUPPORT_UDP),true)
225 TINET_COBJS := $(TINET_COBJS) udp_usrreq.o udp_usrreq_nblk.o
226 endif
227
228else
229
230 ifeq ($(SUPPORT_TCP),true)
231 TINET_LCSRCS := $(TINET_LCSRCS) tcp_usrreq.c
232 endif
233
234 ifeq ($(SUPPORT_UDP),true)
235 TINET_LCSRCS := $(TINET_LCSRCS) udp_usrreq.c udp_usrreq_nblk.c
236 endif
237
238 TINET_CDEFS := $(TINET_CDEFS) -DTCP_CFG_LIBRARY -DUDP_CFG_LIBRARY
239
240 ifdef TINET_LIB
241 MAKE_TINET_LIB :=
242 LIBTINET := $(TINET_LIB)/libtinet.a
243 else
244 MAKE_TINET_LIB := libtinet.a
245 LIBTINET := $(MAKE_TINET_LIB)
246 endif
247
248 MAKE_MTASK := $(MAKE_MTASK) $(LIBTINET)
249
250endif
251
252#
253# ライブラリ化するソースファイルから生成される
254# オブジェクトファイルの定義
255#
256TINET_LCOBJS = $(foreach file,$(TINET_LCSRCS),$($(file:.c=)))
257
258tcp_usrreq = tcp_cre_rep.o tcp_del_rep.o \
259 tcp_cre_cep.o tcp_del_cep.o \
260 tcp_acp_cep.o tcp_con_cep.o tcp_sht_cep.o \
261 tcp_cls_cep.o tcp_can_cep.o \
262 tcp_snd_dat.o tcp_rcv_dat.o \
263 tcp_snd_oob.o tcp_rcv_oob.o \
264 tcp_get_buf.o tcp_snd_buf.o \
265 tcp_rcv_buf.o tcp_rel_buf.o \
266 tcp_set_opt.o tcp_get_opt.o
267
268udp_usrreq = udp_can_cep.o udp_send_data.o \
269 udp_can_snd.o udp_can_rcv.o \
270 udp_snd_dat.o udp_rcv_dat.o \
271 udp_set_opt.o udp_get_opt.o \
272 udp_cre_cep.o udp_del_cep.o
273
274udp_usrreq_nblk = \
275 udp_can_snd_nblk.o udp_can_rcv_nblk.o \
276 udp_snd_dat_nblk.o udp_rcv_dat_nblk.o
277
278#
279# ライブラリ化するソースファイルから生成される
280# オブジェクトファイルの依存関係の定義
281#
282$(tcp_usrreq) $(tcp_usrreq:.o=.s) $(tcp_usrreq:.o=.d): tcp_usrreq.c tcpn_usrreq.c
283$(udp_usrreq) $(udp_usrreq:.o=.s) $(udp_usrreq:.o=.d): udp_usrreq.c udpn_usrreq.c
284$(udp_usrreq_nblk) $(udp_usrreq_nblk:.o=.s) $(udp_usrreq_nblk:.o=.d): udp_usrreq_nblk.c
285
286#
287# TINET ライブラリの定義
288#
289TINET_LIB_OBJS = $(TINET_LCOBJS)
290
291#
292# TINET コンフィギュレーションファイルの定義
293#
294
295ifeq ($(TARGET_KERNEL),ASP)
296
297TINET_CFG_OUT = tinet_cfg.c tinet_cfg.h tinet_kern.cfg
298TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) \
299 $(TINET_ROOT)/tinet_asp.cfg $(TINET_ROOT)/net/net_asp.cfg
300
301endif
302
303ifeq ($(TARGET_KERNEL),JSP)
304
305TINET_CFG = tinet_$(UNAME).cfg
306TINET_CFG_OUT = tinet_cfg.c tinet_id.h tinet_kern.cfg
307TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) tinet_kern.cfg \
308 $(TINET_ROOT)/tinet.cfg $(TINET_ROOT)/net/net_jsp.cfg
309TINET_CFG_OUT := $(TINET_CFG_OUT) $(IPSEC_CFG_OUT)
310
311endif
312
313#
314# å…
315±é€šã‚³ãƒ³ãƒ‘イルオプションの定義への追加
316#
317CDEFS := $(CDEFS) $(TINET_CDEFS)
318INCLUDES := $(INCLUDES) -I$(TINET_ROOT)
319
320#
321# TINET コンパイルオプションの定義への追加
322#
323TINET_CFLAGS := $(TINET_CFLAGS) -fno-strict-aliasing
324
325#
326# システムサービス、ミドルウェアに関する定義
327#
328
329ifeq ($(TARGET_KERNEL),ASP)
330
331 SYSSVC_DIR := $(SYSSVC_DIR):$(TINET_DIR)
332 SYSSVC_ASMOBJS := $(SYSSVC_ASMOBJS)
333 SYSSVC_COBJS := $(SYSSVC_COBJS) $(TINET_COBJS)
334 SYSSVC_CFLAGS := $(SYSSVC_CFLAGS) $(TINET_CFLAGS)
335 SYSSVC_LIBS := $(SYSSVC_LIBS) $(LIBTINET) -lc
336
337 CLEAN_FILES := $(CLEAN_FILES) $(TINET_CFG_OUT) $(MAKE_TINET_LIB)
338
339endif
340
341ifeq ($(TARGET_KERNEL),JSP)
342
343 MTASK_CFG := $(MTASK_CFG) $(TINET_CFG)
344 MTASK_KERNEL_CFG := $(MTASK_KERNEL_CFG) $(TINET_KERNEL_CFG)
345 MTASK_DIR := $(MTASK_DIR):$(TINET_DIR)
346 MTASK_LCSRCS := $(MTASK_LCSRCS) $(TINET_LCSRCS)
347 MTASK_ASMOBJS := $(MTASK_ASMOBJS)
348 ifdef USE_CXX
349 MTASK_CXXOBJS := $(MTASK_CXXOBJS)
350 MTASK_COBJS := $(MTASK_COBJS) $(TINET_COBJS)
351 else
352 MTASK_COBJS := $(MTASK_COBJS) $(TINET_COBJS)
353 endif
354 MTASK_CFLAGS := $(MTASK_CFLAGS) $(TINET_CFLAGS)
355 MTASK_LIBS := $(MTASK_LIBS) $(LIBTINET) -lc
356 MTASK_CLEAN_FILES := $(MTASK_CLEAN_FILES) $(TINET_CFG_OUT) $(MAKE_TINET_LIB)
357
358endif
359
360#
361# TINET ライブラリファイルの生成
362#
363libtinet.a: $(TINET_LIB_OBJS)
364 rm -f libtinet.a
365 $(AR) -rcs libtinet.a $(TINET_LIB_OBJS)
366 $(RANLIB) libtinet.a
367
368#
369# コンパイルルールの定義
370#
371
372ifeq ($(TARGET_KERNEL),ASP)
373
374$(TINET_LCOBJS): %.o:
375 $(CC) -D__$(*F) -o $@ -c $(CFLAGS) $(SYSSVC_CFLAGS) $<
376
377tinet_cfg1_out.o: %.o: %.c
378 $(CC) -c $(CFLAGS) $(KERNEL_CFG_CFLAGS) $<
379
380endif
381
382ifeq ($(TARGET_KERNEL),JSP)
383
384$(TINET_LCOBJS): %.o:
385 $(CC) -D__$(*F) -o $@ -c $(CFLAGS) $(MTASK_CFLAGS) $<
386
387endif
388
389#
390# コンパイル結果の消去
391#
392cleantinet:
393 rm -f $(TINET_CFG_OUT) $(MAKE_TINET_LIB)
Note: See TracBrowser for help on using the repository browser.