aboutsummaryrefslogtreecommitdiff
path: root/src/etc/Makefile.pamphlet
blob: e8efe4af89eb7bf6eea137ea8b65cd681fdf3ec9 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
%% 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)/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}