# Documentation.
let POD2MAN = "@POD2MAN@"
+let POD2TEXT = "@POD2TEXT@"
-goal documentation = : pod2man ("goals", "1"),
- pod2man ("Goalfile", "5")
+goal documentation = : pod2man ("goals", "1"), pod2man ("Goalfile", "5"),
+ pod2text ("goals", "1"), pod2text ("Goalfile", "5")
goal pod2man (page, section) =
"man/%page.%section" : "docs/%page.pod" {
mv %@-t %@
}
+goal pod2text (page, section) =
+"man/%page.%section.txt" : "docs/%page.pod" {
+ rm -f %@ %@-t
+ mkdir -p man
+ %POD2TEXT -u %< > %@-t
+ mv %@-t %@
+}
+
#----------------------------------------------------------------------
# Tests.
exit 1
fi
}
+
+#----------------------------------------------------------------------
+# Install.
+
+# DESTDIR can be overridden on the command line to install into
+# a subdirectory.
+let DESTDIR = ""
+
+let stdlibfiles = [wildcard ("stdlib/*.gl"), wildcard ("stdlib/*.sh")]
+
+goal install = {
+ # exec_prefix die die die
+ bindir="@prefix@/bin"
+ datadir="@prefix@/share"
+ mkdir -p %DESTDIR"$bindir"
+ mkdir -p %DESTDIR"$datadir/goals"
+ install src/goals %DESTDIR"$bindir" -m 0755
+ install %stdlibfiles %DESTDIR"$datadir"/goals -m 644
+}
+
+#----------------------------------------------------------------------
+# Distribution.
+
+let sources = [
+ "src/ast.ml",
+ "src/ast.mli",
+ "src/cmdline.ml",
+ "src/cmdline.mli",
+ "src/config.ml.in",
+ "src/config.mli",
+ "src/deps.ml",
+ "src/deps.mli",
+ "src/eval.ml",
+ "src/eval.mli",
+ "src/jobs.ml",
+ "src/jobs.mli",
+ "src/lexer.mli",
+ "src/lexer.mll",
+ "src/main.ml",
+ "src/parse.ml",
+ "src/parse.mli",
+ "src/parser.mly",
+ "src/run.ml",
+ "src/run.mli",
+ "src/utils-c.c",
+ "src/utils.ml",
+ "src/utils.mli",
+]
+
+let distfiles = [
+ ".gitignore",
+ "COPYING",
+ "Goalfile.in",
+ "Makefile.in",
+ "README",
+ "TODO",
+ "autogen.sh",
+ "config.h.in",
+ "configure",
+ "configure.ac",
+ wildcard ("docs/*.pod"),
+ "goals.spec.in",
+ "install-sh",
+ "m4/ocaml.m4",
+ "run.in",
+ "src/.depend",
+ sources,
+ "stamp-h.in",
+ wildcard ("stdlib/*.gl"),
+ wildcard ("stdlib/*.sh"),
+ wildcard ("tests/*.data"),
+ wildcard ("tests/*.data[0-9]"),
+ wildcard ("tests/*.expected"),
+ wildcard ("tests/*.gl"),
+ wildcard ("tests/*.sh"),
+ wildcard ("tests/10-function-wildcard.d/*"),
+]
+
+let tarfile = "@PACKAGE_NAME@-@PACKAGE_VERSION@.tar.gz"
+
+goal dist = "%tarfile" : {
+ d="@PACKAGE_NAME@-@PACKAGE_VERSION@"
+ o=%tarfile
+ rm -rf "$d"
+ rm -f "$o" "$o-t"
+
+ mkdir "$d"
+ for f in %distfiles; do
+ subdir="$(dirname "$f")"
+ mkdir -p "$d/$subdir"
+ cp -a "$f" "$d/$subdir"
+ done
+ tar zcf "$o-t" "$d"
+ mv "$o-t" "$o"
+ rm -rf "$d"
+}
+
+goal distcheck = : dist {
+ d="@PACKAGE_NAME@-@PACKAGE_VERSION@"
+ tar zxf %tarfile
+ pushd "$d"
+ ./configure
+ make
+ make check
+ popd
+ rm -rf "$d"
+ print_green "PASS: distcheck"
+}
+
+#----------------------------------------------------------------------
+# Maintainer rules.
+
+# Check no files are missing from distfiles above by unpacking the
+# distribution tarball and comparing it to git.
+goal maintainer-check-extra-dist = : dist @{
+ tar ztf %tarfile | sort |
+ sed 's,^@PACKAGE_NAME@-@PACKAGE_VERSION@/,,' > tarfiles
+ git ls-files | sort > gitfiles
+ comm -13 tarfiles gitfiles > comm.out
+ cat comm.out
+ [ ! -s comm.out ]
+ rm tarfiles gitfiles comm.out
+ print_green "PASS: distfiles"
+}
+
+# XXX This should also do a Fedora build.
+goal maintainer-release = : dist,
+ maintainer-check-extra-dist,
+ distcheck,
+ maintainer-upload,
+ maintainer-srpm,
+ maintainer-fedora-copr
+
+let websitedir = "%HOME/d/websites/people.redhat.com/goals"
+
+# XXX Should actually use the *url tactic here.
+goal maintainer-upload = : distcheck {
+ [ -d %websitedir ]
+ cp %tarfile %websitedir/files
+ cp README %websitedir/README
+ cp man/goals.1.txt man/Goalfile.5.txt %websitedir
+ cd %websitedir
+ git add files/%tarfile README goals.1.txt Goalfile.5.txt
+ git commit -m "@PACKAGE_NAME@ @PACKAGE_VERSION@"
+ cd ..
+ ./.rsync
+}
+
+pure function get-fedora-dist () returning string = @{
+ rpm --eval '%%dist'
+}
+let fedora-dist = get-fedora-dist ()
+let srpm = "goals-@PACKAGE_VERSION@%fedora-dist.src.rpm"
+
+goal maintainer-srpm =
+"%srpm" : tarfile, "goals.spec" {
+ rpmbuild -bs \
+ --define "%%_sourcedir $PWD" \
+ --define "%%_srcrpmdir $PWD" \
+ goals.spec
+}
+
+goal maintainer-fedora-copr = : maintainer-upload, srpm {
+ copr build rjones/goals %srpm
+}
\ No newline at end of file