Tree [8de934] LIBWPD-0-8-2 /

File Date Author Commit
build 2005-02-08 Fridrich Strba Fridrich Strba [27cc55] Removing all "using namespace std;" from the co...
docs 2005-03-11 Fridrich Strba Fridrich Strba [ade3a9] Fix some issues with text attributes and with d...
src 2005-06-22 Fridrich Strba Fridrich Strba [8de934] Do NEVER open/close section inside a table
.cvsignore 2005-01-24 Fridrich Strba Fridrich Strba [d8413d] Script for packaging Win32 (MinGW) release of l...
CHANGES 2005-06-22 Fridrich Strba Fridrich Strba [8de934] Do NEVER open/close section inside a table
COPYING 2005-12-05 Fridrich Strba Fridrich Strba [ccad16] Change in FSF address and make all files use Un...
CREDITS 2005-06-18 Fridrich Strba Fridrich Strba [b0bb1f] WP6+ Arabic Characters Mapping (Smokey Ardisson)
HACKING 2005-01-17 William Lachance William Lachance [705fd1] Add comparison functions to WPXString, pass occ...
INSTALL 2002-12-02 Marc Maurer Marc Maurer [0dfabc] Initial revision 2005-02-14 Fridrich Strba Fridrich Strba [9e6f06] Add the documentation into the build
README 2004-08-10 Fridrich Strba Fridrich Strba [182881] WP3 & WP5: page form, page margins and orientat...
TODO 2003-10-18 Marc Maurer Marc Maurer [608bb2] Update MSVC project files, and various fixes to... 2007-10-02 Fridrich Strba Fridrich Strba [4a39d6] sometimes, libtoolize is called glibtoolize 2004-09-29 Fridrich Strba Fridrich Strba [89b869] Allow to build a libgsf-independent libwpd 2005-06-15 Fridrich Strba Fridrich Strba [97ff7e] Splitting extendedCharacterToUCS2 function; add... 2005-12-05 Fridrich Strba Fridrich Strba [ccad16] Change in FSF address and make all files use Un... 2005-01-28 William Lachance William Lachance [b60086] Hide STL from property list interfaces, split u... 2005-01-28 William Lachance William Lachance [b60086] Hide STL from property list interfaces, split u... 2005-01-28 Fridrich Strba Fridrich Strba [45033e] Modifying remaining build files to correspond t... 2005-04-14 Fridrich Strba Fridrich Strba [88ad79] Add copyright notice to GSFStream.*; fix spec f...

Read Me



Installation on Unix/Linux should be simple. Simply execute the following 
sequence of commands:

./configure ; make ; su -c 'make install'

Note that this assumes that you have development versions of glib (>=
2.0.0) and libgsf (>= 1.6.0).


glib is available at
libgsf is available at

Extensive installation instructions can be found in the INSTALL file.

Windows - Microsoft(tm) Visual Studio/C++

A workspace for MSVC6 can be found in the ./build/win32/ directory.
This workspace contains a projects file to compile a release version or 
a debug version of libwpd. 

NOTE: Using the MSVC build system will result in a static library only. 
No dll can be created yet using this build system. If you want to create 
a dll, please use the MingW build system (see below for details).

Windows - MinGW

First of all, in order to use libwpd in your application, you do not need
to build it yourself. If you have access to a binary distribution, you
are encouraged to use it. If for whatever reason you still want to build
libwpd using MinGW, read following instructions.

* Build environment and dependencies

In order to build libwpd, you have to have installed MinGW distribution from Because the build system of libwpd uses autotools, you
must install also the MSys packages. It is advisable to install all recent
packages into a path that does not contain spaces. Besides the MinGW
distribution, you have to install the _runtime_ and _development_ packages of 
_ALL_ dependencies, namely: GNU libiconv, GNU gettext, zlib, glib2, pkg-config,
libxml2 and libgsf. All these packages are linked to from Tor Lillqvist's
"GTK+ and GIMP for Windows" web-site. Go directly to the download section

You will have to create libtool import libraries for every DLL that you have to
link with. To do this, generate from the DLL a *.def file using "pexports.exe"
tool -- included in one of the packages of MinGW distribution -- and create
a libtool import library using the DLL, the *.def file and "dlltool.exe".
Put the result in the ../lib/ directory relative to the DLL file.
For more details, check the documentation part of the MinGW web-site.
Typically, in order to make libtool's work easier, call the import libraries
"lib"$(dllname)".dll.a", unless the library has already the "lib" in the name.
Example: iconv.dll -> libiconv.dll.a; intl.dll -> libintl.dll.a;
BUT: libxml2.dll -> libxml2.dll.a

* Build procedure

1. Unpack the source code by running:

  gunzip -dc libwpd-{version}.tar.gz | tar xpf

You can also use WinZip or any other GUI compression tool.

2. Next, run:

  export ACLOCAL_FLAGS='-I <pkg-config installation prefix>/share/aclocal'; \

Some versions of libtool have bug that prevents MinGW from creating shared
libraries. The script "libtoolizes" the package using the libtool
included with MinGW distribution. Like that you are sure that your libtool is
able to create DLLs.
The ACLOCAL_FLAGS variable is there in order to allow the auto* scripts to find
the pkg.m4 macro that is part of the pkg-config distribution. If this macro is
not found, the generated configure script will be ending with an error.

3. Time to configure libwpd; run:

  ./configure [--prefix=<target>] [--enable-static] [--disable-shared]

By default, the configure script uses as prefix "/usr/local" and configures to
create only shared libraries. Myself, I build using following options:
"./configure --prefix=/target --enable-static --enable-shared"

4. In the "libtool" created by the configure script, replace any occurence of

  deplibs_check_method="file_magic ^x86 archive import|^x86 DLL"



For some reasons, libtool is not able to distinguish the libtool import
libraries libXXX.dll.a from static libraries libXXX.a.  This ugly hack makes it
link with the first libXXX.dll.a that it meets.

5. Nearly done. Make sure you have a clean build by running:
  make clean all

6. And last but not least, compile and install libwpd by running:

  make install [-i]

If you configure using "--enable-static --disable-shared" (pure static library
creation), the libtool import libraries are not created. Make will try to install
them and will stop with error. The "-i" option makes it to report the error, but
not to stop. Like that the installation will succeed.

That's all folks! For more information, ask questions at the mailing list Remember that Uncle Google can also be of big
help especially when the problem is not with libwpd, but with one of its 


Compilation on Mac OSX requires following fix in order not to have errors concerning
unresolved symbols at runtime

1.  perl -pi -e 's,need_relink=yes,need_relink=no,g'


    perl -pi -e 's,\$CC -r -keep_private_externs -nostdlib -o \$\{lib\}-master.o 
    \$libobjs \&\& \$CC,\$nonopt -r -keep_private_externs -nostdlib -o 
    \$\{lib\}-master.o \$libobjs \&\& \$nonopt,g' configure
3.  ./configure --with-pic [all other options]

     make ; su; make install
The above-mentioned fix is from the file of Justin F. Hallet who
maintains the libwpd-1* packages for Fink project (