aboutsummaryrefslogtreecommitdiffstats
path: root/audio/deadbeef/Makefile
blob: 557e77c3f6d1121ecf574231d9307aae494e0e03 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
# Created by: Veniamin Gvozdikov <vg@FreeBSD.org>
# $FreeBSD$

PORTNAME=   deadbeef
PORTVERSION=    0.7.2
PORTREVISION=   6
CATEGORIES= audio
MASTER_SITES=   SF/${PORTNAME}/

MAINTAINER= vg@FreeBSD.org
COMMENT=    Ultimate music player for Unix-like systems

LICENSE=    GPLv2 LGPL21
LICENSE_COMB=   dual

GNU_CONFIGURE=  yes
USES=       compiler:c11 desktop-file-utils execinfo gettext gmake iconv libtool \
        pkgconfig shebangfix tar:bzip2
USE_LDCONFIG=   yes
CONFIGURE_ARGS= --disable-alsa --disable-nullout --disable-static
CPPFLAGS+=  -I../dumb/dumb-kode54/include -I../../plugins/libmp4ff \
        -I../../plugins/gme/game-music-emu-0.6pre \
        -I./sidplay-libs/libsidplay/include/sidplay \
        -I${LOCALBASE}/include
LIBS+=      -L${LOCALBASE}/lib -lexecinfo -lintl
USE_GNOME=  intltool
INSTALLS_ICONS= yes
SHEBANG_FILES=  yasmwrapper.sh
INSTALL_TARGET= install-strip

BROKEN_aarch64=     Fails to compile: error in backend: Do not know how to split this operator's operand!
BROKEN_armv6=       Fails to compile: error: invalid conversion between vector type and integer type

OPTIONS_DEFINE= PULSEAUDIO GUI VFS LASTFM ART SUPEREQ SID FFAP VTX \
        HOTKEYS OGG FFMPEG FLAC SNDFILE WAVPACK CDDA GME DUMB NOTIFY \
        MUSEPACK WILDMIDI TTA DCA AAC MMS SHN SHELLEXEC NLS M3U \
        PSF ADPLUG DSP MONO2STEREO CONVERTER VFS_ZIP ALAC PLTBROWSER \
        WMA SC68
OPTIONS_DEFAULT=MAD GTK2 VFS LASTFM ART SUPEREQ SID FFAP VTX HOSTKEYS \
        OGG FLAC SNDFILE WAVPACK CDDA GME DUMB NOTIFY MUSEPACK \
        WILDMIDI TTA DCA AAC MMS SHN SHELLEXEC M3U PSF ADPLUG DSP \
        MONO2STEREO CONVERTER VFS_ZIP HOTKEYS ALAC PLTBROWSER WMA SC68

PULSEAUDIO_DESC=    PulseAudio output plugin (unsupported)
GUI_DESC=       Standard GUI plugin
VFS_DESC=       HTTP streaming VFS plugin
LASTFM_DESC=        Last.fm/Libre.fm scrobbler plugin
ART_DESC=       Cover artwork loader plugin
SUPEREQ_DESC=       SuperEQ DSP plugin (equalizer)
SID_DESC=       Commodore 64 SID music player plugin
FFAP_DESC=      ${APE_DESC}
VTX_DESC=       VTX ZX-Spectrum music player plugin
ADPLUG_DESC=        AdPlug audio format (OPL2/OPL3) support
HOTKEYS_DESC=       Local and global hotkeys support
GME_DESC=       Chiptune music support (based on GME)
DUMB_DESC=      D.U.M.B. plugin for MOD, S3M, etc.
NOTIFY_DESC=        OSD notification support in GTKUI plugin
WILDMIDI_DESC=      WildMIDI synthesizer plugin
SC68_DESC=      sc68 Atari ST And Amiga player
SHN_DESC=       Shorten waveform encoder support
SHELLEXEC_DESC=     Shell commands execution plugin
M3U_DESC=       M3U and PLS playlist format support
PSF_DESC=       AOSDK-based PSF(,QSF,SSF,DSF) plugin
DSP_DESC=       High-quality sample rate conversion support
MONO2STEREO_DESC=   Mono to stereo converter DSP plugin
CONVERTER_DESC=     Plugin for converting files from/to any formats
VFS_ZIP_DESC=       Play files directly from ZIP archives
PLTBROWSER_DESC=    Playlist browser GUI plugin

