aboutsummaryrefslogtreecommitdiff
path: root/src/etc/Makefile.pamphlet
diff options
context:
space:
mode:
Diffstat (limited to 'src/etc/Makefile.pamphlet')
-rw-r--r--src/etc/Makefile.pamphlet140
1 files changed, 140 insertions, 0 deletions
diff --git a/src/etc/Makefile.pamphlet b/src/etc/Makefile.pamphlet
new file mode 100644
index 00000000..20689347
--- /dev/null
+++ b/src/etc/Makefile.pamphlet
@@ -0,0 +1,140 @@
+%% Oh Emacs, this is a -*- Makefile -*-, so give me tabs.
+\documentclass{article}
+\usepackage{axiom}
+
+\title{\File{src/etc/Makefile} Pamphlet}
+\author{Timothy Daly \and Gabriel Dos~Reis}
+
+\begin{document}
+\maketitle
+
+\begin{abstract}
+\end{abstract}
+\eject
+
+\tableofcontents
+\eject
+
+\section{The databases}
+
+The databases are built in this Makefile even though the prerequisits
+are actually made during the previous step in the algebra directory.
+This allows us to use a simple wildcard to express the fact that
+all of the [[algreba/*.NRLIB/code.\$(OBJEXT)]] files are required in
+order to build
+the databases. If any if any of these are changed, the databases must
+be re-built.
+<<dbcomplete>>=
+$(axiom_targetdir)/algebra/*.daase: ../algebra/*.NRLIB/code.$(OBJEXT)
+ @ echo 4 rebuilding databases...
+ @ $(INSTALL_DATA) $(axiom_src_docdir)/gloss.text ../algebra
+ @ $(INSTALL_DATA) $(axiom_src_docdir)/gloss.text ../algebra
+ @ $(INSTALL_DATA) $(axiom_src_docdir)/topics.data ../algebra
+ @ $(INSTALL_DATA) $(axiom_src_docdir)/topics.data ../algebra
+ @ (cd ../algebra ; \
+ echo ')lisp (make-databases "" nil)' | ${INTERPSYS} )
+ @ $(INSTALL_DATA) ../algebra/*.daase $(axiom_targetdir)/algebra
+ @ $(INSTALL_DATA) ../algebra/libdb.text $(axiom_targetdir)/algebra
+ @ $(INSTALL_DATA) ../algebra/comdb.text $(axiom_targetdir)/algebra
+
+@
+
+\section{\Tool{summary}}
+
+<<summary>>=
+$(axiom_target_libdir)/summary: $(srcdir)/summary
+ $(INSTALL_DATA) $< $@
+
+@
+
+\section{\File{copyright}}
+
+<<copyright>>=
+$(axiom_target_libdir)/copyright: $(srcdir)/copyright
+ $(INSTALL_DATA) $< $@
+
+@
+
+\section{\Tool{asq}}
+
+\Tool{asq} is a command line tool to ask questions about \Tool{Axiom}'s
+domains, packages, and categories.
+
+\begin{verbatim}
+asq -property searchkey
+ property is one of the following flags: (all is the default)
+ (ab) abbreviation (an) ancestors
+ (at) attributes (ca cc) constructorcategory
+ (cf fo) constructorform (ck ki) constructorkind
+ (cm) constructormodemap (con) constructor
+ (cos) cosig (de) defaultdomain
+ (dom) domain (doc) documentation
+ (mo) modemaps (ni) niladic
+ (ob) object (op) operationalist
+ (pr) predicates (so) sourcefile
+searchkey can be either a domain or its abbreviation.
+ e.g. %s -so Integer
+ will give the source file name written to stdout
+\end{verbatim}
+
+<<asq>>=
+bin_PROGRAMS = asq$(EXEEXT)
+asq_sources = asq.c
+asq_SOURCES = $(addsuffix .pamphlet, $(asq_sources))
+asq_objects = $(asq_sources:.c=.$(OBJEXT))
+
+$(axiom_target_bindir)/asq$(EXEEXT): asq.c $(axiom_c_macros_h)
+ @echo 4 making $@ from $<
+ ${CC} ${CCF} $(axiom_includes) -o asq asq.c
+ $(INSTALL_PROGRAM) asq $(axiom_target_bindir)
+
+asq.c: $(srcdir)/asq.c.pamphlet
+ $(axiom_build_document) --tangle --output=$@ $<
+@
+
+<<*>>=
+INTERPSYS= \
+ AXIOM="$(AXIOM)" \
+ DAASE="$(axiom_src_datadir)" \
+ ../interp/interpsys$(EXEEXT)
+
+subdir = src/etc/
+
+pamphlets = Makefile.pamphlet $(asq_SOURCES)
+
+
+.PHONY: all all-asq
+all: all-ax
+
+all-ax all-asq: stamp
+ @echo finished $(builddir)
+
+stamp: $(axiom_targetdir)/algebra/*.daase $(axiom_target_bindir)/asq$(EXEEXT) \
+ $(axiom_target_libdir)/summary \
+ $(axiom_target_libdir)/copyright
+ -rm -f stamp
+ $(STAMP) stamp
+
+<<dbcomplete>>
+<<asq>>
+<<summary>>
+<<copyright>>
+
+mostlyclean-local:
+ -rm -f $(asq_sources) $(asq_objects)
+ -rm -f stamp
+
+clean-local: mostlyclean-local
+ -rm -f $(axiom_target_libdir)/summary
+ -rm -f $(axiom_target_libdir)/copyright
+ -rm -f $(axiom_target_bindir)/axiom
+ -rm -f $(axiom_target_bindir)/asq$(EXEEXT)
+
+distclean-local: clean-local
+@
+
+\eject
+\begin{thebibliography}{99}
+\bibitem{1} nothing
+\end{thebibliography}
+\end{document}