comparison SCRIPTS/process.sh @ 13:fb75075c8238

Toward win32 cross-compile
author Chris Cannam
date Mon, 04 Aug 2014 18:03:21 +0100
parents 8dd6da2a48ee
children 114c03877f21
comparison
equal deleted inserted replaced
12:c9da127aa189 13:fb75075c8238
7 ## plugin loads 7 ## plugin loads
8 ## passes vamp-plugin-tester tests 8 ## passes vamp-plugin-tester tests
9 ## does not export any unnecessary symbols 9 ## does not export any unnecessary symbols
10 ## has valid .cat and .n3 10 ## has valid .cat and .n3
11 11
12 platform=linux 12 #platform=linux
13 bits=64 13 #bits=64
14
15 platform=mingw
16 bits=32
17 toolprefix=i686-w64-mingw32-
14 18
15 plugindirs="$@" 19 plugindirs="$@"
16 if [ -z "$plugindirs" ]; then 20 if [ -z "$plugindirs" ]; then
17 plugindirs=$(cat .hgsub | grep -v vamp-plugin-sdk | grep -v vamp-plugin-tester | awk '{ print $1; }') 21 plugindirs=$(cat .hgsub | grep -v vamp-plugin-sdk | grep -v vamp-plugin-tester | awk '{ print $1; }')
18 fi 22 fi
31 if [ -f "$dir/configure" ] ; then 35 if [ -f "$dir/configure" ] ; then
32 ( cd "$dir" ; ./configure ) 2>&1 | tee "$reportdir/$dir.configure.txt" 36 ( cd "$dir" ; ./configure ) 2>&1 | tee "$reportdir/$dir.configure.txt"
33 fi 37 fi
34 } 38 }
35 39
36 configure_maybe() {
37 dir="$1"
38 if [ ! -f "$dir/Makefile" ] ; then
39 configure "$dir"
40 fi
41 }
42
43 find_makefile() { 40 find_makefile() {
44 dir="$1" 41 dir="$1"
45
46 for f in \ 42 for f in \
47 Makefile \ 43 build/$platform/Makefile.$platform$bits \
44 build/$platform/Makefile.$platform \
45 build/$platform/Makefile \
46 build/Makefile.$platform$bits \
47 build/Makefile.$platform \
48 Makefile.$platform$bits \
48 Makefile.$platform \ 49 Makefile.$platform \
49 Makefile.$platform$bits \ 50 Makefile ; do
50 build/$platform/Makefile \
51 build/$platform/Makefile.$platform \
52 build/$platform/Makefile.$platform$bits; do
53 if [ -f "$dir/$f" ]; then 51 if [ -f "$dir/$f" ]; then
54 echo $f 52 echo $f
55 break 53 break
56 fi 54 fi
57 done 55 done
58 } 56 }
59 57
58 configure_maybe() {
59 dir="$1"
60 mfile=$(find_makefile "$dir")
61 if [ -z "$mfile" ]; then
62 configure "$dir"
63 fi
64 }
65
60 build() { 66 build() {
61 dir="$1" 67 dir="$1"
62 if configure_maybe "$dir"; then 68 if configure_maybe "$dir"; then
63 mfile=$(find_makefile "$dir") 69 mfile=$(find_makefile "$dir")
64 if [ -n "$mfile" ]; then 70 if [ -n "$mfile" ]; then
65 make -C "$dir" -f "$mfile" 2>&1 | tee "$reportdir/$dir.build.txt" 71 make -C "$dir" -f "$mfile" TOOLPREFIX="$toolprefix" 2>&1 | tee "$reportdir/$dir.build.txt"
66 return ${PIPESTATUS[0]} 72 return ${PIPESTATUS[0]}
67 else 73 else
68 echo "Failed to find a Makefile in $dir" 74 echo "Failed to find a Makefile in $dir"
69 return 1 75 return 1
70 fi 76 fi
71 fi 77 fi
72 } 78 }
73 79
74 rebuild() { 80 rebuild() {
75 dir="$1" 81 dir="$1"
76 if configure "$dir"; then 82 if configure_maybe "$dir"; then
77 mfile=$(find_makefile "$dir") 83 mfile=$(find_makefile "$dir")
78 if [ -n "$mfile" ]; then 84 if [ -n "$mfile" ]; then
79 make -C "$dir" -f "$mfile" clean 85 make -C "$dir" -f "$mfile" clean
80 make -C "$dir" -f "$mfile" 2>&1 | tee "$reportdir/$dir.build.txt" 86 make -C "$dir" -f "$mfile" TOOLPREFIX="$toolprefix" 2>&1 | tee "$reportdir/$dir.build.txt"
81 return ${PIPESTATUS[0]} 87 return ${PIPESTATUS[0]}
82 else 88 else
83 echo "Failed to find a Makefile in $dir" 89 echo "Failed to find a Makefile in $dir"
84 return 1 90 return 1
85 fi 91 fi
134 echo "NOTE: found library $lib that is not a Vamp plugin library" 140 echo "NOTE: found library $lib that is not a Vamp plugin library"
135 fi 141 fi
136 done 142 done
137 } 143 }
138 144
139 if ! build "vamp-plugin-sdk"; then 145 if ! rebuild "vamp-plugin-sdk"; then
140 echo "Failed to build Vamp plugin SDK!" 146 echo "Failed to build Vamp plugin SDK!"
141 exit 1 147 exit 1
142 fi 148 fi
143 149
144 if ! build "vamp-plugin-tester"; then 150 if ! rebuild "vamp-plugin-tester"; then
145 echo "Failed to build Vamp plugin tester!" 151 echo "Failed to build Vamp plugin tester!"
146 exit 1 152 exit 1
147 fi 153 fi
148 154
149 for dir in $plugindirs ; do 155 for dir in $plugindirs ; do