Hi Isobel, Could you make a branch instead? It's prohibitively painful to use the diff-files you posted on Windows.
Thanks, Johan
On 17-3-2014 13:24, Isobel Knowles wrote:
Dear Chaps,
After much testing with different configurations on a couple of platforms, I think my Makefile is ready for you to try.
As I said earlier, I have completely failed to get launchpad to work on my browser so I have worked on the only released version I could get my hands on - 0.48.4. Should you feel it is worthwhile continuing with this approach I am happy to port it to 0.48.5 and beyond.
The purpose of my changes is to simplify the configuration and build process, to improve automation, and to do so in an easily-maintainable fashion. I recognise that the autotools and automake in particular, although superficially easy, perform a lot of heavy scripting to produce Makefiles which are far too complicated for most users to read. This in turn makes many developers wary of making anything but the simplest of changes. As a first step toward breaking down this barrier I have removed the need for automake and placed the make rules in plain sight.
Although I am still using autoconf to configure the code, the configuration is now cleanly separated from the build itself, and is now simple enough that it can be done by hand without autoconf at all.
The changes amount to this:
- A bit of tweaking of the configure script to remove automake.
- The removal of the myriad of automake files.
- The creation of a Makefile which does pretty much everything automake did, but without the mystery.
- Adding some convenient structures to aid debugging.
- A small number of code fixes to deal with glaring bugs made evident by the above & to clean up the version number storage. (These have probably been fixed already.)
I have tried to contain my changes to just autoconf/make-related matters so as to reduce the impact on those later versions of Inkscape which are currently unavailable to me. To keep my changes small I placed all the make stuff in one file. I appreciate this might rankle, but I felt it was best to concentrate on the overall problem for now and sort out the detail later. Please bear this in mind when you review the changes.
I have tested the software on Linux with different libraries and compilers. One of the systems was a bang up-to-date Debian Wheezy. Therefore I suggest a developer with a Linux system be the first person to work with me. I have also tested (insofar as I can) a cross compilation with a Linux build machine. I feel confident this should work too, but there are bound to be a variety of problems which will come out of the woodwork. Builds on Windows/Mac should work, but are untested. In the process I couldn't help but notice the cxxtests directory appears to have bitrotted. Is this true of later versions?
I have not addressed binary packaging yet because the documents I have seen seem inexplicably complex to me. If someone could tell me how it is actually done on the various platforms I can automate them as well. Source packaging is done.
I have documented my changes to the build process in INSTALL and in the Makefile itself but am happy to improve them at your suggestion.
This is a work-in-progress. Assuming broad agreement, I would like to:
- port it to an up-to-date version,
- iron-out the platform issues,
- address packaging and distribution,
- fix and automate testing,
- address linking, libraries and source file grouping, and
- attack the many compilation warnings.
in the next few weeks.
Without further ado, please find two attachments to this email. I have provided it this way to keep it small. You should:
Extract 0.48.4 into a directory and change into it.
Extract the two attachments to this email into that directory.
rm `cat delete-list`
patch -p1 -E -i diffs
rm delete-list diffs
Read INSTALL and the other files it points to.
autoconf configure.ac > configure
Configure, make, install and prepare tar files like so:
sh ./configure make -j 6 make install DESTDIR=foo make dist
adjusting to your taste. Also try sh ./configure --help to see the new options.
Regards,
Is.