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 |