A Windows Build Tree for MapServer

Howard Butler hobu at IASTATE.EDU
Wed Feb 8 14:25:45 EST 2006


At 01:10 PM 2/8/2006, Jani Averbach wrote:
> > -----Original Message-----
> > From: UMN MapServer Developers List On Behalf Of Howard Butler
> > Sent: Wednesday, February 08, 2006 10:03 AM
> > Subject: A Windows Build Tree for MapServer
> >
> > 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.
>
>This is a great news!
>
> > In any case, I have been working on a build tree at
> > <http://hobu.stat.iastate.edu/mapserver/build_output/assefa>.  It
> > 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.
>
>I would like to take this a little bit further and propose that we use
>VC project files instead of makefiles. This would make it easier to
>work with mapserver code base on windows and solve few problems with
>GDAL.  If you build GDAL with debugging (/MDd) and later turn the
>project to release mode (/MD) then you have very high changes to blow
>up the binary because the makefile system will mix debug and release
>mode binaries very easily.

I am a firm -1 against project files.  Granted they aren't as bad in 
msvc7+, but they still can cause a lot of grief.  I especially have 
trouble navigating the myriad of menus to figure out where to add lib 
files, etc.

I understand the runtime issues (/MD vs /MDd), but usually the 
compiler complains about needing NODEFAULTLIB which is a tip that you 
have things mixed up.

GDAL and MapServer have long histories of nmake makefiles 
(recursively, even), and those who maintain the software are not apt 
to change this, I think.  Another issue MapServer has is 
bison/flex/yacc-generated files, which cause complications as 
well.  Coupled with the fact that it is impossible to debug how a 
user is running a project file over email "no, click on the thing 
next to the other thingy in the option menu that you have to remember 
to enable", I don't see us changing at this time.

I like debugging in the IDE as much as the next person.  Getting the 
Windows builds to even use the same compiler options and layout 
is/has been a challenge.  Building MapServer on Windows used to be 
only for the most courageous, and I'm hoping to lower that bar.  I'm 
not ready to ditch the makefiles though.

Howard 



More information about the mapserver-dev mailing list