Failed to build Limwsuite under Ubuntu 22, Arm64

I tried to build Limesuite for Nvidia Orin NX (arm64, Ubutu 22), but got the following errors:
$ cmake …
– Enabling native optimizations
– Building KissFFT with datatype: float
– Building static library
– PKGINCLUDEDIR is include/kissfft
CMake Error at external/CMakeLists.txt:118 (add_library):
add_library INTERFACE library requires no source arguments.

CMake Error at external/CMakeLists.txt:119 (target_include_directories):
Cannot specify include directories for target “cpp-feather-ini-parser”
which is not built by this project.

– Found libusb-1.0:
– - LIBUSB_1_INCLUDE_DIRS: /usr/include/libusb-1.0
– - LIBUSB_1_LIBRARIES: /usr/lib/aarch64-linux-gnu/libusb-1.0.so
– Could NOT find Gnuplot (missing: GNUPLOT_EXECUTABLE)
– wxWidgets_DEFINITIONS: _FILE_OFFSET_BITS=64;WXUSINGDLL;WXGTK
– wxWidgets_INCLUDE_DIRS: /usr/lib/aarch64-linux-gnu/wx/include/gtk3-unicode-3.0;/usr/include/wx-3.0
– wxWidgets_LIBRARIES: -L/usr/lib/aarch64-linux-gnu;-pthread;;;-lwx_gtk3u_richtext-3.0;-lwx_gtk3u_adv-3.0;-lwx_gtk3u_core-3.0;-lwx_baseu-3.0;-lwx_gtk3u_gl-3.0
– OPENGL_INCLUDE_DIR: /usr/include
– OPENGL_LIBRARIES: /usr/lib/aarch64-linux-gnu/libOpenGL.so;/usr/lib/aarch64-linux-gnu/libGLX.so;/usr/lib/aarch64-linux-gnu/libGLU.so
– Enabling native optimizations
– Module Soapy_limesuiteng configured with version: 0.2.0
– Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)

– ######################################################
– Packages found:

  • Threads
  • libusb-1.0
    Adds USB communication support
  • wxWidgets
  • OpenGL
  • SoapySDR
    Adds LimeSuiteNG bindings for SoapySDR

– ######################################################
– Missing required packages:

  • LinuxKernelHeaders

– ######################################################
– Missing recommended packages:

– ######################################################
– Missing optional packages:

  • Gnuplot
  • Doxygen

– ######################################################
– ## LimeSuiteNG enabled features
– ######################################################

  • HEADERS, The limesuiteng headers
  • LIBRARY, The limesuiteng library
  • USB_FTDI, USB support for FTDI
  • USB_FX3, USB support for Cypress FX3
  • LIMEPCIE, PCIe support
  • LIMEPCIE_KERNEL_MODULE, Build Linux LimePCIe kernel module
  • EXAMPLES, LimeSuite library API examples
  • CLI, LimeSuite command line interface tools
  • GUI, GUI Application for LimeSuite
  • AMARISOFT_PLUGIN, LimeSuite Amarisoft integration plugin
  • DESKTOP, LimeSuiteNG freedesktop integration
  • SOAPYSDR, SoapySDR bindings for LimeSuiteNG
  • UDEV_RULES, Install Linux udev rules

– ######################################################
– ## LimeSuiteNG disabled features
– ######################################################

  • DKMS, DKMS support for lime PCIe kernel module
  • GNURADIO, GNU Radio 3.9+ Plug-in
  • DOXYGEN, Build Doxygen documentation

– Install prefix: /usr/local
– Build timestamp: 2024-08-16
– Lime Suite version: 0.2.0-unknown
– ABI/so version: 0.2-1
– Configuring incomplete, errors occurred!
See also “/home/ubuntu/lms/LimeSuiteNG-develop/build/CMakeFiles/CMakeOutput.log”.
See also “/home/ubuntu/lms/LimeSuiteNG-develop/build/CMakeFiles/CMakeError.log”.

Could be a clue?

Fixed 2a108134

Thanks for quick response. The update fixed some errors. I still got few errors (dependency related?).

cmake -B build && cd build
– cmake version: 3.16.3
– The C compiler identification is GNU 9.4.0
– The CXX compiler identification is GNU 9.4.0
– Check for working C compiler: /usr/bin/cc
– Check for working C compiler: /usr/bin/cc – works
– Detecting C compiler ABI info
– Detecting C compiler ABI info - done
– Detecting C compile features
– Detecting C compile features - done
– Check for working CXX compiler: /usr/bin/c++
– Check for working CXX compiler: /usr/bin/c++ – works
– Detecting CXX compiler ABI info
– Detecting CXX compiler ABI info - done
– Detecting CXX compile features
– Detecting CXX compile features - done
– Enabling native optimizations
– Building KissFFT with datatype: float
– Building static library
– PKGINCLUDEDIR is include/kissfft
CMake Error at external/CMakeLists.txt:119 (target_sources):
target_sources may only set INTERFACE properties on INTERFACE targets

