aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGuy Harris <guy@alum.mit.edu>2016-02-14 17:00:38 -0800
committerGuy Harris <guy@alum.mit.edu>2016-02-15 08:31:06 +0000
commit58d00bad1a2c4298bd58013e4808899feb657422 (patch)
treec609d6f4b56c9f99432f4da736797af94161952c
parent21ab9b2cbefeb73cdc605a90e8980240452567c0 (diff)
Build the extcap programs in the extcap directory.
That lets the version of Wireshark built with autotools find the extcap programs. Don't install the extcap programs under ${datadir} - that puts it under a share directory, and share directories are for platform-independent files, which executable images aren't (they're instruction-set dependent, hence platform-dependent). Change-Id: I992eeb984bdbe6b3476777f7114628c83df6080f Reviewed-on: https://code.wireshark.org/review/13943 Reviewed-by: Guy Harris <guy@alum.mit.edu>
-rw-r--r--CMakeLists.txt7
-rw-r--r--Makefile.am61
-rw-r--r--Makefile.common23
-rw-r--r--Makefile.nmake11
-rw-r--r--configure.ac6
-rw-r--r--extcap/Makefile.am74
-rw-r--r--extcap/Makefile.common34
-rw-r--r--extcap/Makefile.nmake143
-rw-r--r--extcap/randpktdump.c2
-rwxr-xr-xpackaging/macosx/osx-app.sh59
-rw-r--r--randpkt.c4
-rw-r--r--randpkt_core/CMakeLists.txt47
-rw-r--r--randpkt_core/Makefile.am73
-rw-r--r--randpkt_core/Makefile.common28
-rw-r--r--randpkt_core/Makefile.nmake78
-rw-r--r--randpkt_core/doxygen.cfg.in81
-rw-r--r--randpkt_core/randpkt_core.c (renamed from randpkt-core.c)4
-rw-r--r--randpkt_core/randpkt_core.h (renamed from randpkt-core.h)2
18 files changed, 644 insertions, 93 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index ecba8a1ecb..dde0c995a5 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -1018,6 +1018,7 @@ add_subdirectory( caputils )
add_subdirectory( codecs )
add_subdirectory( docbook )
add_subdirectory( epan )
+add_subdirectory( randpkt_core )
add_subdirectory( tools/lemon )
add_subdirectory( ui )
add_subdirectory( wiretap )
@@ -1205,6 +1206,7 @@ set( IN_FILES
packaging/macosx/Info.plist.in
packaging/macosx/osx-dmg.sh.in
packaging/macosx/Wireshark_package.pmdoc/index.xml.in
+ randpkt_core/doxygen.cfg.in
ui/doxygen.cfg.in
ui/gtk/doxygen.cfg.in
ui/qt/doxygen.cfg.in
@@ -1231,6 +1233,7 @@ link_directories(
${CMAKE_BINARY_DIR}/caputils
${CMAKE_BINARY_DIR}/codecs
${CMAKE_BINARY_DIR}/epan
+ ${CMAKE_BINARY_DIR}/randpkt_core
${CMAKE_BINARY_DIR}/wiretap
${CMAKE_BINARY_DIR}/wsutil
)
@@ -2146,6 +2149,7 @@ endif()
if(BUILD_randpkt)
set(randpkt_LIBS
+ randpkt_core
wiretap
wsutil
${M_LIBRARIES}
@@ -2158,7 +2162,6 @@ if(BUILD_randpkt)
)
set(randpkt_FILES
randpkt.c
- randpkt-core.c
)
add_executable(randpkt ${randpkt_FILES})
set_extra_executable_properties(randpkt "Executables")
@@ -2398,13 +2401,13 @@ endif()
if(BUILD_randpktdump)
set(randpktdump_LIBS
+ randpkt_core
wiretap
${GLIB2_LIBRARIES}
${CMAKE_DL_LIBS}
)
set(randpktdump_FILES
extcap/randpktdump.c
- randpkt-core.c
)
add_executable(randpktdump WIN32 ${randpktdump_FILES})
diff --git a/Makefile.am b/Makefile.am
index 617db111ec..1976a2bfd2 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -45,14 +45,11 @@ bin_PROGRAMS = \
@dumpcap_bin@ \
@reordercap_bin@ \
@rawshark_bin@ \
- @androiddump_bin@ \
- @sshdump_bin@ \
- @randpktdump_bin@ \
@echld_test_bin@
-EXTRA_PROGRAMS = wireshark-gtk wireshark tshark tfshark capinfos captype editcap \
- mergecap dftest randpkt text2pcap dumpcap reordercap rawshark androiddump \
- sshdump randpktdump echld_test
+EXTRA_PROGRAMS = wireshark-gtk wireshark tshark tfshark capinfos captype \
+ editcap mergecap dftest randpkt text2pcap dumpcap reordercap \
+ rawshark echld_test
#
# Wireshark configuration files are put in $(pkgdatadir).
@@ -528,46 +525,6 @@ rawshark_LDADD = \
@LIBGNUTLS_LIBS@ \
@LIBSMI_LDFLAGS@
-if ENABLE_STATIC
-androiddump_LDFLAGS = -Wl,-static -all-static
-else
-androiddump_LDFLAGS = -export-dynamic
-endif
-
-# Libraries and plugin flags with which to link androiddump.
-androiddump_LDADD = \
- wiretap/libwiretap.la \
- wsutil/libwsutil.la \
- @GLIB_LIBS@ \
- @SOCKET_LIBS@
-
-if ENABLE_STATIC
- sshdump_LDFLAGS = -Wl,-static -all-static
-else
- sshdump_LDFLAGS = -export-dynamic
-endif
-
-# Libraries and plugin flags with which to link sshdump.
-sshdump_LDADD = \
- wiretap/libwiretap.la \
- wsutil/libwsutil.la \
- @GLIB_LIBS@ \
- @LIBSSH_LIBS@ \
- @SOCKET_LIBS@
-
-if ENABLE_STATIC
- randpktdump_LDFLAGS = -Wl,-static -all-static
-else
- randpktdump_LDFLAGS = -export-dynamic
-endif
-
-# Libraries and plugin flags with which to link randpktdump.
-randpktdump_LDADD = \
- wiretap/libwiretap.la \
- wsutil/libwsutil.la \
- @GLIB_LIBS@ \
- @SOCKET_LIBS@
-
# Libraries with which to link text2pcap.
text2pcap_LDADD = \
wsutil/libwsutil.la \
@@ -612,6 +569,7 @@ reordercap_LDADD = \
# Libraries with which to link randpkt.
randpkt_LDADD = \
+ randpkt_core/librandpkt_core.a \
wiretap/libwiretap.la \
wsutil/libwsutil.la \
@GLIB_LIBS@ \
@@ -1407,9 +1365,11 @@ DIST_SUBDIRS = \
help \
packaging \
plugins \
+ randpkt_core \
tools \
wiretap \
wsutil \
+ extcap \
docbook
SUBDIRS = \
@@ -1426,6 +1386,8 @@ SUBDIRS = \
ui \
@wireshark_SUBDIRS@ \
ui/cli \
+ randpkt_core \
+ extcap \
. \
doc
@@ -1638,7 +1600,10 @@ osx-app: $(PROGRAMS) $(SCRIPTS) $(MANS) $(DATA) packaging/macosx/Info.plist
cd $(srcdir)/packaging/macosx ; \
./osx-app.sh @OSX_APP_FLAGS@ \
--create-bundle \
- --binary-path ../staging/$(PACKAGE).inst$(bindir) ; \
+ --binary-path ../staging/$(PACKAGE).inst$(bindir) \
+ --plugin-path ../staging/$(PACKAGE).inst$(plugindir) \
+ --extcap-path ../staging/$(PACKAGE).inst$(extcapdir) \
+ --library-path ../staging/$(PACKAGE).inst$(libdir) ; \
else \
echo "Error: OS X packaging tools not found." ; \
echo "Package build abandoned." ; \
@@ -1694,6 +1659,7 @@ checkapi: checkapi_local
cd epan/dissectors && $(MAKE) checkapi
cd epan/dissectors/dcerpc && $(MAKE) checkapi
cd plugins && $(MAKE) checkapi
+ cd randpkt_core && $(MAKE) checkapi
cd wsutil && $(MAKE) checkapi
wsar_html: doxygen.cfg doxygen_global.cfg FORCE
@@ -1702,6 +1668,7 @@ if HAVE_DOXYGEN
cd epan && $(MAKE) $@
cd capchild && $(MAKE) $@
cd caputils && $(MAKE) $@
+ cd randpkt_core && $(MAKE) $@
cd ui && $(MAKE) $@
(umask 022 ; $(DOXYGEN) doxygen.cfg)
endif
diff --git a/Makefile.common b/Makefile.common
index 0f9e7e721b..9a7b401ccd 100644
--- a/Makefile.common
+++ b/Makefile.common
@@ -95,19 +95,6 @@ rawshark_SOURCES = \
$(SHARK_COMMON_SRC) \
rawshark.c
-# androiddump specifics
-androiddump_SOURCES = \
- extcap/androiddump.c
-
-# sshdump specifics
-sshdump_SOURCES = \
- extcap/sshdump.c
-
-# randpktdump specifics
-randpktdump_SOURCES = \
- randpkt-core.c \
- extcap/randpktdump.c
-
# text2pcap specifics
text2pcap_SOURCES = \
pcapio.c \
@@ -155,12 +142,7 @@ echld_test_SOURCES = \
# randpkt specifics
randpkt_SOURCES = \
- randpkt.c \
- randpkt-core.c
-
-# corresponding headers
-randpkt_INCLUDES = \
- randpkt-core.h
+ randpkt.c
# dumpcap specifics
dumpcap_SOURCES = \
@@ -184,5 +166,4 @@ dumpcap_INCLUDES = \
noinst_HEADERS = \
$(SHARK_COMMON_INCLUDES) \
$(WIRESHARK_COMMON_INCLUDES) \
- $(dumpcap_INCLUDES) \
- $(randpkt_INCLUDES)
+ $(dumpcap_INCLUDES)
diff --git a/Makefile.nmake b/Makefile.nmake
index 14875c4a6b..b1fd6f504d 100644
--- a/Makefile.nmake
+++ b/Makefile.nmake
@@ -187,7 +187,8 @@ sshdump_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
wsutil\libwsutil.lib \
$(LIBSSH_LIBS) \
-randpktdump_LIBS= wiretap\wiretap-$(WTAP_VERSION).lib \
+randpktdump_LIBS= randpkt_core\randpkt_core.lib \
+ wiretap\wiretap-$(WTAP_VERSION).lib \
wsock32.lib user32.lib \
wsutil\libwsutil.lib \
$(GLIB_LIBS)
@@ -454,10 +455,10 @@ androiddump.exe : $(LIBS_CHECK) config.h androiddump.obj wsutil\libwsutil.lib wi
mt.exe -nologo -manifest "androiddump.exe.manifest" -outputresource:androiddump.exe;1
!ENDIF
-randpktdump.exe : $(LIBS_CHECK) config.h randpktdump.obj randpkt-core.obj wsutil\libwsutil.lib wiretap\wiretap-$(WTAP_VERSION).lib
+randpktdump.exe : $(LIBS_CHECK) config.h randpktdump.obj randpkt_core\randpkt_core.lib wsutil\libwsutil.lib wiretap\wiretap-$(WTAP_VERSION).lib
@echo Linking $@
$(LINK) @<<
- /OUT:randpktdump.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:WINDOWS randpktdump.obj randpkt-core.obj $(randpktdump_LIBS)
+ /OUT:randpktdump.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:WINDOWS randpktdump.obj $(randpktdump_LIBS)
<<
!IFDEF MANIFEST_INFO_REQUIRED
mt.exe -nologo -manifest "randpktdump.exe.manifest" -outputresource:randpktdump.exe;1
@@ -613,7 +614,7 @@ androiddump.obj : extcap/androiddump.c
sshdump.obj : extcap/sshdump.c
$(CC) $(CFLAGS) -Fd.\ -c $?
-randpktdump.obj : extcap/randpktdump.c randpkt-core.c
+randpktdump.obj : extcap/randpktdump.c
$(CC) $(CFLAGS) -Fd.\ -c $?
test-programs:
@@ -632,7 +633,7 @@ clean-local:
reordercap.obj nio-ie5.obj update.obj \
text2pcap-scanner.obj text2pcap-scanner.c \
config.h ps.c $(LIBS_CHECK) \
- dftest.obj dftest.exe randpkt.obj randpkt-core.obj randpkt.exe \
+ dftest.obj dftest.exe randpkt.obj randpkt.exe \
doxygen.cfg \
$(RESOURCES) libwireshark.dll wiretap-$(WTAP_VERSION).dll \
libwscodecs.lib libwsutil.dll \
diff --git a/configure.ac b/configure.ac
index 65d05fc7d6..ceb2378bf9 100644
--- a/configure.ac
+++ b/configure.ac
@@ -3059,8 +3059,8 @@ dnl
dnl check whether extcap programs should be enabled and, if they should be,
dnl check for extcap directory - stolen from Amanda's configure.ac
dnl
-dnl we don't wish to expand ${datadir} yet
-extcapdir="\${datadir}/wireshark/extcap"
+dnl we don't wish to expand ${libdir} yet
+extcapdir="\${libdir}/wireshark/extcap"
AC_ARG_WITH(extcap,
AC_HELP_STRING( [--with-extcap@<:@=DIR@:>@],
[use extcap for external capture sources (installed in DIR, if supplied) @<:@default=yes, if possible@:>@]),
@@ -3288,6 +3288,7 @@ AC_OUTPUT(
epan/nghttp2/Makefile
epan/wmem/Makefile
epan/wslua/Makefile
+ extcap/Makefile
codecs/Makefile
ui/Makefile
ui/doxygen.cfg
@@ -3324,6 +3325,7 @@ AC_OUTPUT(
plugins/wimax/Makefile
plugins/wimaxasncp/Makefile
plugins/wimaxmacphy/Makefile
+ randpkt_core/Makefile
tools/Makefile
tools/lemon/Makefile
wiretap/Makefile
diff --git a/extcap/Makefile.am b/extcap/Makefile.am
new file mode 100644
index 0000000000..08ea26e641
--- /dev/null
+++ b/extcap/Makefile.am
@@ -0,0 +1,74 @@
+# Makefile.am
+# Automake file for extcap tools
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+include ../Makefile.am.inc
+
+ACLOCAL_AMFLAGS = `../aclocal-flags`
+
+AM_CPPFLAGS += -I$(top_srcdir)/wiretap
+
+extcap_PROGRAMS = \
+ @androiddump_bin@ \
+ @randpktdump_bin@ \
+ @sshdump_bin@
+
+EXTRA_PROGRAMS = androiddump randpktdump sshdump
+
+if ENABLE_STATIC
+androiddump_LDFLAGS = -Wl,-static -all-static
+else
+androiddump_LDFLAGS = -export-dynamic
+endif
+
+# Libraries and plugin flags with which to link androiddump.
+androiddump_LDADD = \
+ ../wiretap/libwiretap.la \
+ ../wsutil/libwsutil.la \
+ @GLIB_LIBS@ \
+ @SOCKET_LIBS@
+
+if ENABLE_STATIC
+ randpktdump_LDFLAGS = -Wl,-static -all-static
+else
+ randpktdump_LDFLAGS = -export-dynamic
+endif
+
+# Libraries and plugin flags with which to link randpktdump.
+randpktdump_LDADD = \
+ ../randpkt_core/librandpkt_core.a \
+ ../wiretap/libwiretap.la \
+ ../wsutil/libwsutil.la \
+ @GLIB_LIBS@ \
+ @SOCKET_LIBS@
+
+if ENABLE_STATIC
+ sshdump_LDFLAGS = -Wl,-static -all-static
+else
+ sshdump_LDFLAGS = -export-dynamic
+endif
+
+# Libraries and plugin flags with which to link sshdump.
+sshdump_LDADD = \
+ ../wiretap/libwiretap.la \
+ ../wsutil/libwsutil.la \
+ @GLIB_LIBS@ \
+ @LIBSSH_LIBS@ \
+ @SOCKET_LIBS@
diff --git a/extcap/Makefile.common b/extcap/Makefile.common
new file mode 100644
index 0000000000..e727ea60cc
--- /dev/null
+++ b/extcap/Makefile.common
@@ -0,0 +1,34 @@
+# Makefile.common
+# Contains the stuff from Makefile.am and Makefile.nmake that is
+# a) common to both files and
+# b) portable between both files
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+# androiddump specifics
+androiddump_SOURCES = \
+ androiddump.c
+
+# randpktdump specifics
+randpktdump_SOURCES = \
+ randpktdump.c
+
+# sshdump specifics
+sshdump_SOURCES = \
+ sshdump.c
diff --git a/extcap/Makefile.nmake b/extcap/Makefile.nmake
new file mode 100644
index 0000000000..e85096164d
--- /dev/null
+++ b/extcap/Makefile.nmake
@@ -0,0 +1,143 @@
+## Makefile for building wireshark.exe with Microsoft C and nmake
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+# We "Deploy using XCopy," which is described at
+# http://msdn.microsoft.com/en-us/library/ms235291.aspx
+
+include ..\config.nmake
+include ..\Makefile.nmake.inc
+
+############### no need to modify below this line #########
+
+CC = cl
+LINK= link
+
+LDFLAGS = /NOLOGO /INCREMENTAL:NO $(LOCAL_LDFLAGS)
+
+# We use GENERATED_CFLAGS to get around flex's non-LLP64-compliant output
+GENERATED_CFLAGS=\
+ $(STANDARD_CFLAGS) \
+ /I. /Iwiretap $(GLIB_CFLAGS) \
+ $(ZLIB_CFLAGS) /I$(PCAP_DIR)\include $(AIRPCAP_CFLAGS) \
+ $(C_ARES_CFLAGS) $(ADNS_CFLAGS) $(GNUTLS_CFLAGS) \
+ $(SMI_CFLAGS) $(GEOIP_CFLAGS) $(LIBSSH_CFLAGS) $(WINSPARKLE_CFLAGS)
+
+CFLAGS=$(WARNINGS_ARE_ERRORS) $(GENERATED_CFLAGS)
+
+.c.obj::
+ $(CC) $(CFLAGS) -Fd.\ -c $<
+
+include Makefile.common
+
+androiddump_OBJECTS = $(androiddump_SOURCES:.c=.obj)
+
+anddroiddump_WSLIBS = \
+ ..\wiretap\wiretap-$(WTAP_VERSION).lib \
+ ..\wsutil\libwsutil.lib
+
+androiddump_LIBS = $(anddroiddump_WSLIBS) \
+ wsock32.lib user32.lib \
+ $(GLIB_LIBS)
+
+randpktdump_OBJECTS = $(randpktdump_SOURCES:.c=.obj)
+
+randpktdump_WSLIBS = \
+ ..\randpkt_core\randpkt_core.lib \
+ ..\wiretap\wiretap-$(WTAP_VERSION).lib \
+ ..\wsutil\libwsutil.lib
+
+randpktdump_LIBS = $(randpktdump_WSLIBS) \
+ wsock32.lib user32.lib \
+ $(GLIB_LIBS)
+
+sshdump_OBJECTS = $(sshdump_SOURCES:.c=.obj)
+
+sshdump_WSLIBS = \
+ ..\wiretap\wiretap-$(WTAP_VERSION).lib \
+ ..\wsutil\libwsutil.lib
+
+sshdump_LIBS = $(sshdump_WSLIBS) \
+ wsock32.lib user32.lib \
+ $(LIBSSH_LIBS) \
+ $(GLIB_LIBS)
+
+EXECUTABLES=androiddump.exe randpktdump.exe
+
+!IFDEF LIBSSH_DIR
+EXECUTABLES += sshdump.exe
+!ENDIF
+
+androiddump.exe : $(LIBS_CHECK) config.h androiddump.obj $(anddroiddump_WSLIBS)
+ @echo Linking $@
+ $(LINK) @<<
+ /OUT:androiddump.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:WINDOWS androiddump.obj $(androiddump_LIBS)
+<<
+!IFDEF MANIFEST_INFO_REQUIRED
+ mt.exe -nologo -manifest "androiddump.exe.manifest" -outputresource:androiddump.exe;1
+!ENDIF
+
+randpktdump.exe : $(LIBS_CHECK) config.h randpktdump.obj $(randpktdump_WSLIBS)
+ @echo Linking $@
+ $(LINK) @<<
+ /OUT:randpktdump.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:WINDOWS randpktdump.obj $(randpktdump_LIBS)
+<<
+!IFDEF MANIFEST_INFO_REQUIRED
+ mt.exe -nologo -manifest "randpktdump.exe.manifest" -outputresource:randpktdump.exe;1
+!ENDIF
+
+!IFDEF LIBSSH_DIR
+sshdump.exe : $(LIBS_CHECK) config.h sshdump.obj $(sshdump_WSLIBS)
+ @echo Linking $@
+ $(LINK) @<<
+ /OUT:sshdump.exe $(conflags) $(conlibsdll) $(LDFLAGS) /SUBSYSTEM:WINDOWS sshdump.obj $(sshdump_LIBS)
+<<
+!IFDEF MANIFEST_INFO_REQUIRED
+ mt.exe -nologo -manifest "sshdump.exe.manifest" -outputresource:sshdump.exe;1
+!ENDIF
+!ENDIF
+
+clean:
+ rm -f $(androiddump_OBJECTS) $(randpktdump_OBJECTS) $(sshdump_OBJECTS) \
+ $(EXECUTABLES) *.nativecodeanalysis.xml *.pdb *.sbr \
+ doxygen.cfg *.exe.manifest
+
+# "distclean" removes all files not part of the distribution.
+# It does not remove generated files that are part of the distribution.
+distclean: clean
+ rm -f $(BUILT_SOURCES)
+
+# Make "maintainer-clean" only if you would like to remove ALL generated
+# files.
+# Be sure to have python and perl installed to regenerate them.
+maintainer-clean: distclean
+
+# convert doxygen.cfg.in to doxygen.cfg with stamped version info
+doxygen.cfg: ..\config.nmake doxygen.cfg.in
+!IFDEF DOXYGEN
+ sed -e s/@VERSION@/$(VERSION)/ \
+ < doxygen.cfg.in > $@
+!ENDIF
+
+doxygen-run:
+!IFDEF DOXYGEN
+ $(DOXYGEN) doxygen.cfg
+!ENDIF
+
+# MS html help compiler hhc returns 1 on success, but as nmake expects 0 it would stop here.
+# the prepended -1 will raise the accepted error levels of nmake, so it will continue
+doxygen.chm:
+!IFDEF HHC
+ -1 $(HHC) html\index.hhp
+!ENDIF
+
+doxygen: doxygen.cfg doxygen-run doxygen.chm
+
+checkapi: checkapi-base checkapi-todo
+
+checkapi-base:
+ $(PERL) ../tools/checkAPIs.pl -g deprecated-gtk -build \
+ $(androiddump_SOURCES) $(randpktdump_SOURCES) $(sshdump_SOURCES)
+
+checkapi-todo:
+ $(PERL) ../tools/checkAPIs.pl -M -g deprecated-gtk-todo -build \
+ $(androiddump_SOURCES) $(randpktdump_SOURCES) $(sshdump_SOURCES)
diff --git a/extcap/randpktdump.c b/extcap/randpktdump.c
index a36231efa4..a2c7dfbce8 100644
--- a/extcap/randpktdump.c
+++ b/extcap/randpktdump.c
@@ -24,7 +24,7 @@
#include "config.h"
-#include "randpkt-core.h"
+#include "randpkt_core/randpkt_core.h"
#include <glib.h>
#include <glib/gprintf.h>
diff --git a/packaging/macosx/osx-app.sh b/packaging/macosx/osx-app.sh
index 82ae000435..be1faadcc8 100755
--- a/packaging/macosx/osx-app.sh
+++ b/packaging/macosx/osx-app.sh
@@ -1,7 +1,9 @@
#!/bin/bash
#
# USAGE
-# osx-app [-s] [-l /path/to/libraries] -bp /path/to/wireshark/bin -p /path/to/Info.plist
+# osx-app [-s] [-l /path/to/libraries] -bp /path/to/wireshark/bin
+# -lp /path/to/wireshark/lib -ep /path/to/wireshark/extcap/binaries
+# -pp /path/to/wireshark/plugins -p /path/to/Info.plist
#
# This script attempts to build an Wireshark.app bundle for OS X, resolving
# dynamic libraries, etc.
@@ -36,6 +38,9 @@
# Defaults
strip=false
binary_path="/tmp/inst/bin"
+library_path="/tmp/inst/lib"
+plugin_path="/tmp/inst/lib/wireshark/plugins"
+extcap_path="/tmp/inst/lib/wireshark/extcap"
plist="./Info.plist"
exclude_prefixes="/System/|/Library/|/usr/lib/|/usr/X11/|/opt/X11/|@rpath|@executable_path"
create_bundle=false
@@ -59,12 +64,14 @@ binary_list="
rawshark
text2pcap
tshark
+"
+extcap_binary_list="
extcap/androiddump
extcap/randpktdump
"
if [ -x "extcap/sshdump" ]; then
- binary_list="$binary_list extcap/sshdump"
+ extcap_binary_list="$extcap_binary_list extcap/sshdump"
fi
cs_binary_list=
@@ -103,6 +110,15 @@ OPTIONS
-bp,--binary-path
Specify the path to the Wireshark binaries. By default it
is /tmp/inst/bin.
+ -lp,--library-path
+ Specify the path to the Wireshark libraries. By default it
+ is /tmp/inst/lib.
+ -pp,--plugin-path
+ Specify the path to the Wireshark plugins. By default it
+ is /tmp/inst/lib/wireshark/plugins.
+ -ep,--extcap-path
+ Specify the path to the Wireshark extcap binaries. By
+ default it is /tmp/inst/lib/wireshark/extcap.
-p,--plist
Specify the path to Info.plist. Info.plist can be found
in the base directory of the source code once configure
@@ -133,6 +149,15 @@ do
-bp|--binary-path)
binary_path="$2"
shift 1 ;;
+ -lp|--library-path)
+ library_path="$2"
+ shift 1 ;;
+ -pp|--plugin-path)
+ plugin_path="$2"
+ shift 1 ;;
+ -ep|--extcap-path)
+ extcap_path="$2"
+ shift 1 ;;
-cb|--create-bundle)
create_bundle=true;;
-p|--plist)
@@ -176,6 +201,14 @@ if [ "$create_bundle" = "true" ]; then
fi
done
+ for binary in $extcap_binary_list ; do
+ binary=$( basename $binary )
+ if [ ! -x "$extcap_path/$binary" ]; then
+ echo "Couldn't find $binary (or it's not executable)" >&2
+ exit 1
+ fi
+ done
+
if [ ! -f "$plist" ]; then
echo "Need plist file" >&2
exit 1
@@ -308,29 +341,35 @@ create_bundle() {
done
elif [ "$ui_toolkit" = "qt" ] ; then
for binary in $binary_list ; do
- bin_dest="$pkgexec"
- if [ "$( dirname $binary )" == "extcap" ] ; then
- binary=$( basename $binary )
- bin_dest="$pkgexec/$( dirname $binary )"
- fi
-
# Copy the binary to its destination
+ bin_dest="$pkgexec"
cp -v "$binary_path/$binary" "$bin_dest"
cs_binary_list="$cs_binary_list $bin_dest/$binary"
done
fi
+ #
+ # extcap binaries
+ #
+ for binary in $extcap_binary_list ; do
+ # Copy the binary to its destination
+ binary=$( basename $binary )
+ bin_dest="$pkgexec/extcap"
+ cp -v "$extcap_path/$binary" "$bin_dest"
+ cs_binary_list="$cs_binary_list $bin_dest/$binary"
+ done
+
# The rest of the Wireshark installation (we handled bin above)
rsync -av \
--exclude bin/ \
--exclude lib/ \
"$binary_path/.."/* "$pkgres"
- rsync -av $binary_path/../lib/*.dylib "$pkglib/"
+ rsync -av $library_path/*.dylib "$pkglib/"
# Copy the plugins from the "make install" location for them
# to the plugin directory, removing the version number
- find "$binary_path/../lib/wireshark/plugins" \
+ find "$plugin_path" \
-type f \
\( -name "*.so" -o -name "*.dylib" \) \
-exec cp -fv "{}" "$pkgplugin/" \;
diff --git a/randpkt.c b/randpkt.c
index ec34a35471..073d50d38f 100644
--- a/randpkt.c
+++ b/randpkt.c
@@ -21,8 +21,6 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#include "randpkt-core.h"
-
#include <glib.h>
#include <stdio.h>
#include <stdlib.h>
@@ -38,6 +36,8 @@
#include "wsutil/wsgetopt.h"
#endif
+#include "randpkt_core/randpkt_core.h"
+
/* Print usage statement and exit program */
static void
usage(gboolean is_error)
diff --git a/randpkt_core/CMakeLists.txt b/randpkt_core/CMakeLists.txt
new file mode 100644
index 0000000000..f40f745408
--- /dev/null
+++ b/randpkt_core/CMakeLists.txt
@@ -0,0 +1,47 @@
+# CMakeLists.txt
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+#
+
+
+set(RANDPKT_CORE_SRC
+ randpkt_core.c
+)
+
+set(CLEAN_FILES
+ ${RANDPKT_CORE_SRC}
+)
+
+if (WERROR_COMMON_FLAGS)
+ set_source_files_properties(
+ ${CLEAN_FILES}
+ PROPERTIES
+ COMPILE_FLAGS ${WERROR_COMMON_FLAGS}
+ )
+endif()
+
+file(GLOB RANDPKT_CORE_HEADERS randpkt_core.h)
+
+add_library(randpkt_core STATIC
+ ${RANDPKT_CORE_SRC}
+)
+
+set_target_properties(randpkt_core PROPERTIES
+ LINK_FLAGS "${WS_LINK_FLAGS}"
+ FOLDER "Libs")
diff --git a/randpkt_core/Makefile.am b/randpkt_core/Makefile.am
new file mode 100644
index 0000000000..5f35912bdb
--- /dev/null
+++ b/randpkt_core/Makefile.am
@@ -0,0 +1,73 @@
+# Makefile.am
+# Automake file for the "random packet generator" routines for Wireshark
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+include Makefile.common
+include $(top_srcdir)/Makefile.am.inc
+
+AM_CPPFLAGS += -I$(top_srcdir)/wiretap $(LIBGCRYPT_CFLAGS) \
+ $(LIBGNUTLS_CFLAGS) $(PORTAUDIO_INCLUDES)
+
+noinst_LIBRARIES = librandpkt_core.a
+
+CLEANFILES = \
+ doxygen-randpkt_core.tag \
+ librandpkt_core.a \
+ *~
+
+MAINTAINERCLEANFILES = \
+ $(GENERATED_FILES) \
+ Makefile.in
+
+# All sources that should be put in the source distribution tarball
+librandpkt_core_a_SOURCES = \
+ $(RANDPKT_CORE_SRC) \
+ $(noinst_HEADERS)
+
+librandpkt_core_a_DEPENDENCIES =
+
+doxygen:
+if HAVE_DOXYGEN
+ $(DOXYGEN) doxygen.cfg
+endif # HAVE_DOXYGEN
+
+wsar_html: doxygen.cfg ../doxygen_global.cfg
+if HAVE_DOXYGEN
+ (umask 022 ; $(DOXYGEN) doxygen.cfg)
+endif
+
+checkapi: checkapi-base checkapi-todo
+
+checkapi-base:
+ $(PERL) $(top_srcdir)/tools/checkAPIs.pl -g deprecated-gtk -build \
+ -sourcedir=$(srcdir) \
+ $(RANDPKT_CORE_SRC)
+
+checkapi-todo:
+ $(PERL) $(top_srcdir)/tools/checkAPIs.pl -M -g deprecated-gtk-todo -build \
+ -sourcedir=$(srcdir) \
+ $(RANDPKT_CORE_SRC)
+
+EXTRA_DIST = \
+ $(GENERATOR_FILES) \
+ CMakeLists.txt \
+ doxygen.cfg.in \
+ Makefile.common \
+ Makefile.nmake
diff --git a/randpkt_core/Makefile.common b/randpkt_core/Makefile.common
new file mode 100644
index 0000000000..b7f72fc4c4
--- /dev/null
+++ b/randpkt_core/Makefile.common
@@ -0,0 +1,28 @@
+# Makefile.common
+# Contains the stuff from Makefile.am and Makefile.nmake that is
+# a) common to both files and
+# b) portable between both files
+#
+# Wireshark - Network traffic analyzer
+# By Gerald Combs <gerald@wireshark.org>
+# Copyright 1998 Gerald Combs
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
+
+RANDPKT_CORE_SRC = \
+ randpkt_core.c
+
+noinst_HEADERS = \
+ randpkt_core.h
diff --git a/randpkt_core/Makefile.nmake b/randpkt_core/Makefile.nmake
new file mode 100644
index 0000000000..5ab93cff9d
--- /dev/null
+++ b/randpkt_core/Makefile.nmake
@@ -0,0 +1,78 @@
+## Makefile for building wireshark.exe with Microsoft C and nmake
+## Use: $(MAKE) /$(MAKEFLAGS) -f makefile.nmake
+#
+
+include ..\config.nmake
+include ..\Makefile.nmake.inc
+
+############### no need to modify below this line #########
+
+# We use GENERATED_CFLAGS to get around flex's non-LLP64-compliant output
+GENERATED_CFLAGS=\
+ $(STANDARD_CFLAGS) \
+ /Zm800 \
+ /I.. /I../wiretap $(GLIB_CFLAGS) $(GNUTLS_CFLAGS) \
+ /I$(PCAP_DIR)\WPCAP\LIBPCAP /I$(PCAP_DIR)\WPCAP\LIBPCAP\bpf \
+ /I$(PCAP_DIR)\WPCAP\LIBPCAP\lbl \
+ /I$(PCAP_DIR)\include $(AIRPCAP_CFLAGS) \
+ $(PORTAUDIO_CFLAGS) $(GEOIP_CFLAGS) $(WINSPARKLE_CFLAGS) \
+ $(HHC_CFLAGS)
+
+CFLAGS=$(WARNINGS_ARE_ERRORS) $(GENERATED_CFLAGS)
+
+.c.obj::
+ $(CC) $(CFLAGS) $(WSUG_CFLAGS) -Fd.\ -c $<
+
+include Makefile.common
+
+
+# if you add files here, be sure to include them also in Makefile.am EXTRA_DIST
+RANDPKT_CORE_OBJECTS = \
+ $(RANDPKT_CORE_SRC:.c=.obj)
+
+RUNLEX=../tools/runlex.sh
+
+librandpkt_core.lib : ..\config.h $(RANDPKT_CORE_OBJECTS)
+ link /lib /out:librandpkt_core.lib $(RANDPKT_CORE_OBJECTS)
+
+clean:
+ rm -f $(RANDPKT_CORE_OBJECTS) librandpkt_core.lib \
+ *.nativecodeanalysis.xml *.pdb *.sbr \
+ doxygen.cfg html/*.* wireshark-tap-register-cache.pkl
+ if exist html rmdir html
+
+distclean: clean
+
+maintainer-clean: distclean
+ rm -f $(GENERATED_FILES)
+
+# convert doxygen.cfg.in to doxygen.cfg with stamped version info
+doxygen.cfg: ..\config.nmake doxygen.cfg.in
+!IFDEF DOXYGEN
+ sed -e s/@VERSION@/$(VERSION)/ \
+ < doxygen.cfg.in > $@
+!ENDIF
+
+doxygen-run:
+!IFDEF DOXYGEN
+ $(DOXYGEN) doxygen.cfg
+!ENDIF
+
+# MS html help compiler hhc returns 1 on success, but as nmake expects 0 it would stop here.
+# the prepended -1 will raise the accepted error levels of nmake, so it will continue
+doxygen.chm:
+!IFDEF HHC
+ -1 $(HHC) html\index.hhp
+!ENDIF
+
+doxygen: doxygen.cfg doxygen-run doxygen.chm
+
+checkapi: checkapi-base checkapi-todo
+
+checkapi-base:
+ $(PERL) ../tools/checkAPIs.pl -g deprecated-gtk -build \
+ $(RANDPKT_CORE_SRC)
+
+checkapi-todo:
+ $(PERL) ../tools/checkAPIs.pl -M -g deprecated-gtk-todo -build \
+ $(RANDPKT_CORE_SRC)
diff --git a/randpkt_core/doxygen.cfg.in b/randpkt_core/doxygen.cfg.in
new file mode 100644
index 0000000000..baa9159fc3
--- /dev/null
+++ b/randpkt_core/doxygen.cfg.in
@@ -0,0 +1,81 @@
+# @configure_input@
+
+@INCLUDE = ../doxygen_global.cfg
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded
+# by quotes) that should identify the project.
+
+PROJECT_NAME = "Wireshark Random Packet Generation Library"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number.
+# This could be handy for archiving the generated documentation or
+# if some version control system is used.
+
+PROJECT_NUMBER = @VERSION@
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute)
+# base path where the generated documentation will be put.
+# If a relative path is entered, it will be relative to the location
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY = ../wsar_html
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put.
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT = randpkt-core
+
+# The TAGFILES option can be used to specify one or more tagfiles.
+# Optionally an initial location of the external documentation
+# can be added for each tagfile. The format of a tag file without
+# this location is as follows:
+#
+# TAGFILES = file1 file2 ...
+# Adding location for the tag files is done as follows:
+#
+# TAGFILES = file1=loc1 "file2 = loc2" ...
+# where "loc1" and "loc2" can be relative or absolute paths or
+# URLs. If a location is present for each tag, the installdox tool
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES = ../doxygen-core.tag=..
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE = doxygen-randpkt-core.tag
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories
+# should be searched for input files as well. Possible values are YES and NO.
+# If left blank NO is used.
+
+RECURSIVE = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should
+# excluded from the INPUT source files. This way you can easily exclude a
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE =
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or directories
+# that are symbolic links (a Unix filesystem feature) are excluded from the input.
+
+EXCLUDE_SYMLINKS = NO
+
+# If the value of the INPUT tag contains directories, you can use the
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
+# certain files from those directories.
+
+EXCLUDE_PATTERNS =
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can
+# be used to specify the file name of the resulting .chm file. You
+# can add a path in front of the file if the result should not be
+# written to the html output directory.
+
+CHM_FILE = wireshark-randpkt-core.chm
diff --git a/randpkt-core.c b/randpkt_core/randpkt_core.c
index 0e997b79fc..c329dc627d 100644
--- a/randpkt-core.c
+++ b/randpkt_core/randpkt_core.c
@@ -1,5 +1,5 @@
/*
- * randpkt-core.c
+ * randpkt_core.c
* ---------
* Creates random packet traces. Useful for debugging sniffers by testing
* assumptions about the veracity of the data found in the packet.
@@ -21,7 +21,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*/
-#include "randpkt-core.h"
+#include "randpkt_core.h"
#include <config.h>
diff --git a/randpkt-core.h b/randpkt_core/randpkt_core.h
index ae17fd8cfb..35265480cb 100644
--- a/randpkt-core.h
+++ b/randpkt_core/randpkt_core.h
@@ -1,5 +1,5 @@
/*
- * randpkt-core.h
+ * randpkt_core.h
* ---------
* Creates random packet traces. Useful for debugging sniffers by testing
* assumptions about the veracity of the data found in the packet.