freebsd-ports/net-p2p/mldonkey/Makefile
Alexey Dokuchaev b51d447684 Update OCaml to version 4.05.0 (this is the last version where strings
are unsafe by default, which is the main motivation why it was picked,
but not the very latest one) and synchronize the rest of the stack and
dependent ports with it, particularly:

  - Update `devel/ocaml-ocamlbuild' to version 0.14.0 and unbreak,
    register build dependency on all ports that require it (should
    be part of USE_OCAML, but we do not want to make any Mk-related
    changes the for time being)
  - Update `devel/ocaml-camlp4' to version 4.05+2
  - Update `devel/ocaml-camlp5' to version 7.07 (the project had
    moved to GitHub)
  - Mark `devel/ocaml-deriving-ocsigen' as BROKEN for now, it is
    very outdated and requires quite a lot of work
  - Update `x11-toolkits/ocaml-labltk' to version 8.06.3

PR:		218333
Exp-run by:	antoine
2019-06-24 10:14:57 +00:00

161 lines
4.4 KiB
Makefile

# Created by: Holger Lamm <holger@e-gitt.net>
# $FreeBSD$
PORTNAME= mldonkey
PORTVERSION= 3.1.5
PORTREVISION= 2
CATEGORIES+= net-p2p
MASTER_SITES= SF
EXTRA_PATCHES= ${FILESDIR}/git-30e77e2:-p1
MAINTAINER?= danfe@FreeBSD.org
COMMENT?= Multi-protocol peer-to-peer client written in OCaml
LICENSE= GPLv2
LICENSE_FILE= ${WRKSRC}/Copying.txt
CONFLICTS= mldonkey{-{core,gui},}-devel-[0-9]*
USES= gmake iconv pkgconfig tar:bzip2
USE_OCAML= yes
USE_OCAML_CAMLP4=yes
GNU_CONFIGURE= yes
CONFIGURE_ARGS= ac_cv_lib_charset_locale_charset=no
ALL_TARGET= opt
MAKE_ENV+= OCAMLRUNPARAM="l=256M"
MAKE_JOBS_UNSAFE= yes
SUB_FILES= pkg-message
###
## Options activation
###
OPTIONS_DEFINE= GD DOCS EXAMPLES
OPTIONS_DEFAULT=CORE GD GUI
OPTIONS_MULTI= CLIENT
OPTIONS_MULTI_CLIENT=CORE GUI
CORE_DESC= Client 'core' support
.include <bsd.port.options.mk>
.if ${PORT_OPTIONS:MGUI} && ${PORT_OPTIONS:MCORE}
CONFLICTS+= mldonkey-core-[0.9]*
CONFLICTS+= mldonkey-gui-[0.9]*
PLIST_SUB+= CORE="" GUI="" GUICORE=""
.else # (${PORT_OPTIONS:MGUI} && ${PORT_OPTIONS:MCORE})
. if !${PORT_OPTIONS:MGUI}
PKGNAMESUFFIX= -core
CONFLICTS+= mldonkey-gui-[0.9]*
CONFIGURE_ARGS+=--disable-gui
PLIST_SUB+= CORE="" GUI="@comment " GUICORE="@comment "
. endif # !${PORT_OPTIONS:MGUI}
. if !${PORT_OPTIONS:MCORE}
PKGNAMESUFFIX= -gui
CONFLICTS+= mldonkey-core-[0.9]*
PLIST_SUB+= CORE="@comment " GUI="" GUICORE="@comment "
. endif # !${PORT_OPTIONS:MCORE}
.endif # ${PORT_OPTIONS:MGUI} && ${PORT_OPTIONS:MCORE}
.if ${PORT_OPTIONS:MGUI}
BUILD_DEPENDS+= ${LOCALBASE}/lib/ocaml/site-lib/lablgtk2/lablrsvg.cma:x11-toolkits/ocaml-lablgtk2
LIB_DEPENDS+= librsvg-2.so:graphics/librsvg2
CONFIGURE_ARGS+=--enable-gui=newgui2
# we don't need lablgtk as RUN dependency, but we need gtk+glib
USE_GNOME= gtk20
.endif # ${PORT_OPTIONS:MGUI}
.if ${PORT_OPTIONS:MCORE}
USE_RC_SUBR= mlnet
SUB_LIST+= SH=${SH:Q}
. if ${PORT_OPTIONS:MGD}
LIB_DEPENDS+= libgd.so:graphics/gd
. else
CONFIGURE_ARGS+=--disable-gd
. endif
.endif
PORTDOCS= Authors.txt Bugs.txt ChangeLog Developers.txt \
Install.txt Todo.txt ed2k_links.txt
# build additional tools
ALL_TARGET+= \
mld_hash
.include <bsd.port.pre.mk>
post-patch:
@${SED} \
-e "s|%%PREFIX%%|${PREFIX}|" \
-e "s|%%SH%%|${SH}|" \
${FILESDIR}/wrapper.sh > \
${WRKDIR}/wrapper.sh
@${REINPLACE_CMD} \
-e 's|$$OCAMLLIB/$$LABLGTK_NAME|$$OCAMLLIB/site-lib/$$LABLGTK_NAME|' \
${WRKSRC}/config/configure
@${REINPLACE_CMD} \
-e 's|+labl|+site-lib/labl|' \
${WRKSRC}/config/Makefile.in
@${REINPLACE_CMD} -E \
-e 's@(#include <)(lablgtk2/)@\1site-lib/\2@' \
${WRKSRC}/src/gtk2/gui/x11/systraystubs.c
# update server.met provider
@${REINPLACE_CMD} -E \
-e 's|http://www.gruk.org/server.met.gz|http://www.jd2k.com/server.met|' \
-e 's|http://www.bluetack.co.uk/config/antip2p.txt|http://www.bluetack.co.uk/config/level1.gz|' \
${WRKSRC}/src/daemon/common/commonOptions.ml \
${WRKSRC}/src/networks/donkey/donkeyServers.ml
@${REINPLACE_CMD} \
-e 's/[u(]int32/&_t/' ${WRKSRC}/src/utils/cdk/zlibstubs.c \
${WRKSRC}/src/utils/cdk/gdstubs.c
@${REINPLACE_CMD} \
-e 's/int64/&_t/' ${WRKSRC}/src/config/unix/os_stubs_c.c \
${WRKSRC}/src/utils/lib/os_stubs.h \
${WRKSRC}/src/utils/lib/fst_hash.c
do-install:
.if ${PORT_OPTIONS:MCORE}
${INSTALL_PROGRAM} ${WRKSRC}/mld_hash ${STAGEDIR}${PREFIX}/bin
${INSTALL_PROGRAM} ${WRKSRC}/mlnet ${STAGEDIR}${PREFIX}/bin/mlnet-real
${INSTALL_SCRIPT} ${WRKDIR}/wrapper.sh ${STAGEDIR}${PREFIX}/bin/mlnet
.if ${PORT_OPTIONS:MEXAMPLES}
@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
${INSTALL_SCRIPT} ${FILESDIR}/kill_mldonkey ${STAGEDIR}${EXAMPLESDIR}
.endif
.endif
.if ${PORT_OPTIONS:MGUI}
${INSTALL_PROGRAM} ${WRKSRC}/mlgui ${STAGEDIR}${PREFIX}/bin
.endif
.if ${PORT_OPTIONS:MGUI} && ${PORT_OPTIONS:MCORE}
${INSTALL_SCRIPT} ${WRKSRC}/distrib/mldonkey_previewer ${STAGEDIR}${PREFIX}/bin
${INSTALL_PROGRAM} ${WRKSRC}/mlguistarter ${STAGEDIR}${PREFIX}/bin
${INSTALL_PROGRAM} ${WRKSRC}/mlnet+gui ${STAGEDIR}${PREFIX}/bin
.endif
.if ${PORT_OPTIONS:MDOCS}
@${MKDIR} ${STAGEDIR}${DOCSDIR}
.for _file in ${PORTDOCS}
${INSTALL_DATA} ${WRKSRC}/distrib/${_file} ${STAGEDIR}${DOCSDIR}
.endfor
.endif
install-user: extract
.if !defined(LANGUAGE)
@${ECHO_MSG} "Please call as: make install-user LANGUAGE=<lang>"
@${ECHO_MSG} "with <lang> one of en,de,fr,fr.noaccents,sp !"
.else
@${CP} ${WRKSRC}/distrib/i18n/gui_messages.ini.${LANGUAGE}\
${HOME}/.mldonkey_gui_messages.ini
.endif
.include <bsd.port.post.mk>