ComposersDesktop / CDP8

New version of CDP software
GNU Lesser General Public License v2.1
83 stars 3 forks source link

configuration fails due to something missing in PortAudio #7

Open ariutti opened 3 months ago

ariutti commented 3 months ago

hi, I'm on Linux Ubuntu Studio 22.04 and I'm exeriencing some difficulties in trying to install CDP8. My steps are the following:

libaaio installation

  1. entering folder CDP8/libaaio;
  2. extracting archive libaaio-0.3.1.tar.bz2;
  3. entering folder libaaio-0.3.1;
  4. ./configure
  5. sudo make install

portaudio configuration and build

I read the instructions in the file ‘CDP8/dev/externals/paprogs/palinuxbuild.txt’.

  1. I reach the indicated website and download the pa_stable_v190700_20210406.tgz file;
  2. placing archive inside CDP8/dev/externals/paprogs/ folder;
  3. extract the archive in this position;
  4. entering portaudio folder (which is not too clear from the instructions);
  5. executing command ./configure --with-alsa --with-jack
  6. executing make

building and installing CDP8

  1. starting from folder CDP8;
  2. create folder build with command mkdir build
  3. entering folder with cd build
  4. executing command cmake ..

I get this Output which makes me think there is some problem with PortAudio

CMake Deprecation Warning at CMakeLists.txt:2 (cmake_minimum_required):
  Compatibility with CMake < 2.8.12 will be removed from a future version of
  CMake.

  Update the VERSION argument <min> value or use a ...<max> suffix to tell
  CMake that the project does not need compatibility with older versions.

-- The C compiler identification is GNU 11.4.0
-- The CXX compiler identification is GNU 11.4.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- /media/nicola/c1262ef2-9406-4c67-91c1-f756a41c0d8f/home/nicola/Documenti/repos/CDP8
-- installing to /usr/local
-- building to /media/nicola/c1262ef2-9406-4c67-91c1-f756a41c0d8f/home/nicola/Documenti/repos/CDP8/NewRelease
-- LIBRARY INSTALL DIR: lib
-- Performing Test HAS_TREE_VECTORIZE
-- Performing Test HAS_TREE_VECTORIZE - Success
-- Performing Test HAS_CXX_TREE_VECTORIZE
-- Performing Test HAS_CXX_TREE_VECTORIZE - Success
-- Performing Test HAS_FAST_MATH
-- Performing Test HAS_FAST_MATH - Success
-- Performing Test HAS_CXX_FAST_MATH
-- Performing Test HAS_CXX_FAST_MATH - Success
-- Performing Test HAS_FPMATH_SSE
-- Performing Test HAS_FPMATH_SSE - Success
-- Performing Test HAS_CXX_FPMATH_SSE
-- Performing Test HAS_CXX_FPMATH_SSE - Success
-- Performing Test HAS_SSE2
-- Performing Test HAS_SSE2 - Success
-- Performing Test HAS_CXX_SSE2
-- Performing Test HAS_CXX_SSE2 - Success
-- Performing Test HAS_OMIT_FRAME_POINTER
-- Performing Test HAS_OMIT_FRAME_POINTER - Success
-- Performing Test HAS_CXX_OMIT_FRAME_POINTER
-- Performing Test HAS_CXX_OMIT_FRAME_POINTER - Success
-- Not using Custom.cmake file.
-- Performing Test HAS_VISIBILITY_HIDDEN
-- Performing Test HAS_VISIBILITY_HIDDEN - Success
-- Performing Test HAS_CXX_VISIBILITY_HIDDEN
-- Performing Test HAS_CXX_VISIBILITY_HIDDEN - Success
-- BUILD_BIN_DIR set to 
-- BUILD_LIB_DIR set to /media/nicola/c1262ef2-9406-4c67-91c1-f756a41c0d8f/home/nicola/Documenti/repos/CDP8/build/lib
-- paprogs to be built
-- Looking for unistd.h
-- Looking for unistd.h - found
-- Looking for io.h
-- Looking for io.h - not found
-- Looking for fcntl.h
-- Looking for fcntl.h - found
-- Looking for stdint.h
-- Looking for stdint.h - found
-- Looking for sys/time.h
-- Looking for sys/time.h - found
-- Looking for sys/types.h
-- Looking for sys/types.h - found
-- Looking for termios.h
-- Looking for termios.h - found
-- Looking for values.h
-- Looking for values.h - found
-- Looking for winsock.h
-- Looking for winsock.h - not found
-- Looking for sys/socket.h
-- Looking for sys/socket.h - found
-- Looking for dirent.h
-- Looking for dirent.h - found
-- Building on Linux
-- Configuring done
CMake Error: The following variables are used in this project, but they are set to NOTFOUND.
Please set them or make sure they are set and tested correctly in the CMake files:
PA
    linked by target "listaudevs" in directory /media/nicola/c1262ef2-9406-4c67-91c1-f756a41c0d8f/home/nicola/Documenti/repos/CDP8/dev/externals/paprogs/listaudevs
    linked by target "paplay" in directory /media/nicola/c1262ef2-9406-4c67-91c1-f756a41c0d8f/home/nicola/Documenti/repos/CDP8/dev/externals/paprogs/paplay
    linked by target "pvplay" in directory /media/nicola/c1262ef2-9406-4c67-91c1-f756a41c0d8f/home/nicola/Documenti/repos/CDP8/dev/externals/paprogs/pvplay
    linked by target "recsf" in directory /media/nicola/c1262ef2-9406-4c67-91c1-f756a41c0d8f/home/nicola/Documenti/repos/CDP8/dev/externals/paprogs/recsf

