Version 0.2.
[goaljobs.git] / goaljobs.pod
1 =encoding utf8
2
3 =head1 NAME
4
5 goaljobs - make and cron replacement and business rules manager
6
7 =head1 SUMMARY
8
9  goaljobs [-o output] [lib.ml...] goals.ml
10
11  ./goals -l
12
13  ./goals all
14  ./goals
15
16 =head1 DESCRIPTION
17
18 Goaljobs is a flexible build system and business rules manager similar
19 to make and cron, but much more powerful.  You can use it to automate
20 many complex tasks that have multiple steps (even with manual steps)
21 that have to be carried out in dependency order.
22
23 =head2 GETTING STARTED
24
25 For a tutorial-like introduction to goaljobs, see
26 L<http://rwmj.wordpress.com/tag/goaljobs/>
27
28 For examples, see the C<examples/> directory in the source and
29 L<http://git.annexia.org/?p=goals.git;a=summary>
30
31 For reference documentation on how to write scripts, see the
32 L<goaljobs-reference(1)> man page.
33
34 To read about the Goaljobs API, look for the file C<goaljobs.mli> (in
35 the source code or installed as part of the goaljobs package), or see
36 the HTML documentation installed as part of the goaljobs package.
37
38 =head2 GOALJOBS WRAPPER SCRIPT
39
40 C<goaljobs> is a wrapper script that compiles your goals into a binary
41 (program) which can then be run.  It takes a set of input files
42 (C<*.ml>) and writes a single output program.  The output program has
43 the same name as the last input file minus C<.ml>, but you can
44 override this using the I<-o> option.
45
46 Note that the C<goaljobs> script is just a simple wrapper around the
47 OCaml compiler (L<ocamlopt(1)>).
48
49 =head1 OPTIONS
50
51 =over 4
52
53 =item B<--help>
54
55 Display short help and exit.
56
57 =item B<-g>
58
59 Enable debugging symbols in the output binary.
60
61 =item B<-I> directory
62
63 =item B<-I> +package
64
65 Pass these options directly to the OCaml compiler.  You can use this
66 to include OCaml modules from another directory.  The C<+package> form
67 includes a package relative to the OCaml library directory
68 (C<ocamlc -where>).
69
70 =item B<-o> output
71
72 Set the name of the output binary.
73
74 The default is to use the name of the final source file, after
75 removing the C<.ml> extension.
76
77 =item B<--package> package(s)
78
79 This passes I<-package package(s)> to L<ocamlfind(1)>.  You can use it
80 to enable OCaml packages, eg:
81
82  goaljobs --package bigarray,libvirt source.ml
83
84 =item B<--pkgdir> dir
85
86 If goaljobs is installed in a non-standard directory, pass the name of
87 the directory using this option.  You can also use this if you want to
88 run goaljobs without installing it (pass the goaljobs source
89 directory).
90
91 =back
92
93 =head1 SEE ALSO
94
95 L<goaljobs-reference(1)>,
96 L<ocamlopt(1)>
97
98 =head1 AUTHORS
99
100 Richard W.M. Jones <rjones @ redhat . com>
101
102 =head1 COPYRIGHT
103
104 (C) Copyright 2013 Red Hat Inc.,
105
106 This program is free software; you can redistribute it and/or modify
107 it under the terms of the GNU General Public License as published by
108 the Free Software Foundation; either version 2 of the License, or
109 (at your option) any later version.
110
111 This program is distributed in the hope that it will be useful,
112 but WITHOUT ANY WARRANTY; without even the implied warranty of
113 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
114 GNU General Public License for more details.
115
116 You should have received a copy of the GNU General Public License
117 along with this program; if not, write to the Free Software
118 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.