Compiling this project is painful. It's not an excruciating pain, but it's painful nonetheless. First of all, you have to edit the GNU Makefile called rules.mk, which according to INSTALL tells you what you have to edit and how. Which would be fine, except that this is a total lie. The standard place to look for Java is not "/opt/java" for example. Why do we do PLATFORM_INCLUDE=GENUNIX? What does this mean? If I use Ubuntu, or RHEL, or worse, Windows, what is it supposed to say then? You also need to manually enter the SWI-Prolog version. But SWI-Prolog supports swipl --version, so why not shell out and find out for yourself? Why do I, the user have to do that? The only thing I should have to do is type "make", and the rest of this stuff should be taken care of by itself. Yeah, you need to get hold of the JNI header file. I understand that this is something I need to tell the makefile. But seriously? The rest of this is complete insanity. Like asking about libpl.a, which doesn't exist anymore, since SWI-Prolog now calls it "libswipl.a", which also took some googling to find out. And the variable PLATFORM_LIB? That's not how it works if you install SWI Prolog from a package manager. And that you're expecting SWI-Prolog version 3.something.something when we're on > 7.0.0, scares me. At least include some helpful error messages in the makefile. Having to google things just to come to a crashing halt, when you realise that no, libpl.a doesn't exist, and you have no idea how to fix this, is not a friendly thing to do. Furthermore when the promise of the makefile telling you what you need to type in is a lie, it hurts my feelings.