Tweak net-p2p/mldonkey version 3.1.5_2
[dports.git] / net-p2p / mldonkey / Makefile
1 # Created by: Holger Lamm <holger@e-gitt.net>
2 # $FreeBSD$
3
4 PORTNAME=       mldonkey
5 PORTVERSION=    3.1.5
6 PORTREVISION=   2
7 CATEGORIES+=    net-p2p
8 MASTER_SITES=   SF
9
10 EXTRA_PATCHES=  ${FILESDIR}/git-30e77e2:-p1
11
12 MAINTAINER?=    danfe@FreeBSD.org
13 COMMENT?=       Multi-protocol peer-to-peer client written in OCaml
14
15 LICENSE=        GPLv2
16 LICENSE_FILE=   ${WRKSRC}/Copying.txt
17
18 CONFLICTS=      mldonkey{-{core,gui},}-devel-[0-9]*
19
20 USES=           gmake iconv pkgconfig tar:bzip2
21 USE_OCAML=      yes
22 USE_OCAML_CAMLP4=yes
23 GNU_CONFIGURE=  yes
24 CONFIGURE_ARGS= ac_cv_lib_charset_locale_charset=no
25 ALL_TARGET=     opt
26 MAKE_ENV+=      OCAMLRUNPARAM="l=256M"
27 MAKE_JOBS_UNSAFE=       yes
28
29 SUB_FILES=      pkg-message
30
31 ###
32 ## Options activation
33 ###
34
35 OPTIONS_DEFINE= GD DOCS EXAMPLES
36 OPTIONS_DEFAULT=CORE GD GUI
37 OPTIONS_MULTI=  CLIENT
38 OPTIONS_MULTI_CLIENT=CORE GUI
39 CORE_DESC=      Client 'core' support
40
41 .include <bsd.port.options.mk>
42
43 .if ${PORT_OPTIONS:MGUI} && ${PORT_OPTIONS:MCORE}
44 CONFLICTS+=     mldonkey-core-[0.9]*
45 CONFLICTS+=     mldonkey-gui-[0.9]*
46
47 PLIST_SUB+=     CORE="" GUI="" GUICORE=""
48 .else # (${PORT_OPTIONS:MGUI} && ${PORT_OPTIONS:MCORE})
49
50 . if !${PORT_OPTIONS:MGUI}
51 PKGNAMESUFFIX=  -core
52
53 CONFLICTS+=     mldonkey-gui-[0.9]*
54
55 CONFIGURE_ARGS+=--disable-gui
56 PLIST_SUB+=     CORE="" GUI="@comment " GUICORE="@comment "
57 . endif # !${PORT_OPTIONS:MGUI}
58
59 . if !${PORT_OPTIONS:MCORE}
60 PKGNAMESUFFIX=  -gui
61
62 CONFLICTS+=     mldonkey-core-[0.9]*
63
64 PLIST_SUB+=     CORE="@comment " GUI="" GUICORE="@comment "
65 . endif # !${PORT_OPTIONS:MCORE}
66
67 .endif # ${PORT_OPTIONS:MGUI} && ${PORT_OPTIONS:MCORE}
68
69 .if ${PORT_OPTIONS:MGUI}
70 BUILD_DEPENDS+= ${LOCALBASE}/lib/ocaml/site-lib/lablgtk2/lablrsvg.cma:x11-toolkits/ocaml-lablgtk2
71 LIB_DEPENDS+=   librsvg-2.so:graphics/librsvg2
72
73 CONFIGURE_ARGS+=--enable-gui=newgui2
74 # we don't need lablgtk as RUN dependency, but we need gtk+glib
75 USE_GNOME=      gtk20
76 .endif # ${PORT_OPTIONS:MGUI}
77
78 .if ${PORT_OPTIONS:MCORE}
79 USE_RC_SUBR=    mlnet
80 SUB_LIST+=      SH=${SH:Q}
81
82 . if ${PORT_OPTIONS:MGD}
83 LIB_DEPENDS+=   libgd.so:graphics/gd
84 . else
85 CONFIGURE_ARGS+=--disable-gd
86 . endif
87 .endif
88
89 PORTDOCS=       Authors.txt Bugs.txt ChangeLog Developers.txt \
90                 Install.txt Todo.txt ed2k_links.txt
91
92 # build additional tools
93 ALL_TARGET+=    \
94                 mld_hash
95
96 .include <bsd.port.pre.mk>
97
98 post-patch:
99         @${SED} \
100                 -e "s|%%PREFIX%%|${PREFIX}|" \
101                 -e "s|%%SH%%|${SH}|" \
102                 ${FILESDIR}/wrapper.sh > \
103                 ${WRKDIR}/wrapper.sh
104         @${REINPLACE_CMD} \
105                 -e 's|$$OCAMLLIB/$$LABLGTK_NAME|$$OCAMLLIB/site-lib/$$LABLGTK_NAME|' \
106                 ${WRKSRC}/config/configure
107         @${REINPLACE_CMD} \
108                 -e 's|+labl|+site-lib/labl|' \
109                 ${WRKSRC}/config/Makefile.in
110         @${REINPLACE_CMD} -E \
111                 -e 's@(#include <)(lablgtk2/)@\1site-lib/\2@'  \
112                 ${WRKSRC}/src/gtk2/gui/x11/systraystubs.c
113 # update server.met provider
114         @${REINPLACE_CMD} -E \
115                 -e 's|http://www.gruk.org/server.met.gz|http://www.jd2k.com/server.met|' \
116                 -e 's|http://www.bluetack.co.uk/config/antip2p.txt|http://www.bluetack.co.uk/config/level1.gz|' \
117                 ${WRKSRC}/src/daemon/common/commonOptions.ml \
118                 ${WRKSRC}/src/networks/donkey/donkeyServers.ml
119         @${REINPLACE_CMD} \
120                 -e 's/[u(]int32/&_t/' ${WRKSRC}/src/utils/cdk/zlibstubs.c
121         @${REINPLACE_CMD} \
122                 -e 's/int64/&_t/' ${WRKSRC}/src/config/unix/os_stubs_c.c \
123                 ${WRKSRC}/src/utils/lib/os_stubs.h
124
125 do-install:
126 .if ${PORT_OPTIONS:MCORE}
127         ${INSTALL_PROGRAM} ${WRKSRC}/mld_hash ${STAGEDIR}${PREFIX}/bin
128         ${INSTALL_PROGRAM} ${WRKSRC}/mlnet ${STAGEDIR}${PREFIX}/bin/mlnet-real
129         ${INSTALL_SCRIPT} ${WRKDIR}/wrapper.sh ${STAGEDIR}${PREFIX}/bin/mlnet
130 .if ${PORT_OPTIONS:MEXAMPLES}
131         @${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
132         ${INSTALL_SCRIPT} ${FILESDIR}/kill_mldonkey ${STAGEDIR}${EXAMPLESDIR}
133 .endif
134 .endif
135 .if ${PORT_OPTIONS:MGUI}
136         ${INSTALL_PROGRAM} ${WRKSRC}/mlgui ${STAGEDIR}${PREFIX}/bin
137 .endif
138 .if ${PORT_OPTIONS:MGUI} && ${PORT_OPTIONS:MCORE}
139         ${INSTALL_SCRIPT} ${WRKSRC}/distrib/mldonkey_previewer ${STAGEDIR}${PREFIX}/bin
140         ${INSTALL_PROGRAM} ${WRKSRC}/mlguistarter ${STAGEDIR}${PREFIX}/bin
141         ${INSTALL_PROGRAM} ${WRKSRC}/mlnet+gui ${STAGEDIR}${PREFIX}/bin
142 .endif
143 .if ${PORT_OPTIONS:MDOCS}
144         @${MKDIR} ${STAGEDIR}${DOCSDIR}
145 .for _file in ${PORTDOCS}
146         ${INSTALL_DATA} ${WRKSRC}/distrib/${_file} ${STAGEDIR}${DOCSDIR}
147 .endfor
148 .endif
149
150 install-user: extract
151 .if !defined(LANGUAGE)
152         @${ECHO_MSG} "Please call as:  make install-user LANGUAGE=<lang>"
153         @${ECHO_MSG} "with <lang> one of en,de,fr,fr.noaccents,sp !"
154 .else
155         @${CP} ${WRKSRC}/distrib/i18n/gui_messages.ini.${LANGUAGE}\
156                 ${HOME}/.mldonkey_gui_messages.ini
157 .endif
158
159 .include <bsd.port.post.mk>