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