/[ports]/head/databases/grass7/Makefile
ViewVC logotype

Contents of /head/databases/grass7/Makefile

Parent Directory Parent Directory | Revision Log Revision Log


Revision 567287 - (show annotations) (download)
Thu Mar 4 05:18:38 2021 UTC (3 years, 5 months ago) by lbartoletti
File MIME type: text/plain
File size: 8241 byte(s)
databases/grass7: Does not configure on i386

- Could not determine External PROJ major version.

1 # Created by: Mikael URANKAR and Loïc BARTOLETTI
2 # $FreeBSD$
3
4 PORTNAME= grass
5 PORTVERSION= 7.8.5
6 PORTREVISION= 3
7 CATEGORIES= databases geography
8 MASTER_SITES= https://grass.osgeo.org/%SUBDIR%/ \
9 http://grass.cict.fr/%SUBDIR%/ \
10 http://grass.fbk.eu/%SUBDIR%/ \
11 http://grass.gis-lab.info/%SUBDIR%/ \
12 http://grass.meteo.uni.wroc.pl/%SUBDIR%/ \
13 http://grass.polytechnic.edu.na/%SUBDIR%/ \
14 http://grass.unibuc.ro/%SUBDIR%/ \
15 http://mirrors.ibiblio.org/grass/%SUBDIR%/ \
16 http://pinus.gntech.ac.kr/grass/%SUBDIR%/ \
17 http://wgbis.ces.iisc.ernet.in/grass/%SUBDIR%/ \
18 http://wgrass.media.osaka-cu.ac.jp/grassh/%SUBDIR%/
19 MASTER_SITE_SUBDIR= grass${VER}/source
20 PKGNAMESUFFIX= 7
21
22 MAINTAINER= lbartoletti@FreeBSD.org
23 COMMENT= Open source Geographical Information System (GIS)
24
25 LICENSE= GPLv2+
26 LICENSE_FILE= ${WRKSRC}/GPL.TXT
27
28 BROKEN_sparc64= Does not configure on sparc64
29 BROKEN_i386= Does not configure on i386: Could not determine External PROJ major version
30
31 BUILD_DEPENDS= ${PY_NUMPY} \
32 ${PYTHON_SITELIBDIR}/six.py:devel/py-six@${PY_FLAVOR}
33 LIB_DEPENDS= libgdal.so:graphics/gdal \
34 libpng.so:graphics/png \
35 libproj.so:graphics/proj \
36 libtiff.so:graphics/tiff \
37 libfftw3.so:math/fftw3 \
38 libfontconfig.so:x11-fonts/fontconfig \
39 libfreetype.so:print/freetype2 \
40 libgeos.so:graphics/geos
41 RUN_DEPENDS= ${PY_NUMPY} \
42 ${PYTHON_SITELIBDIR}/six.py:devel/py-six@${PY_FLAVOR}
43
44 USES= blaslapack compiler:c11 gl gmake gnome iconv \
45 jpeg perl5 pkgconfig python:3.6+ readline shebangfix xorg
46 SHEBANG_GLOB= *.py
47 SHEBANG_LANG= nviz
48 nviz_OLD_CMD= nviz
49 nviz_CMD= ${PREFIX}/${GRASS_INST_DIR}/bin/nviz
50 USE_XORG= sm ice x11 xext xi xmu xrender xt
51 USE_GL= gl glu
52 USE_GNOME= cairo
53 USE_WX= 3.0
54 WX_COMPS= wx:build python:run
55 GNU_CONFIGURE= yes
56
57 CONFIGURE_ARGS= --with-includes=${LOCALBASE}/include \
58 --with-libs=${LOCALBASE}/lib \
59 --with-opengl-includes=${LOCALBASE}/include/ \
60 --with-opengl-libs=${LOCALBASE}/lib/ \
61 --with-freetype \
62 --with-freetype-includes=${LOCALBASE}/include/freetype2 \
63 --with-blas \
64 --with-lapack \
65 --with-cairo \
66 --with-readline \
67 --enable-largefile \
68 --with-wxwidgets=${WX_CONFIG} \
69 --with-proj-share=${LOCALBASE}/share/proj \
70 --with-proj-includes=${LOCALBASE}/include \
71 --with-proj-libs=${LOCALBASE}/lib \
72 --with-proj=${LOCALBASE}/bin/proj \
73 --with-geos=${LOCALBASE}/bin/geos-config \
74 --with-gdal=${LOCALBASE}/bin/gdal-config \
75 --with-pthread=yes \
76 --with-openmp \
77 --prefix=${LOCALBASE} \
78 --exec-prefix=${LOCALBASE}
79
80 CFLAGS+= -std=c11
81
82 SUB_FILES= pkg-message
83 SUB_LIST= PYTHON_CMD=${PYTHON_CMD}
84 BINARY_ALIAS= python3=${PYTHON_CMD}
85 ALL_TARGET= default
86 USE_LDCONFIG= ${PREFIX}/${GRASS_INST_DIR}/lib
87 MAKE_ENV+= TARGET="${CONFIGURE_TARGET}"
88 VER= ${PORTVERSION:R:C/\.//}
89
90 PLIST_SUB= GRASS_INST_DIR="${GRASS_INST_DIR}" \
91 VERSION="${PORTVERSION}" VERS="${PORTVERSION:C/([0-9]+).([0-9]+)(.*)/\1.\2/}" \
92 VER="${VER}" MAJVER="${PKGNAMESUFFIX}"
93
94 OPTIONS_DEFINE= LAS NETCDF NLS PDAL ZSTD
95 OPTIONS_MULTI= DB
96 OPTIONS_MULTI_DB= MYSQL ODBC PGSQL SQLITE
97 #OPTIONS_SINGLE= BLAS
98 #OPTIONS_SINGLE_BLAS= ATLAS NETLIB GOTOBLAS OPENBLAS
99 OPTIONS_DEFAULT= LAS NETCDF NLS PDAL PGSQL SQLITE ZSTD
100 OPTIONS_SUB= yes
101
102 # BLAS/LAPACK: Only netlib compile the maxmimum number of modules
103 #BLAS_DESC= BLAS/LAPACK support
104 #GOTOBLAS_DESC= GotoBLAS implementationS
105 #ATLAS_USES= blaslapack:atlas
106 #NETLIB_USES= blaslapack
107 #GOTOBLAS_USES= blaslapack:gotoblas
108 #OPENBLAS_USES= blaslapack:openblas
109 LAS_DESC= Enable LiDAR modules
110 PDAL_DESC= Enable points cloud data modules
111 DB_DESC= Database support
112 LAS_CONFIGURE_ON= --with-liblas=yes
113 LAS_LIB_DEPENDS= liblas.so:devel/liblas \
114 libboost_program_options.so:devel/boost-libs \
115 libboost_thread.so:devel/boost-libs \
116 libgeotiff.so:graphics/libgeotiff
117 MYSQL_USES= mysql
118 MYSQL_CONFIGURE_ON= --with-mysql \
119 --with-mysql-includes=${LOCALBASE}/include/mysql \
120 --with-mysql-libs=${LOCALBASE}/lib/mysql
121 NETCDF_CONFIGURE_ON= --with-netcdf=${LOCALBASE}/bin/nc-config
122 NETCDF_LIB_DEPENDS= libnetcdf.so:science/netcdf
123 NLS_CONFIGURE_WITH= nls
124 NLS_USES= gettext
125 ODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC
126 ODBC_CONFIGURE_WITH= odbc
127 PDAL_CONFIGURE_ON= --with-pdal=${LOCALBASE}/bin/pdal-config
128 PDAL_LIB_DEPENDS= libpdal_base.so:math/pdal
129 PGSQL_USES= pgsql
130 PGSQL_CONFIGURE_WITH= postgres
131 SQLITE_USES= sqlite
132 SQLITE_CONFIGURE_WITH= sqlite
133 SQLITE_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR}
134 ZSTD_CONFIGURE_WITH= zstd
135 ZSTD_LIB_DEPENDS= libzstd.so:archivers/zstd
136
137 .include <bsd.port.pre.mk>
138
139 .if ${ARCH} == "i386" && ${OSVERSION} < 1200000
140 # clang 7.x and 8.x do not build properly on 11i386
141 CPP= clang-cpp${LLVM_DEFAULT}
142 CC= clang${LLVM_DEFAULT}
143 CXX= clang++${LLVM_DEFAULT}
144 BUILD_DEPENDS+= clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT}
145 .endif
146
147 .if !defined (GRASS_INST_DIR)
148 GRASS_INST_DIR= ${PORTNAME}${VER}
149 .endif
150
151 MANDIRS= ${PREFIX}/grass${VER}/docs/man/man1
152
153 post-patch:
154 ${REINPLACE_CMD} -e \
155 's|make -C|$$(MAKE) -C| ; \
156 /^BINDIR/s|=.*|= $${DESTDIR}$${UNIX_BIN}| ; \
157 /test /s| $$(INST_DIR)| $${DESTDIR}$${INST_DIR}|g ; \
158 /tar /s| $$(INST_DIR)| $${DESTDIR}$${INST_DIR}|g ; \
159 /chmod /s| $$(INST_DIR)| $${DESTDIR}$${INST_DIR}|g ; \
160 /tar /s| $$(INST_DIR)| $${DESTDIR}$${INST_DIR}|g ; \
161 /rm /s| $$(INST_DIR)| $${DESTDIR}$${INST_DIR}|g ; \
162 /$$(MAKE) /s| $$(INST_DIR)| $${DESTDIR}$${INST_DIR}|g ; \
163 /^$$(INST_DIR)\//s|$$(INST_DIR)|$${DESTDIR}$${INST_DIR}|g ; \
164 s|> $$(INST_DIR)|> $${DESTDIR}$${INST_DIR}|' \
165 ${WRKSRC}/include/Make/Install.make
166 ${REINPLACE_CMD} \
167 's|= python3|= ${PYTHON_CMD:T}|' ${WRKSRC}/include/Make/Platform.make.in
168 ${REINPLACE_CMD} -e \
169 "s|'make'|'gmake'|g; \
170 s|gcc|${CC}|" ${WRKSRC}/scripts/g.extension/g.extension.py
171 ${REINPLACE_CMD} \
172 's|$$(ARCH)|$$(TARGET)|g' ${WRKSRC}/include/Make/Grass.make
173 # Replace hardcoded python interpreter to PYTHON_CMD
174 ${REINPLACE_CMD} "s|'GRASS_PYTHON', 'python'|'GRASS_PYTHON', \'${PYTHON_CMD}\'|g" \
175 ${WRKSRC}/scripts/wxpyimgview/wxpyimgview.py
176 ${REINPLACE_CMD} 's|GRASS_PYTHON=python|GRASS_PYTHON=${PYTHON_CMD}|g' \
177 ${WRKSRC}/lib/init/grass.sh
178 ${REINPLACE_CMD} \
179 "s|environ\['GRASS_PYTHON'\] = "'"python3"'"|environ['GRASS_PYTHON'] = "'"${PYTHON_CMD}"'"|g" \
180 ${WRKSRC}/lib/python/script/setup.py
181
182 post-install:
183 # remove useless files
184 ${RM} -rf ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/etc/db.test/
185 ${RM} -rf ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/demolocation/PERMANENT/.tmp/
186 ${RM} -rf ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/docs/html/colortables/*bak.png
187
188 # fix pkg-plist issues
189 # poudriere testport, poudriere bulk -t and make ports can create different pkg-plist
190 for i in `${FIND} ${WRKSRC}/scripts -type f \( -name *jpg -o -name *png -o -name *gxm \) -print`; do \
191 ${INSTALL_DATA} $$i ${STAGEDIR}${LOCALBASE}/${PORTNAME}${VER}/docs/html; \
192 done
193 for i in `${FIND} ${WRKSRC}/gui/wxpython -type f \( -name *jpg -o -name *png -o -name *gxm \) -print`; do \
194 ${INSTALL_DATA} $$i ${STAGEDIR}${LOCALBASE}/${PORTNAME}${VER}/docs/html; \
195 done
196 for i in `${FIND} ${WRKSRC}/raster -type f \( -name *jpg -o -name *png -o -name *gxm \) -print`; do \
197 ${INSTALL_DATA} $$i ${STAGEDIR}${LOCALBASE}/${PORTNAME}${VER}/docs/html; \
198 done
199 for i in `${FIND} ${WRKSRC}/imagery -type f \( -name *jpg -o -name *png -o -name *gxm \) -print`; do \
200 ${INSTALL_DATA} $$i ${STAGEDIR}${LOCALBASE}/${PORTNAME}${VER}/docs/html; \
201 done
202 ${INSTALL_SCRIPT} ${WRKSRC}/scripts/wxpyimgview/wxpyimgview_gui.py ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/etc/wxpyimgview_gui.py
203 ${MKDIR} ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/etc/d.polar
204 ${INSTALL_DATA} ${WRKSRC}/scripts/d.polar/ps_defs.eps ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/etc/d.polar
205
206 # STRIP PART
207 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/bin/*
208 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/driver/db/*
209 .for i in clean_temp current_time_s_ms echo i.find lock run r.watershed/seg r.watershed/ram lister/vector lister/cell
210 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/etc/${i}
211 .endfor
212 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/tools/g.echo
213 ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/lib/*
214
215 # symlink grass7
216 ${LN} -sf ${PORTNAME}${VER} \
217 ${STAGEDIR}${PREFIX}/bin/${PORTNAME}${PKGNAMESUFFIX}
218 .include <bsd.port.post.mk>

Properties

Name Value
svn:eol-style native
svn:keywords FreeBSD=%H
svn:mime-type text/plain

  ViewVC Help
Powered by ViewVC 1.1.27