Bill Allombert on Mon, 19 Sep 2005 18:32:51 +0200


[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]

Re: pari/gp for mac os X 10.4


On Thu, Aug 25, 2005 at 10:42:54PM +0200, Bill Allombert wrote:
> On Wed, Aug 24, 2005 at 07:40:05PM -0400, Joshua Friedman wrote:
> > attached is my failed build output for ./Configure and make install
> > (outputmake.log).
> 
> ...Found libreadline in /usr/lib
> ...Found readline header in /usr/include/readline
> ...Found history header in /usr/include/readline
> ...Found libncurses in /usr/lib
> ...Library ncurses needed by readline
> Using GNU readline, version EditLine wrapper
> ...Library readline does not have rl_attempted_completion_over
> ...Library readline does not have rl_save_prompt
> 
> This is the problem: you have the EditLine library installed instead
> of GNU readline, and somehow this is not compatible with PARI/GP.
> 
> To fix that, you can use:
> ./Configure --without-readline
> Alternatively if GNU readline is available but in a different location, 
> you can try the option --with-readline-include=... 
> 
> I would like to fix PARI Configure to reject EditLine, but I do not have
> access to a Mac OS X machine and I am not sure what is the correct way 
> to do it. Any help is very much welcome.

OK, I found libeditline for Linux, but not the readline wrapper.
Please try the patch below that should reject the readline wrapper.

Implementing support for libeditline itself would be fairly easy,
it only define the two functions
char     *readline();
void     add_history();
but is a different story from supporting the readline wrapper, and is left
as an exercise to the reader.

Cheers,
Bill.

Index: pari/config/get_readline
===================================================================
--- pari.orig/config/get_readline	2005-09-19 18:00:00.000000000 +0200
+++ pari/config/get_readline	2005-09-19 18:17:43.000000000 +0200
@@ -178,44 +178,50 @@
       readline_version="1.0=Header/$readline_version=Lib"
       rl_fake_library_version=yes
     fi
-    rm -f $exe $exe$exe_suff
-    echo "Using GNU readline, version $readline_version"
-  fi
-  if test -z "$rl_appendchar"; then
-    echo ..."Library readline does not have completion_append_char"
-  fi
-  if test -z "$rl_genericbind"; then
-    echo ..."Library readline does not have rl_generic_bind"
-  fi
-  if test -z "$rl_completion_query_items"; then
-    echo ..."Library readline does not have rl_completion_query_items"
-  fi
-  if test -z "$rl_bind_key_in_map"; then
-    echo ..."Library readline does not have rl_bind_key_in_map"
-  fi
-  if test -z "$rl_attempted_completion_over"; then
-    echo ..."Library readline does not have rl_attempted_completion_over"
+    case "$readline_version" in
+    *Editline*) readline=;
+      echo "### Editline wrapper detected, building without readline support";;
+    *) rm -f $exe $exe$exe_suff;
+      echo "Using GNU readline, version $readline_version";;
+    esac
   fi
-  if test -z "$rl_save_prompt"; then
-    echo ..."Library readline does not have rl_save_prompt"
-    if test -n "$_rl_save_prompt"; then
-      echo ......"but it has _rl_save_prompt"
-      if test -n "$rl_fake_save_prompt"; then
-          echo ........."but due to library mismatch we fake rl_save_prompt"
-          rl_save_prompt=yes
+  if test -n "$readline"; then 
+    if test -z "$rl_appendchar"; then
+      echo ..."Library readline does not have completion_append_char"
+    fi
+    if test -z "$rl_genericbind"; then
+      echo ..."Library readline does not have rl_generic_bind"
+    fi
+    if test -z "$rl_completion_query_items"; then
+      echo ..."Library readline does not have rl_completion_query_items"
+    fi
+    if test -z "$rl_bind_key_in_map"; then
+      echo ..."Library readline does not have rl_bind_key_in_map"
+    fi
+    if test -z "$rl_attempted_completion_over"; then
+      echo ..."Library readline does not have rl_attempted_completion_over"
+    fi
+    if test -z "$rl_save_prompt"; then
+      echo ..."Library readline does not have rl_save_prompt"
+      if test -n "$_rl_save_prompt"; then
+        echo ......"but it has _rl_save_prompt"
+        if test -n "$rl_fake_save_prompt"; then
+            echo ........."but due to library mismatch we fake rl_save_prompt"
+            rl_save_prompt=yes
+        fi
       fi
     fi
-  fi
 
-  if test "$fastread" != yes; then
-    cat << EOM
+    if test "$fastread" != yes; then
+      cat << EOM
 ==========================================================================
 EOM
-    echo $n "Do you want to use GNU readline library within GP ? $c"
-    rep='y n'; dflt=y; . ./myread
-    case $ans in
-      n) readline=;;
-    esac
+      echo $n "Do you want to use GNU readline library within GP ? $c"
+      rep='y n'; dflt=y; . ./myread
+      case $ans in
+        n) readline=;;
+      esac
+    fi
   fi
 fi
 if test -n "$readline"; then readline_enabledp="t"; fi