[GRASSGUI] trying to compile wxPython digitizer display_driver
William Kyngesburye
woklist at kyngchaos.com
Sun Aug 19 13:29:27 EDT 2007
On Aug 19, 2007, at 11:47 AM, Michael Barton wrote:
> With regard to swig, this adds a major new dependency to the
> wxPython GUI. It doesn't come on the Mac and I had to compile it
> from source. IT was pretty easy, but not something other most other
> Mac users will want to do. Same with Windows users. Maybe we'll
> want to have Python-swig as a requirement anyway. Several people
> have mentioned this. I know generally what it swig does, but not
> the details. An important question is...Is swig necessary for
> creating the driver for digitizing in wxPython or is there
> potentially another way to do this? That is, can we accomplish what
> you are trying to do without swig, oris it essential to make it work?
>
I think there are a couple levels to the SWIG setup. (ie see
MapServer and GDAL) One is the developers - they need swig installed
so they can generate the SWIG stuff in the GRASS source. The other
is users - anyone who downloads the GRASS source should not need SWIG
on their computer to compile GRASS, the SWIG bits are already
generated by the developers.
Dunno about how appropriate SWIG is, though...
> Makefile below ==========================
>
[I'm responding to the OSX bit below, but felt I could answer some
other questions also]
> MODULE_TOPDIR = ../../..
>
> include $(MODULE_TOPDIR)/include/Make/Lib.make
> include $(MODULE_TOPDIR)/include/Make/Doxygen.make
>
> >>>> NOTE: This seems to imply putting the source directory for
> display_driver somewhere in the GRASS source tree, but I can't
> figure out where it is supposed to go. I've tried putting it at the
> root, in lib, and another place or two. My GRASS source tree
> happens to be in /Users/cmbarton/grass_dev/grass6.
>
MODULE_TOPDIR is the GRASS source top. Whereever you put the display
driver source, the MODULE_TOPDIR = should backtrack to get to the
source top.
Someone else could probably answer off the top of their head, but a
little poking around reveals: display/drivers in the GRASS source.
> CFLAGS=-c -fpic -I/usr/include/python$(PYTHONVERSION) -I./ -I$
> (ARCH_DISTDIR)/include `wx-config --cxxflags`
>
> >>>> NOTE: My Python includes are in a completely different place.
> I'm not sure what ARCH_DISTDIR refers to but am guessing that this
> needs to be set to match each system.
>
ARCH_DISTDIR is where binaries are built into, dist-[platform] off
the grass top dir. The includes above (Lib.make, ...) should set all
the necessary make variables for you.
> LDFLAGS=-shared -L$(ARCH_LIBDIR) -lgrass_vect -lgrass_gis `wx-
> config --libs`
>
> >>>> NOTE: This may need to be changed for Mac OS X if I am
> correctly remembering some discussions crossing the dev list.
>
-dynamiclib for OSX. But whatever it is for a platform, this is
already in the GRASS makefile parts that are included, so -shared/-
dynamiclib should be left out here. But it looks like display
drivers are built as programs anyways, not libraries. Try using the
PNG driver makefile as an example.
-----
William Kyngesburye <kyngchaos*at*kyngchaos*dot*com>
http://www.kyngchaos.com/
"Mon Dieu! but they are all alike. Cheating, murdering, lying,
fighting, and all for things that the beasts of the jungle would not
deign to possess - money to purchase the effeminate pleasures of
weaklings. And yet withal bound down by silly customs that make them
slaves to their unhappy lot while firm in the belief that they be the
lords of creation enjoying the only real pleasures of existence....
- the wisdom of Tarzan
More information about the grass-gui
mailing list