A Windows Build Tree for MapServer
hobu at IASTATE.EDU
Wed Feb 8 12:03:04 EST 2006
Assefa and I have been collaborating on a unified build tree for
Windows binaries for MapServer. This is a note to tell you what has
been done so far and to propose some changes to the nmake.opt and
makefile.vc files to streamline our build process a little bit and
make it work nicely with the build tree.
Building MapServer on Windows is a major PITA. I have maintained
something called the "kitchen sink," Assefa has maintained MS4W and
PHP MapScript, and Perry also has a binary set. I would like to try
to collect things together a bit so they all build off of common
stuff. The reasoning behind this is to make it a bit easier for
folks to swap libmap.dlls to get functionality from one build or
another (mostly thinking of SDE, Oracle, and MrSID) into various .exe
and MapScripts. I do not know whether or not this dream is realistic or not.
In any case, I have been working on a build tree at
contains almost everything for a full GDAL and MapServer
build. Everything has been brought up to date. Everything has been
built dynamically with /MD. GDAL is built with plugins for SDE,
Oracle, and MrSID. The intent is for someone wishing to build their
own MapServer to just grab the build tree, tweak nmake.opt to give
the path to it and do nmake /f makefile.vc and have it build up
everything all at once. This is with MSVC 7.1, so it obviously isn't
for everyone, but I think it could go a long way in making it much
easier for folks to build things without having to worry about the
bazillions of little issues that crop up along the way.
To make this work, I have done some slight modifications to the
nmake.opt and makefile.vc files. These include setting things up to
use relative paths, and creating install targets for the mapscripts
and .exe/.dll so they are collated into the ../bin directory. I
would like to go through nmake.opt and make some changes to make
things be relative to this build tree. I would also add some things
like SWIG and JAVA_HOME to make it easier to have MapScript build
targets. I would make these changes in CVS HEAD. I would also
create/edit the Win32 build HowTo to describe how to use this.
If people want to me to write an RFC to describe this stuff I can do so.
As an aside, I would really like to reconfigure Oracle and SDE to use
the plugin architecture. They seem to cause no end of
requests. Using plugins for these should make our build layout/setup
much easier. I plan on pursuing this for the Hawaii 5-0 release.
More information about the mapserver-dev