source: trunk/dports/gis/gdal/Portfile

Last change on this file was 154240, checked in by vince@…, 6 weeks ago

gdal: add postgresql96 option and delete postgresql93 (obsolete)

  • Property svn:eol-style set to native
  • Property svn:keywords set to Id
File size: 14.6 KB
Line 
1# -*- coding: utf-8; mode: tcl; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- vim:fenc=utf-8:ft=tcl:et:sw=4:ts=4:sts=4
2# $Id: Portfile 154240 2016-10-25 08:53:37Z ryandesign@macports.org $
3
4PortSystem          1.0
5PortGroup           mpi 1.0
6PortGroup           muniversal 1.0
7
8name                gdal
9version             2.1.1
10revision            1
11categories          gis
12license             MIT BSD
13platforms           darwin
14
15maintainers         vince openmaintainer
16
17description         GDAL - Geospatial Data Abstraction Library
18
19long_description    GDAL is a translator library for raster geospatial \
20                    data formats that is released under an X/MIT style \
21                    Open Source license. As a library, it presents a \
22                    single abstract data model to the calling application \
23                    for all supported formats. The related OGR library \
24                    (which lives within the GDAL source tree) provides a \
25                    similar capability for simple features vector data.
26
27homepage            http://www.gdal.org/
28master_sites        http://www.gdal.org/dl/ \
29                    http://download.osgeo.org/gdal/ \
30                    http://download.osgeo.org/gdal/CURRENT/
31
32checksums           rmd160  f6f7c5edc4e40fde05c72f949567e7889efc590c \
33                    sha256  55fc6ffbe76e9d2e7e6cf637010e5d4bba6a966d065f40194ff798544198236b
34
35compilers.choose    cc cxx
36mpi.setup
37
38depends_lib-append  port:zlib \
39                    port:libpng \
40                    port:tiff \
41                    port:libgeotiff \
42                    port:jpeg \
43                    port:giflib \
44                    port:proj \
45                    port:qhull
46
47set PYINST          ""
48set OPENCLBASE      "/System/Library/Frameworks/OpenCL.framework/"
49
50configure.args-append \
51                    --with-local=${prefix} \
52                    --with-libz=${prefix} \
53                    --without-liblzma \
54                    --with-png=${prefix} \
55                    --with-libtiff=${prefix} \
56                    --with-geotiff=${prefix} \
57                    --with-jpeg=${prefix}\
58                    --with-gif=${prefix} \
59                    --with-static-proj4=${prefix} \
60                    --with-qhull=yes \
61                    --without-pg \
62                    --without-grass \
63                    --without-libgrass \
64                    --without-cfitsio \
65                    --without-netcdf \
66                    --without-ogdi \
67                    --without-fme \
68                    --without-hdf4 \
69                    --without-hdf5 \
70                    --without-jasper \
71                    --without-openjpeg \
72                    --without-ecw \
73                    --without-kakadu \
74                    --without-mrsid \
75                    --without-jp2mrsid \
76                    --without-msg \
77                    --without-bsb \
78                    --without-oci \
79                    --without-grib \
80                    --without-mysql \
81                    --without-ingres \
82                    --without-xerces \
83                    --without-odbc \
84                    --without-curl \
85                    --without-sqlite3 \
86                    --without-spatialite \
87                    --without-dwgdirect \
88                    --without-idb \
89                    --without-sde \
90                    --without-geos \
91                    --without-opencl \
92                    --without-pam \
93                    --without-perl \
94                    --without-php \
95                    --without-ruby \
96                    --without-python \
97                    --without-expat \
98                    --without-poppler \
99                    --mandir=${prefix}/share/man
100
101# Always choose internal libjson code (#44098)
102configure.args-append   --with-libjson-c=internal
103
104# Patch to ensure that the python installation respects DESTDIR
105patchfiles          patch-gdalwarpkernel_opencl_c.diff \
106                    patch-gdalwarpkernel_opencl_h.diff \
107                    patch-alg_GNUmakefile.diff \
108                    patch-apps_GNUmakefile.diff \
109                    patch-ogr_p_h.diff \
110                    patch-ogr_api_cpp.diff \
111                    patch-nawk.diff
112#                   patch-swig_python_GNUmakefile \
113                    patch-pdfcreatecopy_h.diff \
114                    patch-pdfcreatecopy_cpp.diff \
115
116
117pre-configure {
118    global worksrcpath_dirs
119    if { ![variant_isset universal] } {
120        set worksrcpath_dirs ${worksrcpath}
121    } else {
122        foreach arch ${universal_archs_to_use} {
123            lappend worksrcpath_dirs ${worksrcpath}-${arch}
124        }
125    }
126}
127
128post-configure {
129    foreach w ${worksrcpath_dirs} {
130        reinplace -E "s|(INST_PYMOD).*|\\1\t=\t${PYINST}|" \
131            ${w}/GDALmake.opt
132    }
133}
134
135# Set target to none
136build.target
137
138variant lzma \
139    description {Enable LZMA (7Z) compression support} {
140    depends_lib-append      port:lzma
141    configure.args-delete   --without-liblzma
142    configure.args-append   --with-liblzma=yes
143}
144
145variant geos description {Enable GEOS geometry engine functionality} {
146    depends_lib-append      port:geos
147    configure.args-delete   --without-geos
148    configure.args-append   --with-geos=${prefix}/bin/geos-config
149}
150
151variant curl description {Enable curl support} {
152    depends_lib-append      port:curl
153    configure.args-delete   --without-curl
154    configure.args-append   --with-curl=${prefix}/bin/curl-config
155}
156
157variant mrsid description {Enable MrSID file format} {
158    depends_lib-append      port:geoexpress-sdk
159    configure.args-delete   --without-mrsid
160    configure.args-append       --with-mrsid=${prefix}/share/Geo_DSDK/Raster_DSDK
161}
162
163variant ecw description {Enable ECW file format} {
164    configure.args-delete   --without-ecw
165    configure.args-append   --with-ecw=${prefix}/lib/ECW
166
167    if {${configure.cxx_stdlib} == "libc++" } {
168        patchfiles-append       patch-configure-ecw-libcxx.diff
169    } else {
170        patchfiles-append       patch-configure-ecw-libstdcxx.diff
171    }
172
173    pre-configure {
174        if {(![file exists ${prefix}/lib/ECW]) && \
175        (![file exists /Intergraph/ERDASEcwJpeg2000SDK5.1.1/Desktop_Read-Only])} {
176            ui_error "
177****
178* The Intergraph ECW SDK version 5.1.1 is needed to
179* compile gdal with the ecw variant. It must be installed separately.
180* Please download the Mac OS X version of the SDK
181* 'ERDAS ECW/JP2 SDK v5.1.1 (MacOSX)' from
182* http://download.intergraph.com/
183* Choose to install it in ${prefix}/lib/ECW.
184* Then try to install GDAL again.
185****"
186            return -code error "ECW SDK 5.1.1 not installed."
187        }
188
189        if {(![file exists ${prefix}/lib/ECW]) && \
190            ([file exists /Intergraph/ERDASEcwJpeg2000SDK5.1.1/Desktop_Read-Only])} {
191
192          ui_error "
193****
194* Please create symbolic links from the /Intergraph directory to
195* ${prefix}/lib/ECW, by executing at the prompt:
196* sudo ln -s /Intergraph/ERDASEcwJpeg2000SDK5.1.1/Desktop_Read-Only \
197                  ${prefix}/lib/ECW
198* Or reinstall the ECW SDK in ${prefix}/lib/ECW directly.
199* Then try again.
200****"
201            return -code error "Symlinks missing."
202        }
203    }
204}
205
206variant hdf4 description {Enable HDF4 file format} {
207    depends_lib-append      port:hdf4
208    configure.args-delete   --without-hdf4
209    configure.args-append   --with-hdf4=${prefix}
210}
211
212variant hdf5 description {Enable HDF5 file format} {
213    depends_lib-append      port:hdf5
214    configure.args-delete   --without-hdf5
215    configure.args-append   --with-hdf5=${prefix}
216    mpi.enforce_variant     hdf5
217}
218
219variant netcdf description {Enable NetCDF file format} {
220    depends_lib-append      port:netcdf
221    configure.args-delete   --without-netcdf
222    configure.args-append   --with-netcdf=${prefix}
223    mpi.enforce_variant     netcdf
224}
225
226variant grib description {Enable GRIB (weather) file format} {
227    configure.args-delete   --without-grib
228}
229
230#JPEG-2K
231variant jasper \
232    description {Enable JasPer JPEG-2000 format support} {
233    depends_lib-append      port:jasper
234    configure.args-delete   --without-jasper
235    configure.args-append   --with-jasper=${prefix}
236}
237
238variant openjpeg \
239    description {Enable OpenJPEG JPEG-2000 format support} {
240    depends_lib-append      port:openjpeg
241    configure.args-delete   --without-openjpeg
242    configure.args-append   --with-openjpeg=${prefix}
243}
244
245
246variant xerces description {Enable xerces XML support for GML file format} {
247    depends_lib-append      path:include/xercesc/util/XercesVersion.hpp:xercesc3
248    configure.args-delete   --without-xerces
249    configure.args-append   --with-xerces=${prefix}
250}
251
252variant expat description {Enable expat XML support} {
253    depends_lib-append      port:expat
254    configure.args-delete   --without-expat
255    configure.args-append   --with-expat=${prefix}
256}
257
258# Database variants
259set postgresql_suffixes {94 95 96}
260
261set portsgresql_variants {}
262foreach s ${postgresql_suffixes} {
263    lappend portsgresql_variants postgresql${s}
264}
265
266foreach s ${postgresql_suffixes} {
267    set p postgresql${s}
268    set v [string index ${s} 0].[string index ${s} 1]
269    set i [lsearch -exact ${portsgresql_variants} ${p}]
270    set c [lreplace ${portsgresql_variants} ${i} ${i}]
271    eval [subst {
272        variant ${p} description "Enable PostgreSQL ${v} support" conflicts ${c} {
273            depends_lib-append      port:${p}
274            configure.args-delete   --without-pg
275            configure.args-append   --with-pg=${prefix}/lib/postgresql${s}/bin/pg_config
276        }
277    }]
278}
279
280variant mysql5 description {Enable MySQL 5 support} {
281    depends_lib-append      path:bin/mysql_config5:mysql5
282    configure.args-delete   --without-mysql
283    configure.args-append   --with-mysql=${prefix}/lib/mysql5/bin/mysql_config
284}
285
286variant mysql57 description {Enable MySQL 5 support} {
287    depends_lib-append      port:mysql57
288    configure.args-delete   --without-mysql
289    configure.args-append   --with-mysql=${prefix}/lib/mysql57/bin/mysql_config
290}
291
292variant sqlite3 description {Enable SQLite3 support} {
293    depends_lib-append      port:sqlite3
294    configure.args-delete   --without-sqlite3
295    configure.args-append   --with-sqlite3=${prefix}
296
297    post-configure {
298        foreach w ${worksrcpath_dirs} {
299            reinplace -E "s|^LIBS(.*)\\\\$|LIBS\\1 -lsqlite3 \\\\|" ${w}/GDALmake.opt
300        }
301    }
302}
303
304variant spatialite description {Enable SpartiaLite support} {
305    depends_lib-append      port:spatialite
306    configure.args-delete   --without-spatialite
307    configure.args-append   --with-spatialite=${prefix}
308}
309
310variant odbc description {Enable ODBC support} {
311    depends_lib-append      port:unixODBC
312    configure.args-delete   --without-odbc
313    configure.args-append   --with-odbc=${prefix}
314}
315
316variant poppler description {Enable poppler support} {
317    depends_lib-append      port:poppler
318    configure.args-delete   --without-popper
319    configure.args-append   --with-poppler=${prefix}
320}
321
322# OpenCL
323variant opencl description {Use OpenCL for parallel computations} {
324    configure.args-delete   --without-opencl
325    configure.args-append   --with-opencl
326    configure.args-append   --with-opencl-include=${OPENCLBASE}/Headers
327    configure.args-append   --with-opencl-lib='-framework OpenCL'
328}
329
330configure.optflags  -DGDAL_COMPILATION
331
332# Perf variant to optimize code
333variant perf description {Optimize for speed} {
334    configure.optflags      -O3 -pipe -march=native -DGDAL_COMPILATION
335}
336
337
338default_variants    +expat
339
340set jpeg2k 0
341foreach jpeg2kVariant {jasper openjpeg ecw} {
342    if {[variant_isset ${jpeg2kVariant}]} {
343        incr jpeg2k 1
344    }
345}
346if {${jpeg2k} > 1} {
347    notes-append "Multiple drivers are able to able to open JPEG-2000 datasets. See https://trac.osgeo.org/gdal/wiki/ConfigOptions#GDAL_SKIP."
348}
349
350# Postconfigure hack to avoid read ${include} .h files before
351# GDAL own include directories
352post-configure {
353    foreach w ${worksrcpath_dirs} {
354        set FRMT_PATH ${w}/ogr/ogrsf_frmts
355        foreach makefile [glob -dir $FRMT_PATH */GNUmakefile] {
356            reinplace "s|\$\(EXPAT_INCLUDE\)||" $makefile
357        }
358
359        reinplace -E "s|(GEOS_CFLAGS.*=).*|\\1|" ${w}/GDALmake.opt
360        reinplace -E "s|^CPPFLAGS.*|CPPFLAGS = -I\$(GDAL_ROOT)/port -I${prefix} -I${prefix}/include\
361                           -I${prefix}/include/libqhull|" ${w}/GDALmake.opt
362    }
363}
364
365post-destroot {
366    xinstall -m 755 -d ${destroot}${prefix}/share/doc/${name}
367    xinstall -m 644 -W ${worksrcpath} HOWTO-RELEASE NEWS VERSION \
368        ${destroot}${prefix}/share/doc/${name}
369
370    if {[variant_isset mrsid]} {
371         foreach f [list \
372            bin/gdal_contour \
373            bin/gdal_grid \
374            bin/gdal_rasterize \
375            bin/gdal_translate \
376            bin/gdaladdo \
377            bin/gdalbuildvrt \
378            bin/gdaldem \
379            bin/gdalenhance \
380            bin/gdalinfo \
381            bin/gdallocationinfo \
382            bin/gdalmanage \
383            bin/gdalserver \
384            bin/gdalsrsinfo \
385            bin/gdaltindex \
386            bin/gdaltransform \
387            bin/gdalwarp \
388            bin/nearblack \
389            bin/ogr2ogr \
390            bin/ogrinfo \
391            bin/ogrlineref \
392            bin/ogrtindex \
393            bin/testepsg \
394            lib/libgdal.20.dylib] \
395            {
396                exec install_name_tool -change libltidsdk.9.dylib ${prefix}/share/Geo_DSDK/Raster_DSDK/lib/libltidsdk.9.dylib ${destroot}${prefix}/${f}
397            }
398    }
399
400    if {[variant_isset ecw]} {
401          foreach f [list \
402            bin/gdal_contour \
403            bin/gdal_grid \
404            bin/gdal_rasterize \
405            bin/gdal_translate \
406            bin/gdaladdo \
407            bin/gdalbuildvrt \
408            bin/gdaldem \
409            bin/gdalenhance \
410            bin/gdalinfo \
411            bin/gdallocationinfo \
412            bin/gdalmanage \
413            bin/gdalserver \
414            bin/gdalsrsinfo \
415            bin/gdaltindex \
416            bin/gdaltransform \
417            bin/gdalwarp \
418            bin/nearblack \
419            bin/ogr2ogr \
420            bin/ogrinfo \
421            bin/ogrlineref \
422            bin/ogrtindex \
423            bin/testepsg \
424            lib/libgdal.20.dylib] \
425            {
426                if {${configure.cxx_stdlib} == "libc++"} {
427                    exec install_name_tool -change \
428                        /Users/jenkins/hudson/workspace/RL_5.1.1_ECWJP2SDK_OSX/Master/libNCSEcw.dylib ${prefix}/lib/ECW/redistributable/libc++/libNCSEcw.dylib \
429                        ${destroot}${prefix}/${f}
430                } else {
431                    exec install_name_tool -change \
432                        /Users/jenkins/hudson/workspace/RL_5.1.1_ECWJP2SDK_OSX/Master/libNCSEcw.dylib ${prefix}/lib/ECW/redistributable/libstdc++/libNCSEcw.dylib \
433                        ${destroot}${prefix}/${f}
434                }
435            }
436    }
437
438}
439
440livecheck.type  regex
441livecheck.url   http://download.osgeo.org/gdal/CURRENT
442livecheck.regex ${name}-(\\d+(?:\\.\\d+)*)\\.tar
Note: See TracBrowser for help on using the repository browser.