source: asp3_tinet_ecnl_rx/trunk/asp3_dcre/tinet/Makefile.tinet@ 364

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

TINETとSocket APIなどを更新

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