ftjam(1)

πŸ“¦ version 2.5.2, in ubuntu jammy

πŸ’– ftjam β€” Make(1) Redux πŸ’–

okay bestie, welcome to the ftjam manual page, living in section 1 of the General Commands Manual πŸŽ€ yes this is THE Jam/MR situation and it is lowkey iconic. sit down, hydrate, let's go πŸ¦‹


✨ NAME ✨

Jam/MR β€” it's literally Make(1) Redux πŸ’… like make but with a whole glow-up.


✨ SYNOPSIS ✨

ftjam [-a] [-g] [-n] [-q] [-v] [-d debug] [-f jambase] [-j jobs]
      [-o actionsfile] [-s var=value] [-t target] [target ...]

that's the whole vibe check right there ⭐


✨ DESCRIPTION ✨

so Jam is a program construction tool, like make(1) but with ✨main character energy✨.

Jam recursively builds target files from source files, using dependency information and updating actions expressed in the Jambase file β€” and the Jambase is written in jam's own interpreted language 🌈 no cap, it has its own language, she's talented like that.

The default Jambase is compiled into jam and gives you a boilerplate for common use, relying on a user-provide file "Jamfile" to enumerate the actual targets and sources. (yes the original says "user-provide", we're keeping it, it's part of the lore πŸ™ˆ)


✨ OPTIONS ✨

  • -a β€” build all targets anyway, even if they're already up-to-date. she does not care about your timestamps, she's building regardless πŸ’…
  • -d n β€” enable cummulative debugging levels from 1 to n. the interesting values are:
    • 1 β€” show actions (this is the default)
    • 2 β€” show "quiet" actions and display all action text
    • 3 β€” show dependency analysis, and target/source timestamps/paths
    • 4 β€” show shell arguments
    • 5 β€” show rule invocations and variable expansions
    • 6 β€” show directory/header file/archive scans
    • 7 β€” show variable settings
    • 8 β€” show variable fetches
    • 9 β€” show variable manipulation, scanner tokens
  • -d +n β€” enable debugging level n.
  • -d 0 β€” turn off all debugging levels. only errors are not suppressed 🫢
  • -f jambase β€” read jambase instead of using the built-in Jambase. only one -f flag is permitted, but the jambase may explicitly include other files.
  • -g β€” build targets with the newest sources first, rather than in the order of appearance in the Jambase/Jamfiles. glow-up ordering ✨
  • -j n β€” run up to n shell commands concurrently (UNIX and NT only). the default is 1.
  • -n β€” don't actually execute the updating actions, but do everything else. this changes the debug level default to -d2. it's giving dress rehearsal πŸŽ€
  • -o file β€” write the updating actions to the specified file instead of running them (or outputting them, as on the Mac).
  • -q β€” quit quickly (as if an interrupt was received) as soon as any target build fails. she's out, bye πŸ’€
  • -s var=value β€” set the variable var to value, overriding both internal variables and variables imported from the environment. overriding both, periodt πŸ‘‘
  • -t target β€” rebuild target and everything that depends on it, even if it is up-to-date.
  • -v β€” print the version of ftjam and exit.

✨ SEE ALSO ✨

ftjam is documented fully in HTML pages available on Debian systems from /usr/share/doc/ftjam/Jam.html 🌸 go read, bestie, the full lore is in there.


✨ AUTHOR ✨

This manual page was created by Yann Dirson dirson@debian.org from the Jam.html documentation, for the Debian GNU/Linux system (but may be used by others). 🫢 shoutout to Yann, absolutely ate.


okay and that's the whole page!! tysm for reading my little ftjam(1) explainer, from the General Commands Manual, version/date tag ftjam(1) and all πŸ’– go build something gorgeous, ily, bye πŸ¦‹βœ¨πŸŽ€

πŸ“¦ where this page comes from