From pal at foss.dk Wed May 24 06:20:16 2006 From: pal at foss.dk (Peter Allin) Date: Wed, 24 May 2006 12:20:16 +0200 Subject: [Rant] C::Dependencies on case independent filesystems Message-ID: Hi, First of all I'd like to thank for a really great build system! We've been using Rant for some months in one of our projects. It has been a great help and gigantic step forward from the build system supplied by our compiler vendor. Recently we've had some trouble with the header dependencies generated with C::Dependencies. I've found out that these problems occurred because some of our .cpp files include header files using another casing than the file has on the file system. For example the file could be called "ApplicationManager.h" and the include statement in the C++ code could be: #include "Applicationmanager.h" This results in a c_dependencies file that uses the name "Applicationmanager.h", which then doesn't recognize that the file "ApplicationManager.h" has been changed. In order to make our header dependencies work, I've applied the attached patch to the Rant we use. The patch takes the filename from the file system, instead of using the name from the C++ file. This is of course less efficient, but should also work on file systems that are case dependent. I'd be very grateful, if this patch could be included in the official version. Best Regards Peter Allin FOSS Fifty & First FOSS is celebrating 50 years Jubilee in 2006. Help us celebrate, take part in the FOSS jubilee competition and win a trip to Greenland. Check it out on www.foss.dk -------------- next part -------------- A non-text attachment was scrubbed... Name: case_independent_filesystems.patch Type: application/octet-stream Size: 766 bytes Desc: case_independent_filesystems.patch Url : http://rubyforge.org/pipermail/make-cafe/attachments/20060524/2dbecf94/attachment.obj From langstefan at gmx.at Thu May 25 04:10:20 2006 From: langstefan at gmx.at (Stefan Lang) Date: Thu, 25 May 2006 10:10:20 +0200 Subject: [Rant] C::Dependencies on case independent filesystems In-Reply-To: References: Message-ID: <200605251010.20449.langstefan@gmx.at> On Wednesday 24 May 2006 12:20, Peter Allin wrote: [...] > Recently we've had some trouble with the header dependencies > generated with C::Dependencies. I've found out that these problems > occurred because some of our .cpp files include header files using > another casing than the file has on the file system. For example > the file could be called "ApplicationManager.h" and the include > statement in the C++ code could be: > > #include "Applicationmanager.h" > > This results in a c_dependencies file that uses the name > "Applicationmanager.h", which then doesn't recognize that the file > "ApplicationManager.h" has been changed. > > In order to make our header dependencies work, I've applied the > attached patch to the Rant we use. The patch takes the filename > from the file system, instead of using the name from the C++ file. > This is of course less efficient, but should also work on file > systems that are case dependent. > > I'd be very grateful, if this patch could be included in the > official version. Thanks for the patch! I have some time the next four days, so I'll try to flesh out a new release, including this fix. Regards, Stefan From langstefan at gmx.at Fri May 26 13:27:53 2006 From: langstefan at gmx.at (Stefan Lang) Date: Fri, 26 May 2006 19:27:53 +0200 Subject: [Rant] Rant 0.5.6 released Message-ID: <200605261927.54101.langstefan@gmx.at> == What's new in this release? This is mainly a bugfix release. Fixes and minor improvements: * Package::Zip, Package::Tgz: Fix bug where a file that starts with the package name wouldn't be included in the package. (Reported and fixed by Kevin Burge.) * Fixed: The C source file scanner used by the C::Dependencies task was confused by C-style single-line comments. * Fix a typo in the C::Dependencies task which affected the :search option. (Reported by Kevin Burge.) * RubyTest no longer uses testrb as test runner per default. Thus it works on systems without testrb now (e.g. Debian based systems). The old behaviour can be enabled by setting the loader attribute to :testrb. A patch was provided by Max Nickel. New features: * The C::Dependencies task accepts the new option :correct_case, which is useful on case-insenstive file systems. (Patch provided by Peter Allin.) Read doc/c.rdoc for documentation. Example usage: import "c/dependencies" gen C::Dependencies, :correct_case => true * The method Rant::Sys.root_dir?. Read doc/sys.rdoc for documentation. == Installing Rant You can install Rant as a RubyGem: ? ? % gem install --remote rant or download the package from RubyForge(http://rubyforge.org/frs/?group_id=615) and install with install.rb: ? ? % ruby install.rb == Resources Homepage:: visit http://make.ruby-co.de Rubyforge page:: http://rubyforge.org/projects/make/ Repository:: http://developer.berlios.de/svn/?group_id=5046 Naming suggestions, feature requests for further Rant development, etc. are welcome! -- Stefan