Small. Fast. Reliable.
Choose any three.
The readline library is a library that command-line applications use to allow users to edit their commands as they type them. More information about readline is available at it's web site The GNU Readline Library.

- Scott

The sqlite command-line utility (sensibly) links against readline if it is present. Readline is licensed under the GPL.

Folk who wish to distribute their version of the sqlite utility under a license other than GPL may want to consider using the BSD libedit and read the thread around Jim Blandy's comments where the guile (lisp library) folk deal with a similar issue.

--Derek

Note that sqlite won't find readline if it's installed in an "unusual" location. (And setting LDFLAGS, CPPFLAGS doesn't help either--see #151.)

If you need to link against such a readline, configure as normal (it will complain about readline not being able to be found), then edit the resultant Makefile like so:

# Compiler options needed for programs that use the readline() library.
#
READLINE_FLAGS = -DHAVE_READLINE=1 -I/home/mjs/local/include

# The library that programs using readline() must link against.
#
LIBREADLINE = -L/home/mjs/local-linux/lib -lreadline -lncurses
--Michael

Don't download libedit from sourceforge that version is nearly four years old. I changed the link above to point to ftp://ftp.astron.com/pub/libedit/ (there is no current web site and it is virtually impossible to find)

Libedit and readline clash if you try to install them both on the same system, so It might take a little effort getting it compiled. --Mike

SQLite with readline already enabled

SQLite is available from Fink for OSX with readline already installed. Presently version 2.8.5.

SQLite and SQLite3 are available from Darwinports... both support a Readline variant.

readline-enabled SQLite on Mac OS X

To include readline support on Mac OS X, do the following --

In latest version of readline source (4.3 when I did this), edit support/shobj-conf: Inside the darwin*|macosx* configuration... Replace: SHLIB_LIBS='-lSystem' With: SHLIB_LIBS='-lSystem -lcurses -lgcc'

  > ./configure
  > make
  > sudo make install

readline headers will get installed most likely under /usr/local/include

Then, in the SQLite source

  > ./configure

Edit the Makefile:

  # Compiler options needed for programs that use the readline() library.
  #
  READLINE_FLAGS = -DHAVE_READLINE=1 -I/usr/local/include/readline

  # The library that programs using readline() must link against.
  #
  LIBREADLINE = -lreadline

Alternatively, to use fink's readline

  # Compiler options needed for programs that use the readline() library.
  #
  READLINE_FLAGS = -DHAVE_READLINE=1 -I/sw/include

  # The library that programs using readline() must link against.
  #
  LIBREADLINE = -L/sw/lib -lreadline

Then...

  > make
  > sudo make install

You now have a happy, readline capable SQLite. (thanks to eno and instructions on the web)

-- pkishor

Readline 5.0

Readline 5.0 has been released and appearently, it supports Mac OS X 10.3 out of the tarball. Just unpack, .configure, and make.

-- Jeff Flowers

Readline 5.0, Mac OS X 10.4

As of 31-May-05, Readline 5.0 has a makefile bug that prevents compilation on Mac OSX 10.4. To fix, download readline from http://warp.byu.edu/Software, unpack, and edit "support/shobj-conf" look for something like "darwin7" and change it to "darwin8", then ./configure; make; sudo make install. Then compile sqlite normally. --nickg