project(Wireshark C)
cmake_minimum_required(VERSION 2.6)
+set(CMAKE_BACKWARDS_COMPATIBILITY 2.6)
#Where to find local cmake scripts
set(CMAKE_MODULE_PATH ${CMAKE_SOURCE_DIR}/cmake/modules)
option(DISABLE_WERROR "Do not treat Warnings as errors" OFF)
option(ENABLE_EXTRA_GCC_CHECKS "Do additional -W checks in GCC (disables -Werror)" OFF)
option(ENABLE_AIRPCAP "Enable Airpcap support" ON)
+# todo
option(ENABLE_STATIC "Build a static version of Wireshark (not yet working)" OFF)
option(ENABLE_PLUGINS "Build with plugins" ON)
# todo
-option(ENABLE_GUIDES "Build Guides (not yet implemented)" OFF)
+option(ENABLE_GUIDES "Build Guides" ON)
option(ENABLE_ADNS "Build with adns support" ON)
option(ENABLE_PCRE "Build with pcre support" ON)
add_subdirectory( wsutil )
if(ENABLE_GUIDES)
- add_subdirectory( docbook )
+# FIXME: Disabling the build via option currently doesn't work
+# add_subdirectory( docbook )
endif()
+find_package(POD)
+
#Platform specific
if(UNIX)
set(WS_VAR_IMPORT "extern")
tshark
)
-find_package(POD)
-
pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/capinfos 1 )
pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/dumpcap 1 )
pod2manhtml( ${CMAKE_SOURCE_DIR}/doc/editcap 1 )
INCLUDE(FindPackageHandleStandardArgs)
FIND_PACKAGE_HANDLE_STANDARD_ARGS(FOP DEFAULT_MSG FOP_EXECUTABLE)
+IF(${FOP_EXECUTABLE})
+ SET(FOP_OPTS -Xmx256m)
+ SET(FOP_EXECUTABLE FOP_OPTS=${FOP_OPTS} JAVA_OPTS=${FOP_OPTS} ${FOP_EXECUTABLE})
+ENDIF()
MARK_AS_ADVANCED(FOP_EXECUTABLE)
# handle the QUIETLY and REQUIRED arguments and set POD2HTML_FOUND to TRUE if
# all listed variables are TRUE
INCLUDE(FindPackageHandleStandardArgs)
-FIND_PACKAGE_HANDLE_STANDARD_ARGS(POD2HTML DEFAULT_MSG POD2MAN_EXECUTABLE POD2HTML_EXECUTABLE)
+FIND_PACKAGE_HANDLE_STANDARD_ARGS(POD DEFAULT_MSG POD2MAN_EXECUTABLE POD2HTML_EXECUTABLE)
MARK_AS_ADVANCED(
POD2MAN_EXECUTABLE
# Validate XML
MACRO(VALIDATE_XML _validated _sources)
- message(STATUS "Source(s): ${${_sources}}")
# FIXME: How do I extract the first element of a variable containing a
# list of values? Isn't there a "cleaner" solution?
- FOREACH(_source ${${_sources}})
+ # Oh, and I have no idea why I can't directly use _source instead of
+ # having to introduce _tmpsource.
+ FOREACH(_tmpsource ${${_sources}})
+ set(_source ${_tmpsource})
BREAK()
ENDFOREACH()
ADD_CUSTOM_COMMAND(
- OUTPUT
- ${CMAKE_CURRENT_BINARY_DIR}/${_validated}
- COMMAND ${XMLLINT_EXECUTABLE}
+ OUTPUT
+ ${_validated}
+ COMMAND ${XMLLINT_EXECUTABLE}
+ --path "${CMAKE_CURRENT_SOURCE_DIR}:${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_CURRENT_BINARY_DIR}/wsluarm_src"
--valid
--noout
- --path "${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_CURRENT_SOURCE_DIR}"
- ${_source}
- COMMAND touch
- ${CMAKE_CURRENT_BINARY_DIR}/${_validated}
- DEPENDS
- ${_source}
- svn_version.xml
+ ${_source}
+ COMMAND touch
+ ${_validated}
+ DEPENDS
+ ${${_sources}}
)
ENDMACRO(VALIDATE_XML)
MARK_AS_ADVANCED(XSLTPROC_EXECUTABLE)
+# Translate xml to html
#XML2HTML(
-# wsug.validated
-# wsug_html/user-guide.html
-# single-page
-# wsug_html
-# WSUG_SOURCE
-# WSUG_GFX_SOURCE
+# wsug.validated
+# wsug_html/user-guide.html or wsub_html/index.html
+# single-page or chunked
+# WSUG_FILES
+# WSUG_GRAPHICS
#)
-
-# Translate xml to html
MACRO(XML2HTML _validated _output _mode _xmlsources _gfxsources)
- MESSAGE(STATUS "XML source(s): ${${_xmlsources}}")
- MESSAGE(STATUS "GFX source(s): ${${_gfxsources}}")
-
+ FOREACH(_tmpgfx ${${_gfxsources}})
+ set(_gfx ${_tmpgfx})
+ BREAK()
+ ENDFOREACH()
+ GET_FILENAME_COMPONENT(_GFXDIR ${_gfx} PATH)
GET_FILENAME_COMPONENT(_OUTDIR ${_output} PATH)
+ SET(_OUTDIR ${CMAKE_CURRENT_BINARY_DIR}/${_OUTDIR})
+
IF(${_mode} STREQUAL "chunked")
+ SET(_STYLESHEET "http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl")
ELSE() # single-page
+ SET(_STYLESHEET "http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl")
ENDIF()
+ # FIXME: How do I extract the first element of a variable containing a
+ # list of values? Isn't there a "cleaner" solution?
+ # Oh, and I have no idea why I can't directly use _source instead of
+ # having to introduce _tmpsource.
+ FOREACH(_tmpsource ${${_xmlsources}})
+ set(_source ${_tmpsource})
+ BREAK()
+ ENDFOREACH()
+
ADD_CUSTOM_COMMAND(
OUTPUT
${_output}
- COMMAND
- cmake -E make_directory ${_OUTDIR}
- COMMAND
- cmake -E copy ${${_gfxsources}} ${_OUTDIR}
- COMMAND
- cmake -E copy ws.css ${_OUTDIR}
+ # Fixme: find out about subdirs (i.e. toolbar) automatically
+ # so this works for wsdg as well.
+ COMMAND cmake
+ -E make_directory ${_OUTDIR}/${_GFXDIR}/toolbar
+ COMMAND cp
+ ${CMAKE_CURRENT_SOURCE_DIR}/${_GFXDIR}/*.* ${_OUTDIR}/${_GFXDIR}/
+ COMMAND cp
+ ${CMAKE_CURRENT_SOURCE_DIR}/${_GFXDIR}/toolbar/*.* ${_OUTDIR}/${_GFXDIR}/toolbar/
+ COMMAND cmake
+ -E copy ${CMAKE_CURRENT_SOURCE_DIR}/ws.css ${_OUTDIR}
+ COMMAND ${XSLTPROC_EXECUTABLE}
+ --path "${CMAKE_CURRENT_SOURCE_DIR}:${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_CURRENT_BINARY_DIR}/wsluarm_src"
+ --stringparam base.dir ${_OUTDIR}/
+ --stringparam use.id.as.filename 1
+ --stringparam admon.graphics 1
+ --stringparam admon.graphics.path ${_GFXDIR}/
+ --stringparam section.autolabel 1
+ --stringparam section.label.includes.component.label 1
+ --stringparam html.stylesheet ws.css
+ --nonet
+ --output ${_output}
+ ${_STYLESHEET}
+ ${_source}
+ COMMAND chmod
+ -R og+rX ${_OUTDIR}
DEPENDS
+ ${_validated}
${${_xmlsources}}
${${_gfxsources}}
)
-# mkdir -p wsug_html/wsug_graphics/toolbar
-# cp wsug_graphics/*.* wsug_html/wsug_graphics
-# cp wsug_graphics/toolbar/* wsug_html/wsug_graphics/toolbar
-# cp ws.css wsug_html
-
-# mkdir -p wsug_html_chunked/wsug_graphics/toolbar
-# cp wsug_graphics/*.* wsug_html_chunked/wsug_graphics
-# cp wsug_graphics/toolbar/* wsug_html_chunked/wsug_graphics/toolbar
-# cp ws.css wsug_html_chunked
ENDMACRO(XML2HTML)
-#wsug_html/user-guide.html: $(WSUG_SOURCE)
-# @ echo --- WSUG - HTML SINGLE PAGE ---
-# mkdir -p wsug_html/wsug_graphics/toolbar
-# cp wsug_graphics/*.* wsug_html/wsug_graphics
-# cp wsug_graphics/toolbar/* wsug_html/wsug_graphics/toolbar
-# cp ws.css wsug_html
-# $(XSLTPROC) --stringparam base.dir wsug_html/ --stringparam use.id.as.filename 1 --stringparam admon.graphics 1 --stringparam admon.graphics.path wsug_graphics/ --stringparam section.autolabel 1 --stringparam section.label.includes.component.label 1 --stringparam html.stylesheet ws.css --nonet http://docbook.sourceforge.net/release/xsl/current/html/docbook.xsl $< > $@
-# -chmod -R og+rX wsug_html
-#
-
-#wsug_html_chunked/index.html: $(WSUG_SOURCE)
-# @ echo --- WSUG - HTML CHUNKED ---
-# mkdir -p wsug_html_chunked/wsug_graphics/toolbar
-# cp wsug_graphics/*.* wsug_html_chunked/wsug_graphics
-# cp wsug_graphics/toolbar/* wsug_html_chunked/wsug_graphics/toolbar
-# cp ws.css wsug_html_chunked
-# $(XSLTPROC) --stringparam base.dir wsug_html_chunked/ --stringparam use.id.as.filename 1 --stringparam admon.graphics 1 --stringparam admon.graphics.path wsug_graphics/ --stringparam section.autolabel 1 --stringparam section.label.includes.component.label 1 --stringparam html.stylesheet ws.css --nonet http://docbook.sourceforge.net/release/xsl/current/html/chunk.xsl $<
-# -chmod -R og+rX wsug_html_chunked
#XML2PDF(
-# WSUG_SOURCE
-# custom_layer_pdf.xsl
-# A4
-#)
-#
-#XML2PDF(
-# WSUG_SOURCE
-# custom_layer_pdf.xsl
-# letter
+# user-guide-a4.fo or user-guide-us.fo
+# WSUG_SOURCE
+# custom_layer_pdf.xsl
+# A4 or letter
#)
+MACRO(XML2PDF _output _sources _stylesheet _paper)
+ # FIXME: How do I extract the first element of a variable containing a
+ # list of values? Isn't there a "cleaner" solution?
+ # Oh, and I have no idea why I can't directly use _source instead of
+ # having to introduce _tmpsource.
+ FOREACH(_tmpsource ${${_sources}})
+ set(_source ${_tmpsource})
+ BREAK()
+ ENDFOREACH()
-#user-guide-us.fo: $(WSUG_SOURCE) custom_layer_pdf.xsl
-#ifdef FOP
-# @ echo --- WSUG - PDF US PAPER ---
-# $(XSLTPROC) --stringparam paper.type letter --nonet custom_layer_pdf.xsl $< > $@
-#endif
-#
-## create pdf file (through XSL-FO), portrait pages on A4 paper
-## you will get lot's of errors, but that's ok
-#user-guide-a4.fo: $(WSUG_SOURCE) custom_layer_pdf.xsl
-#ifdef FOP
-# @ echo --- WSUG - PDF A4 PAPER ---
-# $(XSLTPROC) --stringparam paper.type A4 --nonet custom_layer_pdf.xsl $< > $@
-#endif
+ ADD_CUSTOM_COMMAND(
+ OUTPUT
+ ${_output}
+ COMMAND ${XSLTPROC_EXECUTABLE}
+ --path "${CMAKE_CURRENT_SOURCE_DIR}:${CMAKE_CURRENT_BINARY_DIR}:${CMAKE_CURRENT_BINARY_DIR}/wsluarm_src"
+ --stringparam paper.type ${_paper}
+ --nonet
+ --output ${_output}.fo
+ ${_stylesheet}
+ ${_source}
+ # FIXME: The images for tip, warning and note (and maybe more of those)
+ # are not found by fop. I have no idea why "system" images don't work
+ # the way other images work.
+ COMMAND ${FOP_EXECUTABLE}
+ ${_output}.fo
+ ${_output}
+ DEPENDS
+ ${${_sources}}
+ ${_stylesheet}
+ )
+ENDMACRO(XML2PDF)
asn1/h501/Makefile
asn1/hnbap/Makefile
asn1/inap/Makefile
+ asn1/kerberos/Makefile
asn1/ldap/Makefile
asn1/logotypecertextn/Makefile
asn1/lte-rrc/Makefile
asn1/rrc/Makefile
asn1/rrlp/Makefile
asn1/rtse/Makefile
+ asn1/rua/Makefile
asn1/s1ap/Makefile
asn1/s4406/Makefile
asn1/sabp/Makefile
${CMAKE_SOURCE_DIR}/epan/wslua/wslua_util.c
)
-find_package( FOP )
+find_package( FOP ) # Call before XSLTPROC
find_package( LYNX )
find_package( XSLTPROC )
find_package( XMLLINT )
)
add_custom_target(
- guides ALL
+ user_guides ALL
DEPENDS
- wsug.validated
-# wsug_html_chunked
-# user-guide.html
-# user-guide-a4.pdf
-# user-guide-us.pdf
+ wsluarm
+ wsug_html_chunked/index.html
+ wsug_html/user-guide.html
+ user-guide-a4.pdf
+ user-guide-us.pdf
)
VALIDATE_XML(
wsug.validated
wsug_html/user-guide.html
single-page
- WSUG_FILES
+ WSUG_SOURCE
WSUG_GRAPHICS
)
-#XML2HTML(
-# wsug.validated
-# wsug_html_chunked/index.html
-# chunked
-# wsug_html_chunked
-# WSUG_FILES
-# WSUG_GRAPHICS
-#)
-#
-#XML2PDF(
-# WSUG_SOURCE
-# custom_layer_pdf.xsl
-# A4
-#)
-#
-#XML2PDF(
-# WSUG_SOURCE
-# custom_layer_pdf.xsl
-# letter
-#)
+XML2HTML(
+ wsug.validated
+ wsug_html_chunked/index.html
+ chunked
+ WSUG_SOURCE
+ WSUG_GRAPHICS
+)
+
+XML2PDF(
+ user-guide-a4.pdf
+ WSUG_SOURCE
+ custom_layer_pdf.xsl
+ A4
+)
-# wsdg: wsdg_html_chunked developer-guide.html developer-guide-a4.pdf developer-guide-us.pdf
+XML2PDF(
+ user-guide-us.pdf
+ WSUG_SOURCE
+ custom_layer_pdf.xsl
+ letter
+)
-# ...
+add_custom_target(
+ developer_guides ALL
+ DEPENDS
+ wsluarm
+ wsdg_html_chunked/index.html
+ wsdg_html/developer-guide.html
+ developer-guide-a4.pdf
+ developer-guide-us.pdf
+)
-# release_notes: release-notes.html release-notes.txt release-notes-a4.pdf release-notes-us.pdf
+VALIDATE_XML(
+ wsdg.validated
+ WSDG_SOURCE
+)
+
+XML2HTML(
+ wsdg.validated
+ wsdg_html/developer-guide.html
+ single-page
+ WSDG_SOURCE
+ WSDG_GRAPHICS
+)
+
+XML2HTML(
+ wsdg.validated
+ wsdg_html_chunked/index.html
+ chunked
+ WSDG_SOURCE
+ WSDG_GRAPHICS
+)
+
+XML2PDF(
+ developer-guide-a4.pdf
+ WSDG_SOURCE
+ custom_layer_pdf.xsl
+ A4
+)
-# ...
+XML2PDF(
+ developer-guide-us.pdf
+ WSDG_SOURCE
+ custom_layer_pdf.xsl
+ letter
+)
+
+# release_notes: release-notes.html release-notes.txt release-notes-a4.pdf release-notes-us.pdf
# wsluarm
ADD_CUSTOM_COMMAND(
OUTPUT
wsluarm
+ COMMAND cmake -E make_directory wsluarm_src
COMMAND ${PERL_EXECUTABLE}
${CMAKE_CURRENT_SOURCE_DIR}/make-wsluarm.pl
${WSLUA_MODULES}
${CMAKE_CURRENT_SOURCE_DIR}/make-wsluarm.pl
${WSLUA_MODULES}
)
-# ...
-
-
-# make-taps.pl depends on the current working directory
-# to find the dissector files (contents of taps file
-# depend on this actually, so just changing the paths
-# in these lists won't help).
-#ADD_CUSTOM_COMMAND(
-# OUTPUT
-# ${CMAKE_CURRENT_BINARY_DIR}/taps_wslua.c
-# ${CMAKE_CURRENT_BINARY_DIR}/taps.txt
-# COMMAND ${PERL_EXECUTABLE}
-# ${CMAKE_CURRENT_SOURCE_DIR}/make-taps.pl
-# ${CMAKE_CURRENT_SOURCE_DIR}/taps
-# ${CMAKE_CURRENT_BINARY_DIR}/taps_wslua.c
-# ${CMAKE_CURRENT_BINARY_DIR}/taps.txt
-# WORKING_DIRECTORY
-# ${CMAKE_CURRENT_SOURCE_DIR}
-# DEPENDS
-# ${CMAKE_CURRENT_SOURCE_DIR}/taps
-# ${CMAKE_CURRENT_SOURCE_DIR}/make-taps.pl
-# # Only here to add dependencies for the taps "source"files
-# ${WSLUA_TAPS_USED}
-#)
-
-#ADD_CUSTOM_COMMAND(
-# OUTPUT
-# declare_wslua.h
-# register_wslua.c
-# COMMAND ${PERL_EXECUTABLE}
-# ${CMAKE_CURRENT_SOURCE_DIR}/make-reg.pl
-# ${WSLUA_MODULES}
-# DEPENDS
-# ${CMAKE_CURRENT_SOURCE_DIR}/make-reg.pl
-# ${WSLUA_MODULES}
-# # ${CMAKE_CURRENT_BINARY_DIR}/taps_wslua.c
-#)
-#
-
-#install(
-# FILES
-# console.lua
-# dtd_gen.lua
-# ${CMAKE_CURRENT_BINARY_DIR}/init.lua
-# DESTINATION
-# ${CMAKE_INSTALL_DATADIR}/${CPACK_PACKAGE_NAME}
-#)
dissectors/packet-ros.c
dissectors/packet-rtnet.c
dissectors/packet-rtse.c
+ dissectors/packet-rua.c
dissectors/packet-s4406.c
dissectors/packet-sabp.c
dissectors/packet-s1ap.c
dissectors/packet-ansi_map.c
dissectors/packet-gnm.c
dissectors/packet-gsm_map.c
+ dissectors/packet-hnbap.c
dissectors/packet-inap.c
dissectors/packet-ldap.c
dissectors/packet-lte-rrc.c
${LIBWIRESHARK_ASM_FILES}
)
-# In case we want the libwireshark name back
-# SET_TARGET_PROPERTIES(epan PROPERTIES OUTPUT_NAME "wireshark")
+# By default the name for a library with target name epan will be libepan,
+# but Ethereal is now named Wireshark
+SET_TARGET_PROPERTIES(epan PROPERTIES OUTPUT_NAME "wireshark")
target_link_libraries(epan
${WSLUA_LIB}
packet-ranap.c \
packet-ros.c \
packet-rtse.c \
- packet-rua.c \
packet-s1ap.c \
packet-s4406.c \
packet-sabp.c \
packet-rnsap.c \
packet-rrc.c \
packet-rrlp.c \
+ packet-rua.c \
packet-snmp.c \
packet-t125.c \
packet-tcap.c \