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 | # 上記著作権者は,以下の (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 | #
|
---|
42 | ifdef SRCLANG
|
---|
43 | TARGET_KERNEL = ASP
|
---|
44 | TINET_CDEFS := $(TINET_CDEFS) -DTARGET_KERNEL_ASP
|
---|
45 | else
|
---|
46 | TARGET_KERNEL = JSP
|
---|
47 | TINET_CDEFS := $(TINET_CDEFS) -DTARGET_KERNEL_JSP
|
---|
48 | endif
|
---|
49 |
|
---|
50 | #
|
---|
51 | # TINET ソースファイルのディレクトリの定義
|
---|
52 | #
|
---|
53 | TINET_ROOT = $(SRCDIR)/tinet
|
---|
54 |
|
---|
55 | #
|
---|
56 | # TINET 1.1 との互換性のための定義
|
---|
57 | #
|
---|
58 | ifndef SUPPORT_INET4
|
---|
59 | ifndef SUPPORT_INET6
|
---|
60 | SUPPORT_INET4 = true
|
---|
61 | endif
|
---|
62 | endif
|
---|
63 |
|
---|
64 | #
|
---|
65 | # TINET 1.7 以降は、ネットワーク層の指定を変更した。
|
---|
66 | #
|
---|
67 |
|
---|
68 | ifeq ($(SUPPORT_INET6),true)
|
---|
69 | TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_INET6
|
---|
70 | endif
|
---|
71 |
|
---|
72 | ifeq ($(SUPPORT_INET4),true)
|
---|
73 | TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_INET4
|
---|
74 | endif
|
---|
75 |
|
---|
76 | ifeq ($API_CFG_IP4MAPPED_ADDR,true)
|
---|
77 | TINET_CDEFS := $(TINET_CDEFS) -DAPI_CFG_IP4MAPPED_ADDR
|
---|
78 | endif
|
---|
79 |
|
---|
80 | ifeq ($(SUPPORT_IGMP),true)
|
---|
81 | TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_IGMP
|
---|
82 | endif
|
---|
83 |
|
---|
84 | #
|
---|
85 | # ネットワークサービスに関する定義
|
---|
86 | #
|
---|
87 |
|
---|
88 | # 汎用通信機能
|
---|
89 |
|
---|
90 | TINET_DIRS = $(TINET_ROOT)/net:$(TINET_ROOT)/netinet:$(TINET_ROOT)/netinet6
|
---|
91 | TINET_COBJS := $(TINET_COBJS) \
|
---|
92 | net_buf.o net_count.o net_subr.o net_timer.o if.o \
|
---|
93 | in_subr.o route_cfg.o
|
---|
94 | TINET_CFG_COBJS := $(TINET_CFG_COBJS) tinet_cfg.o
|
---|
95 |
|
---|
96 | # IPv6
|
---|
97 |
|
---|
98 | TINET_COBJS := $(TINET_COBJS) \
|
---|
99 | in6.o in6_ifattach.o nd6_rtr.o \
|
---|
100 | in6_subr.o ip6_input.o icmp6.o \
|
---|
101 | dest6.o route6.o frag6.o \
|
---|
102 | ah_input.o esp_input.o \
|
---|
103 | nd6.o nd6_nbr.o ip6_output.o scope6.o
|
---|
104 | TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet6/ip6.cfg
|
---|
105 |
|
---|
106 | # IPv4
|
---|
107 |
|
---|
108 | TINET_COBJS := $(TINET_COBJS) \
|
---|
109 | ip_input.o ip_output.o ip_icmp.o ip_igmp.o in4_subr.o
|
---|
110 | TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet/ip.cfg
|
---|
111 |
|
---|
112 | # loop back
|
---|
113 |
|
---|
114 | ifeq ($(NET_IF),loop)
|
---|
115 |
|
---|
116 | TINET_COBJS := $(TINET_COBJS) if_loop.o
|
---|
117 | TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/net/if_loop.cfg
|
---|
118 | TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_LOOP
|
---|
119 |
|
---|
120 | endif
|
---|
121 |
|
---|
122 | # ppp
|
---|
123 |
|
---|
124 | ifeq ($(NET_IF),ppp)
|
---|
125 |
|
---|
126 | TINET_COBJS := $(TINET_COBJS) \
|
---|
127 | ppp.o ppp_hdlc.o ppp_lcp.o ppp_fsm.o \
|
---|
128 | ppp_auth.o ppp_upap.o
|
---|
129 | TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/net/ppp.cfg
|
---|
130 | TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_PPP
|
---|
131 |
|
---|
132 | # IPv6用 cp
|
---|
133 | TINET_COBJS := $(TINET_COBJS) ppp_ipv6cp.o
|
---|
134 |
|
---|
135 | # IPv4用 cp
|
---|
136 | TINET_COBJS := $(TINET_COBJS) ppp_ipcp.o
|
---|
137 |
|
---|
138 | ifeq ($(PPP_CFG_MODEM),true)
|
---|
139 |
|
---|
140 | TINET_COBJS := $(TINET_COBJS) ppp_modem.o
|
---|
141 | TINET_CDEFS := $(TINET_CDEFS) -DPPP_CFG_MODEM
|
---|
142 |
|
---|
143 | endif
|
---|
144 |
|
---|
145 | endif
|
---|
146 |
|
---|
147 | # ターゲット依存の定義のインクルード
|
---|
148 |
|
---|
149 | ifeq ($(TARGET_KERNEL),ASP)
|
---|
150 |
|
---|
151 | -include $(TARGETDIR)/Makefile.tinet
|
---|
152 |
|
---|
153 | endif
|
---|
154 |
|
---|
155 | ifeq ($(TARGET_KERNEL),JSP)
|
---|
156 |
|
---|
157 | ifdef TOOL
|
---|
158 | ifdef SYS
|
---|
159 | -include $(SRCDIR)/config/$(CPU)-$(TOOL)/$(SYS)/Makefile.tinet
|
---|
160 | endif
|
---|
161 | -include $(SRCDIR)/config/$(CPU)-$(TOOL)/Makefile.tinet
|
---|
162 | else
|
---|
163 | ifdef SYS
|
---|
164 | -include $(SRCDIR)/config/$(CPU)/$(SYS)/Makefile.tinet
|
---|
165 | endif
|
---|
166 | -include $(SRCDIR)/config/$(CPU)/Makefile.tinet
|
---|
167 | endif
|
---|
168 |
|
---|
169 | endif
|
---|
170 |
|
---|
171 | # ethernet
|
---|
172 |
|
---|
173 | ifeq ($(NET_IF),ether)
|
---|
174 |
|
---|
175 | TINET_COBJS := $(TINET_COBJS) ethernet.o if6_ether.o if_ether.o
|
---|
176 | TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) \
|
---|
177 | $(TINET_ROOT)/net/ethernet.cfg \
|
---|
178 | $(TINET_ROOT)/netinet/if_ether.cfg
|
---|
179 | TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_ETHER
|
---|
180 | include $(TINET_ROOT)/netdev/$(NET_DEV)/Makefile.tinet
|
---|
181 |
|
---|
182 | endif
|
---|
183 |
|
---|
184 | # TCP
|
---|
185 |
|
---|
186 | ifeq ($(SUPPORT_TCP),true)
|
---|
187 |
|
---|
188 | TINET_COBJS := $(TINET_COBJS) \
|
---|
189 | tcp_input.o tcp_output.o tcp_timer.o \
|
---|
190 | tcp_subr.o tcp_subr_cs.o tcp_subr_ncs.o
|
---|
191 | TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet/tcp.cfg
|
---|
192 | TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_TCP
|
---|
193 |
|
---|
194 | endif
|
---|
195 |
|
---|
196 | # UDP
|
---|
197 |
|
---|
198 | ifeq ($(SUPPORT_UDP),true)
|
---|
199 |
|
---|
200 | TINET_COBJS := $(TINET_COBJS) \
|
---|
201 | udp_input.o udp_output.o udp_subr.o
|
---|
202 | TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) $(TINET_ROOT)/netinet/udp.cfg
|
---|
203 | TINET_CDEFS := $(TINET_CDEFS) -DSUPPORT_UDP
|
---|
204 |
|
---|
205 | endif
|
---|
206 |
|
---|
207 | #
|
---|
208 | # TINET ライブラリの定義
|
---|
209 | #
|
---|
210 |
|
---|
211 | ifeq ($(NO_USE_TINET_LIBRARY),true)
|
---|
212 |
|
---|
213 | ifeq ($(SUPPORT_TCP),true)
|
---|
214 | TINET_COBJS := $(TINET_COBJS) tcp_usrreq.o
|
---|
215 | endif
|
---|
216 |
|
---|
217 | ifeq ($(SUPPORT_UDP),true)
|
---|
218 | TINET_COBJS := $(TINET_COBJS) udp_usrreq.o udp_usrreq_nblk.o
|
---|
219 | endif
|
---|
220 |
|
---|
221 | else
|
---|
222 |
|
---|
223 | ifeq ($(SUPPORT_TCP),true)
|
---|
224 | TINET_LCSRCS := $(TINET_LCSRCS) tcp_usrreq.c
|
---|
225 | endif
|
---|
226 |
|
---|
227 | ifeq ($(SUPPORT_UDP),true)
|
---|
228 | TINET_LCSRCS := $(TINET_LCSRCS) udp_usrreq.c udp_usrreq_nblk.c
|
---|
229 | endif
|
---|
230 |
|
---|
231 | TINET_CDEFS := $(TINET_CDEFS) -DTCP_CFG_LIBRARY -DUDP_CFG_LIBRARY
|
---|
232 |
|
---|
233 | ifdef TINET_LIB
|
---|
234 | MAKE_TINET_LIB :=
|
---|
235 | LIBTINET := $(TINET_LIB)/libtinet.a
|
---|
236 | else
|
---|
237 | MAKE_TINET_LIB := libtinet.a
|
---|
238 | LIBTINET := $(MAKE_TINET_LIB)
|
---|
239 | endif
|
---|
240 |
|
---|
241 | MAKE_MTASK := $(MAKE_MTASK) $(LIBTINET)
|
---|
242 |
|
---|
243 | endif
|
---|
244 |
|
---|
245 | #
|
---|
246 | # ライブラリ化するソースファイルから生成される
|
---|
247 | # オブジェクトファイルの定義
|
---|
248 | #
|
---|
249 | TINET_LCOBJS = $(foreach file,$(TINET_LCSRCS),$($(file:.c=)))
|
---|
250 |
|
---|
251 | tcp_usrreq = tcp_cre_rep.o tcp_del_rep.o \
|
---|
252 | tcp_cre_cep.o tcp_del_cep.o \
|
---|
253 | tcp_acp_cep.o tcp_con_cep.o tcp_sht_cep.o \
|
---|
254 | tcp_cls_cep.o tcp_can_cep.o \
|
---|
255 | tcp_snd_dat.o tcp_rcv_dat.o \
|
---|
256 | tcp_snd_oob.o tcp_rcv_oob.o \
|
---|
257 | tcp_get_buf.o tcp_snd_buf.o \
|
---|
258 | tcp_rcv_buf.o tcp_rel_buf.o \
|
---|
259 | tcp_set_opt.o tcp_get_opt.o
|
---|
260 |
|
---|
261 | udp_usrreq = udp_can_cep.o udp_send_data.o \
|
---|
262 | udp_can_snd.o udp_can_rcv.o \
|
---|
263 | udp_snd_dat.o udp_rcv_dat.o \
|
---|
264 | udp_set_opt.o udp_get_opt.o \
|
---|
265 | udp_cre_cep.o udp_del_cep.o
|
---|
266 |
|
---|
267 | udp_usrreq_nblk = \
|
---|
268 | udp_can_snd_nblk.o udp_can_rcv_nblk.o \
|
---|
269 | udp_snd_dat_nblk.o udp_rcv_dat_nblk.o
|
---|
270 |
|
---|
271 | #
|
---|
272 | # ライブラリ化するソースファイルから生成される
|
---|
273 | # オブジェクトファイルの依存関係の定義
|
---|
274 | #
|
---|
275 | $(tcp_usrreq) $(tcp_usrreq:.o=.s) $(tcp_usrreq:.o=.d): tcp_usrreq.c tcpn_usrreq.c
|
---|
276 | $(udp_usrreq) $(udp_usrreq:.o=.s) $(udp_usrreq:.o=.d): udp_usrreq.c udpn_usrreq.c
|
---|
277 | $(udp_usrreq_nblk) $(udp_usrreq_nblk:.o=.s) $(udp_usrreq_nblk:.o=.d): udp_usrreq_nblk.c
|
---|
278 |
|
---|
279 | #
|
---|
280 | # TINET ライブラリの定義
|
---|
281 | #
|
---|
282 | TINET_LIB_OBJS = $(TINET_LCOBJS)
|
---|
283 |
|
---|
284 | #
|
---|
285 | # TINET コンフィギュレーションファイルの定義
|
---|
286 | #
|
---|
287 |
|
---|
288 | ifeq ($(TARGET_KERNEL),ASP)
|
---|
289 |
|
---|
290 | TINET_CFG_OUT = tinet_cfg.c tinet_cfg.h tinet_kern.cfg
|
---|
291 | TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) \
|
---|
292 | $(TINET_ROOT)/tinet_asp.cfg $(TINET_ROOT)/net/net_asp.cfg
|
---|
293 |
|
---|
294 | endif
|
---|
295 |
|
---|
296 | ifeq ($(TARGET_KERNEL),JSP)
|
---|
297 |
|
---|
298 | TINET_CFG = tinet_$(UNAME).cfg
|
---|
299 | TINET_CFG_OUT = tinet_cfg.c tinet_id.h tinet_kern.cfg
|
---|
300 | TINET_KERNEL_CFG := $(TINET_KERNEL_CFG) tinet_kern.cfg \
|
---|
301 | $(TINET_ROOT)/tinet.cfg $(TINET_ROOT)/net/net_jsp.cfg
|
---|
302 | TINET_CFG_OUT := $(TINET_CFG_OUT) $(IPSEC_CFG_OUT)
|
---|
303 |
|
---|
304 | endif
|
---|
305 |
|
---|
306 | #
|
---|
307 | # 共通コンパイルオプションの定義への追加
|
---|
308 | #
|
---|
309 | CDEFS := $(CDEFS) $(TINET_CDEFS)
|
---|
310 | INCLUDES := $(INCLUDES) -I$(TINET_ROOT)
|
---|
311 |
|
---|
312 | #
|
---|
313 | # TINET コンパイルオプションの定義への追加
|
---|
314 | #
|
---|
315 | TINET_CFLAGS := $(TINET_CFLAGS) -fno-strict-aliasing
|
---|
316 |
|
---|
317 | #
|
---|
318 | # システムサービス、ミドルウェアに関する定義
|
---|
319 | #
|
---|
320 |
|
---|
321 | ifeq ($(TARGET_KERNEL),ASP)
|
---|
322 |
|
---|
323 | SYSSVC_DIRS := $(SYSSVC_DIRS):$(TINET_DIRS)
|
---|
324 | SYSSVC_ASMOBJS := $(SYSSVC_ASMOBJS)
|
---|
325 | SYSSVC_COBJS := $(SYSSVC_COBJS) $(TINET_COBJS)
|
---|
326 | SYSSVC_CFLAGS := $(SYSSVC_CFLAGS) $(TINET_CFLAGS)
|
---|
327 | SYSSVC_LIBS := $(SYSSVC_LIBS) $(LIBTINET) -lc
|
---|
328 |
|
---|
329 | CFG_COBJS := $(CFG_COBJS) $(TINET_CFG_COBJS)
|
---|
330 |
|
---|
331 | CLEAN_FILES := $(CLEAN_FILES) $(TINET_CFG_OUT) $(MAKE_TINET_LIB)
|
---|
332 |
|
---|
333 | endif
|
---|
334 |
|
---|
335 | ifeq ($(TARGET_KERNEL),JSP)
|
---|
336 |
|
---|
337 | MTASK_CFG := $(MTASK_CFG) $(TINET_CFG)
|
---|
338 | MTASK_KERNEL_CFG := $(MTASK_KERNEL_CFG) $(TINET_KERNEL_CFG)
|
---|
339 | MTASK_DIR := $(MTASK_DIRS):$(TINET_DIRS)
|
---|
340 | MTASK_LCSRCS := $(MTASK_LCSRCS) $(TINET_LCSRCS)
|
---|
341 | MTASK_ASMOBJS := $(MTASK_ASMOBJS)
|
---|
342 | ifdef USE_CXX
|
---|
343 | MTASK_CXXOBJS := $(MTASK_CXXOBJS)
|
---|
344 | MTASK_COBJS := $(MTASK_COBJS) $(TINET_COBJS)
|
---|
345 | else
|
---|
346 | MTASK_COBJS := $(MTASK_COBJS) $(TINET_COBJS)
|
---|
347 | endif
|
---|
348 | MTASK_CFLAGS := $(MTASK_CFLAGS) $(TINET_CFLAGS)
|
---|
349 | MTASK_LIBS := $(MTASK_LIBS) $(LIBTINET) -lc
|
---|
350 | MTASK_CLEAN_FILES := $(MTASK_CLEAN_FILES) $(TINET_CFG_OUT) $(MAKE_TINET_LIB)
|
---|
351 |
|
---|
352 | endif
|
---|
353 |
|
---|
354 | #
|
---|
355 | # TINET ライブラリファイルの生成
|
---|
356 | #
|
---|
357 | libtinet.a: $(TINET_LIB_OBJS)
|
---|
358 | rm -f libtinet.a
|
---|
359 | $(AR) -rcs libtinet.a $(TINET_LIB_OBJS)
|
---|
360 | $(RANLIB) libtinet.a
|
---|
361 |
|
---|
362 | #
|
---|
363 | # コンパイルルールの定義
|
---|
364 | #
|
---|
365 |
|
---|
366 | ifeq ($(TARGET_KERNEL),ASP)
|
---|
367 |
|
---|
368 | $(TINET_LCOBJS): %.o:
|
---|
369 | $(CC) -D__$(*F) -o $@ -c $(CFLAGS) $(SYSSVC_CFLAGS) $<
|
---|
370 |
|
---|
371 | tinet_cfg1_out.o: %.o: %.c
|
---|
372 | $(CC) -c $(CFLAGS) $(KERNEL_CFG_CFLAGS) $<
|
---|
373 |
|
---|
374 | endif
|
---|
375 |
|
---|
376 | ifeq ($(TARGET_KERNEL),JSP)
|
---|
377 |
|
---|
378 | $(TINET_LCOBJS): %.o:
|
---|
379 | $(CC) -D__$(*F) -o $@ -c $(CFLAGS) $(MTASK_CFLAGS) $<
|
---|
380 |
|
---|
381 | endif
|
---|
382 |
|
---|
383 | #
|
---|
384 | # コンパイル結果の消去
|
---|
385 | #
|
---|
386 | cleantinet:
|
---|
387 | rm -f $(TINET_CFG_OUT) $(MAKE_TINET_LIB)
|
---|