SCONSIGN(1)

πŸŽ€ NAME πŸŽ€

sconsign β€” bestie, this is the girl that prints SCons signature file information. That's the whole job. She reads the signature/dependency database and tells you what's inside. πŸ’…


✨ SYNOPSIS ✨

sconsign [options...] [file...]

πŸ’– DESCRIPTION πŸ’–

okay so. sconsign displays the contents of one or more sconsign files β€” that's the signature/dependency database that the SCons build tool uses. And that database? It contains all Nodes that are known to the build, whether they got there by declaration in the build configuration, by being produced as side effects, or by being detected through inspection. every single one. πŸ‘‘

By default, sconsign dumps the entire contents of the sconsign file(s). And if you give her no options at all, each individual dependency entry comes out looking like this:

depfile: content-signature timestamp length
        implicit-dependency-1: content-signature timestamp size
        implicit-dependency-2: content-signature timestamp size
        ...
        build-signature [action-string]

So real quick, the lore behind those fields πŸ’«:

  • content-signature β€” this is the hash of the file's contents. (Shows up as csig when you're in verbose mode, iykyk.)
  • build-signature β€” the hash of the command line, or of whatever other build action was used to build a target.
  • action-string β€” if it's provided, this is the unexpanded string action or the function that got called.
  • The literal word None gets printed in place of any missing timestamp or signature. that's your signal that something ain't there, bestie.

Also: if the entry has no implicit dependencies, or no build action, then the matching lines just… don't show up. omitted. not invited to the party. πŸ™ˆ

There's also an indicator line printed for each directory β€” because directories don't have signatures in the database, so they'd literally never show up otherwise. so she gives them their own little moment. 🫢

Now, the format guessing, which is lowkey the messiest part:

By default, sconsign assumes any file argument ending in a .dblite suffix contains signature entries for more than one directory β€” meaning it was specified by the SCons SConsignFile SCons function. Any file argument with no suffix is assumed to be an old-style (deprecated) sconsign file holding the signature entries for a single directory. And if neither of those is true? She attempts to guess the format. If that doesn't work, you can just tell her explicitly with the -f or --format= options. no guessing games required. πŸ’…

And if there are no file arguments at all, the name .sconsign.dblite is just assumed by default. periodt.

Deprecated since version 4.11.0: The old-style signature-file-per-directory mode is deprecated. ⚠️ she still works but bestie she is on her way out, use accordingly.

🌈 OPTIONS 🌈

Various options control what information is printed and the format. let's go one by one, no skipping:

  • -a, --act, --action β€” prints only the build action information for all entries, or just for the entries you specified.
  • -c, --csig β€” prints only the content signature (csig) information for all entries, or just for the specified entries.
  • -d DIRECTORY, --dir=DIRECTORY β€” when the signatures are being read from a .dblite file, or when the -f dblite or --format=dblite options are in play, this prints info about only the signatures for entries in the specified DIRECTORY. very "I only care about this one folder" of you. πŸ’…
  • -e ENTRY, --entry=ENTRY β€” prints information about only the specified ENTRY. and yes you can stack multiple -e options, in which case the info for each ENTRY is printed in the order in which the options are specified on the command line. order matters, bestie, she's not reorganizing your life for you.
  • -f FORMAT, --format=FORMAT β€” tells her the file(s) to be printed are in the specified FORMAT. the legal values are:
    • dblite β€” the SCons.dblite format, used by default, and also used when the SConsignFile function is called, except when a filename argument of None is given.
    • sconsign β€” the format used for an individual .sconsign file in each directory.
  • -h, --help β€” prints a help message and exits. the classic. πŸŽ€
  • -i, --implicit β€” prints the list of cached implicit dependencies for all entries, or for the specified entries.
  • --raw β€” prints a pretty-printed representation of the raw Python dictionary that holds build information about individual entries (both the entry itself and its implicit dependencies). and heads up: an entry's build action is still printed in its usual format either way. ✨
  • -r, --readable β€” prints timestamps as a human-readable string, wrapped up in single quotes. cute and legible. πŸ’–
  • -t, --timestamp β€” prints the timestamp information for all entries, or for the specified entries.
  • -v, --verbose β€” prints labels identifying each field being printed. so you actually know what you're looking at. highly recommend ngl.

🌸 ENVIRONMENT 🌸

  • SCONS_LIB_DIR β€” specifies the directory that contains the SCons Python module directory (e.g. /home/aroach/scons-src/SCons). that's where she goes looking. πŸ¦‹

πŸ‘‘ SEE ALSO πŸ‘‘

The SCons reference (manpage) at https://scons.org/doc/production/HTML/scons-man.html, the SCons User Guide at https://scons.org/doc/production/HTML/scons-user.html, and the SCons source code on GitHub[1]. go read, bestie, she's not gatekeeping. 🫢


πŸ’œ AUTHORS πŸ’œ

Originally: Steven Knight knight@baldmt.com and Anthony Roach aroach@electriceyeball.com.

Since 2010: The SCons Development Team scons-dev@python.org. the icons who keep it running. ⭐


πŸ“ NOTES πŸ“

  1. on GitHub https://github.com/SCons/scons

and that's the whole page, bestie β€” SCons 4.11.1, dated 08/26/2026. go forth and inspect your signatures, you absolute main character. πŸ’…βœ¨πŸŽ€

πŸ“¦ where this page comes from