|
From: Fridrich S. <fri...@bl...> - 2004-01-27 13:05:59
|
Hello, everybody
My name is Fridrich Strba, Slovak by nationality, Ugandan by marriage
:-) , resident (for the while) in Geneva, Switzerland. I follow the work
of LIBWPD and occassionally contribute with some small patches.
Marc Maurer, one of the authors of libwpd approached me and asked me
whether I could modify the build system of the libwpG so that it builds
properly windows binaries with MinGW. I liked basically the system that
there was in place, nevertheless, given the structure of the directories
of libwpG, it was much easier for me to clone simply the libwpD build
system.
Attached is the patch. The changes are basically following:
1) I modified the spec file so that we create three packages: libwpg
(containing the runtime, README,...), libwpg-devel (containing the
headers and the pkg-config *.pc file) and libwpg-tools (containing for
the while the wpg2raw). I added requirements for dependency packages
"Requires libgsf >= 1.8.0" and "BuildRequires libgsf-devel >= 1.8.0".
2) The header files install in %{includedir}/libwpg-1/libwpg/ as this is
the habit with glib, pango, libgsf, libwpd, etc. I have no religion
about it, but it is good to do more or less what the others do if it is
good :-)
3) I removed the ac-helpers directory since the pkg.m4 is part of the
pkg-config distribution. Where there is pkg-config, there is pkg.m4 (Ubi
pkg-config, ibi pkg.m4, for those who like latin :-) Moreover, relying
on other people's pkg.m4 prevents us from having to maintain it and
check whether it works with any new version of autotools.
4) I modified the versioning system so that following applies: Until
1.0.0, we can break backward compatibility between two MINORs, inside
one MINOR (it means between two MICROs), we can add interfaces, rewrite
internally everything, but we should neither remove any interface nor
modify its behaviour. Starting with 1.0.0, assuming that the API will be
mature by then, the backward compatibility can be broken only between
two MAJORs, adding interfaces between two MINORs and, _NO_ API change
between two MICROs. If this is respected, one does not need to bother
with "binary ages" or "interface ages", the libtool versioning will be
always valid (the CURRENT will never decrese, ...)
5) I bumped the version 0.1.0. We are not Micro$oft to call our first
flawed public release 1.0 :-) But, it is not for me to decide. Take it
as a proposal.
6) I added a MinGW build system. It builds a nice LIBWPG-1.DLL with its
libtool import libraries and all other things that one needs. You can
check the result on http://hei.unige.ch/~strba5/libwpg/libwpg.zip
7) I added windows versioning information -- right-click -> Properties
-> Version applet -- to the binaries (if they are built on native
Win32). Like that, if our library is once used by win32 builders, their
installer program can access the version info the way they are used to.
Summary:
Removed: ac-helpers/, configure.ac, src/lib/libwpg-1.pc.in
Added: build/, build/win32/ and its content, a .cvsignore in each
directory that needs it, libwpg-1.pc.in and configure.in in the <topsrcdir>.
The patch is made with -N, so it should be added and removed automatically.
Modified: quite a number of files :-)
If you are O.K. with this, I will clone the libwpD's MSVC static build.
Cheers
Fridrich
|