[Date Prev][Date Next][Thread Prev][Thread Next][Thread Index]
[XaraXtreme-dev] Build system changes
- From: Alex Bligh <alex@xxxxxxxxxxx>
- Date: Tue, 01 Aug 2006 00:28:34 +0100
- Subject: [XaraXtreme-dev] Build system changes
I have broken^Wfixed up the build system.
New features:
* It will build static executables on any machines, not just the build
server.
* The hard coded paths to libraries etc. have been removed
* Duplication of command line options to compile and link have been
removed
* It now builds expandxar, and svgfilter as static binaries
if you enable --enable-static-exec
* xarlib is built without the "assistance" (sic) of libtool.
We always want it to be static right now, and libtool did a
fine job of getting in the way. If we ever develop a masochistic
streak and want it dynamic, then reintroducing libtool will be
an ideal way to expend some of the masochism.
Tested:
* Static builds, Shared builds, including xarlib and SVGFilter
* Build SVGFilter separately (i.e. the normal way)
* Installing both varieties of Xara Lib
* Out-of-tree builds
Usage Notes:
* Note I have ONLY tested building svgfilter as a static exec from
within the main build (not building it separately), though that
should work too PROVIDED your xarlib was built static. There is
really no good reason to do this, though, as far as I can see.
* Your debug setting for building the filter must match the debug
setting you used to build xarlib.
* I have not tested package/port stuff. If people are compiling
stuff using "CXXFLAGS=... ; make", it may not do what you think
it should (it will pass CXXFLAGS to /all/ compiles, including
XarLib, and will not remove the stuff we add for individual
compiles). As far as I know, no-one uses this.
Notes for people tempted to futz with the makefile:
* Do NOT reintroduce the use of CXXFLAGS etc. at build time. This
is bad because it gets passed to all invocations of g++ including
linking. The problem here is sometimes we want to link with
some libraries, and sometimes we don't. User XaraLX_CXXFLAGS
etc.
* Please be careful when sticking extra things on compile and link
lines. Do not duplicate stuff.
* Note that the linker is (for some reason) far more sensitive
to duplications and misorderings when doing static builds
than dynamic builds. So if you are making significant changes
to link lines etc., please check both static and dynamic
builds.
It would be really useful if someone could check the buildserver
is producing sensible output tomorrow. By sensible, I mean with nothing
less static linked than it was before. Building here, it looks pretty
much the same from "ldd -v".
Alex