Browse Source

extended instructions

richarddobson 3 months ago
parent
commit
578b67a8a0
2 changed files with 39 additions and 24 deletions
  1. 6 6
      CMakeLists.txt
  2. 33 18
      building.txt

+ 6 - 6
CMakeLists.txt

@@ -1,6 +1,5 @@
 # RWD version for newsfsys with PVOC EX support
 # RWD version for newsfsys with PVOC EX support
-#cmake_minimum_required(VERSION 2.8.3)
-cmake_minimum_required(VERSION 3.5.0)
+cmake_minimum_required(VERSION 3.5)
 
 
 project (CDP)
 project (CDP)
 
 
@@ -154,14 +153,14 @@ if(APPLE)
     set(CS_FRAMEWORK_DEST "${CMAKE_INSTALL_PREFIX}")
     set(CS_FRAMEWORK_DEST "${CMAKE_INSTALL_PREFIX}")
   endif()
   endif()
 
 
-  set(DEFAULT_OSX_SYSROOT /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.8.sdk/)
+  set(DEFAULT_OSX_SYSROOT /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk/)
 
 
   if(NOT CMAKE_OSX_SYSROOT AND EXISTS ${DEFAULT_OSX_SYSROOT})
   if(NOT CMAKE_OSX_SYSROOT AND EXISTS ${DEFAULT_OSX_SYSROOT})
     set(CMAKE_OSX_SYSROOT ${DEFAULT_OSX_SYSROOT})
     set(CMAKE_OSX_SYSROOT ${DEFAULT_OSX_SYSROOT})
   endif()
   endif()
 
 
    if(EXISTS ${CMAKE_OSX_SYSROOT})
    if(EXISTS ${CMAKE_OSX_SYSROOT})
-    set(CMAKE_OSX_DEPLOYMENT_TARGET 10.8)
+    set(CMAKE_OSX_DEPLOYMENT_TARGET 10.9)
   endif()
   endif()
 
 
 endif()
 endif()
@@ -196,10 +195,11 @@ if(USE_LOCAL_PORTAUDIO)
 else()
 else()
   message(STATUS "paprogs not built")
   message(STATUS "paprogs not built")
 endif()
 endif()
-  
+# RWD Sept 2025 added sys/ioctl.h etc for libaaio  
 set(HEADERS_TO_CHECK
 set(HEADERS_TO_CHECK
     unistd.h io.h fcntl.h stdint.h
     unistd.h io.h fcntl.h stdint.h
-    sys/time.h sys/types.h termios.h
+    sys/time.h sys/types.h termios.h 
+    sys/ioctl.h sys/wait.h
     values.h winsock.h sys/socket.h
     values.h winsock.h sys/socket.h
     dirent.h )
     dirent.h )
 
 

+ 33 - 18
building.txt

@@ -1,6 +1,6 @@
 Building CDP.
 Building CDP.
 
 
-This assumes general familiarity with the command line, and with 
+This assumes general familiarity with command line work, and with 
 standard build tools. 
 standard build tools. 
 
 
 All platforms: the CDP programs use the CMake system for building makefiles:
 All platforms: the CDP programs use the CMake system for building makefiles:
@@ -8,7 +8,7 @@ https://cmake.org/install/
 
 
 Windows: the Windows version of CMake is required: this includes the 
 Windows: the Windows version of CMake is required: this includes the 
  required Generator to create MinGW Makefiles.
  required Generator to create MinGW Makefiles.
-It is included in a full installation of Visual Studio. 
+It is included in a full installation of Visual Studio (free Community Edition). 
 Otherwise, it is available from the main cmake site: https://cmake.org/download/.
 Otherwise, it is available from the main cmake site: https://cmake.org/download/.
 
 
 Mac users may prefer to use homebrew. Once installed, use:
 Mac users may prefer to use homebrew. Once installed, use:
@@ -21,17 +21,16 @@ Windows:  install the Msys/MinGW linux-like environment.
  You will also need the Directx9 SDK dx9mgw.zip for MinGW, provided in the /externals directory.
  You will also need the Directx9 SDK dx9mgw.zip for MinGW, provided in the /externals directory.
  (from https://download.tuxfamily.org/allegro/)
  (from https://download.tuxfamily.org/allegro/)
 
 
-One installed, go to directory Msys/1.0/ and run the .bat file. This launches a version 
-of the Windows CMD terminal configured for Mingw, with access to many standard unix commands, etc.
+  One installed, go to directory Msys/1.0/ and run the .bat file. This launches a version 
+  of the Windows CMD terminal configured for Mingw, with access to many standard unix commands, etc.
  
  
- Currently we only build 32bit CDP binaries, under this older version of MinGW.
+ Currently we only build 32bit Windows binaries, under this older version of MinGW.
   
   
  Git: this is not needed simply to build the programs, 
  Git: this is not needed simply to build the programs, 
  but recommended if you want to pick up updates, bugfixes, etc, easily:
  but recommended if you want to pick up updates, bugfixes, etc, easily:
  https://gitforwindows.org/
  https://gitforwindows.org/
  
  
  
  
- 
 MacOS:    install Xcode along with the command line tools. This should also install Git.
 MacOS:    install Xcode along with the command line tools. This should also install Git.
                Otherwise, see: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
                Otherwise, see: https://git-scm.com/book/en/v2/Getting-Started-Installing-Git
            install CMake (see above).
            install CMake (see above).
@@ -39,25 +38,39 @@ MacOS:    install Xcode along with the command line tools. This should also inst
 Linux:     we assume everything you need is already present!
 Linux:     we assume everything you need is already present!
 
 
 
 
+Before Builing CDP.
 
 
-Currently, one or two third-party libraries need to be built 
-before commencing the main CDP build.
+  The external portaudio library needs to be built 
+  before commencing the main CDP build. This is required for the CDP play/record programs: 
+   paplay, pvplay, recsf, listaudevs.
 
 
-1: aaiolib (Linux and MacOS):  emulation of Windows keyboard functions (getch etc)
-    unpack, then ./configure; sudo make install
+   NB: for Windows ASIO support, the Steinberg dev tools ASIOSDK2 is also needed.
 
 
+   See the applicable "pa...build.txt" for your platform under the externals directory.
+   Note that for all platforms some special configuration settings must be used.
 
 
-2: portaudio (for the CDP play/record programs: paplay, pvplay, recsf, listaudevs).
+  Note: portaudio is under continuing development. We advise just downloading the listed
+  "stable" version v19.7. It is also possible to obtain the latest sources (towards v19.8) 
+  directly from github. We are investigating this for possible absorption into the CMake system. 
+  However, there are some anomalies compared to the "stable" code set, as can be expected
+  in development code, including function name changes, and possible bugs yet to be fixed.
 
 
-   NB: for Windows ASIO support, the Steinberg dev tools ASIOSDK2 is also needed.
+  Currently, we require access to some "private" portaudio source files. That is to say, for functions
+  used by portaudio itself, but not supported in the main public header file "portaudio.h". 
+  These files may in principle change at any time.
 
 
-    see the applicable "pa...build.txt" under the externals directory.
-            
-             
+  Also currently, we require portaudio to be built and installed systemwide, mostly for the benefit of CMake.
+  This is not always ideal for users, and is an aspect under review. Those familiar with CMake and the function 
+  of the relevant CMakeLists.txt files will know how to edit them to use a local build of portaudio.
+
+           
 To Build the CDP programs
 To Build the CDP programs
   
   
    The canonical approach with CMake is to create a top-level "build" directory 
    The canonical approach with CMake is to create a top-level "build" directory 
-   (the directory containing the top-level "CMakeLists.txt" )
+   (the directory containing the top-level "CMakeLists.txt" ):
+ 
+   [in CDP8 directory]:
+   mkdir build
    
    
    then:
    then:
 
 
@@ -72,12 +85,13 @@ To Build the CDP programs
    
    
    then, to build the whole package:
    then, to build the whole package:
    
    
+   MacOS, Linux:
       make
       make
 
 
    MinGW: 
    MinGW: 
       mingw32-make
       mingw32-make
    
    
-   All compiled programs will be written to the top-level Release/ directory.
+   All compiled programs will be written to the top-level NewRelease/ directory. 
 
 
    
    
 
 
@@ -94,7 +108,8 @@ and fill in the form as indicated.
 
 
 Information on any updates to the github repositories will be posted to this list.
 Information on any updates to the github repositories will be posted to this list.
 
 
-
+This document revised:
+Richard Dobson September 11, 2025.