– Performing Test HAVE_CXX_ATOMICS_WITHOUT_LIB
– Performing Test HAVE_CXX_ATOMICS_WITHOUT_LIB - Success
– Performing Test HAVE_CXX_ATOMICS64_WITHOUT_LIB
– Performing Test HAVE_CXX_ATOMICS64_WITHOUT_LIB - Success
– Looking for pthread.h
– Looking for pthread.h - found
– Performing Test CMAKE_HAVE_LIBC_PTHREAD
– Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
– Check if compiler accepts -pthread
– Check if compiler accepts -pthread - yes
– Found Threads: TRUE
– Found libusb-1.0:
– - LIBUSB_1_INCLUDE_DIRS: /usr/include/libusb-1.0
– - LIBUSB_1_LIBRARIES: /usr/lib/aarch64-linux-gnu/libusb-1.0.so
– Could NOT find Gnuplot (missing: GNUPLOT_EXECUTABLE)
– Found wxWidgets: -L/usr/lib/aarch64-linux-gnu;-pthread;;;-lwx_gtk3u_richtext-3.0;-lwx_gtk3u_adv-3.0;-lwx_gtk3u_core-3.0;-lwx_baseu-3.0;-lwx_gtk3u_gl-3.0 (found version “3.0.4”)
– wxWidgets_DEFINITIONS: _FILE_OFFSET_BITS=64;WXUSINGDLL;WXGTK
– wxWidgets_INCLUDE_DIRS: /usr/lib/aarch64-linux-gnu/wx/include/gtk3-unicode-3.0;/usr/include/wx-3.0
– wxWidgets_LIBRARIES: -L/usr/lib/aarch64-linux-gnu;-pthread;;;-lwx_gtk3u_richtext-3.0;-lwx_gtk3u_adv-3.0;-lwx_gtk3u_core-3.0;-lwx_baseu-3.0;-lwx_gtk3u_gl-3.0
– Found OpenGL: /usr/lib/aarch64-linux-gnu/libOpenGL.so
– OPENGL_INCLUDE_DIR: /usr/include
– OPENGL_LIBRARIES: /usr/lib/aarch64-linux-gnu/libOpenGL.so;/usr/lib/aarch64-linux-gnu/libGLX.so;/usr/lib/aarch64-linux-gnu/libGLU.so
– Enabling native optimizations
– Found Git: /usr/bin/git (found version “2.25.1”)
– Module Soapy_limesuiteng configured with version: 0.2.0-e17ae254
– Could NOT find Doxygen (missing: DOXYGEN_EXECUTABLE)

– ######################################################
– Packages found:

  • Threads
  • libusb-1.0
    Adds USB communication support
  • wxWidgets
  • OpenGL
  • SoapySDR
    Adds LimeSuiteNG bindings for SoapySDR
  • Git

– ######################################################
– Missing required packages:

  • LinuxKernelHeaders

– ######################################################
– Missing recommended packages:

– ######################################################
– Missing optional packages:

  • Gnuplot
  • Doxygen

– ######################################################
– ## LimeSuiteNG enabled features
– ######################################################

  • HEADERS, The limesuiteng headers
  • LIBRARY, The limesuiteng library
  • USB_FTDI, USB support for FTDI
  • USB_FX3, USB support for Cypress FX3
  • LIMEPCIE, PCIe support
  • LIMEPCIE_KERNEL_MODULE, Build Linux LimePCIe kernel module
  • DKMS, DKMS support for lime PCIe kernel module
  • EXAMPLES, LimeSuite library API examples
  • CLI, LimeSuite command line interface tools
  • GUI, GUI Application for LimeSuite
  • AMARISOFT_PLUGIN, LimeSuite Amarisoft integration plugin
  • DESKTOP, LimeSuiteNG freedesktop integration
  • SOAPYSDR, SoapySDR bindings for LimeSuiteNG
  • UDEV_RULES, Install Linux udev rules

– ######################################################
– ## LimeSuiteNG disabled features
– ######################################################

  • GNURADIO, GNU Radio 3.9+ Plug-in
  • DOXYGEN, Build Doxygen documentation

– Install prefix: /usr/local
– Build timestamp: 2024-08-19
– Lime Suite version: 0.2.0-ge17ae254
– ABI/so version: 0.2-1
– Configuring incomplete, errors occurred!
See also “/home/ubuntu/lms/LimeSuiteNG/build/CMakeFiles/CMakeOutput.log”.
See also “/home/ubuntu/lms/LimeSuiteNG/build/CMakeFiles/CMakeError.log”.

