support for F90/F95 in SCons

From: Chris Murray (murpup_at_comcast.net)
Date: 08/19/04


Date: Wed, 18 Aug 2004 21:56:42 -0400

Hi all,

Just wanted to let everyone know that v0.96 of SCons, a software
construction tool designed to replace make, has just been released. It
now has support for F90/F95 and the automated dependency checking
necessary to associate particular set of .mod files with a particular
source file such that source files will get built in the proper order
without the user having to explicitly set up (or run some script to set
up) dependencies between an object file and some set of source files.

The software can be downloaded from http://www.scons.org

Here are some of the features and limitations associated with the F90
dependency scanner

1) It IS designed to be able to deal with multiple USE statements per
line EXCEPT there is a design flaw if that multi-USE line is commented
out, ala:

! USE mod_a; USE mod_b

In that case, it will still try to create a dependency for the second
USE statement. You could bypass this by adding an exclamation after the
semicolon

2) It IS designed to deal with multiple MODULE statements per source
file, although I have not tested that out. The project I needed this
functionality for only has 1 module per file.

3) The assumption is that the compiler will create a module file for
each MODULE statement and the filename will be all lowercase. Most
compilers follow this convention, although I noticed that some on the
MAC (xlf, absoft) don't. Not sure how this will play out (I think MAC
is case-neutral, but now that it has a UNIX layer underneath, I don't
know). I know there is nothing in the standard that forces a compiler to
use .mod files, but this is how every compiler that I know of works.

4) The default module file extension is .mod, but that can be overridden.

5) It probably won't set up the dependencies properly if a MODULE is
brought in via an INCLUDE file, especially when the USE statement that
references it is in the source file that contains the INCLUDE statement.

6) By rights, the dependency scanner is supposed to be able to handle
recursive include's, so if an included file contains a USE statement, it
SHOULD be able to properly pick up the dependency, but that
functionality has not yet been tested.

I think SCons holds a lot of promise in terms of being able to make the
build process easier. I hope there are some brave souls out there
willing to give the software a try. If you do, feel free to post your
experiences here or on the SCons mailing list, or contribute some
patches to make the F90 support even better.

Chris



Relevant Pages

  • Re: OO debate: assuming type of containing object
    ... Not to suggest that there's any value in using the latest buzzwords to justify one's position (especially when they seem to be misused...how is locking yourself into a specific design supposed to be "agile"?), but at least from what you've posted it's not clear to me that your position is the correct one. ... Now as far as that question goes (the one of inter-class dependency), I'm all for designing code so that it can be reused, but I'm also not in favor of obfuscating a design just so that you can keep your objects separate. ... I don't see any way around having your control class refer specifically to the CorePage class. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Question on OO Principle
    ... 1, regarding Open-Close ... The Open-Closed Principle is a good practice for the design of ... in the dependency between high level components and detailed ... As with the OCP, your example deals with object creation, not ...
    (comp.lang.java.help)
  • Re: Advantages of OOP
    ... The only chapter O remember is that about the design (was it ... Inheritance creates another kind of dependency in ... code and there are already so many dependencies in structured code ...
    (comp.games.development.programming.misc)
  • RE: Tiny Kernel
    ... I suggest the second one "Adding component to the tiny kernel". ... First one is bit complex because removing the components may have dependency ... we are developing a limited functionality device with very ... Then remove SYSGEN_xxxxx variables in this design to get to our goal ...
    (microsoft.public.windowsce.platbuilder)
  • Re: Border not complete in IE6. Small 1px gap.
    ... Viewport width centric design aimed at a stupidly large 1024px width. ... Javascript dependency. ... h) A complete lack of document structure (aka as div soup). ...
    (comp.infosystems.www.authoring.stylesheets)