protected override void OnWriteProject(ProgressMonitor monitor, MonoDevelop.Projects.MSBuild.MSBuildProject msproject)
        {
            base.OnWriteProject(monitor, msproject);

            if (data == null)
            {
                return;
            }

            msproject.SetMonoDevelopProjectExtension("MonoDevelop.Autotools.MakefileInfo", data.Write());

            if (!data.SupportsIntegration)
            {
                return;
            }

            try {
                data.UpdateMakefile(monitor);
            } catch (Exception e) {
                LoggingService.LogError(GettextCatalog.GetString("Error saving to Makefile ({0}) for project {1}",
                                                                 data.AbsoluteMakefileName, Project.Name, e));
                monitor.ReportError(GettextCatalog.GetString(
                                        "Error saving to Makefile ({0}) for project {1}", data.AbsoluteMakefileName, Project.Name), e);
            }
        }
        protected override void OnReadProject(ProgressMonitor monitor, MonoDevelop.Projects.MSBuild.MSBuildProject msproject)
        {
            base.OnReadProject(monitor, msproject);
            var ext = msproject.GetMonoDevelopProjectExtension("MonoDevelop.Autotools.MakefileInfo");

            if (ext == null)
            {
                return;
            }

            data = MakefileData.Read(ext);
            if (data == null)
            {
                return;
            }

            monitor.BeginTask(GettextCatalog.GetString("Updating project from Makefile"), 1);
            try {
                data.OwnerProject = Project;
                if (data.SupportsIntegration)
                {
                    data.UpdateProject(monitor, false);
                }
                monitor.Step(1);
            } catch (Exception e) {
                monitor.ReportError(GettextCatalog.GetString(
                                        "\tError loading Makefile for project {0}", Project.Name), e);
            } finally {
                monitor.EndTask();
            }
        }
 protected override void OnReadProject(ProgressMonitor monitor, MonoDevelop.Projects.MSBuild.MSBuildProject msproject)
 {
     base.OnReadProject(monitor, msproject);
     if (info != null)
     {
         info.Project = Project;
     }
 }