+EXTRA_DIST += generic-unboxing.2.il
+generic-unboxing.2.dll : generic-unboxing.2.il
+ $(ILASM) /dll /output:generic-unboxing.2.dll $(srcdir)/generic-unboxing.2.il
+
+EXTRA_DIST += generic-boxing.2.il
+generic-boxing.2.dll : generic-boxing.2.il generic-unboxing.2.dll
+ $(ILASM) /dll /output:generic-boxing.2.dll $(srcdir)/generic-boxing.2.il
+
+EXTRA_DIST += generic-unbox.2.cs
+generic-unbox.2.exe : generic-unbox.2.cs generic-unboxing.2.dll
+ $(MCS) -r:generic-unboxing.2.dll -out:$@ $(srcdir)/generic-unbox.2.cs
+
+EXTRA_DIST += generic-box.2.cs
+generic-box.2.exe : generic-box.2.cs generic-unboxing.2.dll generic-boxing.2.dll
+ $(MCS) -r:generic-unboxing.2.dll,generic-boxing.2.dll -out:$@ $(srcdir)/generic-box.2.cs
+
+test-generic-sharing : generics-sharing.2.exe shared-generic-methods.2.exe \
+ shared-generic-synchronized.2.exe generic-initobj.2.exe \
+ generics-sharing-other-exc.2.exe generic-box.2.exe \
+ generic-unbox.2.exe generic-delegate.2.exe generic-sizeof.2.exe \
+ generic-ldobj.2.exe generic-mkrefany.2.exe \
+ generic-refanyval.2.exe generic-ldtoken.2.exe \
+ generic-ldtoken-method.2.exe generic-ldtoken-field.2.exe \
+ generic-virtual.2.exe generic-tailcall.2.exe \
+ generic-interface-methods.2.exe generic-array-type.2.exe \
+ generic-method-patching.2.exe \
+ generic-null-call.2.exe generic-tailcall2.2.exe \
+ generic-array-exc.2.exe
+ for fn in $+ ; do \
+ echo "Testing $$fn ..."; \
+ MONO_GENERIC_SHARING=all $(RUNTIME) -O=gshared,-inline $$fn || exit 1; \
+ MONO_GENERIC_SHARING=all $(RUNTIME) -O=gshared,-inline,shared $$fn || exit 1; \
+ done
+