Menu

Slight problem packaging libsoxr for OpenWrt

Mike Brady
2014-08-02
2014-09-30
  • Mike Brady

    Mike Brady - 2014-08-02

    Hi. Many thanks for your fantastic work on libsoxr! I have been building an OpenWrt package for it, and it works pretty well for the library itself and for the examples, but compilation fails when trying to compiling the tests.

    Briefly, the package script treats libsoxr as an autotools build and copies in a configure file containing:

    cmake -DBUILD_SHARED_LIBS=OFF -DBUILD_TESTS=0 -DBUILD_EXAMPLES=0 .

    more-or-less as you suggest. This works fine and builds a version of libsoxr that works, insofar as I can test it!

    However, if I turn on the building of tests by setting DBUILD_TESTS=1, an error occurs. Here is an extract from the building log:

    ...
    [ 45%] Building C object src/CMakeFiles/soxr.dir/rate64.c.o
    [ 50%] Building C object src/CMakeFiles/soxr.dir/rate32s.c.o
    [ 55%] Building C object src/CMakeFiles/soxr.dir/pffft32s.c.o
    [ 60%] Building C object src/CMakeFiles/soxr.dir/simd.c.o
    Linking C static library libsoxr.a
    make[5]: Leaving directory `/home/mike/openwrt/reference/build_dir/target-i386_i486_uClibc-0.9.33.2/libsoxr-0.1.1'
    [ 60%] Built target soxr
    make[5]: Entering directory `/home/mike/openwrt/reference/build_dir/target-i386_i486_uClibc-0.9.33.2/libsoxr-0.1.1'
    Scanning dependencies of target soxr-lsr
    make[5]: Leaving directory `/home/mike/openwrt/reference/build_dir/target-i386_i486_uClibc-0.9.33.2/libsoxr-0.1.1'
    make[5]: Entering directory `/home/mike/openwrt/reference/build_dir/target-i386_i486_uClibc-0.9.33.2/libsoxr-0.1.1'
    [ 65%] Building C object src/CMakeFiles/soxr-lsr.dir/lsr.c.o
    Linking C static library libsoxr-lsr.a
    make[5]: Leaving directory `/home/mike/openwrt/reference/build_dir/target-i386_i486_uClibc-0.9.33.2/libsoxr-0.1.1'
    [ 65%] Built target soxr-lsr
    make[5]: Entering directory `/home/mike/openwrt/reference/build_dir/target-i386_i486_uClibc-0.9.33.2/libsoxr-0.1.1'
    Scanning dependencies of target vector-gen
    make[5]: Leaving directory `/home/mike/openwrt/reference/build_dir/target-i386_i486_uClibc-0.9.33.2/libsoxr-0.1.1'
    make[5]: Entering directory `/home/mike/openwrt/reference/build_dir/target-i386_i486_uClibc-0.9.33.2/libsoxr-0.1.1'
    [ 70%] Building C object tests/CMakeFiles/vector-gen.dir/vector-gen.c.o
    Linking C executable vector-gen
    make[5]: Leaving directory `/home/mike/openwrt/reference/build_dir/target-i386_i486_uClibc-0.9.33.2/libsoxr-0.1.1'
    [ 70%] Built target vector-gen
    make[5]: Entering directory `/home/mike/openwrt/reference/build_dir/target-i386_i486_uClibc-0.9.33.2/libsoxr-0.1.1'
    Scanning dependencies of target test-vectors
    make[5]: Leaving directory `/home/mike/openwrt/reference/build_dir/target-i386_i486_uClibc-0.9.33.2/libsoxr-0.1.1'
    make[5]: Entering directory `/home/mike/openwrt/reference/build_dir/target-i386_i486_uClibc-0.9.33.2/libsoxr-0.1.1'
    [ 75%] Generating ref-44100.s32
    /bin/sh: 1: ./vector-gen: not found
    make[5]: *** [tests/ref-44100.s32] Error 127
    make[5]: Leaving directory `/home/mike/openwrt/reference/build_dir/target-i386_i486_uClibc-0.9.33.2/libsoxr-0.1.1'
    make[4]: *** [tests/CMakeFiles/test-vectors.dir/all] Error 2
    make[4]: Leaving directory `/home/mike/openwrt/reference/build_dir/target-i386_i486_uClibc-0.9.33.2/libsoxr-0.1.1'
    make[3]: *** [all] Error 2
    make[3]: Leaving directory `/home/mike/openwrt/reference/build_dir/target-i386_i486_uClibc-0.9.33.2/libsoxr-0.1.1'
    make[2]: *** [/home/mike/openwrt/reference/build_dir/target-i386_i486_uClibc-0.9.33.2/libsoxr-0.1.1/.built] Error 2
    make[2]: Leaving directory `/home/mike/openwrt/reference/package/libsoxr'
    make[1]: *** [package/libsoxr/compile] Error 2
    make[1]: Leaving directory `/home/mike/openwrt/reference'
    make: *** [package/libsoxr/compile] Error 2
    mike@ubuntu:~/openwrt/reference$
    

    I wonder if you'd have any idea what it might be. Is there any documentation I should post?

     
    • robs

      robs - 2014-08-05

      Not sure where the problem is; perhaps vector-gen hasn't been built for some obscure reason (disk full?), or make is not changing to correct directory before trying to execute it.

      Try checking that 'vector-gen' has been built and is executable; also try 'make VERBOSE=1' and look for output lines like this:

      [ 75%] Generating ref-44100.s32
      cd /tmp/soxr-code/tests && ./vector-gen 44100 1 16 22050 1 /tmp/soxr-code/tests/ref-44100.s32

      HTH, Rob

       

      Last edit: robs 2014-08-05
  • Mike Brady

    Mike Brady - 2014-08-05

    Thanks – that's helpful. So vector-gen is a program to generate test sets that runs on the host doing the compilation? The reason I ask is that this is a cross compilation build, so probably that's causing the grief.

     
  • robs

    robs - 2014-08-05

    Ah yes, that'll be it.

     
  • Mike Brady

    Mike Brady - 2014-09-30

    Just FYI, libsoxr is now packaged up for OpenWrt, but without the tests. I'm using it in an application called shairport-sync (https://github.com/mikebrady/shairport-sync), which can now run on OpenWrt as well.
    Thanks again for all your work.

     

Log in to post a comment.

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.