void ProcessProjectReferences(DotNetProject project, out string references, out string dllReferences, AutotoolsContext ctx)
        {
            StringWriter refWriter    = new StringWriter();
            StringWriter dllRefWriter = new StringWriter();

            pkgs = new Set <SystemPackage> ();

            // grab pkg-config references
            foreach (ProjectReference reference in project.References)
            {
                if (reference.ReferenceType == ReferenceType.Package)
                {
                    // Get pkg-config keys
                    SystemPackage pkg = reference.Package;
                    if (pkg != null && !pkg.IsCorePackage)
                    {
                        if (pkgs.Contains(pkg))
                        {
                            continue;
                        }
                        pkgs.Add(pkg);

                        refWriter.WriteLine(" \\");
                        if (generateAutotools)
                        {
                            refWriter.Write("\t$(");
                            refWriter.Write(AutotoolsContext.GetPkgConfigVariable(pkg.Name));
                            refWriter.Write("_LIBS)");
                        }
                        else
                        {
                            refWriter.Write("\t-pkg:{0}", pkg.Name);
                        }
                        pkgs.Add(pkg);
                    }
                    else
                    {
                        refWriter.WriteLine(" \\");                                             // store all refs for easy access
                        AssemblyName assembly = SystemAssemblyService.ParseAssemblyName(reference.Reference);
                        refWriter.Write("\t" + assembly.Name);
                        refWriter.Write("");
                    }
                }
                else if (reference.ReferenceType == ReferenceType.Assembly)
                {
                    string assemblyPath = Path.GetFullPath(reference.Reference);

                    dllRefWriter.WriteLine(" \\");
                    dllRefWriter.Write("\t");

                    ctx.AddGlobalReferencedFile(MakefileData.ToMakefilePath(FileService.AbsoluteToRelativePath(
                                                                                Path.GetFullPath(ctx.BaseDirectory), assemblyPath)));
                    dllRefWriter.Write(MakefileData.ToMakefilePath(FileService.AbsoluteToRelativePath(
                                                                       project.BaseDirectory, assemblyPath)));
                }
                else if (reference.ReferenceType == ReferenceType.Project)
                {
                    continue;                     // handled per-config
                }
                else
                {
                    throw new Exception(GettextCatalog.GetString("Project reference type '{0}' not supported yet",
                                                                 reference.ReferenceType.ToString()));
                }
            }

            references    = refWriter.ToString();
            dllReferences = dllRefWriter.ToString();
        }
		void ProcessProjectReferences (DotNetProject project, out string references, out string dllReferences, AutotoolsContext ctx)
		{
			StringWriter refWriter = new StringWriter();
			StringWriter dllRefWriter = new StringWriter();
			pkgs = new Set<SystemPackage> ();

			// grab pkg-config references
			foreach (ProjectReference reference in project.References) 
			{
				if (reference.ReferenceType == ReferenceType.Package) 
				{
					// Get pkg-config keys
					SystemPackage pkg = reference.Package;
					if (pkg != null && !pkg.IsCorePackage) 
					{
						if ( pkgs.Contains(pkg) ) continue;
						pkgs.Add(pkg);

						refWriter.WriteLine (" \\");
						if (generateAutotools) {
							refWriter.Write ("\t$(");
							refWriter.Write (AutotoolsContext.GetPkgConfigVariable(pkg.Name));
							refWriter.Write ("_LIBS)");
						} else {
							refWriter.Write ("\t-pkg:{0}", pkg.Name);
						}
						pkgs.Add (pkg);
					} 
					else 
					{
						refWriter.WriteLine (" \\");			// store all refs for easy access
						AssemblyName assembly = SystemAssemblyService.ParseAssemblyName (reference.Reference);
						refWriter.Write ("\t" + assembly.Name);
						refWriter.Write ("");
					}
				} 
				else if (reference.ReferenceType == ReferenceType.Assembly) 
				{
					string assemblyPath = Path.GetFullPath (reference.Reference);

					dllRefWriter.WriteLine (" \\");
					dllRefWriter.Write ("\t");

					ctx.AddGlobalReferencedFile (MakefileData.ToMakefilePath (FileService.AbsoluteToRelativePath (
						Path.GetFullPath (ctx.BaseDirectory), assemblyPath)));
					dllRefWriter.Write (MakefileData.ToMakefilePath (FileService.AbsoluteToRelativePath (
						project.BaseDirectory, assemblyPath)));

				} 
				else if (reference.ReferenceType == ReferenceType.Project)
					continue; // handled per-config
				else
					throw new Exception ( GettextCatalog.GetString  ("Project reference type '{0}' not supported yet", 
							reference.ReferenceType.ToString() ) );
			}

			references = refWriter.ToString ();
			dllReferences = dllRefWriter.ToString ();
		}