source: azure_iot_hub/trunk/asp3_dcre/tinet/Makefile.tinet@ 388

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

Azure IoT Hub Device C SDK を使ったサンプルの追加

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