AbiWord Build Instructions

Unix:

Prerequisites:

AbiWord is a C++ application. Its build system is based on the GNU automake tool. To compile and build AbiWord, you will need:

A reasonably working C and C++ compiler (GNU's gcc and g++ come to mind, though others should work as well)

A tool equivalent to 'make' such as GNU's gmake

A Bourne compatible shell, such as sh, bash, zsh, ksh, ...

AbiWord version 2.0 is a GTK+2.0 based application, which means that AbiWord on Unix does its drawing using the excellent GTK+ and GDK graphical tools. This means that you will need GTK+2.0 and its prerequisites installed, and their ancillary development packages. A list of the required packages and the packages themselves can be found at http://www.gtk.org. Alternately, your OS provider might have pre-built packages for you, or they might be available from some trusted third party (collectively referred to as a "distribution") . We always recommend going with the tools your distribution provides, but you are in no means required to do so.

AbiWord also requires the Fribidi library version 0.10.4 or higher, which is available at http://fribidi.sourceforge.net. See also: "configure --with-fribidi"

AbiWord also requires zlib. Zlib usually installed on every machine under the sun. But, if for some reason you don't have it or you just want to get it anyway, http://www.gzip.org/zlib/ is the place for you. See also: "configure --with-zlib"

AbiWord also requires libpng. Like zlib, libpng is installed on most machines already. However, you may get the latest and greatest libpng here: http://www.libpng.org/pub/png/ See also: "configure --with-libpng"

AbiWord also requires a working iconv implementation. No, that thing that ships on your Solaris 8, HP/UX, or AIX box isn't considered "working." AbiWord requires GNU libiconv >= 1.8 to be installed. Most every Linux and BSD box should be in the clear here, as the standard C library ships with an equivalent version of this package. If you're not on Linux or BSD, get libiconv here: http://www.gnu.org/software/libiconv/ See also: "configure --with-libiconv"

AbiWord can optionally take advantage of the Aspell/Pspell spell checkers. Get them at http://aspell.net if you're so inclined. A lot of newer distributions ship aspell/pspell. Don't worry if you don't get this, AbiWord will fall back to using its builtin ispell spell checker. Dictionaries for our ispell checker can be found at http://www.abisource.com/~fjf See also: "configure --with-pspell"

AbiWord can also take advantage of the Xft2/FontConfig X11 font rendering extensions if it is installed. Your copy of AbiWord will look so pretty that you'll be the envy of all of your friends, peers, and coworkers. Please Please Please go get this. http://www.fontconfig.org See also: "configure --enable-xft"

AbiWord can be scripted (controlled and added onto via extensions) via a PERL interface if you so wish. PERL is available from http://www.perl.org/ See also: "configure --enable-scripting"

AbiWord needs an XML parser in order to work. Don't be too worried about what that means - your system probably already has a working one installed. If you're in doubt, you can go grab expat (http://expat.sourceforge.net) or (preferrably) libxml2 (http://xmlsoft.org/) or 'cvs co expat'. See also: "configure --with-expat" and "configure --with-libxml2"

AbiWord needs a little library called POPT to parse through command line arguments. POPT is probably installed on your box, but if not, you can get it here (http://developer.gnome.org/arch/misc/popt.html) or 'cvs co popt'. See also: "configure --with-popt"

AbiWord can make use of CURL - a neat little file downloading tool. It can automatically install things like dictionaries using CURL if you want it to. If you're using pspell, you don't want CURL. If not, you may want to grab it: http://curl.haxx.se/ See also: "configure --with-curl"

Getting the source:

Well, if you're here, you've probably downloaded the latest and greatest AbiWord sources. If not, you can always get the latest AbiWord source and binary packages from http://www.sourceforge.net/projects/AbiWord

If you're more of the CVS type, you can find CVS instructions for checking out AbiWord here: http://www.abisource.com/developers/download.phtml

If you have the big-bad source tarball, you can skip to the next section. If you're getting the source from CVS and are on Unix, here's what you need to cvs checkout:

abi

abidistfiles

wv

abiword-plugins

and if you don't have FontConfig/Xft2 installed, you'll need

unixfonts

Configuring what you want built:

Because AbiWord uses the automake/autoconf build tools, you might already be familiar with this step and some of its more-common behaviors, quirks, and options.

If you enter the 'abi' directory, you'll find a little (big) shell script there named "configure." This program will help you determine what features get built into AbiWord. If you're in a rush, uninterested, or clueless, you might just try "./configure && make && make install" which is also known as the "standard unix build practice." If you do this, more power to you. If you're interested in what you can play with, however, read on.

Common build options:

--prefix=/some/path will let you put AbiWord in a particular directory. /usr, /usr/local, and /oss are common values

--disable-shared will disable building a dynamically loaded version of AbiWord. This means that AbiWord won't be soft-linked to libgtk2.so, libglib2.so, ...

--enable-static will build a statically linked version of AbiWord. This means that your resulting binary will be huge, and have all of its dependencies (gtk2, glib) included in it

--enable-xft will make AbiWord use way pretty fonts, and make your eyes bleed less. See the above notes about Xft2/FontConfig

--enable-debug will include useful messages and special symbols if you're a developer. If you're an ordinary user, steer clear of this option. It won't suit your palette

--enable-scripting will enable you to script AbiWord using PERL. This is a cool feature if you have PERL installed, so I recommend trying it out.

--with-XXX where "XXX" is the name of some resource/library. Options for these include "yes", "no", and a path to XXX's installation directory. So one could do:

./configure --with-pspell=no [don't use pspell]

./configure --with-pspell=yes [use pspell, let configure try to find where it is installed]

./configure --with-pspell=/path/to/pspell [use pspell, but use the pspell found under that path]

As always, ./configure --help will help shed some more light on these, and show you some more options that I'm intentionally excluding here. In most cases, configure will do what you want. It will find all of the dependencies and create a nice build environment for the AbiWord project. Running configure without any arguments is probably a good thing to do on most Linux and BSD systems. Solaris, HP/UX, and AIX people will probably have to pass a few of the "--with" options to configure in order to get a working AbiWord.

After running configure (assuming that configure worked and didn't spout any nasty messages at you), type 'make' and go grab a cup of coffee. AbiWord can build in about 8 minutes on a P4 1800. Your build times might vary depending on your configuration options, how good your machine is, what load your machine is under, ...

When the 'make' part of this process is finished, you will want to install AbiWord. You can achieve this through typing 'make install' - this part might require you to be superuser (root), depending on your permissions. You can do this through typing 'su' or 'sudo'. Please consult your manual pages or local systems administrator if you have questions.