[Chicken-users] Re: CMake problem on Linux should be solved

2006-09-10 Thread William A. Hoffman
At 05:50 PM 9/8/2006, Brandon J. Van Every wrote:
Drat.  I was hoping that file level dependencies would cross subdirectory 
boundaries.  They seem to do it on MinGW, Cygwin, and VS71 - or else the build 
order just happens to work on those platforms.  Do file dependencies not cross 
subdirectories on Linux?  Even on the Windows targets, I had to specify the 
file dependencies as GENERATED to get CMakeSetup to quit complaining.  
Previously I've not had to do that, but previously, .scm -- .c was always 
done in the same directory.

I can put custom targets back in to force the .c files to be built.  But I'd 
like to know if this is a bug or expected behavior.  Lately I've been avoiding 
target wrapping paranoia, that is, the tendency to wrap up all file 
dependencies in custom targets for fear that file dependencies won't be 
honored.  It'll be nice if someday the file dependencies and target 
dependencies are handled in the same way.

The problem only shows up with parallel builds.   The file level depends do not
cross sub directories.   You should be able to fix this with a target level add
dependency.  This will potentially show up in newer versions of Visual studio 
as well
the do parallel builds by default, and with the dual core cpus out there it is 
likely
someone will see it.   

-Bill



___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


[Chicken-users] Re: CMake problem on Linux should be solved

2006-09-08 Thread Brandon J. Van Every




Drat. I was hoping that file level dependencies would cross
subdirectory boundaries. They seem to do it on MinGW, Cygwin, and VS71
- or else the build order just happens to work on those platforms. Do
file dependencies not cross subdirectories on Linux? Even on the
Windows targets, I had to specify the file dependencies as GENERATED to
get CMakeSetup to quit complaining. Previously I've not had to do
that, but previously, .scm -- .c was always done in the same
directory.

I can put custom targets back in to force the .c files to be built.
But I'd like to know if this is a bug or expected behavior. Lately
I've been avoiding "target wrapping paranoia," that is, the tendency to
wrap up all file dependencies in custom targets for fear that file
dependencies won't be honored. It'll be nice if someday the file
dependencies and target dependencies are handled in the same way.


Cheers,
Brandon Van Every


William A. Hoffman wrote:

  I got this error:

make[2]: *** No rule to make target `match.c', needed by `static/CMakeFiles/libchicken-static.dir/depend.make.mark'.  Stop.
make[1]: *** [static/CMakeFiles/libchicken-static.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs


At 09:39 PM 9/7/2006, Brandon J. Van Every wrote:
  
  
CMake 2.4.3 has a bug where static and dynamic libraries clobber each other during the build if they have the same rootname.  The bug affects all OSes.  Previously I thought it only affected Windows, and I implemented hacks during the INSTALL to get around it.  Felix reported a problem on Linux and Bill of Kitware confirmed that it's the same bug.

I decided it is too complicated to do more INSTALL hacks, as I don't really know what suffixes are apropos on Linux or arbitrary OSes in general, nor do I have the ability to test them.  So, static libraries are now built in a /static subdirectory.  This took some refactoring of CMakeLists.txt.  It wasn't trivial but it was doable, about a day's work.  The results are now in Darcs.  I have confirmed that VS 7.1, MinGW, and Cygwin all build and install just fine now.  I am projecting that Linux will build and install just fine now as well, since it will go through the same code path as the MinGW build.

I await your tests.


Cheers,
Brandon Van Every

  
  

  




___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


[Chicken-users] Re: CMake problem on Linux

2006-09-07 Thread Bill Hoffman
At 03:48 PM 9/6/2006, Brandon J. Van Every wrote:
felix winkelmann wrote:
Excellent, Bill! Thanks for the quick and helpful solution.


On 9/6/06, Bill Hoffman [EMAIL PROTECTED] wrote:

The reason it is only broken on linux is this:


IF(MINGW)


You need the same fix on all os's.

Further good news is these problems are going away in Chicken 2.4.4.  I did 
not think of this bug because I thought it was just a Windows bug, not all OSs.

Did you mean CMake 2.4.4?  If so, what is the fix, because CVS CMake still has 
the issue.
Is there something you need to change in the CMakeLists.txt for chicken?

-Bill



___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users


[Chicken-users] Re: CMake problem on Linux

2006-09-07 Thread Bill Hoffman
At 03:59 PM 9/6/2006, Brandon J. Van Every wrote:

Um, yeah, that.  :-)


If so, what is the fix, because CVS CMake still has the issue.
  

It does?  Well, bother.  I thought Brad told me it was patched already.  I 
haven't verified it, been too busy.

I think you have to set CLEAN_DIRECT_OUTPUT to 1 as a target property for his 
change to work.


Is there something you need to change in the CMakeLists.txt for chicken?
  

The workarounds for CMake 2.4.3 are fine on both MinGW and Cygwin.  It is 
straightforward to extend them to all OSs.

Might be best for now.



Cheers,
Brandon Van Every



___
Chicken-users mailing list
Chicken-users@nongnu.org
http://lists.nongnu.org/mailman/listinfo/chicken-users