wiki:BuildWithMingw

Version 5 (modified by ajolma, 15 years ago) ( diff )

--

Perl

Perl is the base of all higher level tools in Geoinformatica. The following assumes Perl 5.10.0

The makefile.mk in win32/ is the build configuration. I'm adding -mms-bitfields to line 525. see this discussion

Also, I change INST_TOP to $(INST_DRV)\Geoinformatica

The build is easy, in dos command prompt:

dmake
dmake install

Perl modules are always built in shell using dmake

lib/ExtUtils/Liblist/Kid.pm needs to be patched with Kid.pm.diff (works for EU::MM 6.52) to make it find import libraries that end with .dll.a

GTK+

GTK+

I'm not building these myself. We'll need both

ftp://ftp.gtk.org/pub/gtk/v2.10/win32/ and

http://gladewin32.sourceforge.net

since we need Gtk2::GladeWin

Glib, Cairo, Pango, and Gtk2 modules

ExtUtils::Depends is one of the prerequisites of these. Currently it needs to be patched with a patch attached to this bug report

Also pango.exports needs (1.220)

gtk2perl_pango_attribute_register_custom_type
gtk2perl_pango_attribute_get_type
gtk2perl_pango_attr_iterator_get_type
gtk2perl_pango_script_iter_get_type

and newSVPangoRectangle and SvPangoRectangle need to be removed from Gtk2.exports (1.220).

Data access and geo libraries

These are built in MSYS. Most are used by GDAL.

  • pq to access data in PostgreSQL and PostGIS
    • it's possible to use the libpq from the Windows ports of these
  • expat, needed for curl
    • there's a good Windows port with devel support available in it's home page
  • curl, needed for WMS, WCS, WFS
  • GEOS for simple features methods
  • Proj4 for cartographic projections
    • the DLL needs to be made manually:
cd src
gcc -shared -o libproj.dll -Wl,--out-implib=libproj.dll.a \
-Wl,--export-all-symbols -Wl,--enable-auto-import -Wl,--whole-archive \
.libs/libproj.a -Wl,--no-whole-archive /c/mingw/lib/libmingw32.a

See also this

  • GDAL
    • GTK+ may cause problems because it contains libtiff, I move libtiff includes away and use the internal libtiff
    • $(GDAL_ROOT)/ needs to be removed from GNUmakefile
    • I've made a gdal.pc, which is used by Geo::Raster and Geo::Vector
      prefix=/usr/local
      exec_prefix=${prefix}
      libdir=${exec_prefix}/lib
      includedir=${prefix}/include
      
      Name: GDAL
      Description: Geospatial Data Abstraction Library
      Version: 1.7.0
      Requires: libcurl xerces-c
      Libs:  -L${exec_prefix}/lib -lgdal.dll -lgeos.dll -lgeos_c.dll -lexpat -lpq -ljpeg -lpng12 -lz
      Cflags:  -I${prefix}/include
      
  • libral
    • there's a MinGW specific Makefile, use it The DLL's may be bloated because of debug code, use strip --strip-debug x.dll to remove it.
Note: See TracWiki for help on using the wiki.