-
Notifications
You must be signed in to change notification settings - Fork 1
Process Flowchart
ARaspiK edited this page Feb 8, 2019
·
2 revisions
- Begin
- Parse options
- Parse command
- Build
- Find, parse SMakefile
- Not found: Print error and fail
- Recursively add 'virtual dependencies' of targets
- Ignore declared dependencies
- Use hash table keyed by target name to prevent infinite recursion in case of cyclic dependencies
- Warn user about virtual dependencies
- Look for cyclic dependecies
- Fail if found
- Per target:
- Update (virtual) dependencies
- Check input files
- Force update if no inputs
- Fail on missing
- Check output files
- Force update if no outputs
- Missing outputs forces updates
- If all outputs are newer than all inputs then skip
- Execute update
- Update file modification times
- Find, parse SMakefile
- Info
- Find, parse SMakefile
- Not found: Print error and fail
- For each target:
- Collect parsed info
- Get target status:
- Check input files for existence and modification times
- Check output files (for existence and modification times)
- Missing input files marks the target as 'invalid'
- Missing output files marks the target as needing update
- If an output file is older than an input then mark as needing update
- Otherwise mark as up-to-date
- Retrieve virtual dependencies
- Warn if any found
- Warn on cyclic dependency
- Store information
- General
- Print stored information
- Marking
- Name
- Inputs
- Outputs
- Commands
- Dependencies
- Print stored information
- Dependencies
- Print dependency info
- Marking
- Name
- Dependency list (one level deep only)
- Print dependency info
- Reverse dependencies
- Build rev-dependency list:
- For each target:
- Look for (virtual) dependencies on this target
- Save targets (by ref)
- For each target:
- Print out list
- Marking
- Name
- Dependers (one level deep only)
- Build rev-dependency list:
- Find, parse SMakefile
- Help
- Find command
- Print help
- Name
- Brief Description
- Detailed Description
- Options
- Examples