I am preparing to load SDRGlut onto an older computer running MacOs 10.13.6 High Sierra. The computer is at the point where it is no longer be updated to the latest operating system, and I am wondering if I will run into a compatibility issue. The computer has Xcode version 10.1 and Homebrew was loaded August 20, 2022. The older computer is the one of choice because it is the second computer that has been retired from daily use. The instructions for SDRGlut specify that xQuartz must be installed. Now, looking at the information on xQuarts vs. MacOs versions, the list I find does not go back far enough. Will this older computer and these versions be a stopping point for my planned installation?
make -f makefileMACINTOSH -j 8
Thank you. I am using the NESDR Smart, RTL-SDR. I am intrigued by both of your suggestions. Perhaps I should try both of them. On the suggestion to copy into an existing project, do I copy the contents of the downloaded zip file SdrGlut-1.31 into an existing project including the SdrGlut.xcodeproj file, and then run the xcodeproj file? On the suggestion to use the make file, do I run the makefileMACINTOSH from that same project directory? I see there is a makefileM1Brew can that also be run from the folder that, at this point, has been copied into that same existing directory?
Using the High Sierra computer …
When opening the SDRGlut code in the XCode IDE, the error on line 11 is an IDE error that is generated as code is entered and before the code is compiled. It has a pop-up notice. The entire line states the following:
#include <liquid/liquid.h> ! ’liquid/liquid.h’ file not found.
If I comment out that line, then the error message moves to sndfile.h and appears, as:
#include <sndfile.h> !’sndfile.h’ not found.
So most likely, sndfile.h has a dependency that is in liquid.h?
Searching the computer for a liquid.h file, I find nothing. Otherwise I am not able to determine which of the install steps should have included liquid.h.
When running SdrGlut-1120-Install.dmg and within that folder, running SdrGlut.app, the error from terminal, has a lot of text, and here are the highlights. I added the ellipsis points, “…” , to reduce the amount of irrelevant text which is usually a path.
dyld: Library not loaded: … librtaudio.6.dylib
Referenced from: … SdrGlut.app/Contents/MacOS/./SdrGlut2
Reason: Incompatible library version: SdrGlut2 requires version 7.0.0 or later, but librtaudio.6.dylib provides version 6.0.0 …
Attempting to rerun the app without rebooting the computer returns this error;
“SdrGlut3.sh” can’t be opened because Sandbox is not allowed to open documents in Terminal.
It took about 20 hours to install Soapy, and it had not been loaded before, so I’m figuring this must be a clean install from the start. I don’t know if it would take 20 hours if I tried to go through the steps again or if it would just reinstall things that might have failed the first time.
I was hoping to be able to use the older computer for this “hobby” work, but maybe it’s 12 years are just too old for this. Since I can still remember things from 12 years ago, it doesn't seem to be that long ago.
Attempting to clone liquid as recommended by the GitHub site for liquid,
I used the recommended statement in Terminal:
git clone git://github.com/jgaeddert/liquid-dsp.git
And received the following response
Cloning into 'liquid-dsp'...
fatal: unable to connect to github.com:
github.com[0: 140.82.113.4]: errno=Operation timed out
I can download it from github, without the git command, but where should I put it to make it available to SDRGlut?
August 26, 2022
I made progress in my attempt to obtain liquid.h
Using the instructions from https://liquidsdr.org/blog/liquid-dsp-1.3.0/ instead of the instructions at github, I entered the following commands in Terminal and got the following error messages.
Commands:
git clone https://github.com/jgaeddert/liquid-dsp.git
cd liquid-dsp
git checkout v1.3.0
Response:
You are in 'detached HEAD' state. You can look around, make experimental
changes and commit them, and you can discard any commits you make in this
state without impacting any branches by performing another checkout.
If you want to create a new branch to retain commits you create, you may
do so (now or later) by using -b with the checkout command again. Example:
git checkout -b <new-branch-name>
Command:
./bootstrap.sh
Response:
./bootstrap.sh: line 30: aclocal: command not found
./bootstrap.sh: line 31: autoconf: command not found
./bootstrap.sh: line 32: autoheader: command not found
I sincerely appreciate your patience. I’ve programmed for over a half-century and still run into things that are very new. This is one of them. I may have to say “enough” on this, but decided on one more try.
The links to autoconf and automake were an ftp site with tar.gz extensions. Opening them did nothing meaningful and moving to the autoconf page suggested yet another dependency, so it’s getting very deep with dependencies that I can’t keep track of.
So I looked at your comment that I might be able to use
configure --prefix=/usr/local
So I tried the following sequence. Brackets "[" and "]" delimit my comments
cd liquid-dsp
git checkout v1.3.0
[Return: ] “HEAD is now at [shows an address here that I’m not sure is local or distant] build: updating history description to reflect v1.3.0 release”
[skip this …./bootstrap.sh]
[skip this …./configure]
[Trying this:]
configure --prefix=/usr/local
[Return:] “-bash: configure: command not found”
[Trying this:]
bash: configure --prefix=/usr/local
[Return:] “-bash: configure: command not found”
[Trying this:]
make -j8
[Return:] “make: *** No targets specified and no makefile found. Stop.”
[Trying this:]
sudo make install
[Return:] “make: *** No rule to make target `install'. Stop.”
August 27, 2022
Working through the autoconf install, I have the following dialogue with the computer.
the "$" indicate commands I gave the system, and [Return:] indicates what i got back
$ cd autoconf-2.69
$ ls
[Return:]
AUTHORS
ChangeLog
GNUmakefile
README
$./configure – prefix-usr/local
[Return:]
configure: error: expected an absolute directory name for --prefix: usr/local
bash-3.2$ cd /Users/dir/Desktop/autoconf-2.69
bash-3.2$ ls
AUTHORS GNUmakefile build-aux
BUGS INSTALL cfg.mk
COPYING Makefile.am configure
COPYING.EXCEPTION Makefile.in configure.ac
COPYINGv3 NEWS doc
ChangeLog README lib
ChangeLog.0 THANKS m4
ChangeLog.1 TODO maint.mk
ChangeLog.2 aclocal.m4 man
ChangeLog.3 bin tests
The stupid google editor shows it with an extra line. You are missing files and things are shown in upper case that are lower case.August 30, 2022
Thank you for your help.
I redid the steps, today. This time, I blocked out the name of my machine and user account and left the returned value from the ls command exactly as it was returned. In the previous post I reformatted the returned value in an effort to make it more readable. This time it is as is. To get here, I put the autoconf-2.69.tar.gz file into a folder called “documents/gnu” and this dialogue begins with a cd to that folder and then an ls of that folder.
Here is the dialogue I had in Mac Terminal
Last login: Tue Aug 30 20:06:56 on ttys000
Mycomputer:~ MyUserName$ cd documents/gnu
Mycomputer:gnu MyUserName$ ls
autoconf-2.69 autoconf-2.69.tar automake-1.15 automake-1.15.tar
Mycomputer:gnu MyUserName$ cd autoconf-2.69
Mycomputer:autoconf-2.69 MyUserName$ ls
AUTHORS ChangeLog GNUmakefile README build-aux lib
BUGS ChangeLog.0 INSTALL THANKS cfg.mk m4
COPYING ChangeLog.1 Makefile.am TODO configure maint.mk
COPYING.EXCEPTION ChangeLog.2 Makefile.in aclocal.m4 configure.ac man
COPYINGv3 ChangeLog.3 NEWS bin doc tests
Mycomputer:autoconf-2.69 MyUserName$ ./configure --prefix=usr/local
configure: error: expected an absolute directory name for --prefix: usr/local
MyComputer:autoconf-2.69 MyUserName$
Last login: Wed Aug 31 06:11:40 on ttys000
MyComputer:~ MyUserAccount $ cd documents/gnu
MyComputer:gnu MyUserAccount$ ls
autoconf-2.69 autoconf-2.69.tar automake-1.15 automake-1.15.tar liquid-dsp liquid-dsp-1.3.0
MyComputer:gnu MyUserAccount$ cd autoconf-2.69
MyComputer:autoconf-2.69 MyUserAccount$ ./configure --prefix=/usr/local
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... build-aux/install-sh -c -d
checking for gawk... no
checking for mawk... no
checking for nawk... no
checking for awk... awk
checking whether make sets $(MAKE)... yes
checking build system type... x86_64-apple-darwin17.7.0
checking host system type... x86_64-apple-darwin17.7.0
configure: autobuild project... GNU Autoconf
configure: autobuild revision... 2.69
configure: autobuild hostname... MyComputer
configure: autobuild timestamp... 20220831T111359Z
checking whether /bin/sh -n is known to work... yes
checking for characters that cannot appear in file names... none
checking whether directories can have trailing spaces... yes
checking for expr... /bin/expr
checking for GNU M4 that supports accurate traces... /usr/bin/m4
checking whether /usr/bin/m4 accepts --gnu... no
configure: WARNING: the version of M4 that was found does not support -g
configure: WARNING: using it with POSIXLY_CORRECT set may cause problems
checking how m4 supports trace files... --error-output
checking for perl... /usr/bin/perl
checking whether /usr/bin/perl Fcntl::flock is implemented... yes
checking for emacs... emacs
checking whether emacs is sufficiently recent... yes
checking for emacs... emacs
checking where .elc files should go... ${datarootdir}/emacs/site-lisp
checking for grep that handles long lines and -e... /usr/bin/grep
checking for egrep... /usr/bin/grep -E
checking for a sed that does not truncate output... /usr/bin/sed
checking whether make is case sensitive... yes
configure: creating ./config.status
config.status: creating tests/Makefile
config.status: creating tests/atlocal
config.status: creating man/Makefile
config.status: creating lib/emacs/Makefile
config.status: creating Makefile
config.status: creating doc/Makefile
config.status: creating lib/Makefile
config.status: creating lib/Autom4te/Makefile
config.status: creating lib/autoscan/Makefile
config.status: creating lib/m4sugar/Makefile
config.status: creating lib/autoconf/Makefile
config.status: creating lib/autotest/Makefile
config.status: creating bin/Makefile
config.status: executing tests/atconfig commands
MyComputer:autoconf-2.69 MyUserAccount$
At https://github.com/libsndfile/libsndfile/releases
It looks like I need
libsndfile-1.1.0.tar.xz
double-clicking that turns it into libsndfile-1.1.0.tar.xz.cpgz
but other than that, nothing substantive happens.
It appears that libsndfile was successfully installed from “Source Code (zip)”, I continued on to download and install rtaudio and that appears to be successful.
Now going back to SdrGlut main.cpp, I have a file not found error on line 29.
#include <sndfile.h> ‘!sndfile.h’ file not found.
I looked at the github site again and located libsndfile-master. Downloaded it and installed it. It appears to have installed correctly.
Going back to main.cpp, the error on line for the missing sndfile.h is now resolved.
The program now has three issues here is a summary of them.
Warning Error: DialogRadio.cpp – Code will never be executed
Warning Error: Directory not found for option ‘-L/opt/x11/lib’
Fatal Error: clang linker command failed with exit code 1. (use –v to see invocation). I tried entering a –v and was unable to locate it. Not sure what it expects here.
We’ve come a long way and I hope this is a fixable error.
./sdrglut.x
Thank you very much.
The program is running well. There is a problem with the sound. When tuned in to an AM station, in the default setting it emits a shsh…shsh…shsh sound with a cycle rate of slightly less than one shsh per second.
Here are the details.
To compile and or run the program I used three procedures. The project is in a folder called XCodeProjects.
Procedure 1 – Use the XCode IDE
Open XCode IDE
Open: /Users /Documents/XCodeProjects/SdrGlut-1.31/SdrGlut.xcodeproj
Open: /Users/…/Documents/XCodeProjects/SdrGlut-1.31/MainSource/main.cpp
Run from the IDE
With this procedure, the code checked before it is compiled. At compile time the code is available for inspection and editing, and the debug output is provided. In the attached image, the debug screen can be seen in the background.
Procedure 2 – To run a program built in Procedure 1, but run directly.
Double-click on …
/Users/MyUserName/Library/Developer/XCodeProjects/DerivedData/SdrGlut-… /Build/Products/Debug/SdrGlut
Actual path may be different on other Mac OS versions and XCode installations.
Procedure 3 -- Using Make file
Open Terminal
Go to Folder: /Users /Documents/XCodeProjects/CPP_SdrGlut-1.31
Enter: make –f makefileMACINTOSH –j 8
Enter: ./sdrglut.x
Attached is an image of selected parts of the screen showing SdrGlut in operation. The IDE may be seen in the background.
This image is set to the default AM settings and a frequency of 135 Mhz. That’s because there is a 125 Mhz upconverter and the received signal is WWV 10 Mhz AM. The 10 Mhz carrier and the 100 Hz sidebands can be seen in the zoom screen. The zoom screen also shows what may be the 600 Hz tone sidebands, although the higher sideband has greater amplitude than the lower sideband, and that is an interesting characteristic of the signal’s propagation.
make -f makefileMACINTOSH -j 8
./sdrReceive.x -h
./sdrReceive.x -f 101.5 -fm
"./sdrReceive.x -h" prints out the help information.
"./sdrReceive.x -f 101.5 -fm" plays the fm station at 101.5 MHz.