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