opnsense-ports/audio/csound/Makefile

190 lines
6.0 KiB
Makefile

# Created by: trevor
# $FreeBSD$
PORTNAME= csound
DISTVERSION= 6.12.2-83
DISTVERSIONSUFFIX= -gdf2edd269
PORTREVISION= 1
CATEGORIES= audio lang
MAINTAINER= yuri@FreeBSD.org
COMMENT= Sound synthesizer
LICENSE= LGPL21+
LICENSE_FILE= ${WRKSRC}/COPYING
BUILD_DEPENDS= boost-libs>0:devel/boost-libs \
swig3.0:devel/swig30 \
gmm++>0:math/gmm++
LIB_DEPENDS= libsamplerate.so:audio/libsamplerate \
libsndfile.so:audio/libsndfile
USE_HARDENING= pie:off relro:off
USES= alias bison cmake compiler:c++11-lib eigen:3 localbase ncurses python:2.7
USE_GITHUB= yes
USE_LDCONFIG= yes
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
BINARY_ALIAS= swig=swig3.0
LDFLAGS+= -lexecinfo
SUB_FILES= pkg-message
OPTIONS_DEFINE= CURL FLTK HDF5 NLS OPENMP PORTAUDIO PULSEAUDIO
OPTIONS_GROUP= PLUGINS
OPTIONS_GROUP_PLUGINS= BUCHLA CHUA DSSI EXCITER FAUST FLUIDSYNTH IMAGE JACK LUA LINALG OSC P5GLOVE PADSYNTH PLATEREV PVSGENDY SCANSYN SELECT SERIAL STACK STK 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 PLUGINS
OPTIONS_SUB= yes
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
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_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= 60
FAUST_BUILD_DEPENDS= faust>0:audio/faust
FAUST_RUN_DEPENDS= faust>0:audio/faust \
llvm${FAUST_LLVM_VERSION}>0:devel/llvm${FAUST_LLVM_VERSION}
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 opcodes
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 opcodes
LUA_LIB_DEPENDS= libluajit-5.1.so:lang/luajit
LUA_CMAKE_OFF= -DBUILD_CSOUND_AC_LUA_INTERFACE:BOOL=OFF \
-DBUILD_LUA_INTERFACE:BOOL=OFF \
-DBUILD_LUA_OPCODES:BOOL=OFF
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
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
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-4.6.0.so:audio/stk
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/local|${LOCALBASE}|' \
${WRKSRC}/InOut/CMakeLists.txt
@${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
.for i in Engine/auxfd.c H/prototyp.h OOps/diskin2.c OOps/dumpf.c \
Opcodes/partials.c Top/csound.c
@${REINPLACE_CMD} -e \
's|\([[:blank:]]fd\)\(close\)|\1__\2|' ${WRKSRC}/${i}
.endfor
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>