An iterative software development environment is provided to perform modified
dependency analyses for use in building a target file and all the files on which
it depends from one or more source files using a set of prioritized build rules.
In one embodiment, the build rules indicate how different types of target files
can be generated from different source file types. A given target file type may
be associated with several rules, each having a different priority, for building
the target from different source file types. In one embodiment, if more than one
source file exists that can be used to generate a given target file, the rule with
the highest priority is used. In one embodiment, the build environment identifies
how to generate a particular target file by identifying the highest priority rule
for which an associated source file type exists. Moreover, the development environment
identifies the presence of a new source file having a corresponding build rule
with a higher priority than that of the source file type(s) previously used in
the generation of the target file. In one embodiment of the invention, the target
file is rebuilt if such a new source file is identified, or if one or more source
files previously used to build the target file are determined to have been modified
more recently than that indicated by the build date/time of the target file itself.