Hi Terry,

> Presumably, when the makefile described by Ralph processes this, it
> creates this zip through some kind of script.
...
> In other words a makefile, but without the compilation stage.

A makefile is useful for many things other than just compiling code as
it defines a set of ‘targets’ using ‘rules’, the default conventionally
being called ‘all’, and for each target specifies any things which have
to be made first, known as the dependencies, and the commands to run to
make this thing once those dependencies were successfully created.

Both dependencies and commands are optional so

    clean:
            rm -f *.pdf

is a target ‘clean’ with no dependencies and with just one command to
remove all PDF files, and

    chap3.tr: fig-directed-acyclic-graph.png

says the troff source of chapter 3 depends on a PNG which it embeds when
chap3.pdf is produced by some other rule.

So a makefile commonly has a ‘release’ target, say

    release: all check release-check
            tar cfz $(PROJ)-`git describe --long --dirty`.tar.gz $(DIST)

which tars up all the files listed in DIST, named after distribute,
using git's description for a version number.

If the release process becomes more complex then the commands move from
the makefile into a release script, as you say.

-- 
Cheers, Ralph.

-- 
  Next meeting: Online, Jitsi, Tuesday, 2020-09-01 20:00
  Check to whom you are replying
  Meetings, mailing list, IRC, ...  http://dorset.lug.org.uk
  New thread, don't hijack:  mailto:dorset@mailman.lug.org.uk

Reply via email to