summaryrefslogtreecommitdiff
path: root/audio/csound/Makefile
blob: 8ab6dc4eca5ada6bf14e837f01ff7c5507a25743 (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
# Created by: trevor

PORTNAME=	csound
DISTVERSION=	6.15.0
PORTREVISION=	3
CATEGORIES=	audio lang

MAINTAINER=	yuri@FreeBSD.org
COMMENT=	Sound synthesizer

LICENSE=	LGPL21+
LICENSE_FILE=	${WRKSRC}/COPYING

BUILD_DEPENDS=	boost-libs>0:devel/boost-libs \
		swig:devel/swig \
		gmm++>0:math/gmm++
LIB_DEPENDS=	libsamplerate.so:audio/libsamplerate \
		libsndfile.so:audio/libsndfile

USES=		alias bison cmake compiler:c++11-lib cpe eigen:3 localbase ncurses python:build # is python needed: https://github.com/csound/csound/issues/1437 ?
USE_GITHUB=	yes
USE_LDCONFIG=	yes

CPE_VENDOR=	csounds

CONFLICTS_INSTALL= clearsilver go-cs libextractor outguess

CFLAGS_powerpc=	-maltivec
CFLAGS_powerpcspe=	-DPFFFT_SIMD_DISABLE
CFLAGS_powerpc64=	-maltivec
CMAKE_ARGS=	-DBUILD_CSOUNDVST:BOOL=OFF \
		-DBUILD_PD_CLASS:BOOL=OFF \
		-DPYTHON_MODULE_INSTALL_DIR:PATH="${PYTHONPREFIX_SITELIBDIR}" \
		-DOPSYS:STRING="${OPSYS}"
CMAKE_OFF=	USE_ALSA BUILD_JAVA_INTERFACE BUILD_TESTS
SSP_UNSAFE=	yes
LDFLAGS+=	-lexecinfo

SUB_FILES=	pkg-message

OPTIONS_DEFINE=		CURL FLTK HDF5 NLS OPENMP PORTAUDIO PULSEAUDIO
OPTIONS_GROUP=		OPCODES # list is in Opcodes/CMakeLists.txt
OPTIONS_GROUP_OPCODES=	BUCHLA CHUA COUNTER DSSI EXCITER FAUST FLUIDSYNTH IMAGE JACK LUA LINALG MP3OUT OSC P5GLOVE PADSYNTH PLATEREV PVSGENDY PYTHON SCANSYN SELECT SERIAL STACK STK VST4CS WIIMOTE # Opcodes/CMakeLists.txt, Opcodes/stk/CMakeLists.txt
OPTIONS_DEFAULT=	FLTK OPENMP
OPTIONS_DEFAULT+=	BUCHLA CHUA DSSI EXCITER FAUST IMAGE JACK LINALG OSC P5GLOVE PADSYNTH PLATEREV SCANSYN SELECT SERIAL STACK STK # for OPCODES
OPTIONS_SUB=		yes

OPCODES_DESC=		Build/install opcodes

BUCHLA_DESC=		Build the Buchla filter opcode
BUCHLA_CMAKE_BOOL=	BUILD_BUCHLA_OPCODES

CHUA_DESC=		Build the chua opcodes
CHUA_CMAKE_BOOL=	BUILD_CHUA_OPCODES

COUNTER_DESC=		Build the serial opcode
COUNTER_CMAKE_BOOL=	BUILD_COUNTER_OPCODES

CURL_CMAKE_BOOL=	USE_CURL # see https://github.com/csound/csound/issues/1067
CURL_LIB_DEPENDS=	libcurl.so:ftp/curl

DSSI_DESC=		Build DSSI opcodes
DSSI_BUILD_DEPENDS=	dssi>0:audio/dssi
DSSI_LIB_DEPENDS=	libdssialsacompat.so:audio/libdssialsacompat
DSSI_RUN_DEPENDS=	dssi>0:audio/dssi
DSSI_CMAKE_BOOL=	BUILD_DSSI_OPCODES
DSSI_CFLAGS=		-isystem ${LOCALBASE}/include/dssi

EXCITER_DESC=		Build the exciter opcode
EXCITER_CMAKE_BOOL=	BUILD_EXCITER_OPCODES

FLTK_DESC=		Build FLTK plugin and GUI
FLTK_USES=		xorg
FLTK_USE=		XORG=ice,sm,x11,xext
FLTK_LIB_DEPENDS=	libfltk.so:x11-toolkits/fltk
FLTK_CMAKE_ON=		-DBUILD_WINSOUND:BOOL=ON
FLTK_CMAKE_OFF=		-DBUILD_CSOUND_AC:BOOL=OFF \
			-DBUILD_VIRTUAL_KEYBOARD:BOOL=OFF \
			-DUSE_FLTK:BOOL=OFF

FAUST_DESC=		Build the Faust opcodes
FAUST_USES=		ssl
FAUST_LLVM_VERSION=	11 # should be the same as in audio/faust
FAUST_LIB_DEPENDS=	libfaust.so:audio/faust
FAUST_CMAKE_BOOL=	BUILD_FAUST_OPCODES
FAUST_CMAKE_ON=		-DFAUST_LLVM_VERSION:STRING=${FAUST_LLVM_VERSION}

FLUIDSYNTH_DESC=	Building FluidSynth opcodes
FLUIDSYNTH_LIB_DEPENDS=	libfluidsynth.so:audio/fluidsynth
FLUIDSYNTH_CMAKE_BOOL=	BUILD_FLUID_OPCODES
FLUIDSYNTH_BROKEN=	FluidSynth 2.x is broken upstream: https://github.com/csound/csound/issues/1078#issuecomment-441459803

HDF5_DESC=		Build HDF5 read/write plugin
HDF5_LIB_DEPENDS=	libhdf5.so:science/hdf5 \
			libsz.so:science/szip
HDF5_CMAKE_BOOL=	BUILD_HDF5_OPCODES

JACK_DESC=		Build the JACK related opcodes
JACK_LIB_DEPENDS=	libjack.so:audio/jack
JACK_CMAKE_BOOL=	BUILD_JACK_OPCODES USE_JACK

LINALG_DESC=		Build the linear algebra opcodes
LINALG_CMAKE_BOOL=	BUILD_LINEAR_ALGEBRA_OPCODES
LINALG_CXXFLAGS=	-DGMM_VERSION=x # workaround based on https://github.com/csound/csound/issues/1069#issuecomment-439648756

LUA_DESC=		Build Lua Interface and module
LUA_LIB_DEPENDS=	libluajit-5.1.so:lang/luajit
LUA_CMAKE_BOOL=		BUILD_CSOUND_AC_LUA_INTERFACE BUILD_LUA_INTERFACE BUILD_LUA_OPCODES

NLS_USES=		gettext
NLS_CMAKE_OFF=		-DGETTEXT_MSGFMT_EXECUTABLE:FILEPATH="" \
			-DGETTEXT_MSGMERGE_EXECUTABLE:FILEPATH="" \
			-DLIBINTL_LIBRARY:FILEPATH="" \
			-DUSE_GETTEXT:BOOL=OFF

OPENMP_CMAKE_BOOL=	USE_OPEN_MP

MP3OUT_DESC=		Build MP3OUT opcodes
MP3OUT_CMAKE_BOOL=	BUILD_MP3OUT_OPCODE

OSC_DESC=		Build OSC opcodes
OSC_LIB_DEPENDS=	liblo.so:audio/liblo
OSC_CMAKE_BOOL=		BUILD_OSC_OPCODES

PADSYNTH_DESC=		Build the Padsynth opcode
PADSYNTH_CMAKE_BOOL=	BUILD_PADSYNTH_OPCODES

IMAGE_DESC=		Build Image opcodes
IMAGE_LIB_DEPENDS=	libpng.so:graphics/png
IMAGE_CMAKE_BOOL=	BUILD_IMAGE_OPCODES

P5GLOVE_DESC=		Build PortAudio I/O module
P5GLOVE_CMAKE_BOOL=	BUILD_P5GLOVE_OPCODES

PORTAUDIO_DESC=		Build PortAudio I/O module
PORTAUDIO_LIB_DEPENDS=	libportaudio.so:audio/portaudio
PORTAUDIO_CMAKE_BOOL=	USE_PORTAUDIO

PULSEAUDIO_DESC=	Build PulseAudio I/O module
PULSEAUDIO_LIB_DEPENDS=	libpulse-simple.so:audio/pulseaudio
PULSEAUDIO_CMAKE_BOOL=	USE_PULSEAUDIO

PLATEREV_DESC=		Build the platerev opcode
PLATEREV_CMAKE_BOOL=	BUILD_PLATEREV_OPCODES

PVSGENDY_DESC=		Build the pvsgendy opcode
PVSGENDY_CMAKE_BOOL=	BUILD_PVSGENDY_OPCODE

PYTHON_DESC=		Build the Python opcodes
PYTHON_USES=		python
PYTHON_CMAKE_BOOL=	BUILD_PYTHON_OPCODES

SCANSYN_DESC=		Build the select opcodes
SCANSYN_CMAKE_BOOL=	BUILD_SCANSYN_OPCODES

SELECT_DESC=		Build the select opcode
SELECT_CMAKE_BOOL=	BUILD_SELECT_OPCODE

SERIAL_DESC=		Build the serial opcode
SERIAL_CMAKE_BOOL=	BUILD_SERIAL_OPCODES

STACK_DESC=		Build the stack opcodes
STACK_CMAKE_BOOL=	BUILD_STACK_OPCODES

STK_DESC=		Build the stk opcodes
STK_CMAKE_BOOL=		BUILD_STK_OPCODES
STK_LIB_DEPENDS=	libstk.so:audio/stk

VST4CS_DESC=		Build the vst4cs opcodes
VST4CS_CMAKE_BOOL=	BUILD_VST4CS_OPCODES

WIIMOTE_DESC=		Build the Wiimote opcodes
WIIMOTE_CMAKE_BOOL=	BUILD_WIIMOTE_OPCODES
WIIMOTE_BROKEN=		Need to port wiiuse: https://github.com/rpavlik/wiiuse

post-patch:
	@${REINPLACE_CMD} -e \
		's|/usr/include/Python2.7|${PYTHON_INCLUDEDIR}| ; \
		 s|/usr/local|${LOCALBASE}| ; \
		 /linuxjoystick/s|^|#| ; \
		 s| dl)|)|' \
		${WRKSRC}/Opcodes/CMakeLists.txt
	@${REINPLACE_CMD} -e \
		'/CMAKE_SYSTEM_NAME/s|"Linux"|"${OPSYS}"|' \
		${WRKSRC}/Frontends/CMakeLists.txt
	@${REINPLACE_CMD} -e \
		's| mixer)| csmixer)|' \
		${WRKSRC}/util/CMakeLists.txt

post-install:
	@${LN} -sf libcsnd6.so.6.0 ${STAGEDIR}${PREFIX}/lib/libcsnd6.so.6
	@${LN} -sf libcsound64.so.6.0 ${STAGEDIR}${PREFIX}/lib/libcsound64.so.6

post-install-FLTK-on:
	@${LN} -sf libCsoundAC.so.6.0 ${STAGEDIR}${PREFIX}/lib/libCsoundAC.so.6

.include <bsd.port.mk>