freebsd-ports/audio/csound/Makefile
Stefan Eßer b7f05445c0 Add WWW entries to port Makefiles
It has been common practice to have one or more URLs at the end of the
ports' pkg-descr files, one per line and prefixed with "WWW:". These
URLs should point at a project website or other relevant resources.

Access to these URLs required processing of the pkg-descr files, and
they have often become stale over time. If more than one such URL was
present in a pkg-descr file, only the first one was tarnsfered into
the port INDEX, but for many ports only the last line did contain the
port specific URL to further information.

There have been several proposals to make a project URL available as
a macro in the ports' Makefiles, over time.

This commit implements such a proposal and moves one of the WWW: entries
of each pkg-descr file into the respective port's Makefile. A heuristic
attempts to identify the most relevant URL in case there is more than
one WWW: entry in some pkg-descr file. URLs that are not moved into the
Makefile are prefixed with "See also:" instead of "WWW:" in the pkg-descr
files in order to preserve them.

There are 1256 ports that had no WWW: entries in pkg-descr files. These
ports will not be touched in this commit.

The portlint port has been adjusted to expect a WWW entry in each port
Makefile, and to flag any remaining "WWW:" lines in pkg-descr files as
deprecated.

Approved by:		portmgr (tcberner)
2022-09-07 23:10:59 +02:00

196 lines
6.2 KiB
Makefile

PORTNAME= csound
DISTVERSION= 6.15.0
PORTREVISION= 6
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>