[CMake] eclipse-cmake bug - more info

Steve Mathers stevenmathers at yahoo.com
Thu Aug 20 17:22:22 EDT 2009


OK, I see the difference between the build directory and the build location now, even though in my project structure I inherited, they are the same directory - MMP

If I add the -C (path to makefile) option, I still get the error.

Im not moving the makefile.  My cmake file and the resulting Makefile are al sitting in MMP.  And remember, when I call make form the shell terminal, it always works, its just when make is invoked from within eclipse that it doesnt.

I notice that the syntax for specifying the build directory and makefile directory in your image are slightly different.  Is that intentional, and whats the significance? 

May I also ask:

what appears in the 'builders' config - I have two ticked items called something like 'cdt' and 'scanner'.  

Can you explain more what you mean with your first sentence?  Im not sure what you are saying exactly.

thanks again

Steve

----- Original Message ----
> From: Michael Jackson <mike.jackson at bluequartz.net>
> To: Steve Mathers <stevenmathers at yahoo.com>
> Cc: cmake at cmake.org
> Sent: Thursday, 20 August, 2009 10:34:39 PM
> Subject: Re: [CMake] eclipse-cmake bug - more info
> 
> I think the problem is that Eclipse's project directory for mdc is basically the 
> top level of your mdc project and NOT your MMP build directory. By using the -C 
> Path/to/Dir/with/Makefile option to make you are telling "make" to look in your 
> build directory for the makefile.
> Also, makefiles that are produced by CMake are NOT portable. Period. So you 
> cannot take a CMake generated Makefile and move it somewhere else.
> 
>   Here is a screen shot of my build settings. Hope it helps.
> 
> 
> _________________________________________________________
> Mike Jackson                  mike.jackson at bluequartz.net
> BlueQuartz Software                    www.bluequartz.net
> Principal Software Engineer                  Dayton, Ohio
> 
> On Aug 20, 2009, at 12:11 AM, Steve Mathers wrote:
> 
> > Yep, Makefile based project.   the project originally came with a Makefile 
> that didnt do incremental builds, which was driving me nuts, so I figured I 
> would replace that Makefile with one created by CMake.   I just overwrote the 
> original Makefile with one produced by CMake.
> > 
> > 
> > In your example below, my build directory is 'MMP' rather than 'Build', but 
> otherwise the same.
> > 
> > please see this image:
> > 
> > 
> http://help.eclipse.org/galileo/index.jsp?topic=/org.eclipse.cdt.doc.user/reference/cdt_u_prop_build_settings_steps.htm
> > 
> > -  My builder type is 'external builder' and I dont have the option of 
> changing that, presumably since it is a makefile project.
> > - I have default build command unticked
> > - my build command is simply - 'make'
> > - I have generate makefiles automatically unticked.
> > - my build location build directory is ${workspace_loc:/mdc/MMP}
> > 
> > The build still fails in the same way whether I include the build location in 
> the actual 'build command' string or not (presumably it is set by the build 
> location paramter at the bottom)
> > 
> > 
> > thanks
> > 
> > Steve
> > 
> > 
> > 
> > ----- Original Message ----
> >> From: Mike Jackson 
> >> To: Steve Mathers 
> >> Cc: cmake at cmake.org
> >> Sent: Thursday, 20 August, 2009 11:33:56 AM
> >> Subject: Re: [CMake] CMake Digest, Vol 64, Issue 50
> >> 
> >> Couple more questions just to be clear.
> >> 
> >> Did you choose to build a "Makefile" based Eclipse project when you
> >> created your project? If you just selected a "C++" project then
> >> eclipse is trying to create its own makefiles for your project.
> >> 
> >> Are you using an "out of source build" for your project? For example,
> >> do you have a "Build" directory within your project directory? Let's
> >> say for example that you have created a "Build" directory inside your
> >> project directory, then if you right click on the project in the C++
> >> Projects view, and select properties. Then Select "Build", there is an
> >> option to use the built in "make" or select your own command. Make
> >> what ever selection is necessary to enable the use of your own "make
> >> command". That command should be:
> >> 
> >> make -C ${workspace_loc}/mdc/Build VERBOSE=1
> >> 
> >> Then you can manually invoke the build for your project and see what happens.
> >> 
> >> _________________________________________________________
> >> Mike Jackson                  mike.jackson at bluequartz.net
> >> BlueQuartz Software                    www.bluequartz.net
> >> Principal Software Engineer                  Dayton, Ohio
> >> 
> >> 
> >> 
> >> 
> >> On Wed, Aug 19, 2009 at 8:31 PM, Steve Matherswrote:
> >>> Hi Michael.  that option is what I am already doing, which is why I am
> >> confused.  'make' from the terminal works great, 'make' from eclipse craps 
> out.
> >>> 
> >>> I tried running eclipse from the terminal, and it didnt help.
> >>> 
> >>> I noticed something else strange
> >>> 
> >>> here is the output from eclipse once I have done a make from the terminal,
> >> then done a build in eclipse (essentially nothing to do, so eclipse doesnt 
> bomb)
> >>> 
> >>> 
> >>> **** Build of configuration Linux GCC for project mdc ****
> >>> 
> >>> make  VERBOSE=1 -d
> >>> GNU Make 3.81
> >>> Copyright (C) 2006  Free Software Foundation, Inc.
> >>> This is free software; see the source for copying conditions.
> >>> There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
> >>> PARTICULAR PURPOSE.
> >>> 
> >>> This program built for i686-redhat-linux-gnu
> >>> Reading makefiles...
> >>> Reading makefile `Makefile'...
> >>> Updating makefiles....
> >>> Considering target file `Makefile'.
> >>> Looking for an implicit rule for `Makefile'.
> >>> Trying pattern rule with stem `Makefile'.
> >>> Trying implicit prerequisite `Makefile,v'.
> >>> Trying pattern rule with stem `Makefile'.
> >>> Trying implicit prerequisite `RCS/Makefile,v'.
> >>> Trying pattern rule with stem `Makefile'.
> >>> Trying implicit prerequisite `RCS/Makefile'.
> >>> Trying pattern rule with stem `Makefile'.
> >>> Trying implicit prerequisite `s.Makefile'.
> >>> Trying pattern rule with stem `Makefile'.
> >>> Trying implicit prerequisite `SCCS/s.Makefile'.
> >>> No implicit rule found for `Makefile'.
> >>> Finished prerequisites of target file `Makefile'.
> >>> No need to remake target `Makefile'.
> >>> Updating goal targets....
> >>> 
> >>> etc....
> >>> 
> >>> 
> >> 
> --------------------------------------------------------------------------------------------------------------------------------------------------------
> >>> NOW, here is the output having modfiied foo so that it needs to be rebuilt.
> >> (one run)
> >>> 
> >>> 
> >>> 
> >>> **** Build of configuration Linux GCC for project mdc ****
> >>> 
> >>> make VERBOSE=1 -d
> >>> GNU Make 3.81
> >>> Copyright (C) 2006  Free Software Foundation, Inc.
> >>> This is free software; see the source for copying conditions.
> >>> There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
> >>> PARTICULAR PURPOSE.
> >>> 
> >>> This program built for i686-redhat-linux-gnu
> >>> Reading makefiles...
> >>> Reading makefile `Makefile'...
> >>> Updating makefiles....
> >>> Considering target file `Makefile'.
> >>> Looking for an implicit rule for `Makefile'.
> >>> Trying pattern rule with stem `Makefile'.
> >>> Trying implicit prerequisite `Makefile,v'.
> >>> Trying pattern rule with stem `Makefile'.
> >>> Trying implicit prerequisite `RCS/Makefile,v'.
> >>> make[2]: *** [CMakeFiles/appmonitor.dir/AppMonitor/foo.cpp.o] Error 1
> >>> Trying pattern rule with stem `Makefile'.
> >>> Trying implicit prerequisite `RCS/Makefile'.
> >>> make[1]: *** [CMakeFiles/appmonitor.dir/all] Error 2
> >>> make: *** [all] Error 2
> >>> Trying pattern rule with stem `Makefile'.
> >>> Trying implicit prerequisite `s.Makefile'.
> >>> Trying pattern rule with stem `Makefile'.
> >>> Trying implicit prerequisite `SCCS/s.Makefile'.
> >>> No implicit rule found for `Makefile'.
> >>> 
> >>> 
> >> 
> ----------------------------------------------------------------------------------------------------------------------------------
> >>> and here is the output of a second run...
> >>> 
> >>> notice how the errors are reported in different stages...  is that because
> >> there is some kind of concurrnecy thing going on with the build or what?  Is 
> it
> >> important?  I have no clue about this, but it seems to me that eclipse is 
> alomst
> >> trying to compete with the makefile if that makes sense?  I dont know...
> >>> 
> >>> **** Build of configuration Linux GCC for project mdc ****
> >>> 
> >>> make VERBOSE=1 -d
> >>> GNU Make 3.81
> >>> Copyright (C) 2006  Free Software Foundation, Inc.
> >>> This is free software; see the source for copying conditions.
> >>> There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A
> >>> make[2]: *** [CMakeFiles/appmonitor.dir/AppMonitor/foo.cpp.o] Error 1
> >>> make[1]: *** [CMakeFiles/appmonitor.dir/all] Error 2
> >>> make: *** [all] Error 2
> >>> PARTICULAR PURPOSE.
> >>> 
> >>> This program built for i686-redhat-linux-gnu
> >>> Reading makefiles...
> >>> Reading makefile `Makefile'...
> >>> Updating makefiles....
> >>> Considering target file `Makefile'.
> >>> Looking for an implicit rule for `Makefile'.
> >>> Trying pattern rule with stem `Makefile'.
> >>> Trying implicit prerequisite `Makefile,v'.
> >>> Trying pattern rule with stem `Makefile'.
> >>> Trying implicit prerequisite `RCS/Makefile,v'.
> >>> Trying pattern rule with stem `Makefile'.
> >>> Trying implicit prerequisite `RCS/Makefile'.
> >>> Trying pattern rule with stem `Makefile'.
> >>> 
> >>> 
> >>> ----- Original Message ----
> >>> 
> >>>> Message: 4
> >>>> Date: Wed, 19 Aug 2009 09:56:35 -0400
> >>>> From: Michael Jackson
> >>>> Subject: Re: [CMake] eclipse-cmake bug - more info
> >>>> To: Cmake Mailing List
> >>>> Message-ID: <418516B5-1A33-4599-93B9-8752FC2DA84F at bluequartz.net>
> >>>> Content-Type: text/plain; charset=US-ASCII; format=flowed; delsp=yes
> >>>> 
> >>>> Another similar approach to try and diagnose the problem would be to
> >>>> have CMake generate plain Makefiles
> >>>> 
> >>>> http://www.cmake.org/Wiki/CMake:Eclipse_UNIX_Tutorial
> >>>> 
> >>>>  Use "Option 2" from that tutorial.
> >>>> 
> >>>>  You should be able to build your project from the terminal with
> >>>> "Make" and from Eclipse. Both should give you the same results.
> >>>> 
> >>>>  Also, something I have noticed is that I have to launch Eclipse
> >>>> _from the terminal_ in order to get my environment correct. If I click
> >>>> on the Eclipse icon in the Linux GUI (KUbuntu) then I have noticed
> >>>> that Eclipse can not find somethings. odd.
> >>>> 
> >>>> Just another thought.
> >>>> _________________________________________________________
> >>>> Mike Jackson                  mike.jackson at bluequartz.net
> >>> 
> >>> 
> >>> 
> >> 
> __________________________________________________________________________________
> >>> Find local businesses and services in your area with Yahoo!7 Local.
> >>> Get started: http://local.yahoo.com.au
> >>> _______________________________________________
> >>> Powered by www.kitware.com
> >>> 
> >>> Visit other Kitware open-source projects at
> >> http://www.kitware.com/opensource/opensource.html
> >>> 
> >>> Please keep messages on-topic and check the CMake FAQ at:
> >> http://www.cmake.org/Wiki/CMake_FAQ
> >>> 
> >>> Follow this link to subscribe/unsubscribe:
> >>> http://www.cmake.org/mailman/listinfo/cmake
> >>> 
> > 
> > 
> > 
> >      
> __________________________________________________________________________________
> > Find local businesses and services in your area with Yahoo!7 Local.
> > Get started: http://local.yahoo.com.au



      __________________________________________________________________________________
Find local businesses and services in your area with Yahoo!7 Local.
Get started: http://local.yahoo.com.au


More information about the CMake mailing list