Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 297260 - Binaries folder missing for old Autotools project
Summary: Binaries folder missing for old Autotools project
Status: RESOLVED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: Autotools (show other bugs)
Version: 0.4   Edit
Hardware: PC Linux
: P3 normal (vote)
Target Milestone: 0.4.1   Edit
Assignee: Jeff Johnston CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks: 297201
  Show dependency tree
 
Reported: 2009-12-08 14:25 EST by Jeff Johnston CLA
Modified: 2009-12-21 10:33 EST (History)
1 user (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Jeff Johnston CLA 2009-12-08 14:25:32 EST
When an old Autotools project is built under CDT 6.0.1 with Linuxtools 0.4, the Binaries folder is missing, even though the project builds successfully.  Unclicking Managed Make in the C/C++ Build settings allows the folder to show up, but this removes other features like being able to set the configuration settings.
Comment 1 Jeff Johnston CLA 2009-12-10 17:42:36 EST
Bug traced to missing superclass element in .cproject file for org.eclipse.linuxtools.cdt.autotools.toolchain.builder which superclasses org.eclipse.linuxtools.cdt.autotools.builder.  This superclass link has been around since at least 0.3 so it is not apparent why it was left out in the .cproject file elements.  The latter builder is the one that describes the Makefile generator which is used to find the build path indirectly for the Binaries folder.  Adding the missing superClass="" statement in the .cproject file fixes the problem and can be used as a manual fix.  

It is not known why the superclass was not recorded for the old project, but the org.eclipse.linuxtools.cdt.autotools.builder has been now declared abstract in case the element loader did not like the non-abstract builder referencing a non-abstract builder or if the non-abstract builder was not instantiated anywhere by the toolchain/configuration/target.  

In addition, code has been added in the AutotoolMakefileBuilder to set the Makefile generator element for any passed-in Builder.  This also solves the problem when the Builder is used later by the Binaries container to get the build path (i.e. the Autotools Makefile generator will be called to get the build path as opposed to the default GNU Generator).