# Created by: Mikael URANKAR and Loïc BARTOLETTI # $FreeBSD: head/databases/grass7/Makefile 567287 2021-03-04 05:18:38Z lbartoletti $ PORTNAME= grass PORTVERSION= 7.8.5 PORTREVISION= 3 CATEGORIES= databases geography MASTER_SITES= https://grass.osgeo.org/%SUBDIR%/ \ http://grass.cict.fr/%SUBDIR%/ \ http://grass.fbk.eu/%SUBDIR%/ \ http://grass.gis-lab.info/%SUBDIR%/ \ http://grass.meteo.uni.wroc.pl/%SUBDIR%/ \ http://grass.polytechnic.edu.na/%SUBDIR%/ \ http://grass.unibuc.ro/%SUBDIR%/ \ http://mirrors.ibiblio.org/grass/%SUBDIR%/ \ http://pinus.gntech.ac.kr/grass/%SUBDIR%/ \ http://wgbis.ces.iisc.ernet.in/grass/%SUBDIR%/ \ http://wgrass.media.osaka-cu.ac.jp/grassh/%SUBDIR%/ MASTER_SITE_SUBDIR= grass${VER}/source PKGNAMESUFFIX= 7 MAINTAINER= lbartoletti@FreeBSD.org COMMENT= Open source Geographical Information System (GIS) LICENSE= GPLv2+ LICENSE_FILE= ${WRKSRC}/GPL.TXT BROKEN_sparc64= Does not configure on sparc64 BROKEN_i386= Does not configure on i386: Could not determine External PROJ major version BUILD_DEPENDS= ${PY_NUMPY} \ ${PYTHON_SITELIBDIR}/six.py:devel/py-six@${PY_FLAVOR} LIB_DEPENDS= libgdal.so:graphics/gdal \ libpng.so:graphics/png \ libproj.so:graphics/proj \ libtiff.so:graphics/tiff \ libfftw3.so:math/fftw3 \ libfontconfig.so:x11-fonts/fontconfig \ libfreetype.so:print/freetype2 \ libgeos.so:graphics/geos RUN_DEPENDS= ${PY_NUMPY} \ ${PYTHON_SITELIBDIR}/six.py:devel/py-six@${PY_FLAVOR} USES= blaslapack compiler:c11 gl gmake gnome iconv \ jpeg perl5 pkgconfig python:3.6+ readline shebangfix xorg SHEBANG_GLOB= *.py SHEBANG_LANG= nviz nviz_OLD_CMD= nviz nviz_CMD= ${PREFIX}/${GRASS_INST_DIR}/bin/nviz USE_XORG= sm ice x11 xext xi xmu xrender xt USE_GL= gl glu USE_GNOME= cairo USE_WX= 3.0 WX_COMPS= wx:build python:run GNU_CONFIGURE= yes CONFIGURE_ARGS= --with-includes=${LOCALBASE}/include \ --with-libs=${LOCALBASE}/lib \ --with-opengl-includes=${LOCALBASE}/include/ \ --with-opengl-libs=${LOCALBASE}/lib/ \ --with-freetype \ --with-freetype-includes=${LOCALBASE}/include/freetype2 \ --with-blas \ --with-lapack \ --with-cairo \ --with-readline \ --enable-largefile \ --with-wxwidgets=${WX_CONFIG} \ --with-proj-share=${LOCALBASE}/share/proj \ --with-proj-includes=${LOCALBASE}/include \ --with-proj-libs=${LOCALBASE}/lib \ --with-proj=${LOCALBASE}/bin/proj \ --with-geos=${LOCALBASE}/bin/geos-config \ --with-gdal=${LOCALBASE}/bin/gdal-config \ --with-pthread=yes \ --with-openmp \ --prefix=${LOCALBASE} \ --exec-prefix=${LOCALBASE} CFLAGS+= -std=c11 SUB_FILES= pkg-message SUB_LIST= PYTHON_CMD=${PYTHON_CMD} BINARY_ALIAS= python3=${PYTHON_CMD} ALL_TARGET= default USE_LDCONFIG= ${PREFIX}/${GRASS_INST_DIR}/lib MAKE_ENV+= TARGET="${CONFIGURE_TARGET}" VER= ${PORTVERSION:R:C/\.//} PLIST_SUB= GRASS_INST_DIR="${GRASS_INST_DIR}" \ VERSION="${PORTVERSION}" VERS="${PORTVERSION:C/([0-9]+).([0-9]+)(.*)/\1.\2/}" \ VER="${VER}" MAJVER="${PKGNAMESUFFIX}" OPTIONS_DEFINE= LAS NETCDF NLS PDAL ZSTD OPTIONS_MULTI= DB OPTIONS_MULTI_DB= MYSQL ODBC PGSQL SQLITE #OPTIONS_SINGLE= BLAS #OPTIONS_SINGLE_BLAS= ATLAS NETLIB GOTOBLAS OPENBLAS OPTIONS_DEFAULT= LAS NETCDF NLS PDAL PGSQL SQLITE ZSTD OPTIONS_SUB= yes # BLAS/LAPACK: Only netlib compile the maxmimum number of modules #BLAS_DESC= BLAS/LAPACK support #GOTOBLAS_DESC= GotoBLAS implementationS #ATLAS_USES= blaslapack:atlas #NETLIB_USES= blaslapack #GOTOBLAS_USES= blaslapack:gotoblas #OPENBLAS_USES= blaslapack:openblas LAS_DESC= Enable LiDAR modules PDAL_DESC= Enable points cloud data modules DB_DESC= Database support LAS_CONFIGURE_ON= --with-liblas=yes LAS_LIB_DEPENDS= liblas.so:devel/liblas \ libboost_program_options.so:devel/boost-libs \ libboost_thread.so:devel/boost-libs \ libgeotiff.so:graphics/libgeotiff MYSQL_USES= mysql MYSQL_CONFIGURE_ON= --with-mysql \ --with-mysql-includes=${LOCALBASE}/include/mysql \ --with-mysql-libs=${LOCALBASE}/lib/mysql NETCDF_CONFIGURE_ON= --with-netcdf=${LOCALBASE}/bin/nc-config NETCDF_LIB_DEPENDS= libnetcdf.so:science/netcdf NLS_CONFIGURE_WITH= nls NLS_USES= gettext ODBC_LIB_DEPENDS= libodbc.so:databases/unixODBC ODBC_CONFIGURE_WITH= odbc PDAL_CONFIGURE_ON= --with-pdal=${LOCALBASE}/bin/pdal-config PDAL_LIB_DEPENDS= libpdal_base.so:math/pdal PGSQL_USES= pgsql PGSQL_CONFIGURE_WITH= postgres SQLITE_USES= sqlite SQLITE_CONFIGURE_WITH= sqlite SQLITE_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}sqlite3>0:databases/py-sqlite3@${PY_FLAVOR} ZSTD_CONFIGURE_WITH= zstd ZSTD_LIB_DEPENDS= libzstd.so:archivers/zstd .include .if ${ARCH} == "i386" && ${OSVERSION} < 1200000 # clang 7.x and 8.x do not build properly on 11i386 CPP= clang-cpp${LLVM_DEFAULT} CC= clang${LLVM_DEFAULT} CXX= clang++${LLVM_DEFAULT} BUILD_DEPENDS+= clang${LLVM_DEFAULT}:devel/llvm${LLVM_DEFAULT} .endif .if !defined (GRASS_INST_DIR) GRASS_INST_DIR= ${PORTNAME}${VER} .endif MANDIRS= ${PREFIX}/grass${VER}/docs/man/man1 post-patch: ${REINPLACE_CMD} -e \ 's|make -C|$$(MAKE) -C| ; \ /^BINDIR/s|=.*|= $${DESTDIR}$${UNIX_BIN}| ; \ /test /s| $$(INST_DIR)| $${DESTDIR}$${INST_DIR}|g ; \ /tar /s| $$(INST_DIR)| $${DESTDIR}$${INST_DIR}|g ; \ /chmod /s| $$(INST_DIR)| $${DESTDIR}$${INST_DIR}|g ; \ /tar /s| $$(INST_DIR)| $${DESTDIR}$${INST_DIR}|g ; \ /rm /s| $$(INST_DIR)| $${DESTDIR}$${INST_DIR}|g ; \ /$$(MAKE) /s| $$(INST_DIR)| $${DESTDIR}$${INST_DIR}|g ; \ /^$$(INST_DIR)\//s|$$(INST_DIR)|$${DESTDIR}$${INST_DIR}|g ; \ s|> $$(INST_DIR)|> $${DESTDIR}$${INST_DIR}|' \ ${WRKSRC}/include/Make/Install.make ${REINPLACE_CMD} \ 's|= python3|= ${PYTHON_CMD:T}|' ${WRKSRC}/include/Make/Platform.make.in ${REINPLACE_CMD} -e \ "s|'make'|'gmake'|g; \ s|gcc|${CC}|" ${WRKSRC}/scripts/g.extension/g.extension.py ${REINPLACE_CMD} \ 's|$$(ARCH)|$$(TARGET)|g' ${WRKSRC}/include/Make/Grass.make # Replace hardcoded python interpreter to PYTHON_CMD ${REINPLACE_CMD} "s|'GRASS_PYTHON', 'python'|'GRASS_PYTHON', \'${PYTHON_CMD}\'|g" \ ${WRKSRC}/scripts/wxpyimgview/wxpyimgview.py ${REINPLACE_CMD} 's|GRASS_PYTHON=python|GRASS_PYTHON=${PYTHON_CMD}|g' \ ${WRKSRC}/lib/init/grass.sh ${REINPLACE_CMD} \ "s|environ\['GRASS_PYTHON'\] = "'"python3"'"|environ['GRASS_PYTHON'] = "'"${PYTHON_CMD}"'"|g" \ ${WRKSRC}/lib/python/script/setup.py post-install: # remove useless files ${RM} -rf ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/etc/db.test/ ${RM} -rf ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/demolocation/PERMANENT/.tmp/ ${RM} -rf ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/docs/html/colortables/*bak.png # fix pkg-plist issues # poudriere testport, poudriere bulk -t and make ports can create different pkg-plist for i in `${FIND} ${WRKSRC}/scripts -type f \( -name *jpg -o -name *png -o -name *gxm \) -print`; do \ ${INSTALL_DATA} $$i ${STAGEDIR}${LOCALBASE}/${PORTNAME}${VER}/docs/html; \ done for i in `${FIND} ${WRKSRC}/gui/wxpython -type f \( -name *jpg -o -name *png -o -name *gxm \) -print`; do \ ${INSTALL_DATA} $$i ${STAGEDIR}${LOCALBASE}/${PORTNAME}${VER}/docs/html; \ done for i in `${FIND} ${WRKSRC}/raster -type f \( -name *jpg -o -name *png -o -name *gxm \) -print`; do \ ${INSTALL_DATA} $$i ${STAGEDIR}${LOCALBASE}/${PORTNAME}${VER}/docs/html; \ done for i in `${FIND} ${WRKSRC}/imagery -type f \( -name *jpg -o -name *png -o -name *gxm \) -print`; do \ ${INSTALL_DATA} $$i ${STAGEDIR}${LOCALBASE}/${PORTNAME}${VER}/docs/html; \ done ${INSTALL_SCRIPT} ${WRKSRC}/scripts/wxpyimgview/wxpyimgview_gui.py ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/etc/wxpyimgview_gui.py ${MKDIR} ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/etc/d.polar ${INSTALL_DATA} ${WRKSRC}/scripts/d.polar/ps_defs.eps ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/etc/d.polar # STRIP PART ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/bin/* ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/driver/db/* .for i in clean_temp current_time_s_ms echo i.find lock run r.watershed/seg r.watershed/ram lister/vector lister/cell ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/etc/${i} .endfor ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/tools/g.echo ${STRIP_CMD} ${STAGEDIR}${PREFIX}/${GRASS_INST_DIR}/lib/* # symlink grass7 ${LN} -sf ${PORTNAME}${VER} \ ${STAGEDIR}${PREFIX}/bin/${PORTNAME}${PKGNAMESUFFIX} .include