[PPL-devel] Difficulty compiling PPL

Kenneth MacKenzie kwxm at inf.ed.ac.uk
Fri Jan 16 21:01:25 CET 2009


Hello there,

      I've been attempting to compile PPL from source and I've had a
couple of minor difficulties.  

1. The makefile was unable to find the "splfr" command (sorry, I've
lost the precise error message).  This appears to be part of SICStus
Prolog.  Fortunately, this is installed on our local system and I was
able to get the compilation to proceed by including the location of
splfr in my PATH variable.  

I see that PPL can be configured to select which language interfaces
are enabled or disabled, and this can presumably be used to get round
the above problem.  However,  the error message about splfr being
missing is rather cryptic, and it might be helpful if the makefile
(or configure) checked for the existence of the appropriate commands
and issued a more understandable error message.


Update: having investigated some more, I see that our local sicstus
installation is in /opt, with the "sicstus" command linked from
/usr/bin, but "splfr" not linked.  Thus the configuration script
thinks that sicstus is available and tries to build the interface, but
the splfr command isn't in the default path and this causes
compilation to fail.  Our systems people may have installed sicstus in
a non-standard place, which may explain the confusion.


2. At a later stage, I received the following error message:

  Making all in examples
  make[4]: Entering directory `/disk/scratch/b/ppl-0.10/demos/ppl_lpsol/examples'
  make[4]: Nothing to be done for `all'.
  make[4]: Leaving directory `/disk/scratch/b/ppl-0.10/demos/ppl_lpsol/examples'
  make[4]: Entering directory `/disk/scratch/b/ppl-0.10/demos/ppl_lpsol'
  gcc -DHAVE_CONFIG_H -I. -I../..  -I../../interfaces/C   -pedantic -std=gnu89 -Werror -g -O2 -frounding-math  -W -Wall -MT ppl_lpsol.o -MD -MP -MF .deps/ppl_lpsol.Tpo -c -o ppl_lpsol.o ppl_lpsol.c
  cc1: warnings being treated as errors
  ppl_lpsol.c: In function ‘main’:
  ppl_lpsol.c:1228: warning: passing argument 1 of ‘glp_term_hook’ from incompatible pointer type
  make[4]: *** [ppl_lpsol.o] Error 1
  make[4]: Leaving directory `/disk/scratch/b/ppl-0.10/demos/ppl_lpsol'
  make[3]: *** [all-recursive] Error 1
  make[3]: Leaving directory `/disk/scratch/b/ppl-0.10/demos/ppl_lpsol'
  make[2]: *** [all-recursive] Error 1
  make[2]: Leaving directory `/disk/scratch/b/ppl-0.10/demos'
  make[1]: *** [all-recursive] Error 1
  make[1]: Leaving directory `/disk/scratch/b/ppl-0.10'
  make: *** [all] Error 2

After some Googling, I was able to fix this (I hope) by changing line
1189 of pppl_lpsol.c from

  glpk_message_interceptor(void* info, char* msg) {

to

  glpk_message_interceptor(void* info, const char* msg) {


My gcc version is 

gcc version 4.1.2 20071124 (Red Hat 4.1.2-42)


----------------


After making the two changes above,  compilation completed successfully
and all of the "make check" tests succeeded.

Best wishes,

Kenneth MacKenzie

-- 
The University of Edinburgh is a charitable body, registered in
Scotland, with registration number SC005336.





More information about the PPL-devel mailing list