1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-18 00:10:04 +00:00
freebsd-ports/audio/csound/Makefile
Yuri Victorovich c0ad875984 audio/stk: Update 4.6.2 → 5.0.0
Also add audio backend options.

Reported by:	portscout
2023-08-09 09:03:07 -07:00

196 lines
6.2 KiB
Makefile

PORTNAME= csound
DISTVERSION= 6.15.0
PORTREVISION= 10
CATEGORIES= audio lang
MAINTAINER= yuri@FreeBSD.org
COMMENT= Sound synthesizer
WWW= https://csound.com/
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
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/libaec
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>