[FOSS-GPS] Building FoxtrotGPS from BZR repository

Joshua Judson Rosen rozzin at geekspace.com
Mon Apr 19 18:48:02 EDT 2010


"Jay R. Ashworth" <jra at baylink.com> writes:
> "Risto H. Kurppa" <risto at kurppa.fi> wrote:
> >
> > This is what you need to run to pull the source code of foxtrotGPS
> > (see http://www.foxtrotgps.org) and build it. The instructions are
> > made for Ubuntu 10.04 but should work on any *buntu or maybe even all
> > Debian-based distros, depending on package names and versions..

Yes, I believe that that you're correct about the list of packages--
these match the packages that I've installed on the Debian
5.0 (Lenny) machines where I currently do foxtrotGPS development:

> > First let's install all the packages that are needed to work with the
> > Bazaar Version Control System we use, and compile the code with all
> > dependencies.
> >
> >     sudo apt-get install bzr build-essential autoconf automake
> > pkg-config gconf2 libcurl4-gnutls-dev libexif-dev libsqlite3-dev
> > libgconf2-dev libtool libgtk2.0-dev libxml2 libxml2-dev intltool

And thanks for pointing out the `build-essential' package--it's so
essential that I always have it installed everywhere, and I forget about it :)

You'll also likely want to install the "bzr-gtk" package (which is
Debian's/Ubuntu's prepackaged bzr plugin by the same name): if nothing
else, the "bzr vis" command that you get can be immensely helpful to
see how exactly changes were flowed into the mainline.

All of this should really be incorporated into our official documention,
which is sorely lacking at present--we really need to flesh-out our README,
document the project guidelines for things like bzr branch-development
in a HACKING file, and probably add some project-specific information
(like our dependencies) in the stock GNU INSTALL file.

> > Now you can grab a copy of our current shared codebase
> >     bzr branch http://www.foxtrotgps.org/branches/foxtrotgps-dev/
> > 
> > Enter the new foxtrotgps-dev folder
> >     cd foxtrotgps-dev
> 
> This may not be *quite* it.  On SuSE 11.0, in addition to the necessary 
> -devel RPMs, which included libexif-devel,

If you could come up with a full list of RPM package-names that we can
publish alongside the Debian package-names, that'd be appreciated :)

Also, I haven't used SuSE in something like a decade--do their
package-names match with Red Hat's (they didn't, a decade ago...)?

> I had to run intltoolize (without --force, though it complained I
> might need it), before the next step:
> 
> > Because much of the familiar GNU-style build-infrastructure is
> > autogenerated from templates, and we want to avoid maintaining many
> > autogenerated files in bzr source code repository, you'll need to
> > `bootstrap' via the autoreconf command, e.g.:
> >     autoreconf --install --symlink --verbose

I just added an "autogen.sh" script to bundle all of that stuff up.
"autogen.sh" has basically been standard in FOSS projects for some time,
now--my apologies for leaving it out.

I had never used intltool before a few days ago, but now I know :)

> > That will produce the infrastructure for the familiar GNU-style
> > build-procedure:
> >     ./configure
> >     make
> > 
> > And that's it! Now you can run FoxtrotGPS with
> >    src/foxtrotgps

Actually, there are some (*relatively* minor...) issues with running
from the source-dir like that: the program will run, but it will look
for icons and translation-data in the *installation* directory; so
doing "make install" is advisable.

Of course, because we use Autoconf, we support all of the usual
options to "./configure" so that you can set the `installation
directory' to be wherever you want if you don't want to (or ar unable
to) install into the default location of /usr/local/; e.g.:
"./configure --prefix=$HOME".


Thanks,

-rozzin.

-- 
"Don't be afraid to ask (λf.((λx.xx) (λr.f(rr))))."


More information about the FOSS-GPS mailing list