# $NetBSD: Makefile,v 1.2 2015/02/24 17:51:19 fhajny Exp $

DISTNAME=		riak-1.4.10
CATEGORIES=		databases
MASTER_SITES=		http://s3.amazonaws.com/downloads.basho.com/riak/1.4/${PKGVERSION}/

MAINTAINER=		fhajny@NetBSD.org
HOMEPAGE=		http://www.basho.com/products_riak_overview.php
COMMENT=		Distributed, highly available data store
LICENSE=		apache-2.0

BUILD_DEPENDS+=		git-base-[0-9]*:../../devel/git-base

USE_LANGUAGES=		c c++
USE_LIBTOOL=		yes
USE_TOOLS=		gmake

MAKE_JOBS_SAFE=		no

.include "../../mk/bsd.prefs.mk"

.include "../../wip/erlang15/Makefile.versions"
.include "Makefile.versions"

.for depname depver in ${RIAK_VERSIONS}
VERSION.${depname}=	${depver}
PLIST_SUBST+=		VERSION.${depname}=${depver}
PRINT_PLIST_AWK+=	{if ($$0 ~ /\/$(depname)-$(depver)\//) {sub(/\/$(depname)-$(depver)\//,"/$(depname)-$${VERSION.$(depname)}/", $$0);}}
.endfor

BUILD_DEFS+=		VARBASE RIAK_USER RIAK_GROUP
BUILD_DEFS+=		RIAK_DATA RIAK_LOG

RIAK_USER?=		riak
RIAK_GROUP?=		${RIAK_USER}
RIAK_DATA?=		${VARBASE}/db/riak
RIAK_LOG?=		${VARBASE}/log/riak

PKG_GROUPS+=		${RIAK_GROUP}
PKG_USERS+=		${RIAK_USER}:${RIAK_GROUP}
PKG_HOME.${RIAK_USER}=	${RIAK_DATA}
PKG_GECOS.${RIAK_USER}=	Riak daemon user
PKG_SHELL.${RIAK_USER}=	${SH}

OWN_DIRS+=		${RIAK_DATA} ${RIAK_LOG}
OWN_DIRS_PERMS+=	${RIAK_DATA} ${RIAK_USER} ${RIAK_GROUP} 0770
OWN_DIRS_PERMS+=	${RIAK_LOG} ${RIAK_USER} ${RIAK_GROUP} 0770

PKG_SYSCONFSUBDIR=	riak
CONF_FILES+=		share/examples/riak/app.config ${PKG_SYSCONFDIR}/app.config
CONF_FILES+=		share/examples/riak/vm.args ${PKG_SYSCONFDIR}/vm.args

BUILD_TARGET=		rel

PLIST_VARS+=		dtrace

PLIST_SRC=		PLIST
.if exists(${PKGDIR}/PLIST.${OPSYS})
PLIST_SRC+=		PLIST.${OPSYS}
.endif
.if !empty(PKG_BUILD_OPTIONS.erlang:Mdtrace)
PLIST.dtrace=		yes
.endif

SUBST_CLASSES+=		pkgsrc
SUBST_STAGE.pkgsrc=	pre-build
SUBST_MESSAGE.pkgsrc=	Fixing pkgsrc locations and tools
SUBST_FILES.pkgsrc=	rel/vars.config
SUBST_VARS.pkgsrc=	PREFIX PKG_SYSCONFDIR PKGVERSION_NOREV
SUBST_VARS.pkgsrc+=	RIAK_USER RIAK_DATA RIAK_LOG

CHECK_INTERPRETER_SKIP=	riak/erts-${VERSION.erts}/bin/* \
			riak/lib/bitcask-${VERSION.bitcask}/priv/Run-eunit-loop.expect \
			riak/lib/riaknostic/riaknostic

CHECK_PORTABILITY_SKIP=	deps/riak_search/tests/riak_search/run_all.sh \
			tests/riak_search/run_all.sh

MAKE_ENV+=		PATCH=${PATCH:Q}

INSTALL_ENV+=		REPO=riak
INSTALL_ENV+=		PKG_VERSION=${PKGVERSION_NOREV}
INSTALL_ENV+=		OSNAME=${OPSYS}
INSTALL_ENV+=		ARCH=${MACHINE_ARCH}

FILES_SUBST+=		ERTS_VERSION=${VERSION.erts}
FILES_SUBST+=		RIAK_USER=${RIAK_USER}
FILES_SUBST+=		RIAK_GROUP=${RIAK_GROUP}
FILES_SUBST+=		RIAK_DATA=${RIAK_DATA}

# Helper target to regenerate Makefile.versions
update-deps: build
	(${ECHO} '# $$NetBSD: Makefile,v 1.2 2015/02/24 17:51:19 fhajny Exp $$'; \
	 ${ECHO} '# This file is generated by "${MAKE} update-deps", post-build'; \
	 ${ECHO}; \
	 cd ${WRKSRC}/deps && \
	 ${GREP} vsn */ebin/*.app */apps/*/ebin/*.app | \
	 ${SED} -e 's|^.*/\(.*\).app:.*"\(.*\)"},|RIAK_VERSIONS+=\1 \2|' | \
	 ${SORT}; ) \
	 > ${PKGDIR}/Makefile.versions

post-extract:
	cp ${FILESDIR}/js-src-jslock.c.patch \
	  ${WRKSRC}/deps/erlang_js/c_src/patches
	cp ${FILESDIR}/snappy-libtool.patch \
	  ${WRKSRC}/deps/eleveldb/c_src/
	${CHMOD} -R u=rwX,g=rX,o=rX ${WRKSRC}
	${CHOWN} -R ${ROOT_USER}:${ROOT_GROUP} ${WRKSRC}

do-install:
	${RM} -f ${WRKSRC}/rel/riak/lib/runtime_tools-${VERSION.runtime_tools}/priv/obj/dtrace_user.o
	${MKDIR} ${WRKSRC}/deps/node_package/priv/templates/pkgsrc
	${INSTALL_DATA} ${FILESDIR}/Makefile \
	  ${WRKSRC}/deps/node_package/priv/templates/pkgsrc
	cd ${WRKSRC}/deps/node_package/priv/templates/pkgsrc && \
	   ${SETENV} ${INSTALL_ENV} ${MAKE_ENV} \
	   RIAK_PATH=${WRKSRC} VERSION_STRING=${PKGVERSION_NOREV} \
           ${MAKE_PROGRAM} ${MAKE_FLAGS} ${INSTALL_MAKE_FLAGS}

.include "../../devel/ncurses/buildlink3.mk"
BUILDLINK_DEPMETHOD.erlang=	build
.include "../../wip/erlang15/buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
