Changeset View
Changeset View
Standalone View
Standalone View
Mk/Uses/elixir.mk
Show All 26 Lines | |||||
# MIX_EXTRA_DIRS - List of extra directories to be installed in ELIXIR_APP_ROOT | # MIX_EXTRA_DIRS - List of extra directories to be installed in ELIXIR_APP_ROOT | ||||
# MIX_EXTRA_FILES - List of extra files to be installed in ELIXIR_APP_ROOT | # MIX_EXTRA_FILES - List of extra files to be installed in ELIXIR_APP_ROOT | ||||
# | # | ||||
# MAINTAINER: olgeni@FreeBSD.org | # MAINTAINER: olgeni@FreeBSD.org | ||||
.if !defined(_INCLUDE_USES_ELIXIR_MK) | .if !defined(_INCLUDE_USES_ELIXIR_MK) | ||||
_INCLUDE_USES_ELIXIR_MK=yes | _INCLUDE_USES_ELIXIR_MK=yes | ||||
.if !empty(elixir_ARGS) | . if !empty(elixir_ARGS) | ||||
IGNORE= USES=elixir does not require args | IGNORE= USES=elixir does not require args | ||||
.endif | . endif | ||||
ELIXIR_APP_NAME?= ${PORTNAME} | ELIXIR_APP_NAME?= ${PORTNAME} | ||||
ELIXIR_LIB_ROOT?= ${LOCALBASE}/lib/elixir/lib | ELIXIR_LIB_ROOT?= ${LOCALBASE}/lib/elixir/lib | ||||
ELIXIR_APP_ROOT?= ${PREFIX}/lib/elixir/lib/${ELIXIR_APP_NAME} | ELIXIR_APP_ROOT?= ${PREFIX}/lib/elixir/lib/${ELIXIR_APP_NAME} | ||||
ELIXIR_HIDDEN?= "^${ELIXIR_APP_NAME}$$" | ELIXIR_HIDDEN?= "^${ELIXIR_APP_NAME}$$" | ||||
ELIXIR_LOCALE?= en_US.UTF-8 | ELIXIR_LOCALE?= en_US.UTF-8 | ||||
MIX_CMD?= ${LOCALBASE}/bin/mix | MIX_CMD?= ${LOCALBASE}/bin/mix | ||||
MIX_COMPILE?= ${SETENV} ${MIX_ENV} LANG=${ELIXIR_LOCALE} LC_ALL=${ELIXIR_LOCALE} MIX_ENV=${MIX_ENV_NAME} ELIXIR_HIDDEN=${ELIXIR_HIDDEN} ${MIX_CMD} ${MIX_TARGET} | MIX_COMPILE?= ${SETENV} ${MIX_ENV} LANG=${ELIXIR_LOCALE} LC_ALL=${ELIXIR_LOCALE} MIX_ENV=${MIX_ENV_NAME} ELIXIR_HIDDEN=${ELIXIR_HIDDEN} ${MIX_CMD} ${MIX_TARGET} | ||||
MIX_REWRITE?= | MIX_REWRITE?= | ||||
MIX_BUILD_DEPS?= | MIX_BUILD_DEPS?= | ||||
MIX_RUN_DEPS?= | MIX_RUN_DEPS?= | ||||
MIX_DOC_DIRS?= | MIX_DOC_DIRS?= | ||||
MIX_DOC_FILES?= README.md | MIX_DOC_FILES?= README.md | ||||
MIX_ENV?= | MIX_ENV?= | ||||
MIX_ENV_NAME?= prod | MIX_ENV_NAME?= prod | ||||
MIX_BUILD_NAME?= prod | MIX_BUILD_NAME?= prod | ||||
MIX_TARGET?= compile | MIX_TARGET?= compile | ||||
MIX_EXTRA_APPS?= | MIX_EXTRA_APPS?= | ||||
MIX_EXTRA_DIRS?= | MIX_EXTRA_DIRS?= | ||||
MIX_EXTRA_FILES?= | MIX_EXTRA_FILES?= | ||||
BUILD_DEPENDS+= elixir:lang/elixir | BUILD_DEPENDS+= elixir:lang/elixir | ||||
RUN_DEPENDS+= elixir:lang/elixir | RUN_DEPENDS+= elixir:lang/elixir | ||||
.for depend in ${MIX_BUILD_DEPS} | . for depend in ${MIX_BUILD_DEPS} | ||||
BUILD_DEPENDS+= ${depend:T}>=0:${depend} | BUILD_DEPENDS+= ${depend:T}>=0:${depend} | ||||
.endfor | . endfor | ||||
.for depend in ${MIX_RUN_DEPS} | . for depend in ${MIX_RUN_DEPS} | ||||
RUN_DEPENDS+= ${depend:T}>=0:${depend} | RUN_DEPENDS+= ${depend:T}>=0:${depend} | ||||
.endfor | . endfor | ||||
.if !target(do-build) | . if !target(do-build) | ||||
do-build: | do-build: | ||||
.if ${MIX_REWRITE} != "" | . if ${MIX_REWRITE} != "" | ||||
@${REINPLACE_CMD} -i '' -E -e "s@\{.*(only|optional): .*},?@@" ${WRKSRC}/mix.exs | @${REINPLACE_CMD} -i '' -E -e "s@\{.*(only|optional): .*},?@@" ${WRKSRC}/mix.exs | ||||
.for depend in ${MIX_BUILD_DEPS} | . for depend in ${MIX_BUILD_DEPS} | ||||
@if [ $$(echo ${depend:T} | sed -e "s/erlang-//") != ${depend:T} ]; then \ | @if [ $$(echo ${depend:T} | sed -e "s/erlang-//") != ${depend:T} ]; then \ | ||||
${REINPLACE_CMD} -i '' -E -e "s@\{ *:(${depend:T:S/erlang-//}), *(github:|\").*} *,?@@" ${WRKSRC}/mix.exs; \ | ${REINPLACE_CMD} -i '' -E -e "s@\{ *:(${depend:T:S/erlang-//}), *(github:|\").*} *,?@@" ${WRKSRC}/mix.exs; \ | ||||
else \ | else \ | ||||
${REINPLACE_CMD} -i '' -E -e "s@\{ *:(${depend:T:S/elixir-//}), *(github:|\").*}@{ :\1, path: \"${ELIXIR_LIB_ROOT}/\\1\", compile: false }@" ${WRKSRC}/mix.exs; \ | ${REINPLACE_CMD} -i '' -E -e "s@\{ *:(${depend:T:S/elixir-//}), *(github:|\").*}@{ :\1, path: \"${ELIXIR_LIB_ROOT}/\\1\", compile: false }@" ${WRKSRC}/mix.exs; \ | ||||
fi | fi | ||||
.endfor | . endfor | ||||
.endif | . endif | ||||
@${RM} ${WRKSRC}/mix.lock | @${RM} ${WRKSRC}/mix.lock | ||||
@cd ${WRKSRC} && ${MIX_COMPILE} | @cd ${WRKSRC} && ${MIX_COMPILE} | ||||
.for app in ${MIX_EXTRA_APPS} | . for app in ${MIX_EXTRA_APPS} | ||||
@${RM} ${WRKSRC}/${app}/mix.lock | @${RM} ${WRKSRC}/${app}/mix.lock | ||||
@cd ${WRKSRC}/${app} && ${MIX_COMPILE} | @cd ${WRKSRC}/${app} && ${MIX_COMPILE} | ||||
.endfor | . endfor | ||||
.endif # .if !target(do-build) | . endif # .if !target(do-build) | ||||
.if !target(do-install) | . if !target(do-install) | ||||
do-install: | do-install: | ||||
@${MKDIR} ${STAGEDIR}${ELIXIR_APP_ROOT} | @${MKDIR} ${STAGEDIR}${ELIXIR_APP_ROOT} | ||||
@${MKDIR} ${STAGEDIR}${ELIXIR_APP_ROOT}/lib | @${MKDIR} ${STAGEDIR}${ELIXIR_APP_ROOT}/lib | ||||
cd ${WRKSRC}/lib && ${COPYTREE_SHARE} \* ${STAGEDIR}${ELIXIR_APP_ROOT}/lib | cd ${WRKSRC}/lib && ${COPYTREE_SHARE} \* ${STAGEDIR}${ELIXIR_APP_ROOT}/lib | ||||
@${MKDIR} ${STAGEDIR}${ELIXIR_APP_ROOT}/ebin | @${MKDIR} ${STAGEDIR}${ELIXIR_APP_ROOT}/ebin | ||||
${INSTALL_DATA} ${WRKSRC}/_build/${MIX_BUILD_NAME}/lib/${ELIXIR_APP_NAME}/ebin/* \ | ${INSTALL_DATA} ${WRKSRC}/_build/${MIX_BUILD_NAME}/lib/${ELIXIR_APP_NAME}/ebin/* \ | ||||
${STAGEDIR}${ELIXIR_APP_ROOT}/ebin | ${STAGEDIR}${ELIXIR_APP_ROOT}/ebin | ||||
if [ -d ${WRKSRC}/priv ]; then \ | if [ -d ${WRKSRC}/priv ]; then \ | ||||
${MKDIR} ${STAGEDIR}${ELIXIR_APP_ROOT}/priv; \ | ${MKDIR} ${STAGEDIR}${ELIXIR_APP_ROOT}/priv; \ | ||||
cd ${WRKSRC}/priv && ${COPYTREE_SHARE} \* ${STAGEDIR}${ELIXIR_APP_ROOT}/priv; \ | cd ${WRKSRC}/priv && ${COPYTREE_SHARE} \* ${STAGEDIR}${ELIXIR_APP_ROOT}/priv; \ | ||||
fi | fi | ||||
.if ${MIX_DOC_FILES} != "" || ${MIX_DOC_DIRS} != "" | . if ${MIX_DOC_FILES} != "" || ${MIX_DOC_DIRS} != "" | ||||
@${MKDIR} ${STAGEDIR}${DOCSDIR} | @${MKDIR} ${STAGEDIR}${DOCSDIR} | ||||
.endif | . endif | ||||
.for file in ${MIX_DOC_FILES} | . for file in ${MIX_DOC_FILES} | ||||
${INSTALL_DATA} ${WRKSRC}/${file} ${STAGEDIR}${DOCSDIR} | ${INSTALL_DATA} ${WRKSRC}/${file} ${STAGEDIR}${DOCSDIR} | ||||
.endfor | . endfor | ||||
.for dir in ${MIX_DOC_DIRS} | . for dir in ${MIX_DOC_DIRS} | ||||
cd ${WRKSRC} && ${COPYTREE_SHARE} ${dir} ${STAGEDIR}${DOCSDIR} | cd ${WRKSRC} && ${COPYTREE_SHARE} ${dir} ${STAGEDIR}${DOCSDIR} | ||||
.endfor | . endfor | ||||
.for file in ${MIX_EXTRA_FILES} | . for file in ${MIX_EXTRA_FILES} | ||||
${INSTALL_DATA} ${WRKSRC}/${file} ${STAGEDIR}${ELIXIR_APP_ROOT} | ${INSTALL_DATA} ${WRKSRC}/${file} ${STAGEDIR}${ELIXIR_APP_ROOT} | ||||
.endfor | . endfor | ||||
.for dir in ${MIX_EXTRA_DIRS} | . for dir in ${MIX_EXTRA_DIRS} | ||||
@${MKDIR} ${STAGEDIR}${ELIXIR_APP_ROOT}/${dir} | @${MKDIR} ${STAGEDIR}${ELIXIR_APP_ROOT}/${dir} | ||||
cd ${WRKSRC}/${dir} && ${COPYTREE_SHARE} . ${STAGEDIR}${ELIXIR_APP_ROOT}/${dir} | cd ${WRKSRC}/${dir} && ${COPYTREE_SHARE} . ${STAGEDIR}${ELIXIR_APP_ROOT}/${dir} | ||||
.endfor | . endfor | ||||
.for app in ${MIX_EXTRA_APPS} | . for app in ${MIX_EXTRA_APPS} | ||||
${INSTALL_DATA} ${WRKSRC}/${app}/_build/${MIX_BUILD_NAME}/lib/*/ebin/* \ | ${INSTALL_DATA} ${WRKSRC}/${app}/_build/${MIX_BUILD_NAME}/lib/*/ebin/* \ | ||||
${STAGEDIR}${ELIXIR_APP_ROOT}/ebin | ${STAGEDIR}${ELIXIR_APP_ROOT}/ebin | ||||
.endfor | . endfor | ||||
.endif # .if !target(do-install) | . endif # .if !target(do-install) | ||||
.endif #!defined(_INCLUDE_USES_ELIXIR_MK) | .endif #!defined(_INCLUDE_USES_ELIXIR_MK) |