[mapguide-internals] Re: OEM libraries was: 2.1.0 Final Windows
Installer
Gabriele Monfardini
gabrimonfa at gmail.com
Fri Nov 27 07:52:20 EST 2009
> SOURCE COPIES
> As with most other projects I have worked with, the used OSS libraries are
> simply copied to the repository and build from there.
> Although this prohibites the advantages of the OSS that somebody else might
> have fixed a bug in the meanwhile,
> integration and debugging are largely simplified, thats why its a popular
> approach.
I'm not denying that "include-all" approach can be used.
Moreover, we're not speaking about a project that "uses OSS libraries".
MapguideOS IS an OSS project.
svn co http://svn.osgeo.org/mapguide/branches/2.1/MgDev/ MgDev
=> disk space 1.7GB (not considering FDO that is a separate project).
of which
MgDev/Oem 1,4G
MgDev/Doc 77M
MgDev/BuildTools 7.3M
Thus mapguideOS code is about 220M of which 150M in MgDev/UnitTest.
Thus it is around 70M.
Who is interested in mapguideOS has probably already installed (and
maybe compiled from source!) a lot of these libraries.
They are used everywhere in OSS GIS projects.
Let's have a look on how a somewhat similar project, mapserver, deal
with similar OSS libraries.
svn co http://svn.osgeo.org/mapserver/branches/branch-5-4/mapserver/ mapserver
=> disk space 19MB
./configure --help
--with-PACKAGE[=ARG] use PACKAGE [ARG usually point to the PACKAGE home]
examples:
--with-geos[=PATH] Include GEOS support (PATH is path to
geos-config)
--with-ogr[=PATH] Include OGR support (PATH is path to
gdal-config).
--with-gdal[=PATH] Include GDAL support (PATH is path to gdal-config)
--with-postgis[=ARG] Include PostGIS Support (ARG=yes/path to
pg_config)
--with-mygis[=ARG] Include MyGIS Support (ARG=yes/path to
mysql_config)
--with-oraclespatial[=ARG] Include OracleSpatial Support
(ARG=yes/path to Oracle home)
Configure checks if external libraries are available and use them, as
instructed by the arguments.
And how to build it on windows?
>From http://svn.osgeo.org/mapserver/branches/branch-5-4/mapserver/README.WIN32
--------------------------------------------------------------------------
For the developers using MSVC++, a NMAKE makefile (Makefile.vc + nmake.opt)
to build the MapServer library and executable programs is included with
the distribution.
To build the package using the Makefile.vc and NMAKE:
- Edit nmake.opt to select (or deselect) optional components of
the MapServer. Please read the notes below about each component
before you move ahead with the compilation.
-------------------------------------------------------------------------
I admit that compiling on Windows is not so easy for an unexperienced user.
But how many unexperienced users on Windows will build the code from
the source instead of using a binary, or even a nightly build?
> VERSION CHECKING
> to configure the build system to use a library from somewhere else is not so easy.
IMHO, it is not needed.
As a first step let's have a symlink that links MgDev/Oem/php to
<somewhereelse>/php
> I think this would have to start with adding code to the DLL loader
> so it can be configured with permissible library versions.
> This seems to be a paramount requirement for such endeavor.
I think we can also stick with current library versions.
The important is to decouple the build process and make it a bit more
configurable.
PHP 5.2.5 source code is available for download at php.net
> Already some svn external links are used for some other sub projects, so this is one way to go.
I fully agree. It's a good first step in the right direction.
> First of all I would strongly suggest to first get the continous integration (CI) system
> going before changing the build environment.
> A previous attempt in this already exposed some of the issues which stem
> from little incompatibilities between project structures.
> As MapGuide is multi-platform development changing the build that it works
> everywhere is hard.
> Without a working CI system such a task is painful and inefficient.
I agree also on this.
It would be useful, after setting up properly CI on Windows build
machines, also try to set this up for GNU/Linux.
The difficulties solved while setting it up would ease the build and
you'll have also binaries to distribute.
> CLASSIFICATION ATTEMPT
Thank you very much.
Regards,
Gabriele
More information about the mapguide-internals
mailing list