From 3f725f73b9ae26a54f49b5feb744d37a8f1dd308 Mon Sep 17 00:00:00 2001 From: Mark Wooding Date: Sun, 30 Aug 2015 10:58:38 +0100 Subject: [PATCH] Add build machinery for the manual. --- Makefile.am | 6 ++++ configure.ac | 7 ++++- debian/control | 15 ++++++++-- debian/sod-doc.install | 1 + doc/Makefile.am | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 100 insertions(+), 3 deletions(-) create mode 100644 debian/sod-doc.install create mode 100644 doc/Makefile.am diff --git a/Makefile.am b/Makefile.am index d1a016d..302119b 100644 --- a/Makefile.am +++ b/Makefile.am @@ -47,6 +47,9 @@ SUBDIRS += src ## The runtime support library. SUBDIRS += lib +## The manual. +SUBDIRS += doc + ## The tests and examples. SUBDIRS += test @@ -77,6 +80,9 @@ EXTRA_DIST += debian/libsod-dev.install ## sod EXTRA_DIST += debian/sod.install +## sod-doc +EXTRA_DIST += debian/sod-doc.install + ## sod-dev EXTRA_DIST += debian/sod-dev.install diff --git a/configure.ac b/configure.ac index c1fed50..73a903a 100644 --- a/configure.ac +++ b/configure.ac @@ -105,7 +105,12 @@ AC_SUBST([lispsysdir], [$with_lisp_system_dir]) dnl-------------------------------------------------------------------------- dnl Output. -AC_CONFIG_FILES([Makefile src/Makefile lib/Makefile test/Makefile]) +AC_CONFIG_FILES( + [Makefile] + [src/Makefile] + [lib/Makefile] + [doc/Makefile] + [test/Makefile]) AC_OUTPUT dnl----- That's all, folks -------------------------------------------------- diff --git a/debian/control b/debian/control index 4fda78f..d94b77d 100644 --- a/debian/control +++ b/debian/control @@ -36,7 +36,7 @@ Description: An object system for C, runtime library Package: sod Architecture: any Depends: ${shlibs:Depends} -Recommends: libsod-dev (= ${Source-Version}) +Recommends: libsod-dev (= ${Source-Version}), sod-doc (= ${Source-Version}) Description: An object system for C, translator Sod is a `sensible object design' for C, supporting a number of fancy features, including multiple inheritance, method combinations with daemon @@ -46,9 +46,20 @@ Description: An object system for C, translator This package contains the Sod translator, which reads object definitions and produces compilable C code. +Package: sod-doc +Architecture: all +Description: An object system for C, translator + Sod is a `sensible object design' for C, supporting a number of fancy + features, including multiple inheritance, method combinations with daemon + methods, and a compile-time metaprotocol. The only downside is that the + translator is written in Common Lisp. + . + This package contains the Sod manual, which describes everything in + excruciating detail. + Package: sod-dev Architecture: any -Recommends: sbcl | clisp, cl-asdf, cl-xlunit +Recommends: sbcl | clisp, cl-asdf, cl-xlunit, sod-doc (= ${Source-Version}) Description: An object system for C, Lisp source Sod is a `sensible object design' for C, supporting a number of fancy features, including multiple inheritance, method combinations with daemon diff --git a/debian/sod-doc.install b/debian/sod-doc.install new file mode 100644 index 0000000..eac8396 --- /dev/null +++ b/debian/sod-doc.install @@ -0,0 +1 @@ +usr/share/doc/sod/* /usr/share/doc/sod-doc/ diff --git a/doc/Makefile.am b/doc/Makefile.am new file mode 100644 index 0000000..882f01b --- /dev/null +++ b/doc/Makefile.am @@ -0,0 +1,74 @@ +### -*-makefile-*- +### +### Build script for the manual +### +### (c) 2015 Straylight/Edgeware +### + +###----- Licensing notice --------------------------------------------------- +### +### This file is part of the Sensble Object Design, an object system for C. +### +### SOD is free software; you can redistribute it and/or modify +### it under the terms of the GNU General Public License as published by +### the Free Software Foundation; either version 2 of the License, or +### (at your option) any later version. +### +### SOD is distributed in the hope that it will be useful, +### but WITHOUT ANY WARRANTY; without even the implied warranty of +### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +### GNU General Public License for more details. +### +### You should have received a copy of the GNU General Public License +### along with SOD; if not, write to the Free Software Foundation, +### Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +include $(top_srcdir)/vars.am + +doc_DATA = +TEX_FILES = + +CLEANFILES += *.aux *.out *.log *.toc +EXTRA_DIST += $(TEX_FILES) + +###-------------------------------------------------------------------------- +### The manual. + +## The master file. +TEX_FILES += sod.tex + +## Main document styling and definitions. +TEX_FILES += sod.sty + +## Tutorial. +TEX_FILES += tutorial.tex + +## Reference. +TEX_FILES += concepts.tex +##TEX_FILES += cmdline.tex +TEX_FILES += syntax.tex +TEX_FILES += runtime.tex +TEX_FILES += structures.tex + +## Lisp interface. +TEX_FILES += lispintro.tex +TEX_FILES += misc.tex +TEX_FILES += parsing.tex +TEX_FILES += clang.tex +##TEX_FILES += meta.tex +##TEX_FILES += layout.tex +##TEX_FILES += module.tex +##TEX_FILES += ouptut.tex + +## Other hacks. +TEX_FILES += cutting-room-floor.tex + +## Building the output documents. +MAINTAINERCLEANFILES += sod.pdf +EXTRA_DIST += sod.pdf +doc_DATA += sod.pdf +sod.pdf: $(TEX_FILES) + cd $(srcdir) && pdflatex --output-directory=$(abs_builddir) sod.tex + cd $(srcdir) && pdflatex --output-directory=$(abs_builddir) sod.tex + +###----- That's all, folks -------------------------------------------------- -- 2.11.0