The Readline package is a set of libraries that offers command-line editing and history capabilities.
First install some patches to fix various bugs that have been addressed upstream:
patch -Np1 -i ../readline-6.3-upstream_fixes-3.patch
Reinstalling Readline will cause the old libraries to be moved to <libraryname>.old. While this is normally not a problem, in some cases it can trigger a linking bug in ldconfig. This can be avoided by issuing the following two seds:
sed -i '/MV.*old/d' Makefile.in sed -i '/{OLDSUFF}/c:' support/shlib-install
Prepare Readline for 32-bit compilation:
./configure --prefix=/usr \ --docdir=/usr/share/doc/readline-6.3 \ --libdir=/usr/lib32 \ CC="gcc -m32"
Compile the package:
make SHLIB_LIBS=-lncurses
The meaning of the make option:
SHLIB_LIBS=-lncurses
This option forces Readline to link against the libncurses
(really, libncursesw
) library.
This package does not come with a test suite.
Install the package:
make install
Now move the dynamic libraries to a more appropriate location and fix up some symbolic links:
mv -v /usr/lib32/lib{readline,history}.so.* /lib32 ln -sfv ../../lib32/$(readlink /usr/lib32/libreadline.so) /usr/lib32/libreadline.so ln -sfv ../../lib32/$(readlink /usr/lib32/libhistory.so ) /usr/lib32/libhistory.so
Clean up the build directory before moving on to the next platform:
make clean
Prepare Readline for x32 ABI compilation:
./configure --prefix=/usr \ --docdir=/usr/share/doc/readline-6.3 \ --libdir=/usr/libx32 \ CC="gcc -mx32"
Compile the package:
make SHLIB_LIBS=-lncurses
The meaning of the make option:
SHLIB_LIBS=-lncurses
This option forces Readline to link against the libncurses
(really, libncursesw
) library.
This package does not come with a test suite.
Install the package:
make install
Now move the dynamic libraries to a more appropriate location and fix up some symbolic links:
mv -v /usr/libx32/lib{readline,history}.so.* /libx32 ln -sfv ../../libx32/$(readlink /usr/libx32/libreadline.so) /usr/libx32/libreadline.so ln -sfv ../../libx32/$(readlink /usr/libx32/libhistory.so ) /usr/libx32/libhistory.so
Clean up the build directory before moving on to the next platform:
make clean
Prepare Readline for 64-bit compilation:
./configure --prefix=/usr --docdir=/usr/share/doc/readline-6.3
Compile the package:
make SHLIB_LIBS=-lncurses
The meaning of the make option:
SHLIB_LIBS=-lncurses
This option forces Readline to link against the libncurses
(really, libncursesw
) library.
This package does not come with a test suite.
Install the package:
make SHLIB_LIBS=-lncurses install
Now move the dynamic libraries to a more appropriate location and fix up some symbolic links:
mv -v /usr/lib/lib{readline,history}.so.* /lib ln -sfv ../../lib/$(readlink /usr/lib/libreadline.so) /usr/lib/libreadline.so ln -sfv ../../lib/$(readlink /usr/lib/libhistory.so ) /usr/lib/libhistory.so
If desired, install the documentation:
install -v -m644 doc/*.{ps,pdf,html,dvi} /usr/share/doc/readline-6.3