-- Generating done
CMake Generate step failed.  Build files cannot be regenerated correctly

the make command actually fails. Where am I going wrong? Thank you so much for your support

empty0set commented 1 month ago

I ran the CMake configuration step with '-DCMAKE_PREFIX_PATH' set to the path of libportaudio.a in paprogs/portaudio/lib/.libs/ to fix this.

ryanthomas-org commented 1 month ago

In my case, I had missed the original note in palinuxbuild.txt, and was a bit confused by the wording "one or two third-party libraries need to be built" in CDP8/building.txt and originally thought the included aaiolib might be enough.

I had the exact same error as OP on an Ubuntu 22.04 based distro.

I partially resolved this by running:

apt install portaudio19-dev

I was now able to run cmake .. without erors from CDP8/build, but make now failed as follows:

[ 99%] Building C object dev/externals/paprogs/paplay/CMakeFiles/paplay.dir/paplay.c.o
CDP8/dev/externals/paprogs/paplay/paplay.c:75:10: fatal error: pa_ringbuffer.h: No such file or directory
   75 | #include "pa_ringbuffer.h"
      |          ^~~~~~~~~~~~~~~~~
compilation terminated.
make[2]: *** [dev/externals/paprogs/paplay/CMakeFiles/paplay.dir/build.make:76: dev/externals/paprogs/paplay/CMakeFiles/paplay.dir/paplay.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:7671: dev/externals/paprogs/paplay/CMakeFiles/paplay.dir/all] Error 2
make: *** [Makefile:156: all] Error 2

I wasted a good amount of time trying to find a pa_ringbuffer.h file on my system thinking that portaudio19-dev might have provided it, but it did not.

Finally I grabbed the pa_stable_v190700_20210406.tgz file as OP reiterated, and saved the extracted portaudio folder at CDP8/dev/externals/paprogs/portaudio -- where I proceeded to follow the instructions in CDP8/dev/externals/paprogs/palinuxbuild.txt ( ./configure --with-alsa --with-jack ; make ) This is what actually built the missing pa_ringbuffer.h file

That was enough for the make file to find it and build it correctly at least in my case.

So, in summary, saving the portaudio folder downloaded from http://files.portaudio.com/download.html in place under my local copy of the CDP8 repository at CDP8/dev/externals/paprogs/portaudio, and building it there, was sufficient for CDP8 to build correctly

yamzee commented 1 month ago

Using a combination of the two above, I was finally able to get CDP8 to build correctly. I edited the CMakeCache.txt file to remove the PA-NOTFOUND, since no matter what I did it never found the portaudio libs.