Well, the good news is that I figured out how to hack, and when I say hack I mean Amazon deforestation levels of hack, around the JNI issue. The bad news is that there's another required library that will need to be built. Note:
You may want to delete and re-extract the shogun source directory before doing the following.
Anyway, this is the hack to get around the JNI issue:
1. In windows explorer, go to the directory you installed cygwin to and create a new folder named opt
2. Copy your C:\Program Files\Java\jdk1.8.0_25
folder into the newly created opt
folder, and rename it to jdk
. Your directory structure will then be <cygwindir>/opt/jdk
3. Open the FindJava.cmake
file located in the <shogun source dir>/cmake
directory in you favorite text editor.
4. Locate the section that has the header comment # environment can always override hard guesses
. You'll see a list of paths below it surrounded by a set(...)
statement. Add the path, /opt/jdk/bin
to the bottom of the list before the closing parentheses, then save and close the file.
5. Get ready for the real fun to begin. Open the FindJNI.cmake
file located in the <cygwindir>/usr/share/cmake-126.96.36.199/Modules
directory in you favorite text editor. (The fact that we're editing system files in this manner should be a red flag that there may be a more sane way to approach this, but it's Friday night, so yeah...)
6. Locate the line that says if(APPLE)
and insert the following lines directly above it:
7. Close and save the file then pray that the elder gods' slumber was deep enough for them not to notice this transgression.
8. Go to your source directory in cygwin and issue the cmake -DJavaModular=ON
If all went well, you'll be informed that JBlas is a required dependency. (The rabbit hole gets deeper.) Give the above a try and let me know where you end up. If you get to the same point that I did, try building JBlas. If that one gives you trouble, we'll break out the bloody axes again and hack it till it works.
In all seriousness, you may have an easier time doing this on an actual Linux distro running in a virtual machine or off of a live cd/usb. There would be a lot less hacking of core files. Either way, I hope the above helps you around the current situation.