changeset 88:c678de1d1a92

Toward support for VamPy plugins on Windows
author Chris Cannam
date Wed, 25 Feb 2015 14:06:40 +0000
parents 2a2c65a20a8b
children 3c438d716e83
files .hgignore .hgsubstate SCRIPTS/process.sh
diffstat 3 files changed, 35 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/.hgignore	Wed Feb 25 14:05:22 2015 +0000
+++ b/.hgignore	Wed Feb 25 14:06:40 2015 +0000
@@ -1,3 +1,5 @@
 syntax: glob
 *~
 REPORTS
+*.pyo
+*.pyc
--- a/.hgsubstate	Wed Feb 25 14:05:22 2015 +0000
+++ b/.hgsubstate	Wed Feb 25 14:06:40 2015 +0000
@@ -18,4 +18,4 @@
 f021dc97da29d9c92cfec37b0a100723b6921f3e vamp-simple-cepstrum
 02721bb9c4f07dadfe5fd32e2ac9d6f6958749a5 vamp-tempogram
 42e71acaba8eb051b46009459ddd1e99f2176270 vamp-test-plugin
-d8eaa10e153e8c7a2731ea99e932cc7308a6c967 vampy
+5e26aaba2eedd7d3c51d2b8cb4c6593ed9adf623 vampy
--- a/SCRIPTS/process.sh	Wed Feb 25 14:05:22 2015 +0000
+++ b/SCRIPTS/process.sh	Wed Feb 25 14:06:40 2015 +0000
@@ -9,7 +9,7 @@
 ##   does not export any unnecessary symbols
 ##   has valid .cat and .n3
 
-set -eu
+set -e
 
 mydir=$(dirname "$0")
 case "$mydir" in /*);; *) mydir=$(pwd)/"$mydir";; esac
@@ -117,6 +117,9 @@
 	archflags="-mmacosx-version-min=10.6 -arch x86_64 -arch i386"
 	identpattern='Mach-O 64-bit .*x86_64'
 	;;
+    *)
+	usage
+	;;
 esac;
 
 shift
@@ -145,8 +148,12 @@
 
 depincdir="$mydir"/../DEPENDENCIES/$platform$bits/include
 deplibdir="$mydir"/../DEPENDENCIES/$platform$bits/lib
+depincdir_generic="$mydir"/../DEPENDENCIES/generic/include
 
-depincdir_generic="$mydir"/../DEPENDENCIES/generic/include
+pyver=27
+pyincdir="$mydir"/../DEPENDENCIES/$platform$bits/Python$pyver/include
+numpyincdir="$mydir"/../DEPENDENCIES/$platform$bits/Python$pyver/Lib/site-packages/numpy/core/include
+pylibdir="$mydir"/../DEPENDENCIES/$platform$bits/Python$pyver/libs
 
 plugindirs="$@"
 if [ -z "$plugindirs" ]; then
@@ -160,6 +167,8 @@
     done
 fi
 
+set -u
+
 reportdir="REPORTS/$platform$bits"
 packagedir="PACKAGES/$platform$bits"
 
@@ -266,8 +275,8 @@
 	if [ -n "$mfile" ]; then
 	    target=$(target_for "$dir")
 	    TOOLPREFIX="$toolprefix" \
-		CXXFLAGS="-I${depincdir} -I${depincdir_generic} -I../vamp-plugin-sdk" \
-		LDFLAGS="-L${deplibdir} -L../vamp-plugin-sdk" \
+		CXXFLAGS="-I${depincdir} -I${pyincdir} -I${numpyincdir} -I${depincdir_generic} -I../vamp-plugin-sdk" \
+		LDFLAGS="-L${deplibdir} -L${pylibdir} -L../vamp-plugin-sdk" \
 		ARCHFLAGS="$archflags" \
 		make -C "$dir" -f "$mfile" $target 2>&1 | \
 		tee "$log"
@@ -275,7 +284,7 @@
 	elif have_vampy_plugins "$dir"; then
 	    return 0
 	else
-	    echo "Failed to find a Makefile in $dir!" | tee "$log"
+	    echo "*** Failed to find a Makefile in $dir!" | tee "$log"
 	    return 1
 	fi
     fi
@@ -292,13 +301,13 @@
 	    elif make -C "$dir" -f "$mfile" clean; then
 		build "$dir"
 	    else
-		echo "Failed to 'make clean' in $dir!" | tee "$log"
+		echo "*** Failed to 'make clean' in $dir!" | tee "$log"
 		return 1
 	    fi
 	elif have_vampy_plugins "$dir"; then
 	    return 0
 	else
-	    echo "Failed to find a Makefile in $dir!" | tee "$log"
+	    echo "*** Failed to find a Makefile in $dir!" | tee "$log"
 	    return 1
 	fi
     fi
@@ -592,7 +601,7 @@
 }
 
 if ! build_or_rebuild "vamp-plugin-sdk"; then 
-    echo "Failed to build Vamp plugin SDK!"
+    echo "*** Failed to build Vamp plugin SDK!"
     exit 1
 fi
 
@@ -605,10 +614,24 @@
 done
 
 if ! build_or_rebuild "vamp-plugin-tester"; then 
-    echo "Failed to build Vamp plugin tester!"
+    echo "*** Failed to build Vamp plugin tester!"
     exit 1
 fi
 
+need_vampy=no
+for dir in $plugindirs ; do
+    if have_vampy_plugins "$dir"; then
+	need_vampy=yes
+	break
+    fi
+done
+if [ "$need_vampy" = "yes" ] && [ "$plugindirs" != "vampy" ]; then
+    if ! build_or_rebuild "vampy"; then 
+	echo "*** Failed to build VamPy! (needed for other plugins)"
+	exit 1
+    fi
+fi
+
 for dir in $plugindirs ; do
     dir=${dir%/*}
     echo