freebsd-ports/net-p2p/mldonkey/Makefile
Mario Sergio Fujikawa Ferreira 4ab78381c3 o Fix: "Namely, eMule (and compatible) clients use 'rotational
chunkrequest' scheme, where each REQCHUNKS packet contains one
  new chunk and two older chunks. This can lead to duplicate data
  being sent by mldonkeys, if a rotational chunkrequest scheme is
  used when communicating with them." [1]
  http://hydranode.com/docs/ed2k/ed2kproto.php#upload
o Bump PORTREVISION

Submitted by:	spiral voice <spiralvoice@hotmail.com> (MLDonkey developer) [1]
2007-02-10 09:13:39 +00:00

201 lines
5.4 KiB
Makefile

# New ports collection makefile for: mldonkey
# Date created: 21 August 2002
# Whom: Holger Lamm <holger@e-gitt.net>
#
# $FreeBSD$
#
PORTNAME= mldonkey
PORTVERSION= 2.8.2
PORTREVISION= 1
CATEGORIES+= net-p2p
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE_EXTENDED} \
${MASTER_SITE_SAVANNAH}
MASTER_SITE_SUBDIR= ${PORTNAME}
MAINTAINER?= lioux@FreeBSD.org
COMMENT?= A OCAML client for multiple peer-to-peer networks
BUILD_DEPENDS= ocamlc:${PORTSDIR}/lang/ocaml
NO_LATEST_LINK= yes
CONFLICTS= mldonkey-[0-9]*
USE_BZIP2= yes
USE_ICONV= yes
USE_RC_SUBR= mlnet
USE_AUTOTOOLS= autoconf:259:env
GNU_CONFIGURE= yes
USE_GMAKE= yes
ALL_TARGET= opt
CONFIGURE_ARGS+=\
--enable-ocamlver=3 \
--with-libiconv-prefix=${LOCALBASE}
CONFIGURE_ENV+= \
NEWCXX="${CXX}" \
CPPFLAGS="${CPPFLAGS} -I${LOCALBASE}/include" \
LDFLAGS="${LDFLAGS} -L${LOCALBASE}/lib" \
PTHREAD_CFLAGS="${PTHREAD_CFLAGS}" \
PTHREAD_LIBS="${PTHREAD_LIBS}"
###
## Library dependency handling
###
.if !exists(/usr/lib/libbz2.so)
LIB_DEPENDS+= bz2:${PORTSDIR}/archivers/bzip2
.endif
###
## Options activation
###
.if defined(WITHOUT_GUI)
.if defined(WITHOUT_CORE)
IGNORE= cannot install: you defined both WITHOUT_GUI and WITHOUT_CORE. I think I'll do nothing
.endif
# have no 'without-' flag
CONFIGURE_ARGS+=--disable-gui
PLIST_SUB+= CORE="" GUI="@comment " GUICORE="@comment "
CONFLICTS+= mldonkey-core-[0.9]* mldonkey-core-stable-[0.9]* \
mldonkey-devel-[0-9]*
PKGNAMESUFFIX= -core
.else
PLIST_SUB+= GUI=""
CONFLICTS+= mldonkey-gui-[0.9]*
.if !defined(WITHOUT_CORE)
CONFLICTS+= mldonkey-devel-[0-9]*
.endif
BUILD_DEPENDS+= ${LOCALBASE}/lib/ocaml/lablgtk2/lablrsvg.cma:${PORTSDIR}/x11-toolkits/ocaml-lablgtk2
LIB_DEPENDS+= rsvg-2.2:${PORTSDIR}/graphics/librsvg2
CONFIGURE_ARGS+=--enable-gui=newgui2
# we don't need lablgtk as RUN dependency, but we need gtk+glib
USE_GNOME= gtk20
MAKE_ENV+= OCAMLRUNPARAM="l=256M"
.if defined(WITHOUT_CORE)
PKGNAMESUFFIX= -gui
PLIST_SUB+= CORE="@comment " GUICORE="@comment "
.else
PLIST_SUB+= CORE="" GUICORE=""
.endif
.endif
.if defined(WITHOUT_GD)
CONFIGURE_ARGS+=--disable-gd
.elif !defined(WITHOUT_CORE)
LIB_DEPENDS+= gd.4:${PORTSDIR}/graphics/gd
.endif
DOCFILES= Authors.txt Bugs.txt ChangeLog Developers.txt \
Install.txt Todo.txt ed2k_links.txt
PORTDOCS= ${DOCFILES}
PKGMESSAGE= ${WRKDIR}/pkg-message
# build additional tools
ALL_TARGET+= \
mld_hash
.include <bsd.port.pre.mk>
# Fix build on 4.x
.if ${OSVERSION} < 500000
USE_GCC= 3.4
.endif
# FreeBSD has reentrant dns code
.if ( ((${OSVERSION} >= 504102) && (${OSVERSION} < 600000)) || (${OSVERSION} >= 600029) )
PTHREAD_CFLAGS+= -D_REENTRANT
.endif
### Development version
## Thus, we will use non standard threading library
## We will switch from libpthread to libthr which should produce
## better results in some scenarios. You can read more at pthread(3)
.if defined(WITH_THR_THREAD_MODEL)
PTHREAD_CFLAGS= -D_THREAD_SAFE
PTHREAD_LIBS= -lthr
.endif
pre-everything::
.if !defined(WITHOUT_GUI) && !defined(WITHOUT_CORE)
@${ECHO_MSG} "You can disable the GUI by defining WITHOUT_GUI."
@${ECHO_MSG} "You can disable the CORE by defining WITHOUT_CORE."
@${ECHO_MSG}
.endif
.ifndef(WITH_THR_THREAD_MODEL)
@${ECHO_MSG} "Define WITH_THR_THREAD_MODEL to switch from"
@${ECHO_MSG} "pthread to thr threading model which could produce better"
@${ECHO_MSG} "results in some scenarios. Use at your discretion."
.endif
post-patch:
@${SED} -e "s|%%PREFIX%%|${PREFIX}|" ${FILESDIR}/wrapper.sh > \
${WRKDIR}/wrapper.sh
@${REINPLACE_CMD} -E \
-e 's|%%AUTOCONF%%|${AUTOCONF}|' \
${BUILD_WRKSRC}/config/Makefile.in
# update server.met provider
.for file in \
src/daemon/common/commonOptions.ml \
src/networks/donkey/donkeyServers.ml
@${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}/${file}
.endfor
pre-configure:
@cd ${WRKSRC}/config && ${AUTOCONF}
post-configure:
@${REINPLACE_CMD} -E \
-e 's|^(PTHREAD_CFLAGS[^=]*=).*$$|\1${PTHREAD_CFLAGS}|' \
-e 's|^(PTHREAD_LIBS[^=]*=).*$$|\1${PTHREAD_LIBS}|' \
${BUILD_WRKSRC}/config/Makefile.config
pre-install:
.if exists(${.CURDIR}/pkg-message)
@${SED} -e 's,%%DOCSDIR%%,${DOCSDIR},' \
< ${.CURDIR}/pkg-message > ${PKGMESSAGE}
.elif exists(${MASTERDIR}/pkg-message)
@${SED} -e 's,%%DOCSDIR%%,${DOCSDIR},' \
< ${MASTERDIR}/pkg-message > ${PKGMESSAGE}
.endif
do-install:
.ifndef(WITHOUT_CORE)
@${INSTALL_PROGRAM} ${WRKSRC}/mld_hash ${PREFIX}/bin
@${INSTALL_PROGRAM} ${WRKSRC}/mlnet ${PREFIX}/bin/mlnet-real
@${INSTALL_SCRIPT} ${WRKDIR}/wrapper.sh ${PREFIX}/bin/mlnet
@${MKDIR} ${EXAMPLESDIR}
@${INSTALL_SCRIPT} ${FILESDIR}/kill_mldonkey ${EXAMPLESDIR}
.endif
.ifndef(WITHOUT_GUI)
@${INSTALL_PROGRAM} ${WRKSRC}/mlgui ${PREFIX}/bin
.endif
.ifndef(WITHOUT_CORE && WITHOUT_GUI)
@${INSTALL_SCRIPT} ${WRKSRC}/distrib/mldonkey_previewer ${PREFIX}/bin
@${INSTALL_PROGRAM} ${WRKSRC}/mlguistarter ${PREFIX}/bin
@${INSTALL_PROGRAM} ${WRKSRC}/mlnet+gui ${PREFIX}/bin
.endif
.ifndef(NOPORTDOCS)
@${MKDIR} ${DOCSDIR}
.for _file in ${DOCFILES}
@${INSTALL_DATA} ${WRKSRC}/distrib/${_file} ${DOCSDIR}
.endfor
.endif
post-install:
@${CAT} ${PKGMESSAGE}
install-user: extract
.if !defined(LANG)
@${ECHO_MSG} "Please call as: make install-user LANG=<lang>"
@${ECHO_MSG} "with <lang> one of en,de,fr,fr.noaccents,sp !"
.else
@${CP} ${WRKSRC}/distrib/i18n/gui_messages.ini.${LANG}\
${HOME}/.mldonkey_gui_messages.ini
.endif
.include <bsd.port.post.mk>