/usr/bin/faust2vsti is in faust 0.9.95~repack1-2.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
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 | #!/bin/bash
#####################################################################
# #
# Compiles Faust programs to VST (OSX version) #
# (c) Grame, 2012 #
# #
#####################################################################
# VST specific sdk files
#------------------------
VSTSDK="/usr/local/include/vstsdk2.4"
EXT=".vst"
INCLUDES="-I$VSTSDK/ -I$VSTSDK/public.sdk/source/vst2.x/"
LIBS=" -framework Carbon -framework CoreServices"
SOURCES=" $VSTSDK/public.sdk/source/vst2.x/audioeffect.cpp $VSTSDK/public.sdk/source/vst2.x/audioeffectx.cpp $VSTSDK/public.sdk/source/vst2.x/vstplugmain.cpp"
CXXFLAGS='-Wfatal-errors -O3 -mfpmath=sse -msse -msse2 -msse3 -ffast-math'
createInfoPList() {
(
echo '<?xml version="1.0" encoding="UTF-8"?>' > info.plist
echo '<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">'
echo '<plist version="1.0">'
echo '<dict>'
echo ' <key>CFBundleDevelopmentRegion</key>'
echo ' <string>English</string>'
echo ' <key>CFBundleExecutable</key>'
echo " <string>$1</string>"
echo ' <key>CFBundleIdentifier</key>'
echo " <string>$1</string>"
echo ' <key>CFBundleInfoDictionaryVersion</key>'
echo ' <string>6.0</string>'
echo ' <key>CFBundleName</key>'
echo " <string>$1</string>"
echo ' <key>CFBundlePackageType</key>'
echo ' <string>BNDL</string>'
echo ' <key>CFBundleShortVersionString</key>'
echo ' <string>2.4</string>'
echo ' <key>CFBundleSignature</key>'
echo ' <string>????</string>'
echo ' <key>CFBundleVersion</key>'
echo ' <string>2.4</string>'
echo ' <key>CSResourcesFileMapped</key>'
echo ' <true/>'
echo '</dict>'
echo '</plist>'
) > "$2"
}
#-------------------------------------------------------------------
# Analyze command arguments :
# faust options -> OPTIONS
# if -omp : -openmp or -fopenmp -> OPENMP
# existing *.dsp files -> FILES
#
# PHASE 1 : Look for -icc option to force use of intel icc (actually icpc)
# without having to configure CXX and CXXFLAGS
for p in $@; do
if [ "$p" = -icc ]; then
CXX=icpc
CXXFLAGS='-O3 -xT -ftz -fno-alias -fp-model fast=2'
fi
done
#PHASE 2 : dispatch command arguments
for p in $@; do
if [ "$p" = -omp ]; then
if [[ $CXX == "icpc" ]]; then
OMP="-openmp"
else
OMP="-fopenmp"
fi
fi
if [ "$p" = -icc ]; then
ignore=" "
elif [ $p = "-osc" ]; then
OSCDEFS="-DOSCCTRL -lOSCFaust"
elif [ $p = "-httpd" ]; then
HTTPDEFS="-DHTTPCTRL -lHTTPDFaust -lmicrohttpd"
elif [ $p = "-arch32" ]; then
PROCARCH="-m32 -L/usr/lib32"
elif [ $p = "-arch64" ]; then
PROCARCH="-m64"
elif [ ${p:0:1} = "-" ]; then
OPTIONS="$OPTIONS $p"
elif [[ -f "$p" ]]; then
FILES="$FILES $p"
else
OPTIONS="$OPTIONS $p"
fi
done
#-------------------------------------------------------------------
# compile the *.dsp files
#
PATH=$PATH:/usr/local/bin
for p in $FILES; do
CUR=$(pwd)
f=$(basename "$p")
SRCDIR=$(dirname "$p")
# creates a temporary dir
TMP=$(mktemp -d faust.XXX)
# compile faust to c++
faust -i -a vst.cpp $OPTIONS "$SRCDIR/$f" -o "$TMP/${f%.dsp}.cpp" || exit
# compile c++ to binary
(
cd "$TMP"
install -d "${f%.dsp}$EXT/Contents/MacOS"
if [[ $(uname) == "Darwin" ]]; then
g++ -arch i386 $CXXFLAGS $FAUSTTOOLSFLAGS $INCLUDES -bundle $PROCARCH -o "${f%.dsp}$EXT/Contents/MacOS/${f%.dsp}.i386" "${f%.dsp}.cpp" $SOURCES
g++ -arch x86_64 $CXXFLAGS $FAUSTTOOLSFLAGS $INCLUDES -bundle $PROCARCH -o "${f%.dsp}$EXT/Contents/MacOS/${f%.dsp}.x86_64" "${f%.dsp}.cpp" $SOURCES
lipo -create "${f%.dsp}$EXT/Contents/MacOS/${f%.dsp}.i386" "${f%.dsp}$EXT/Contents/MacOS/${f%.dsp}.x86_64" -output "${f%.dsp}$EXT/Contents/MacOS/${f%.dsp}"
else
g++ -shared $CXXFLAGS $FAUSTTOOLSFLAGS $INCLUDES -o "${f%.dsp}.so" "${f%.dsp}.cpp" $SOURCES
fi
)> /dev/null || exit
createInfoPList "${f%.dsp}" "${f%.dsp}$EXT/Contents/Info.plist"
echo "BNDL????" > "${f%.dsp}$EXT/Contents/PkgInfo"
rm -rf "$SRCDIR/${f%.dsp}$EXT"
cp -r "$TMP/${f%.dsp}$EXT" "$SRCDIR/${f%.dsp}$EXT"
rm -rf "$TMP"
# collect binary file name for FaustGIDE
BINARIES="$BINARIES$SRCDIR/${f%.dsp}$EXT;"
done
echo $BINARIES
|