OPTIONS_SUB=        yes
OPTIONS_RADIO+=     GUI
OPTIONS_RADIO_GUI=  GTK2 GTK3
GUI_IMPLIES=        CONVERTER

OPTIONS_GROUP+=     MP3
OPTIONS_GROUP_MP3=  MAD MPG123

MAD_LIB_DEPENDS=    libmad.so:audio/libmad
MAD_CONFIGURE_OFF=  --disable-libmad

MPG123_LIB_DEPENDS= libmpg123.so:audio/mpg123
MPG123_CONFIGURE_OFF=   --disable-libmpg123

PULSEAUDIO_LIB_DEPENDS= libpulse.so:audio/pulseaudio
PULSEAUDIO_CONFIGURE_OFF=   --disable-pulse

GTK2_USE=       gnome=gtk20,glib20
GTK2_CONFIGURE_OFF= --disable-gtk2
GTK2_CONFIGURE_ON=  --enable-gtk2
GTK2_VARS=      GTK_VER=2
GTK2_IMPLIES=       GUI

GTK3_USE=       gnome=gtk30
GTK3_CONFIGURE_OFF= --disable-gtk3
GTK3_CONFIGURE_ON=  --enable-gtk3
GTK3_VARS=      GTK_VER=3
GTK3_IMPLIES=       GUI

PLIST_SUB+=     GTK_VER=${GTK_VER}

GUI_CONFIGURE_OFF=  --disable-gtk2 --disable-gtk3
GUI_LIB_DEPENDS=    libjansson.so:devel/jansson

VFS_LIB_DEPENDS=    libcurl.so:ftp/curl
VFS_CONFIGURE_OFF=  --disable-vfs-curl

LASTFM_LIB_DEPENDS= libcurl.so:ftp/curl
LASTFM_CONFIGURE_OFF=   --disable-lfm

ART_LIB_DEPENDS=    libcurl.so:ftp/curl \
            libImlib2.so:graphics/imlib2
ART_USES=       jpeg
ART_CONFIGURE_OFF=  --disable-artwork --disable-artwork-imlib2
ART_IMPLIES=        VFS

SUPEREQ_CONFIGURE_OFF=  --disable-supereq

SID_CONFIGURE_OFF=  --disable-sid

FFAP_BUILD_DEPENDS= yasm:devel/yasm
FFAP_CONFIGURE_OFF= --disable-ffap

VTX_CONFIGURE_OFF=  --disable-vtx

ADPLUG_CONFIGURE_OFF=   --disable-adplug

HOTKEYS_CONFIGURE_OFF=  --disable-hotkeys

OGG_LIB_DEPENDS=    libvorbis.so:audio/libvorbis
OGG_CONFIGURE_OFF=  --disable-vorbis

FFMPEG_LIB_DEPENDS= libavcodec.so:multimedia/ffmpeg \
        libavformat.so:multimedia/ffmpeg \
        libavutil.so:multimedia/ffmpeg
FFMPEG_CONFIGURE_ENABLE=    ffmpeg

FLAC_LIB_DEPENDS=   libFLAC.so:audio/flac
FLAC_CONFIGURE_OFF= --disable-flac

SNDFILE_LIB_DEPENDS=    libsndfile.so:audio/libsndfile
SNDFILE_CONFIGURE_OFF=  --disable-sndfile

WAVPACK_LIB_DEPENDS=    libwavpack.so:audio/wavpack
WAVPACK_CONFIGURE_OFF=  --disable-wavpack

