Comment remaining unsolved bug.
[ardour.git] / libs / backends / wavesaudio / portmidi / src / pm_mac / pmdefaults / make / find-classrefs.sh
1 #!/bin/sh
2
3 # Prints all class references made by all classes in a Jar file
4 # Depends on the output formatting of javap
5
6 # create a temporary working directory
7 dir=`mktemp -d $TMPDIR/classrefs.XXXXXX`
8
9 asm_dump="$dir/asm_dump"
10 all_classes="$dir/all_classes"
11
12 # for each class in a Jar file, dump the full assembly
13 javap -c -classpath "$1" `/usr/bin/jar tf "$1" | grep "\.class" | sort | xargs | sed -e 's/\.class//g'` > $asm_dump
14
15 # dump the initial list of all classes in the Jar file
16 /usr/bin/jar tf $1 | grep "\.class" | sed -e 's/\.class//g' >> $all_classes
17
18 # dump all static class references
19 cat $asm_dump | grep //class | awk -F"//class " '{print $2}' | sort | uniq >> $all_classes
20
21 # dump all references to classes made in methods
22 cat $asm_dump | grep //Method | awk -F"//Method " '{print $2}' | sort | uniq | grep "\." | awk -F"." '{print $1}' | sort | uniq >> $all_classes
23
24 # dump all references to classes by direct field access
25 cat $asm_dump | grep //Field | awk -F"//Field " '{print $2}' | sort | uniq | grep "\:L" | awk -F"\:L" '{print $2}' | sort | uniq | awk -F"\;" '{print $1}' >> $all_classes
26
27 # sort and reformat
28 sort $all_classes | uniq | grep -v "\"" | sed -e 's/\//\./g'
29
30 # cleanup
31 rm -rf $dir