I was able to install missing “gnuplot” and “doxygen”.
There is still error for "######################################################
– Missing required packages:

  • LinuxKernelHeaders"

I have the following header files under /usr/src":

drwxr-xr-x 6 root root 4096 Aug 15 10:51 linux-headers-5.10.192-tegra-ubuntu20.04_aarch64
drwxr-xr-x 7 root root 4096 Aug 16 07:33 linux-headers-5.15.0-117-generic

Fixed the:

CMake Error at external/CMakeLists.txt:119 (target_sources):
target_sources may only set INTERFACE properties on INTERFACE targets

If you have installed kernel headers you can ignore the warning

– Missing required packages:
    LinuxKernelHeaders"

The cmake detection script does not handle all naming schemes and directories. But the kernel module build system will find them.

Thanks for quick response.
I commented out the following:
#find_package(LinuxKernelHeaders REQUIRED)
in “LimeSuiteNG/src/comms/PCIe/linux-kernel-module/CMakeList.txt”
but still got the following errors. There is no “makefile” generated.

$ cmake …
– cmake version: 3.16.3
– Enabling native optimizations
– Building KissFFT with datatype: float
– Building static library
– PKGINCLUDEDIR is include/kissfft
CMake Error at external/CMakeLists.txt:119 (target_sources):
target_sources may only set INTERFACE properties on INTERFACE targets

– Found libusb-1.0:
– - LIBUSB_1_INCLUDE_DIRS: /usr/include/libusb-1.0
– - LIBUSB_1_LIBRARIES: /usr/lib/aarch64-linux-gnu/libusb-1.0.so
– wxWidgets_DEFINITIONS: _FILE_OFFSET_BITS=64;WXUSINGDLL;WXGTK
– wxWidgets_INCLUDE_DIRS: /usr/lib/aarch64-linux-gnu/wx/include/gtk3-unicode-3.0;/usr/include/wx-3.0
– wxWidgets_LIBRARIES: -L/usr/lib/aarch64-linux-gnu;-pthread;;;-lwx_gtk3u_richtext-3.0;-lwx_gtk3u_adv-3.0;-lwx_gtk3u_core-3.0;-lwx_baseu-3.0;-lwx_gtk3u_gl-3.0
– OPENGL_INCLUDE_DIR: /usr/include
– OPENGL_LIBRARIES: /usr/lib/aarch64-linux-gnu/libOpenGL.so;/usr/lib/aarch64-linux-gnu/libGLX.so;/usr/lib/aarch64-linux-gnu/libGLU.so
– Enabling native optimizations
– Module Soapy_limesuiteng configured with version: 0.2.0-e17ae254

– ######################################################
– Packages found:

  • Threads
  • libusb-1.0
    Adds USB communication support
  • Gnuplot
  • wxWidgets
  • OpenGL
  • SoapySDR
    Adds LimeSuiteNG bindings for SoapySDR
  • Git
  • Doxygen

– ######################################################
– Missing required packages:

– ######################################################
– Missing recommended packages:

– ######################################################
– Missing optional packages:

– ######################################################
– ## LimeSuiteNG enabled features
– ######################################################

  • HEADERS, The limesuiteng headers
  • LIBRARY, The limesuiteng library
  • USB_FTDI, USB support for FTDI
  • USB_FX3, USB support for Cypress FX3
  • LIMEPCIE, PCIe support
  • LIMEPCIE_KERNEL_MODULE, Build Linux LimePCIe kernel module
  • DKMS, DKMS support for lime PCIe kernel module
  • EXAMPLES, LimeSuite library API examples
  • CLI, LimeSuite command line interface tools
  • GUI, GUI Application for LimeSuite
  • AMARISOFT_PLUGIN, LimeSuite Amarisoft integration plugin
  • DESKTOP, LimeSuiteNG freedesktop integration
  • SOAPYSDR, SoapySDR bindings for LimeSuiteNG
  • UDEV_RULES, Install Linux udev rules
  • DOXYGEN, Build Doxygen documentation

– ######################################################
– ## LimeSuiteNG disabled features
– ######################################################

  • GNURADIO, GNU Radio 3.9+ Plug-in

– Install prefix: /usr/local
– Build timestamp: 2024-08-19
– Lime Suite version: 0.2.0-ge17ae254
– ABI/so version: 0.2-1
– Configuring incomplete, errors occurred!
See also “/home/ubuntu/lms/LimeSuiteNG/build/CMakeFiles/CMakeOutput.log”.
See also “/home/ubuntu/lms/LimeSuiteNG/build/CMakeFiles/CMakeError.log”.

pull latest changes from ‘develop’ branch

The update worked without any error. I was able to run "make’, “sudo make install”, “sudo ldconfig”, “limeGUI”, have Lime XTRX detected and run some tests.
Thanks!