From 3e9c1876e832569364419abbb6f71e8fbec71c98 Mon Sep 17 00:00:00 2001 From: Andrew Elder Date: Mon, 5 Jun 2017 16:50:14 -0400 Subject: [PATCH 01/11] add gptp to cmake file list gPTP will get built twice in a Travis build test. Once from a makefile and again from cmake generated makefile. This change will support appveyor building gptp for windows as part of the standard sanity tests. --- CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 555d9db347..a924422989 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -7,3 +7,4 @@ add_subdirectory("thirdparty/cpputest") add_subdirectory("daemons/common/tests") add_subdirectory("daemons/mrpd") add_subdirectory("daemons/maap") +add_subdirectory("daemons/gptp") From 100af70d13715791fa4e999f206f04a7c91069f6 Mon Sep 17 00:00:00 2001 From: Andrew Elder Date: Tue, 20 Jun 2017 18:09:37 -0400 Subject: [PATCH 02/11] travis: use cmake 3.4 --- .travis.yml | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 8eb91588d2..a8749dac15 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,12 +21,23 @@ before_install: - sudo update-alternatives --set c++ /usr/bin/g++ compiler: - gcc -env: BUILD_KERNEL=4.4.0-75-generic +env: + - BUILD_KERNEL=4.4.0-75-generic + - DEPS_DIR=${TRAVIS_BUILD_DIR}/deps install: - sudo apt-get update -qq - - sudo apt-get install -y libpcap-dev libpci-dev libsndfile1-dev libjack-dev linux-headers-4.4.0-75-generic cmake + - sudo apt-get install -y libpcap-dev libpci-dev libsndfile1-dev libjack-dev linux-headers-4.4.0-75-generic - sudo apt-get install -y libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libasound2-dev - sudo cp /usr/src/linux-headers-4.4.0-75/include/uapi/linux/ethtool.h /usr/include/linux - sudo cp /usr/src/linux-headers-4.4.0-75/include/uapi/linux/ptp_clock.h /usr/include/linux + - | + if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then + CMAKE_URL="http://www.cmake.org/files/v3.4/cmake-3.4.3-Linux-x86_64.tar.gz" + mkdir -p ${DEPS_DIR}/cmake + travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C ${DEPS_DIR}/cmake + export PATH=${DEPS_DIR}/cmake/bin:${PATH} + fi + + script: ./travis.sh From 54dfe1b807f5105b5e2af6d9b60694cd043788f6 Mon Sep 17 00:00:00 2001 From: Andrew Elder Date: Mon, 5 Jun 2017 15:38:51 -0400 Subject: [PATCH 03/11] appveyor --- appveyor.yml | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) create mode 100644 appveyor.yml diff --git a/appveyor.yml b/appveyor.yml new file mode 100644 index 0000000000..be1355c12f --- /dev/null +++ b/appveyor.yml @@ -0,0 +1,24 @@ +version: '1.0.{build}' + +clone_folder: c:\oavb +clone_depth: 20 + +environment: + # Config for mrp Windows build + WPCAP_DIR: c:\oavb\WpdPack + +install: + - git submodule update --init --recursive + # download WinPcap developer module and unzip it + - ps: Start-FileDownload 'https://www.winpcap.org/install/bin/WpdPack_4_1_2.zip' + - ps: 7z x WpdPack_4_1_2.zip + +before_build: + # cmake + - choco upgrade cmake + - set path=C:\Program Files\CMake\bin;%path% + +build_script: + - cd c:\oavb + - cmake CMakeLists.txt -G "Visual Studio 12 2013" + - cmake --build . --config Release From f9487e1721503f2d6d9e914f952106c3ad7d00e1 Mon Sep 17 00:00:00 2001 From: Andrew Elder Date: Fri, 6 Oct 2017 15:53:54 -0400 Subject: [PATCH 04/11] gptp: use PLAT_snprintf() - fixes MSVC build --- daemons/gptp/common/gptp_cfg.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/daemons/gptp/common/gptp_cfg.cpp b/daemons/gptp/common/gptp_cfg.cpp index fae8e6c0a9..8b9db0dc7d 100644 --- a/daemons/gptp/common/gptp_cfg.cpp +++ b/daemons/gptp/common/gptp_cfg.cpp @@ -253,7 +253,7 @@ void GptpIniParser::print_phy_delay( void ) tx = i->second.get_tx_delay(); rx = i->second.get_rx_delay(); - snprintf( phy_delay_desc, PHY_DELAY_DESC_LEN+1, + PLAT_snprintf( phy_delay_desc, PHY_DELAY_DESC_LEN+1, "TX: %hu | RX: %hu", tx, rx ); speed_name = findNameBySpeed( speed ); From d1055c51f3348578cef517660f9c77a185223f90 Mon Sep 17 00:00:00 2001 From: Andrew Elder Date: Sat, 7 Oct 2017 09:11:31 -0400 Subject: [PATCH 05/11] cpputest submodule - use AVnu fork of cpputest --- .gitmodules | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitmodules b/.gitmodules index 3254bb8a31..6494de6031 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,6 +1,6 @@ [submodule "thirdparty/cpputest"] path = thirdparty/cpputest - url = ../../cpputest/cpputest.git + url = ../../AVnu/cpputest.git [submodule "avdecc-lib"] path = avdecc-lib url = ../../AVnu/avdecc-lib From dacb73188c865baa6d0b5f415cd2fba23581c473 Mon Sep 17 00:00:00 2001 From: Andrew Elder Date: Sat, 7 Oct 2017 09:12:04 -0400 Subject: [PATCH 06/11] MAAP: add dummy main() to Windows build --- daemons/maap/windows/src/maap_main.c | 29 ++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/daemons/maap/windows/src/maap_main.c b/daemons/maap/windows/src/maap_main.c index 6c817d7116..dce75312de 100644 --- a/daemons/maap/windows/src/maap_main.c +++ b/daemons/maap/windows/src/maap_main.c @@ -1,3 +1,32 @@ +/************************************************************************************* +Copyright (c) 2016-2017, Harman International Industries, Incorporated +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. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS LISTED "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 COPYRIGHT OWNER OR CONTRIBUTORS LISTED 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. +*************************************************************************************/ + /* * TODO: This code still needs to be added! */ + +int main(int argc, char *argv[]) +{ +} From 645bbe673be0c489168ab66e7efa3058530e177c Mon Sep 17 00:00:00 2001 From: Andrew Elder Date: Sat, 7 Oct 2017 09:52:00 -0400 Subject: [PATCH 07/11] cpputest updates for MSVC2015, 64-bit builds --- thirdparty/cpputest | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/thirdparty/cpputest b/thirdparty/cpputest index 69d1b24fa9..1d01e4900a 160000 --- a/thirdparty/cpputest +++ b/thirdparty/cpputest @@ -1 +1 @@ -Subproject commit 69d1b24fa92fc8c3cf5542bf44293c3e05cfbf08 +Subproject commit 1d01e4900a6a63d89678a278f9fde4c5949f98e8 From b60bd9d126ac9bfc47dc769248d0e172de15f9fd Mon Sep 17 00:00:00 2001 From: Andrew Elder Date: Sat, 7 Oct 2017 11:32:10 -0400 Subject: [PATCH 08/11] travis updates for newer CMAKE --- .travis.yml | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/.travis.yml b/.travis.yml index a8749dac15..ecc2b9d6e4 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,20 +23,16 @@ compiler: - gcc env: - BUILD_KERNEL=4.4.0-75-generic - - DEPS_DIR=${TRAVIS_BUILD_DIR}/deps install: - sudo apt-get update -qq - sudo apt-get install -y libpcap-dev libpci-dev libsndfile1-dev libjack-dev linux-headers-4.4.0-75-generic - sudo apt-get install -y libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev libasound2-dev - sudo cp /usr/src/linux-headers-4.4.0-75/include/uapi/linux/ethtool.h /usr/include/linux - sudo cp /usr/src/linux-headers-4.4.0-75/include/uapi/linux/ptp_clock.h /usr/include/linux - - | - if [[ ${TRAVIS_OS_NAME} == "linux" ]]; then - CMAKE_URL="http://www.cmake.org/files/v3.4/cmake-3.4.3-Linux-x86_64.tar.gz" - mkdir -p ${DEPS_DIR}/cmake - travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C ${DEPS_DIR}/cmake - export PATH=${DEPS_DIR}/cmake/bin:${PATH} - fi + - CMAKE_URL="https://cmake.org/files/v3.9/cmake-3.9.4-Linux-x86_64.tar.gz" + - mkdir -p ${TRAVIS_BUILD_DIR}/deps/cmake + - travis_retry wget --no-check-certificate --quiet -O - ${CMAKE_URL} | tar --strip-components=1 -xz -C ${TRAVIS_BUILD_DIR}/deps/cmake + - export PATH=${TRAVIS_BUILD_DIR}/deps/cmake/bin:${PATH} script: ./travis.sh From e03cf581cc8f7f025993cffcde3be8e52cad1f22 Mon Sep 17 00:00:00 2001 From: Andrew Elder Date: Sat, 7 Oct 2017 12:25:33 -0400 Subject: [PATCH 09/11] gptp: fix Linux cmake build --- daemons/gptp/CMakeLists.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/daemons/gptp/CMakeLists.txt b/daemons/gptp/CMakeLists.txt index 4935e665eb..ee362be508 100644 --- a/daemons/gptp/CMakeLists.txt +++ b/daemons/gptp/CMakeLists.txt @@ -7,6 +7,7 @@ file(GLOB GPTP_COMMON "./common/*.cpp" "./common/*.c") if(UNIX) include_directories( include "./linux/src" ) file(GLOB GPTP_OS "./linux/src/*.cpp") + add_executable (gptp ${GPTP_COMMON} ${GPTP_OS}) target_link_libraries(gptp pthread) elseif(WIN32) if( CMAKE_SIZEOF_VOID_P EQUAL 8 ) From 943cbe5e09b836b7805fdbd889c1c87953c39abe Mon Sep 17 00:00:00 2001 From: Andrew Elder Date: Sat, 7 Oct 2017 12:52:55 -0400 Subject: [PATCH 10/11] root CMakeLists.txt update to C++11 support --- CMakeLists.txt | 36 +++++++++++++++++++++++++++++++++++- 1 file changed, 35 insertions(+), 1 deletion(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a924422989..eccb62eb56 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,9 +2,43 @@ cmake_minimum_required (VERSION 2.8) project (open-avb) enable_testing() -set(C++11 ON CACHE BOOL "Compile with C++11 support" FORCE) +include(CheckCXXCompilerFlag) +CHECK_CXX_COMPILER_FLAG("-std=c++11" COMPILER_SUPPORTS_CXX11) +CHECK_CXX_COMPILER_FLAG("-std=c++0x" COMPILER_SUPPORTS_CXX0X) +if(COMPILER_SUPPORTS_CXX11) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++11") +elseif(COMPILER_SUPPORTS_CXX0X) + set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++0x") +else() + message(STATUS "The compiler ${CMAKE_CXX_COMPILER} has no C++11 support. Please use a different C++ compiler.") +endif() + add_subdirectory("thirdparty/cpputest") add_subdirectory("daemons/common/tests") add_subdirectory("daemons/mrpd") add_subdirectory("daemons/maap") add_subdirectory("daemons/gptp") + +message(" +------------------------------------------------------- +OpenAvnu Build information + +Current compiler options: + CC: ${CMAKE_C_COMPILER} + CXX: ${CMAKE_CXX_COMPILER} + OpenAvnu CFLAGS: ${CMAKE_C_FLAGS} + OpenAvnu CXXFLAGS: ${CMAKE_CXX_FLAGS} + OpenAvnu LDFLAGS: ${CMAKE_LD_FLAGS} + +Features configured in OpenAvnu root CMakeFile.txt: + Memory Leak Detection: ${MEMORY_LEAK_DETECTION} + Compiling Extensions: ${EXTENSIONS} + Support Long Long: ${LONGLONG} + Use OpenAvnu flags: ${CMAKE_FLAGS} + + Using Standard C library: ${STD_C} + Using Standard C++ library: ${STD_CPP} + Using C++11 library: ${C++11} + +------------------------------------------------------- +") From 67cee412de055c7a49a8e37f1ee870269d3f5abb Mon Sep 17 00:00:00 2001 From: Andrew Elder Date: Sat, 7 Oct 2017 13:21:08 -0400 Subject: [PATCH 11/11] gptp: CMakeLists.txt update --- daemons/gptp/CMakeLists.txt | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/daemons/gptp/CMakeLists.txt b/daemons/gptp/CMakeLists.txt index ee362be508..fb7d19b3b5 100644 --- a/daemons/gptp/CMakeLists.txt +++ b/daemons/gptp/CMakeLists.txt @@ -6,9 +6,16 @@ file(GLOB GPTP_COMMON "./common/*.cpp" "./common/*.c") if(UNIX) include_directories( include "./linux/src" ) - file(GLOB GPTP_OS "./linux/src/*.cpp") + file(GLOB GPTP_OS + "./linux/src/daemon_cl.cpp" + "./linux/src/linux_ipc.cpp" + "./linux/src/platform.cpp" + "./linux/src/linux_hal_persist_file.cpp" + "./linux/src/linux_hal_generic.cpp" + "./linux/src/linux_hal_generic_adj.cpp" + "./linux/src/linux_hal_common.cpp") add_executable (gptp ${GPTP_COMMON} ${GPTP_OS}) - target_link_libraries(gptp pthread) + target_link_libraries(gptp pthread rt) elseif(WIN32) if( CMAKE_SIZEOF_VOID_P EQUAL 8 ) link_directories($ENV{WPCAP_DIR}/Lib/x64)