CDDA_LIB_DEPENDS=   libcdio.so:sysutils/libcdio \
            libcddb.so:audio/libcddb
CDDA_CONFIGURE_OFF= --disable-cdda

GME_CONFIGURE_OFF=  --disable-gme

DUMB_CONFIGURE_OFF= --disable-dumb

NOTIFY_LIB_DEPENDS= libdbus-glib-1.so:devel/dbus-glib
NOTIFY_CONFIGURE_OFF=   --disable-notify

MUSEPACK_CONFIGURE_OFF= --disable-musepack

WILDMIDI_RUN_DEPENDS=   ${LOCALBASE}/share/freepats/crude.cfg:audio/freepats
WILDMIDI_CONFIGURE_OFF= --disable-wildmidi

TTA_CONFIGURE_OFF=  --disable-tta

DCA_CONFIGURE_OFF=  --disable-dca

AAC_LIB_DEPENDS=    libfaad.so:audio/faad
AAC_CONFIGURE_OFF=  --disable-aac

MMS_CONFIGURE_OFF=  --disable-mms

SC68_CONFIGURE_ON=  --enable-sc68
SC68_CONFIGURE_OFF= --disable-sc68

SHN_CONFIGURE_OFF=  --disable-shn

SHELLEXEC_CONFIGURE_ARGS+=  --disable-shellexec

NLS_CONFIGURE_OFF=  --disable-nls

M3U_CONFIGURE_OFF=  --disable-m3u

SPF_CONFIGURE_OFF=  --disable-psf

DSP_LIB_DEPENDS=    libsamplerate.so:audio/libsamplerate
DSP_CONFIGURE_OFF=  --disable-src

MONO2STEREO_CONFIGURE_OFF=  --disable-mono2stereo

CONVERTER_CONFIGURE_OFF=    --disable-converter

VFS_ZIP_LIB_DEPENDS=    libzip.so:archivers/libzip
VFS_ZIP_CONFIGURE_OFF=  --disable-vfs-zip

ALAC_CONFIGURE_OFF=     --disable-alac

PLTBROWSER_CONFIGURE_OFF=   --disable-pltbrowser

WMA_CONFIGURE_OFF=      --disable-wma

.include <bsd.port.options.mk>

.if !${PORT_OPTIONS:MGTK2} && !${PORT_OPTIONS:MGTK3}
PORT_OPTIONS:=          ${PORT_OPTIONS:NGUI}
.endif

.if !${PORT_OPTIONS:MMAD} && !${PORT_OPTIONS:MMPG123}
CONFIGURE_ARGS+=    --disable-mp3
PLIST_SUB+=     MP3="@comment "
.else
PLIST_SUB+=     MP3=""
.endif

post-patch:
# Do not link to libsupc++ which may be PIC-unsafe (breaks 64-bit arches)
    @${REINPLACE_CMD} -e 's, -lsupc++,,' \
        ${WRKSRC}/plugins/adplug/Makefile.in \
        ${WRKSRC}/plugins/gme/Makefile.in \
        ${WRKSRC}/plugins/sid/Makefile.in \
        ${WRKSRC}/plugins/supereq/Makefile.in
    @${REINPLACE_CMD} -e 's,/etc/timidity++/timidity-freepats.cfg:/etc/timidity/freepats.cfg:/etc/timidity/,${LOCALBASE}/share/,' \
        ${WRKSRC}/plugins/wildmidi/wildmidiplug.c
    @${REINPLACE_CMD} \
        -e '/HAVE_OGG" = "yes"/ {n; n; /HAVE_VORBISPLUGIN=yes/d;}' \
        ${WRKSRC}/configure
# Fix build with libzip-1.0
    @${REINPLACE_CMD} 's,zip_file_t,zip_file_DB,g' \
        ${WRKSRC}/plugins/vfs_zip/vfs_zip.c

.include <bsd.port.mk>