235 lines
7.2 KiB
Diff
235 lines
7.2 KiB
Diff
From 777db45e3ae9c17abf397daf79a129ad5ed1e0cf Mon Sep 17 00:00:00 2001
|
|
From: peanut_huang <huangliming5@huawei.com>
|
|
Date: Mon, 30 Nov 2020 06:53:46 +0000
|
|
Subject: [PATCH] add makefile
|
|
|
|
Signed-off-by: peanut_huang <huangliming5@huawei.com>
|
|
---
|
|
src/Makefile | 60 ++++++++++++++++++++++++++++
|
|
src/api/dir.mk | 3 ++
|
|
src/core/dir.mk | 6 +++
|
|
src/include/arch/cc.h | 7 ++++
|
|
src/include/arch/sys_arch.h | 7 ++++
|
|
src/include/lwipopts.h | 80 +++++++++++++++++++++++++++++++++++++
|
|
src/netif/dir.mk | 3 ++
|
|
7 files changed, 166 insertions(+)
|
|
create mode 100644 src/Makefile
|
|
create mode 100644 src/api/dir.mk
|
|
create mode 100644 src/core/dir.mk
|
|
create mode 100644 src/include/arch/cc.h
|
|
create mode 100644 src/include/arch/sys_arch.h
|
|
create mode 100644 src/include/lwipopts.h
|
|
create mode 100644 src/netif/dir.mk
|
|
|
|
diff --git a/src/Makefile b/src/Makefile
|
|
new file mode 100644
|
|
index 0000000..3ecf8d2
|
|
--- /dev/null
|
|
+++ b/src/Makefile
|
|
@@ -0,0 +1,60 @@
|
|
+LWIP_DIR := $(dir $(abspath $(lastword $(MAKEFILE_LIST))))
|
|
+ROOT_DIR := $(dir $(abspath $(LWIP_DIR)))
|
|
+
|
|
+LWIP_INC = $(LWIP_DIR)/include
|
|
+#DPDK_INCLUDE_FILE ?= /usr/include/dpdk
|
|
+
|
|
+SEC_FLAGS = -fstack-protector-strong -Werror -Wall -Wl,-z,relro,-z,now -Wl,-z,noexecstack -Wtrampolines -fPIC
|
|
+
|
|
+CC = gcc
|
|
+AR = ar
|
|
+OPTIMIZATION = -O3
|
|
+INC = -I$(LWIP_DIR) \
|
|
+ -I$(LWIP_INC)
|
|
+
|
|
+CFLAGS = -g $(OPTIMIZATION) $(INC) $(SEC_FLAGS)
|
|
+ARFLAGS = crDP
|
|
+
|
|
+ifeq ($(shell $(CC) -dumpmachine | cut -d"-" -f1), x86_64)
|
|
+ CFLAGS += -mssse3
|
|
+endif
|
|
+
|
|
+SRCS =
|
|
+DIRS = api core netif
|
|
+
|
|
+define register_dir
|
|
+SRCS += $(patsubst %, $(1)/%, $(2))
|
|
+endef
|
|
+
|
|
+include $(patsubst %, %/dir.mk, $(DIRS))
|
|
+
|
|
+OBJS = $(subst .c,.o,$(SRCS))
|
|
+TMPS := $(subst .c,.s,$(SRCS))
|
|
+TMPS += $(subst .c,.i,$(SRCS))
|
|
+
|
|
+LWIP_LIB = liblwip.a
|
|
+
|
|
+INSTALL_LIB = $(DESTDIR)/usr/lib64
|
|
+INSTALL_INC = $(DESTDIR)/usr/include/lwip
|
|
+
|
|
+.PHONY: all
|
|
+all: $(LWIP_LIB)
|
|
+
|
|
+.depend: $(SRCS)
|
|
+ rm -f ./.depend
|
|
+ $(foreach SRC,$(SRCS),$(CC) $(CFLAGS) -MM -MT $(SRC:.c=.o) $(SRC) >> .depend;)
|
|
+
|
|
+-include .depend
|
|
+
|
|
+$(LWIP_LIB): $(OBJS)
|
|
+ $(AR) $(ARFLAGS) $@ $(OBJS)
|
|
+
|
|
+.PHONY: install
|
|
+install:
|
|
+ install -dp $(INSTALL_LIB) $(INSTALL_INC)
|
|
+ install -Dp $(LWIP_DIR)/$(LWIP_LIB) $(INSTALL_LIB)
|
|
+ cp -pr $(LWIP_INC)/* $(INSTALL_INC)/
|
|
+
|
|
+.PHONY: clean
|
|
+clean:
|
|
+ $(RM) $(LWIP_LIB) $(OBJS) $(TMPS) .depend
|
|
diff --git a/src/api/dir.mk b/src/api/dir.mk
|
|
new file mode 100644
|
|
index 0000000..72142ab
|
|
--- /dev/null
|
|
+++ b/src/api/dir.mk
|
|
@@ -0,0 +1,3 @@
|
|
+SRC = api_lib.c api_msg.c err.c netbuf.c netdb.c netifapi.c sockets.c tcpip.c
|
|
+
|
|
+$(eval $(call register_dir, api, $(SRC)))
|
|
diff --git a/src/core/dir.mk b/src/core/dir.mk
|
|
new file mode 100644
|
|
index 0000000..e5a055b
|
|
--- /dev/null
|
|
+++ b/src/core/dir.mk
|
|
@@ -0,0 +1,6 @@
|
|
+SRC = inet_chksum.c init.c ip.c mem.c memp.c netif.c pbuf.c \
|
|
+ raw.c stats.c tcp.c tcp_in.c tcp_out.c timeouts.c udp.c \
|
|
+ ipv4/etharp.c ipv4/icmp.c ipv4/ip4_addr.c ipv4/ip4.c \
|
|
+ ipv4/ip4_frag.c
|
|
+
|
|
+$(eval $(call register_dir, core, $(SRC)))
|
|
diff --git a/src/include/arch/cc.h b/src/include/arch/cc.h
|
|
new file mode 100644
|
|
index 0000000..52b76f9
|
|
--- /dev/null
|
|
+++ b/src/include/arch/cc.h
|
|
@@ -0,0 +1,7 @@
|
|
+#ifndef LWIP_CC_H
|
|
+#define LWIP_CC_H
|
|
+
|
|
+
|
|
+
|
|
+#endif /* LWIP_CC_H */
|
|
+
|
|
diff --git a/src/include/arch/sys_arch.h b/src/include/arch/sys_arch.h
|
|
new file mode 100644
|
|
index 0000000..3f555ee
|
|
--- /dev/null
|
|
+++ b/src/include/arch/sys_arch.h
|
|
@@ -0,0 +1,7 @@
|
|
+#ifndef LWIP_SYS_ARCH_H
|
|
+#define LWIP_SYS_ARCH_H
|
|
+
|
|
+
|
|
+
|
|
+#endif /* LWIP_SYS_ARCH_H */
|
|
+
|
|
diff --git a/src/include/lwipopts.h b/src/include/lwipopts.h
|
|
new file mode 100644
|
|
index 0000000..4ab26f2
|
|
--- /dev/null
|
|
+++ b/src/include/lwipopts.h
|
|
@@ -0,0 +1,80 @@
|
|
+/*
|
|
+ * Copyright (c) 2001-2003 Swedish Institute of Computer Science.
|
|
+ * All rights reserved.
|
|
+ *
|
|
+ * Redistribution and use in source and binary forms, with or without modification,
|
|
+ * are permitted provided that the following conditions are met:
|
|
+ *
|
|
+ * 1. Redistributions of source code must retain the above copyright notice,
|
|
+ * this list of conditions and the following disclaimer.
|
|
+ * 2. Redistributions in binary form must reproduce the above copyright notice,
|
|
+ * this list of conditions and the following disclaimer in the documentation
|
|
+ * and/or other materials provided with the distribution.
|
|
+ * 3. The name of the author may not be used to endorse or promote products
|
|
+ * derived from this software without specific prior written permission.
|
|
+ *
|
|
+ * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
|
|
+ * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
|
+ * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT
|
|
+ * SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
|
|
+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
|
|
+ * OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
|
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
|
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
|
|
+ * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
|
|
+ * OF SUCH DAMAGE.
|
|
+ *
|
|
+ * This file is part of the lwIP TCP/IP stack.
|
|
+ *
|
|
+ * Author: Simon Goldschmidt
|
|
+ *
|
|
+ */
|
|
+#ifndef LWIP_HDR_LWIPOPTS_H__
|
|
+#define LWIP_HDR_LWIPOPTS_H__
|
|
+
|
|
+/* Prevent having to link sys_arch.c (we don't test the API layers in unit tests) */
|
|
+#define NO_SYS 1
|
|
+#define LWIP_NETCONN 0
|
|
+#define LWIP_SOCKET 0
|
|
+#define SYS_LIGHTWEIGHT_PROT 0
|
|
+
|
|
+#define LWIP_IPV6 1
|
|
+#define IPV6_FRAG_COPYHEADER 1
|
|
+#define LWIP_IPV6_DUP_DETECT_ATTEMPTS 0
|
|
+
|
|
+/* Enable some protocols to test them */
|
|
+#define LWIP_DHCP 1
|
|
+#define LWIP_AUTOIP 1
|
|
+
|
|
+#define LWIP_IGMP 1
|
|
+#define LWIP_DNS 1
|
|
+
|
|
+#define LWIP_ALTCP 1
|
|
+
|
|
+/* Turn off checksum verification of fuzzed data */
|
|
+#define CHECKSUM_CHECK_IP 0
|
|
+#define CHECKSUM_CHECK_UDP 0
|
|
+#define CHECKSUM_CHECK_TCP 0
|
|
+#define CHECKSUM_CHECK_ICMP 0
|
|
+#define CHECKSUM_CHECK_ICMP6 0
|
|
+
|
|
+/* Minimal changes to opt.h required for tcp unit tests: */
|
|
+#define MEM_SIZE 16000
|
|
+#define TCP_SND_QUEUELEN 40
|
|
+#define MEMP_NUM_TCP_SEG TCP_SND_QUEUELEN
|
|
+#define TCP_OVERSIZE 1
|
|
+#define TCP_SND_BUF (12 * TCP_MSS)
|
|
+#define TCP_WND (10 * TCP_MSS)
|
|
+#define LWIP_WND_SCALE 1
|
|
+#define TCP_RCV_SCALE 2
|
|
+#define PBUF_POOL_SIZE 400 /* pbuf tests need ~200KByte */
|
|
+
|
|
+/* Minimal changes to opt.h required for etharp unit tests: */
|
|
+#define ETHARP_SUPPORT_STATIC_ENTRIES 1
|
|
+
|
|
+#define LWIP_NUM_NETIF_CLIENT_DATA 1
|
|
+#define LWIP_SNMP 1
|
|
+#define MIB2_STATS 1
|
|
+#define LWIP_MDNS_RESPONDER 1
|
|
+
|
|
+#endif /* LWIP_HDR_LWIPOPTS_H__ */
|
|
diff --git a/src/netif/dir.mk b/src/netif/dir.mk
|
|
new file mode 100644
|
|
index 0000000..233c79a
|
|
--- /dev/null
|
|
+++ b/src/netif/dir.mk
|
|
@@ -0,0 +1,3 @@
|
|
+SRC = ethernet.c
|
|
+
|
|
+$(eval $(call register_dir, netif, $(SRC)))
|
|
--
|
|
2.23.0
|
|
|