instructions for compiing ETA from source

Where can the instructions to build ETA from source be found ?

https://github.com/Refinitiv/Elektron-SDK

I see CMake dir at different levels . I am not familiar with cmake but it is installed on my system.

I tried the following cmd :

make

cmake

cmake CMakefile.txt


Answers

  • Hello @nrai,

    You are on the right track. Run cmake at the top level of Elektron SDK, according to your build platform, and make sure the build completes without errors.

    For example:

    cmake -G "Visual Studio 16 2019" -A x64
    cmake -G "Visual Studio 15 2017 Win64"

    cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug

    Please refer to CMAKE Generators for more information

  • Hi @nrai

    Also, did you refer to the ElektronSDK C installation guide on Github?

    You can reach it by clicking on the Elektron Transport API - C Edition link under the Documentation paragraph. The document has a section on Building Wndows and Linux versions.

  • thanks for the info Zoya and Umer. I am waiting for cmake 3.10.3 to be installed on my build machine. I'll post in a few days if I have problems building.

  • Pls leave this thread open . This is not a high priority for us but we will come back to build this in next few months and ask questions.

    It is too early for us to conclude if this answers all questions regarding building the git repo.

  •  cmake3 -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug -DBULD_EMA_UNIT_TESTS=OFF -DBUILD_EMA_LIBRARY=OFF -DBULD_EMA_EXAMPLES=OFF

    I get the following error building with cmake 3.13.1. Pls advise on next steps.

    I do not want to build any extra stuff except bare minimum to run .How do I avoid open ssl dependency?

    CMake Error at /usr/share/cmake3/Modules/FindPackageHandleStandardArgs.cmake:137 (message):   Could NOT find OpenSSL, try to set the path to OpenSSL root folder in the   system variable OPENSSL_ROOT_DIR (missing: OPENSSL_CRYPTO_LIBRARY   OPENSSL_INCLUDE_DIR) Call Stack (most recent call first):   /usr/share/cmake3/Modules/FindPackageHandleStandardArgs.cmake:378 (_FPHSA_FAILURE_MESSAGE)   /usr/share/cmake3/Modules/FindOpenSSL.cmake:412 (find_package_handle_standard_args)   CMakeLists.txt:350 (find_package) -- Configuring incomplete, errors occurred! See also "Reuters/Elektron-SDK/external/BUILD/curl/source/CMakeFiles/CMakeOutput.log". See also "Reuters/Elektron-SDK/external/BUILD/curl/source/CMakeFiles/CMakeError.log". gmake[2]: *** [curl-prefix/src/curl-stamp/curl-configure] Error 1 gmake[1]: *** [CMakeFiles/curl.dir/all] Error 2 gmake: *** [all] Error 2 CMake Error at CMake/rcdevExternalUtils.cmake:189 (message):   External Project Build step for curl in   /Reuters/Elektron-SDK/external/BUILD/curl failed: 2 Call Stack (most recent call first):   CMake/addExternal_curl.cmake:188 (rcdev_config_build_ep)   CMakeLists.txt:35 (include) -- Configuring incomplete, errors occurred! See also "Reuters/Elektron-SDK/CMakeFiles/CMakeOutput.log". 
  • Hello @nrai, Looks like the build is looking for OpenSSl library. In my understanding, libcurl and openssl are required to build ESDK1.4

    But I have never intended to build minimal, to the contrary, I build ESDK, intending to be able to use all of the functionality, run all of the examples, including encrypted channels, that require OpenSSL to be installed.

    I would make sure to include OpenSSL and libcurl dependencies in PATH and LD_LIBRARY_PATH, and see if this resolves your issue, eabling your to build succefully

    Alternatively, you may report to ESDK product, on github that you would like to be able to build without OpenSSL and failing to do so (upon examination of the opened issue I do not see this), and possibly find out if this should work in the current release.

  • Zoya, the current downloaded libs work for us without open ssl and curl. There should be no need to install them for my purpose .

    Also, It is quite possible that buld on github is not same as what I am building. That may explain why looking at source code doesn't explain the error I am getting.

    I am an end user of application. I don't have enough bandwidth to be an ETA developer.

    Lets' close this issue as unsupported and if I have time in future, I might spend time on this.

  • @nrai

    I would agree, except I believe you were looking to debug into the library, and that would have been fully transparent, when building from source.

    That capability exists, except I do not believe that without the two dependencies.

  • Just when I had given up, the admins installed the openssl and libcurl and build completed!

    However, I don't see any libs generated. Only under binarypack/cppJ.

    Pls advise.

  • Hello @nrai,

    Glad to hear ESDK has built.

    But let me just double-check:

    Any errors you see on build, like "not completed" or "not found" or "errors occurred" or etc.?

    In Elektron-SDK-1.4.0.L1.linux.rrg/Cpp-C/Eta/Libs/YOURPLATFROM you are not observing any librssl.so and librssl.a ?

    Should be the same libraries generated as in pre-built Linux SDK.

  • that is correct. I don't see librssl.so in that dir.

    I see something in binary pack :

    Elektron-SDK-BinaryPack/Cpp-C/Eta/Libs/RHEL6_64_GCC444/Optimized/Shared/librsslRelMcast.so

    I see multiple errors like follows:

    -- Build files have been written to: Reuters/Elektron-SDK/external/BUILD/cjson/build
    [100%] Built target cjson
    CMake Error at Cpp-C/Eta/Applications/Training/Consumer/CMakeLists.txt:53 (add_subdirectory):
      The source directory
        Reuters/Elektron-SDK/Cpp-C/Eta/Applications/Training/Consumer/Module_1a_Connect/CMakeFiles
      does not contain a CMakeLists.txt file.
  • no it is not. you can see my last question at the end was not answered.

  • Hello @nrai,

    It does not look like your installation of ESDK has completed successfully. If it did, you should have all the libraries, for instance my folder

    Elektron-SDK-1.4.0.L1.linux.rrg/Cpp-C/Eta/Libs/OL7_64_GCC482/Optimized

    contains

    Shared  libansi.a  librssl.a  librsslVA.a

    Shared contains

    librssl.so     librssl.so.3.4.0.0  librsslVA.so     librsslVA.so.3.4.0.0
    librssl.so.10  librsslUpaJNI.so    librsslVA.so.13

    I can not be completely sure at this point what have caused the issue on build, what went wrong, but it does not look to have completed. Right?

    This is probably not the only approach, but I would have backed this up, and started from scratch, , and using Elektron SDK Installation Guide as resource.

    If you see the same error as you have seen before, it points at OpenSSL missing. I would install OpenSSL (as that was the error you have got on your install before it failed)

    And then:

    cmake -G "Unix Makefiles" -DCMAKE_BUILD_TYPE=Debug 

    Just in case, my OpnSSL version looks like this

    ]# openssl version
    OpenSSL 1.0.2k-fips  26 Jan 2017

    Sorry for the late response and hope this helps you proceed.


  • none of the answers are acceptable as they require me to spend way too much time on this than I can afford. I would suggest if you really want to target programmers as open source , introduce a configure utility that helps in building it