src/capmt.c \
src/krypt.c \
src/ffdecsa/ffdecsa_interface.c \
- src/ffdecsa/ffdecsa_int.c \
- src/ffdecsa/ffdecsa_mmx.c \
- src/ffdecsa/ffdecsa_sse2.c \
+ src/ffdecsa/ffdecsa_int.c
+
+SRCS-${CONFIG_MMX} += src/ffdecsa/ffdecsa_mmx.c
+SRCS-${CONFIG_SSE2} += src/ffdecsa/ffdecsa_sse2.c
LDFLAGS += -lcrypt
EOF
$CC 2>/dev/null $TMPDIR/1.c -o $TMPDIR/1.bin
}
+
+
+checkccarg() {
+ cat >$TMPDIR/1.c <<EOF
+int main() {
+ return 0;
+}
+EOF
+ $CC 2>/dev/null $TMPDIR/1.c -o $TMPDIR/1.bin $1
+}
if [ "x$CC" != "x" ]; then
die
fi
+
+if checkccarg "-mmmx"; then
+ enable mmx
+fi
+
+if checkccarg "-msse2"; then
+ enable sse2
+fi
+
echo >>${CONFIG_MAK} $CC_CONFIG_MAK
#
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
-
+#include "config.h"
#include "tvhead.h"
#include "FFdecsa.h"
};
MAKEFUNCS(32int);
-#if defined(__i386__) || defined(__x86_64__)
+#ifdef CONFIG_MMX
MAKEFUNCS(64mmx);
+#endif
+
+#ifdef CONFIG_SSE2
MAKEFUNCS(128sse2);
#endif
if(max_std_level >= 1){
cpuid(1, eax, ebx, ecx, std_caps);
+#ifdef CONFIG_SSE2
if (std_caps & (1<<26)) {
current = funcs_128sse2;
tvhlog(LOG_INFO, "CSA", "Using SSE2 128bit parallel descrambling");
return;
}
+#endif
+#ifdef CONFIG_MMX
if (std_caps & (1<<23)) {
current = funcs_64mmx;
tvhlog(LOG_INFO, "CSA", "Using MMX 64bit parallel descrambling");
return;
}
+#endif
}
#if defined(__i386__)
}
-#if defined(__i386__) || defined(__x86_64__)
#define PARALLEL_MODE PARALLEL_64_MMX
#include "FFdecsa.c"
-#endif
-#if defined(__i386__) || defined(__x86_64__)
#define PARALLEL_MODE PARALLEL_128_SSE2
#include "FFdecsa.c"
-#endif
CONFIG_LIST="
cwc
avahi
+ mmx
+ sse2
"
die() {