Skip to content

Commit 80cbe58

Browse files
abhisitmshych
authored andcommitted
Add tcpdump command/target
- Add libpcap.make - Add tcpdump.make Signed-off-by: Abhisit Sangjan <[email protected]> Signed-off-by: Michael Shych <[email protected]>
1 parent 6868dee commit 80cbe58

File tree

6 files changed

+247
-0
lines changed

6 files changed

+247
-0
lines changed

build-config/Makefile

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -502,6 +502,14 @@ ifeq ($(SHIM_ENABLE),yes)
502502
include make/shim.make
503503
endif
504504

505+
ifeq ($(LIBPCAP_ENABLE),yes)
506+
include make/libpcap.make
507+
endif
508+
509+
ifeq ($(TCPDUMP_ENABLE),yes)
510+
include make/tcpdump.make
511+
endif
512+
505513
include make/images.make
506514
include make/demo.make
507515

build-config/make/images.make

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,14 @@ ifeq ($(SECURE_GRUB),no)
122122
GPG_SIGN_SECRING = ''
123123
endif
124124

125+
ifeq ($(LIBPCAP_ENABLE),yes)
126+
PACKAGES_INSTALL_STAMPS += $(LIBPCAP_STAMP)
127+
endif
128+
129+
ifeq ($(TCPDUMP_ENABLE),yes)
130+
PACKAGES_INSTALL_STAMPS += $(TCPDUMP_STAMP)
131+
endif
132+
125133
ifndef MAKE_CLEAN
126134
SYSROOT_NEW_FILES = $(shell \
127135
test -d $(ROOTCONFDIR)/default && \

build-config/make/libpcap.make

Lines changed: 114 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,114 @@
1+
#-------------------------------------------------------------------------------
2+
#
3+
# Copyright (C) 2024 Abhisit Sangjan <[email protected]>
4+
#
5+
# SPDX-License-Identifier: GPL-2.0
6+
#
7+
#-------------------------------------------------------------------------------
8+
#
9+
# This is a makefile fragment that defines the build of libpcap
10+
#
11+
12+
LIBPCAP_VERSION = 1.10.4
13+
LIBPCAP_TARBALL = libpcap-$(LIBPCAP_VERSION).tar.gz
14+
LIBPCAP_TARBALL_URLS += $(ONIE_MIRROR) \
15+
https://www.tcpdump.org/release
16+
LIBPCAP_BUILD_DIR = $(USER_BUILDDIR)/libpcap
17+
LIBPCAP_DIR = $(LIBPCAP_BUILD_DIR)/libpcap-$(LIBPCAP_VERSION)
18+
19+
LIBPCAP_DOWNLOAD_STAMP = $(DOWNLOADDIR)/libpcap-download
20+
LIBPCAP_SOURCE_STAMP = $(USER_STAMPDIR)/libpcap-source
21+
LIBPCAP_CONFIGURE_STAMP = $(USER_STAMPDIR)/libpcap-configure
22+
LIBPCAP_BUILD_STAMP = $(USER_STAMPDIR)/libpcap-build
23+
LIBPCAP_INSTALL_STAMP = $(STAMPDIR)/libpcap-install
24+
LIBPCAP_STAMP = $(LIBPCAP_DOWNLOAD_STAMP) \
25+
$(LIBPCAP_SOURCE_STAMP) \
26+
$(LIBPCAP_CONFIGURE_STAMP) \
27+
$(LIBPCAP_BUILD_STAMP) \
28+
$(LIBPCAP_INSTALL_STAMP)
29+
30+
PHONY += libpcap \
31+
libpcap-download \
32+
libpcap-source \
33+
libpcap-configure \
34+
libpcap-build \
35+
libpcap-install \
36+
libpcap-clean \
37+
libpcap-download-clean
38+
39+
libpcap: $(LIBPCAP_STAMP)
40+
41+
DOWNLOAD += $(LIBPCAP_DOWNLOAD_STAMP)
42+
43+
libpcap-download: $(LIBPCAP_DOWNLOAD_STAMP)
44+
$(LIBPCAP_DOWNLOAD_STAMP): $(PROJECT_STAMP)
45+
$(Q) rm -f $@ && eval $(PROFILE_STAMP)
46+
$(Q) echo "==== Getting upstream libpcap ===="
47+
$(Q) $(SCRIPTDIR)/fetch-package $(DOWNLOADDIR) $(UPSTREAMDIR) \
48+
$(LIBPCAP_TARBALL) $(LIBPCAP_TARBALL_URLS)
49+
$(Q) touch $@
50+
51+
SOURCE += $(LIBPCAP_SOURCE_STAMP)
52+
53+
libpcap-source: $(LIBPCAP_SOURCE_STAMP)
54+
$(LIBPCAP_SOURCE_STAMP): $(USER_TREE_STAMP) | $(LIBPCAP_DOWNLOAD_STAMP)
55+
$(Q) rm -f $@ && eval $(PROFILE_STAMP)
56+
$(Q) echo "==== Extracting upstream libpcap ===="
57+
$(Q) $(SCRIPTDIR)/extract-package $(LIBPCAP_BUILD_DIR) $(DOWNLOADDIR)/$(LIBPCAP_TARBALL)
58+
$(Q) touch $@
59+
60+
ifndef MAKE_CLEAN
61+
LIBPCAP_NEW_FILES = $( \
62+
shell test -d $(LIBPCAP_DIR) && \
63+
test -f $(LIBPCAP_BUILD_STAMP) && \
64+
find -L $(LIBPCAP_DIR) -newer $(LIBPCAP_BUILD_STAMP) -type f -print -quit \
65+
)
66+
endif
67+
68+
libpcap-configure: $(LIBPCAP_CONFIGURE_STAMP)
69+
$(LIBPCAP_CONFIGURE_STAMP): $(LIBPCAP_SOURCE_STAMP) | $(DEV_SYSROOT_INIT_STAMP)
70+
$(Q) rm -f $@ && eval $(PROFILE_STAMP)
71+
$(Q) echo "==== Configure libpcap-$(LIBPCAP_VERSION) ===="
72+
$(Q) cd $(LIBPCAP_DIR) && \
73+
$(LIBPCAP_DIR)/configure \
74+
--host=$(TARGET) \
75+
--prefix=/usr
76+
$(Q) touch $@
77+
78+
libpcap-build: $(LIBPCAP_BUILD_STAMP)
79+
$(LIBPCAP_BUILD_STAMP): $(LIBPCAP_CONFIGURE_STAMP) $(LIBPCAP_NEW_FILES) | $(DEV_SYSROOT_INIT_STAMP)
80+
$(Q) rm -f $@ && eval $(PROFILE_STAMP)
81+
$(Q) echo "==== Building libpcap-$(LIBPCAP_VERSION) ===="
82+
$(Q) PATH='$(CROSSBIN):$(PATH)' \
83+
$(MAKE) -C $(LIBPCAP_DIR) \
84+
CC=$(CROSSPREFIX)gcc
85+
$(Q) PATH='$(CROSSBIN):$(PATH)' \
86+
$(MAKE) -C $(LIBPCAP_DIR) install DESTDIR=$(DEV_SYSROOT) \
87+
CC=$(CROSSPREFIX)gcc
88+
$(Q) touch $@
89+
90+
libpcap-install: $(LIBPCAP_INSTALL_STAMP)
91+
$(LIBPCAP_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(LIBPCAP_BUILD_STAMP)
92+
$(Q) rm -f $@ && eval $(PROFILE_STAMP)
93+
$(Q) echo "==== Installing libpcap in $(SYSROOTDIR) ===="
94+
$(Q) mkdir -p $(SYSROSYSROOTDIROT)/usr/lib/
95+
$(Q) cp -av $(DEV_SYSROOT)/usr/lib/libpcap.so $(SYSROOTDIR)/usr/lib/
96+
$(Q) cp -av $(DEV_SYSROOT)/usr/lib/libpcap.so.1 $(SYSROOTDIR)/usr/lib/
97+
$(Q) cp -av $(DEV_SYSROOT)/usr/lib/libpcap.so.$(LIBPCAP_VERSION) $(SYSROOTDIR)/usr/lib/
98+
$(Q) touch $@
99+
100+
USER_CLEAN += libpcap-clean
101+
libpcap-clean:
102+
$(Q) rm -rf $(LIBPCAP_BUILD_DIR)
103+
$(Q) rm -f $(LIBPCAP_STAMP)
104+
$(Q) echo "=== Finished making $@ for $(PLATFORM)"
105+
106+
DOWNLOAD_CLEAN += libpcap-download-clean
107+
libpcap-download-clean:
108+
$(Q) rm -f $(LIBPCAP_DOWNLOAD_STAMP) $(DOWNLOADDIR)/$(LIBPCAP_TARBALL)
109+
110+
#-------------------------------------------------------------------------------
111+
#
112+
# Local Variables:
113+
# mode: makefile-gmake
114+
# End:

build-config/make/tcpdump.make

Lines changed: 115 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,115 @@
1+
#-------------------------------------------------------------------------------
2+
#
3+
# Copyright (C) 2024 Abhisit Sangjan <[email protected]>
4+
#
5+
# SPDX-License-Identifier: GPL-2.0
6+
#
7+
#-------------------------------------------------------------------------------
8+
#
9+
# This is a makefile fragment that defines the build of tcpdump
10+
#
11+
12+
TCPDUMP_VERSION = 4.99.4
13+
TCPDUMP_TARBALL = tcpdump-$(TCPDUMP_VERSION).tar.gz
14+
TCPDUMP_TARBALL_URLS += $(ONIE_MIRROR) \
15+
https://www.tcpdump.org/release
16+
TCPDUMP_BUILD_DIR = $(USER_BUILDDIR)/tcpdump
17+
TCPDUMP_DIR = $(TCPDUMP_BUILD_DIR)/tcpdump-$(TCPDUMP_VERSION)
18+
19+
TCPDUMP_DOWNLOAD_STAMP = $(DOWNLOADDIR)/tcpdump-download
20+
TCPDUMP_SOURCE_STAMP = $(USER_STAMPDIR)/tcpdump-source
21+
TCPDUMP_CONFIGURE_STAMP = $(USER_STAMPDIR)/tcpdump-configure
22+
TCPDUMP_BUILD_STAMP = $(USER_STAMPDIR)/tcpdump-build
23+
TCPDUMP_INSTALL_STAMP = $(STAMPDIR)/tcpdump-install
24+
TCPDUMP_STAMP = $(TCPDUMP_DOWNLOAD_STAMP) \
25+
$(TCPDUMP_SOURCE_STAMP) \
26+
$(TCPDUMP_CONFIGURE_STAMP) \
27+
$(TCPDUMP_BUILD_STAMP) \
28+
$(TCPDUMP_INSTALL_STAMP)
29+
30+
PHONY += tcpdump \
31+
tcpdump-download \
32+
tcpdump-source \
33+
tcpdump-configure \
34+
tcpdump-build \
35+
tcpdump-install \
36+
tcpdump-clean \
37+
tcpdump-download-clean
38+
39+
tcpdump: $(TCPDUMP_STAMP)
40+
41+
DOWNLOAD += $(TCPDUMP_DOWNLOAD_STAMP)
42+
43+
tcpdump-download: $(TCPDUMP_DOWNLOAD_STAMP)
44+
$(TCPDUMP_DOWNLOAD_STAMP): $(PROJECT_STAMP)
45+
$(Q) rm -f $@ && eval $(PROFILE_STAMP)
46+
$(Q) echo "==== Getting upstream tcpdump ===="
47+
$(Q) $(SCRIPTDIR)/fetch-package $(DOWNLOADDIR) $(UPSTREAMDIR) \
48+
$(TCPDUMP_TARBALL) $(TCPDUMP_TARBALL_URLS)
49+
$(Q) touch $@
50+
51+
SOURCE += $(TCPDUMP_SOURCE_STAMP)
52+
53+
tcpdump-source: $(TCPDUMP_SOURCE_STAMP)
54+
$(TCPDUMP_SOURCE_STAMP): $(USER_TREE_STAMP) | $(TCPDUMP_DOWNLOAD_STAMP)
55+
$(Q) rm -f $@ && eval $(PROFILE_STAMP)
56+
$(Q) echo "==== Extracting upstream tcpdump ===="
57+
$(Q) $(SCRIPTDIR)/extract-package $(TCPDUMP_BUILD_DIR) $(DOWNLOADDIR)/$(TCPDUMP_TARBALL)
58+
$(Q) touch $@
59+
60+
ifndef MAKE_CLEAN
61+
TCPDUMP_NEW_FILES = $( \
62+
shell test -d $(TCPDUMP_DIR) && \
63+
test -f $(TCPDUMP_BUILD_STAMP) && \
64+
find -L $(TCPDUMP_DIR) -newer $(TCPDUMP_BUILD_STAMP) -type f -print -quit \
65+
)
66+
endif
67+
68+
tcpdump-configure: $(TCPDUMP_CONFIGURE_STAMP)
69+
$(TCPDUMP_CONFIGURE_STAMP): $(TCPDUMP_SOURCE_STAMP) $(LIBPCAP_INSTALL_STAMP) | $(DEV_SYSROOT_INIT_STAMP)
70+
$(Q) rm -f $@ && eval $(PROFILE_STAMP)
71+
$(Q) echo "==== Configure tcpdump-$(TCPDUMP_VERSION) ===="
72+
$(Q) cd $(TCPDUMP_DIR) && PATH='$(CROSSBIN):$(PATH)' \
73+
$(TCPDUMP_DIR)/configure \
74+
--host=$(TARGET) \
75+
--prefix=/usr \
76+
CC=$(CROSSPREFIX)gcc \
77+
LDFLAGS=$(ONIE_LDFLAGS)
78+
$(Q) touch $@
79+
80+
tcpdump-build: $(TCPDUMP_BUILD_STAMP)
81+
$(TCPDUMP_BUILD_STAMP): $(TCPDUMP_CONFIGURE_STAMP) $(TCPDUMP_NEW_FILES) | $(DEV_SYSROOT_INIT_STAMP)
82+
$(Q) rm -f $@ && eval $(PROFILE_STAMP)
83+
$(Q) echo "==== Building tcpdump-$(TCPDUMP_VERSION) ===="
84+
$(Q) PATH='$(CROSSBIN):$(PATH)' \
85+
$(MAKE) -C $(TCPDUMP_DIR) \
86+
CC=$(CROSSPREFIX)gcc \
87+
CFLAGS="$(ONIE_CFLAGS) -I $(DEV_SYSROOT)/usr/include"
88+
$(Q) PATH='$(CROSSBIN):$(PATH)'
89+
$(MAKE) -C $(TCPDUMP_DIR) install DESTDIR=$(DEV_SYSROOT) \
90+
CC=$(CROSSPREFIX)gcc
91+
$(Q) touch $@
92+
93+
tcpdump-install: $(TCPDUMP_INSTALL_STAMP)
94+
$(TCPDUMP_INSTALL_STAMP): $(SYSROOT_INIT_STAMP) $(TCPDUMP_BUILD_STAMP)
95+
$(Q) rm -f $@ && eval $(PROFILE_STAMP)
96+
$(Q) echo "==== Installing tcpdump in $(SYSROOTDIR) ===="
97+
$(Q) mkdir -p $(SYSROOTDIR)/usr/bin/
98+
$(Q) cp -av $(DEV_SYSROOT)/usr/bin/tcpdump $(SYSROOTDIR)/usr/bin/
99+
$(Q) touch $@
100+
101+
USER_CLEAN += tcpdump-clean
102+
tcpdump-clean:
103+
$(Q) rm -rf $(TCPDUMP_BUILD_DIR)
104+
$(Q) rm -f $(TCPDUMP_STAMP)
105+
$(Q) echo "=== Finished making $@ for $(PLATFORM)"
106+
107+
DOWNLOAD_CLEAN += tcpdump-download-clean
108+
tcpdump-download-clean:
109+
$(Q) rm -f $(TCPDUMP_DOWNLOAD_STAMP) $(DOWNLOADDIR)/$(TCPDUMP_TARBALL)
110+
111+
#-------------------------------------------------------------------------------
112+
#
113+
# Local Variables:
114+
# mode: makefile-gmake
115+
# End:
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
818cbe70179c73eebfe1038854665f33aac64245 libpcap-1.10.4.tar.gz
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
cc005539296900ce6a90c61f4099bd0f3ef3dd26 tcpdump-4.99.4.tar.gz

0 commit comments

Comments
 (0)