File: mono-aot-wrapper

package info (click to toggle)
mono 4.6.2.7%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 778,148 kB
  • ctags: 914,052
  • sloc: cs: 5,779,509; xml: 2,773,713; ansic: 432,645; sh: 14,749; makefile: 12,361; perl: 2,488; python: 1,434; cpp: 849; asm: 531; sql: 95; sed: 16; php: 1
file content (66 lines) | stat: -rwxr-xr-x 2,267 bytes parent folder | download | duplicates (11)
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
#!/bin/sh

# Description: This wrapper script pre-compiles (AOT) the passed assembly
#              before executing it, and AOTs new assemblies in build output
#              directory.

export MONO_PATH

DEBIAN_DIR=$(dirname $0)
#MONO_DIR=$DEBIAN_DIR/..
MONO_DIR=${DEBIAN_DIR/%\/debian}
ASSEMBLY=$1

#case $ASSEMBLY in
#	*.dll | *.exe)
#		if [ -f $ASSEMBLY -a ! -f "$ASSEMBLY.so" ]; then
#			$MONO_DIR/runtime/mono-wrapper --aot $ASSEMBLY
#		fi
#	;;
#esac
           
$MONO_DIR/runtime/mono-wrapper "$@"

ASSEMBLIES_DIR=$MONO_DIR/mcs/class/lib
ASSEMBLIES=$(find $ASSEMBLIES_DIR -name "*.dll" -or -name "*.exe")
for ASSEMBLY in $ASSEMBLIES; do
	ASSEMBLY_DIR=$(dirname $ASSEMBLY)
	ASSEMBLY_NAME=$(basename $ASSEMBLY)
	if [ ! -f "$ASSEMBLY.so" ]; then
		#if [ "$ASSEMBLY_DIR" = "$ASSEMBLIES_DIR/net_2_0" ] ||
		#   [ "$ASSEMBLY_DIR" = "$ASSEMBLIES_DIR/net_2_1" ] ||
		#   [ "$ASSEMBLY_DIR" = "$ASSEMBLIES_DIR/net_2_1_tuned" ]; then
		#   	# AOT for 2.0/2.1 is buggy and likes to crash
		#	true
		#elif [ "$ASSEMBLY_DIR" = "$ASSEMBLIES_DIR/net_2_0_bootstrap" ]; then
		#	# AOT for 2.0 runtime libs seems to work though
		#	$MONO_DIR/runtime/mono-wrapper --aot -O=all $ASSEMBLY
		#else
		#	$MONO_DIR/runtime/mono-wrapper --aot -O=all $ASSEMBLY
		#fi
		
		# only AOT basic / 1.0 bootstrap / 2.0 bootstrap
		if [ "$ASSEMBLY_DIR" = "$ASSEMBLIES_DIR/basic" ] ||
		   [ "$ASSEMBLY_DIR" = "$ASSEMBLIES_DIR/net_1_1_bootstrap" ] ||
		   [ "$ASSEMBLY_DIR" = "$ASSEMBLIES_DIR/net_2_0_bootstrap" ]; then
			$MONO_DIR/runtime/mono-wrapper --aot -O=all $ASSEMBLY
		fi
		
		# always AOT libs used by the compilers
		if [ "$ASSEMBLY_DIR" = "$ASSEMBLIES_DIR/default" ]; then
			if [ "$ASSEMBLY_NAME" = "mscorlib.dll" ] ||
			   [ "$ASSEMBLY_NAME" = "System.dll" ] ||
			   [ "$ASSEMBLY_NAME" = "System.Xml.dll" ]; then
				$MONO_DIR/runtime/mono-wrapper --aot -O=all $ASSEMBLY
			fi
		fi
		#elif [ "$ASSEMBLY_DIR" = "$ASSEMBLIES_DIR/net_2_0" ] ||
		#     [ "$ASSEMBLY_DIR" = "$ASSEMBLIES_DIR/net_2_1" ]; then
		#	if [ "$ASSEMBLY_NAME" = "mscorlib.dll" ] ||
		#	   [ "$ASSEMBLY_NAME" = "System.dll" ] ||
		#	   [ "$ASSEMBLY_NAME" = "System.Xml.dll" ]; then
		#		MONO_PATH=$MONO_DIR/class/lib/net_2_0:$MONO_PATH $MONO_DIR/runtime/mono-wrapper --aot -O=all $ASSEMBLY
		#	fi
		#fi
	fi
done