Open tibbon opened 8 years ago
To be noted, I barely know anything about Java, its environment, etc...
Hi I'm afraid I'm not actively supporting the project anymore. However, if possible, I would suggest running this under a 32 bit java if possible. Otherwise I can guess something might be wrong with the compiler (not compiling for 64 bit)
Java does not care about the platform. Compiler tries to fish out the libraries, which in this case are built in x86, while your system (as well as mine was) is x64. Just build .dll's to x64 and java will work.
Build the source on 64bit OSX 10.10
-download/clone the source -cd into java gui directory -find out where java jdk is: $ /usr/libexec/java_home -v 1.7 -copy Home/include/darwin/jni_md.h to /include/jni_md.h like so: $ cp /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/include/darwin/jni_md.h /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/include/jni_md.h -comment out line 93 in the makefile (UHD plugin) -run the make command $ make all JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home ARCHNAME=X64
The GUI app now runs, but have trouble to get the ExtIO plugin/dll for my RTLSDR dongle to work. I think the problem is the 32bit-ness of these ExtIO's? See: http://www.hdsdr.de/hardware.html
How to build these in 64bit?
On line 30 in JavaGUI/jni/makefile
"$(JAVA_HOME)/include/darwin"
needs to be added
I'm having trouble figuring out which line 93 to comment out in the current release. What precisely am I commenting out (in case the lines move)
Getting this error now
~/C/TempestSDR ❯❯❯ make all JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_181.jdk/Contents/Home ARCHNAME=X64 master
mkdir -p bin/MAC/X64
mkdir -p obj
cc -Wall -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers -O3 -m64 -c src/TSDRPlugin_RawFile.c -o obj/TSDRPlugin_RawFile.o
mkdir -p bin/MAC/X64
mkdir -p obj
cc -Wall -I/System/Library/Frameworks/JavaVM.framework/Versions/Current/Headers -O3 -m64 -c src/timer.c -o obj/timer.o
cc -Wall -shared -m64 -o bin/MAC/X64/TSDRPlugin_RawFile.so obj/TSDRPlugin_RawFile.o obj/timer.o
make[1]: Nothing to be done for `all'.
mkdir -p lib/MAC/X64
/Library/Developer/CommandLineTools/usr/bin/make -C ../TSDRPlugin_RawFile/ all BUILD_TYPE=; cp -f ../TSDRPlugin_RawFile//bin/MAC/X64/*.so lib/MAC/X64/; /Library/Developer/CommandLineTools/usr/bin/make -C ../TSDRPlugin_UHD/ all BUILD_TYPE=; cp -f ../TSDRPlugin_UHD//bin/MAC/X64/*.so lib/MAC/X64/;
cc -Wall -shared -m64 -o bin/MAC/X64/TSDRPlugin_RawFile.so obj/TSDRPlugin_RawFile.o obj/timer.o
mkdir -p bin/MAC/X64
mkdir -p obj
g++ -fPIC -m64 -c src/TSDRPlugin_UHD.cpp -o obj/TSDRPlugin_UHD.o
src/TSDRPlugin_UHD.cpp:335:23: error: no member named 'RECV_MODE_ONE_PACKET' in 'uhd::device'
uhd::device::RECV_MODE_ONE_PACKET
~~~~~~~~~~~~~^
1 error generated.
make[2]: *** [obj/TSDRPlugin_UHD.o] Error 1
cp: ../TSDRPlugin_UHD//bin/MAC/X64/*.so: No such file or directory
make[1]: *** [plugins] Error 1
make: *** [all] Error 2
Gday, after a hefty look into this the core issue seems to arise from using SdrPlay
, which you can 'compile' it without by commenting out the lines compiling it in both JavaGUI's makefile and the root folder makefile, which results in a jar but still has no mac support for M1. If we want SdrPlay to work we need the new API from SdrPlay (3.x).
Removed the line 93 in the Makefile, ran
make all
with no errors. Attempted to run the JTempestSDR.jar file, after installing new JDK... and getting the errorThe Library has not been compiled for your OS/Architecture yet (MAC/X64)
Output of running
make all