static BloatContext makeContext(final String classpath,
			final String outputDirName) {
		final ClassFileLoader loader = new ClassFileLoader();
		if (classpath != null) {
			loader.prependClassPath(classpath);
		}

		// if(TRACE) {
		// loader.setVerbose(true);
		// }

		BloatBenchmark.tr("  Creating a BloatContext for CLASSPATH: "
				+ loader.getClassPath());

		if (outputDirName != null) {
			loader.setOutputDir(new File(outputDirName));
		}
		final BloatContext context = new CachingBloatContext(loader,
				BloatBenchmark.CLASSES, true);

		// Always ignore the sun packages and the opj stuff for
		// interprocedural stuff
		if (!BloatBenchmark.SUN) {
			context.addIgnorePackage("sun");
		}

		context.addIgnorePackage("java.lang.ref");
		context.addIgnorePackage("org.opj.system");

		if (BloatBenchmark.USE1_1) {
			// Toba can't deal with java.lang.Character
			context.addIgnoreClass(Type.getType("Ljava/lang/Character;"));
		}

		return (context);
	}