5 goals - an experimental tool that generalizes “make”
9 goals ['TARGET'] ['VAR=VALUE']
10 [-C|--directory DIRECTORY] [-d] [-f|--file Goalfile]
11 [-I|--include DIRECTORY] [-j|--jobs JOBS] [--no-prelude]
20 Goals is a command line tool similar in concept to L<make(1)> — a way
21 to express dependencies between tasks that need to be done. Goals
22 generalizes make so it can express dependencies between not just files
23 but anything such as URLs, remote files, remote builds and more. It
24 is also very extensible using only shell scripting, and it fixes many
25 problems that make suffers from.
27 This manual page documents the command line tool and options.
29 There is an introduction and tutorial on writing goal files:
32 There is also a reference manual: L<goals-reference(5)>.
42 Display short help summary and exit.
46 =item B<--directory> DIRECTORY
48 When goals starts up, and before reading the initial F<Goalfile> or
49 doing any other processing, goals changes directory.
53 Enable very verbose debugging.
57 =item B<--file> GOALFILE
59 Set the name of the initial goal file to read. The default name is
62 Note that if a relative path is given here, it is relative to the
63 directory specified with the I<-C> option, or to the current directory
64 if I<-C> was not used.
68 =item B<--include> DIRECTORY
70 Specify an include directory, used when including goal files using the
71 C<include> directive. You can use this option multiple times. Later
72 directories have priority over earlier ones. There is also an
73 implicit C<%stdlib> directory which is used for prelude files (see
74 L<goals-reference(5)>).
76 Note that if a relative path is given here, it is relative to the
77 directory specified with the I<-C> option, or to the current directory
78 if I<-C> was not used.
84 Set the maximum number of commands that can run at the same time.
85 Unlike make, goals defaults to running in parallel, setting the
86 default to the number of cores on the machine. To disable parallel
87 jobs, you must use S<I<-j 1>>.
91 Do not load F<prelude.gl> from C<%stdlib>. The default is that the
92 prelude is always loaded automatically before any initial goal file
93 (but you can redefine prelude definitions in your goal file if you
102 Don't print the shell commands that are run. This is the same as
103 turning all S<C<{ CODE }>> sections into S<C<@{ CODE }>> sections.
109 L<Goalfile(5)>, L<goals-reference(5)>, L<make(1)>.
113 Richard W.M. Jones <rjones@redhat.com>
117 Copyright (C) 2020 Richard W.M. Jones
119 Copyright (C) 2020 Red Hat Inc.
121 This program is free software; you can redistribute it and/or modify
122 it under the terms of the GNU General Public License as published by
123 the Free Software Foundation; either version 2 of the License, or
124 (at your option) any later version.
126 This program is distributed in the hope that it will be useful,
127 but WITHOUT ANY WARRANTY; without even the implied warranty of
128 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
129 GNU General Public License for more details.
131 You should have received a copy of the GNU General Public License along
132 with this program; if not, write to the Free Software Foundation, Inc.,
133 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.