This file is indexed.

/usr/bin/faust2max6 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
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
#! /bin/bash -e

#####################################################################
#                                                                   #
#               Compiles Faust programs to Max6 externals			#
#				using double precision samples						#
#               (c) Grame, 2012                                     #
#                                                                   #
#####################################################################

POLY=""
NOPATCH="0"

# path to max SDK

SDK=/usr/local/include/c74support/
MAXINC=$SDK/max-includes
MSPINC=$SDK/msp-includes

createInfoPList() {
	(
	echo '<?xml version="1.0" encoding="UTF-8"?>'
	echo '<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">'
	echo '<plist version="1.0">'
	echo '<dict>'
	echo '	<key>CFBundleExecutable</key>'
	echo "	<string>$1</string>"
	echo '	<key>CFBundleName</key>'
	echo "	<string>$1</string>"
	echo '	<key>CFBundlePackageType</key>'
	echo '	<string>iLaX</string>'
	echo '</dict>'
	echo '</plist>'
	) > "$2"
}

#-------------------------------------------------------------------
# Set Faust include path

if [ -f $FAUST_LIB_PATH/music.lib ]
then
  FAUSTLIB=$FAUST_LIB_PATH
elif [ -f /usr/local/share/faust/music.lib ]
then
  FAUSTLIB=/usr/local/share/faust
  JSFILE_PATH="ui.js"
elif [ -f /usr/share/faust/music.lib ]
then
  FAUSTLIB=/usr/share/faust
  JSFILE_PATH="ui.js"
else
  echo "ERROR : $0 cannot find Faust library dir (usually /usr/local/share/faust)"
fi


#-------------------------------------------------------------------
# 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 = "-help" ] || [ $p = "-h" ]; then
        echo "faust2max6  [-poly] [-midi] <file.dsp>"
        echo "Use '-poly' to produce a polyphonic DSP, ready to be used with MIDI events"
        echo "Use '-midi' to activate MIDI control"
        echo "Use '-nopatch' to deactivate patch generation"
    fi
    
    if [ "$p" = -omp ]; then
        if [[ $CXX == "icpc" ]]; then
            OMP="-openmp"
        else
            OMP="-fopenmp"
        fi
    fi
  
    if [ "$p" = -icc ]; then
    	ignore=" "
    elif [ $p = "-poly" ]; then
        POLYDEFS="-DPOLY"
        POLY="POLY1"
    elif [ $p = "-midi" ]; then
        MIDIDEFS="-DMIDICTRL"
    elif [ $p = "-nopatch" ]; then
        NOPATCH="1"
    elif [ ${p:0:1} = "-" ]; then
	    OPTIONS="$OPTIONS $p"
	elif [[ -f "$p" ]]; then
	    FILES="$FILES $p"
	else
	    OPTIONS="$OPTIONS $p"        
	fi
done

#-------------------------------------------------------------------
# Check darwin specifics
#
if [[ $(uname) == Darwin ]]; then
    SPEC="-spec macx-g++"
    EXT="~.mxo"
fi

#-------------------------------------------------------------------
# compile the *.dsp files
#
PATH=$PATH:/usr/local/bin

for p in $FILES; do

    CC=g++

    CUR=$(pwd)
    f=$(basename "$p")
	SRCDIR=$(dirname "$p")

    # creates a temporary dir 
    TDR=$(mktemp -d faust.XXX)
	TMP="$TDR/${f%.dsp}"
    mkdir "$TMP"

    # compile faust to c++
	faust -i -double -a $FAUSTLIB/max-msp/max-msp64.cpp $OPTIONS "$SRCDIR/$f" -o "$TMP/${f%.dsp}.cpp" || exit

    # compile c++ to binary
    (
	cd "$TMP"
	install -d "${f%.dsp}$EXT/Contents/MacOS"

	$CC -Wfatal-errors -framework Carbon $POLYDEFS $MIDIDEFS -I ../../ -I$MAXINC -I$MSPINC $FAUSTTOOLSFLAGS -F$MAXINC -F$MSPINC -framework MaxAPI -framework MaxAudioAPI -arch i386 -arch x86_64  -Wl,-U,_object_new_imp -Wl,-U,_object_method_imp -O3 -mfpmath=sse -msse -msse2 -msse3 -ffast-math -Wl,-Y,1455 -bundle "${f%.dsp}.cpp" -o "${f%.dsp}$EXT/Contents/MacOS/${f%.dsp}~"
    ) > /dev/null || exit

    rm -rf "$SRCDIR/${f%.dsp}$EXT"

    # Keep .dsp and .cpp files in the plug-in
    cp "$TMP/${f%.dsp}.cpp" "$TMP/${f%.dsp}$EXT"   
    cp "$SRCDIR/$f" "$TMP/${f%.dsp}$EXT"

    cp -r "$TMP/${f%.dsp}$EXT" "$SRCDIR/${f%.dsp}$EXT"
    rm -rf "$TDR"

    # collect binary file name for FaustGIDE
    BINARIES="$BINARIES$SRCDIR/${f%.dsp}$EXT;"
    
    # create Max patch
    if [ "$NOPATCH" = "0" ]; then
        if [ "$POLY" = "POLY1" ]; then
            cat $FAUSTLIB/max-msp/wrapper-poly.maxpat > ${f%.dsp}-temp1.maxpat
        else
            cat $FAUSTLIB/max-msp/wrapper.maxpat > ${f%.dsp}-temp1.maxpat
        fi
        sed -e "s/DSP_NAME/"${f%.dsp}"~/g" ${f%.dsp}-temp1.maxpat >> ${f%.dsp}-temp2.maxpat
        sed -e "s/UI_FILE/"$JSFILE_PATH"/g" ${f%.dsp}-temp2.maxpat > ${f%.dsp}.maxpat

        # copy JavaScript UI file
        cp $FAUSTLIB/max-msp/ui.js .
        
        rm ${f%.dsp}-temp1.maxpat
        rm ${f%.dsp}-temp2.maxpat
    fi
    
done

echo $BINARIES