2000
|
1 # Makefile for octave's doc/interpreter directory |
152
|
2 # |
7017
|
3 # Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, |
|
4 # 2002, 2003, 2005, 2006, 2007 John W. Eaton |
|
5 # |
7016
|
6 # This file is part of Octave. |
|
7 # |
|
8 # Octave is free software; you can redistribute it and/or modify it |
|
9 # under the terms of the GNU General Public License as published by the |
|
10 # Free Software Foundation; either version 3 of the License, or (at |
|
11 # your option) any later version. |
|
12 # |
|
13 # Octave is distributed in the hope that it will be useful, but WITHOUT |
|
14 # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
15 # FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License |
|
16 # for more details. |
|
17 # |
|
18 # You should have received a copy of the GNU General Public License |
|
19 # along with Octave; see the file COPYING. If not, see |
|
20 # <http://www.gnu.org/licenses/>. |
152
|
21 |
2000
|
22 TOPDIR = ../.. |
152
|
23 |
|
24 srcdir = @srcdir@ |
411
|
25 top_srcdir = @top_srcdir@ |
152
|
26 VPATH = @srcdir@ |
|
27 |
|
28 include $(TOPDIR)/Makeconf |
|
29 |
651
|
30 INSTALL = @INSTALL@ |
|
31 INSTALL_PROGRAM = @INSTALL_PROGRAM@ |
|
32 INSTALL_DATA = @INSTALL_DATA@ |
|
33 |
6888
|
34 SCRIPT_SOURCES = sparseimages.m interpimages.m geometryimages.m plotimages.m |
6001
|
35 |
6577
|
36 EXAMPLE_FILES_NODIR = \ |
|
37 addtwomatrices.cc \ |
|
38 celldemo.cc \ |
|
39 firstmexdemo.c \ |
|
40 fortdemo.cc \ |
|
41 fortsub.f \ |
|
42 funcdemo.cc \ |
|
43 globaldemo.cc \ |
|
44 helloworld.cc \ |
6595
|
45 mycell.c \ |
|
46 myfeval.c \ |
|
47 myfunc.c \ |
|
48 mypow2.c \ |
|
49 mysparse.c \ |
|
50 mystring.c \ |
|
51 mystruct.c \ |
|
52 paramdemo.cc \ |
6577
|
53 stringdemo.cc \ |
|
54 structdemo.cc \ |
|
55 unwinddemo.cc |
|
56 |
|
57 EXAMPLE_FILES = $(addprefix $(top_srcdir)/examples/, $(EXAMPLE_FILES_NODIR)) |
|
58 |
6847
|
59 GEOMETRYIMAGES = voronoi triplot griddata convhull delaunay inpolygon |
6832
|
60 GEOMETRYIMAGES_EPS = $(addsuffix .eps, $(GEOMETRYIMAGES)) |
|
61 GEOMETRYIMAGES_PDF = $(addsuffix .pdf, $(GEOMETRYIMAGES)) |
|
62 GEOMETRYIMAGES_PNG = $(addsuffix .png, $(GEOMETRYIMAGES)) |
7255
|
63 GEOMETRYIMAGES_TXT = $(addsuffix .txt, $(GEOMETRYIMAGES)) |
6832
|
64 |
7189
|
65 PLOTIMAGES = plot hist errorbar polar mesh plot3 extended |
6888
|
66 PLOTIMAGES_EPS = $(addsuffix .eps, $(PLOTIMAGES)) |
|
67 PLOTIMAGES_PDF = $(addsuffix .pdf, $(PLOTIMAGES)) |
|
68 PLOTIMAGES_PNG = $(addsuffix .png, $(PLOTIMAGES)) |
7255
|
69 PLOTIMAGES_TXT = $(addsuffix .txt, $(PLOTIMAGES)) |
6888
|
70 |
6743
|
71 INTERPIMAGES = interpft interpn interpderiv1 interpderiv2 |
6721
|
72 INTERPIMAGES_EPS = $(addsuffix .eps, $(INTERPIMAGES)) |
|
73 INTERPIMAGES_PDF = $(addsuffix .pdf, $(INTERPIMAGES)) |
|
74 INTERPIMAGES_PNG = $(addsuffix .png, $(INTERPIMAGES)) |
7255
|
75 INTERPIMAGES_TXT = $(addsuffix .txt, $(INTERPIMAGES)) |
6721
|
76 |
6001
|
77 SPARSEIMAGES_1 = gplot grid spmatrix spchol spcholperm |
|
78 SPARSEIMAGES_EPS = $(addsuffix .eps, $(SPARSEIMAGES_1)) |
|
79 SPARSEIMAGES_PDF = $(addsuffix .pdf, $(SPARSEIMAGES_1)) |
|
80 SPARSEIMAGES_PNG = $(addsuffix .png, $(SPARSEIMAGES_1)) |
|
81 SPARSEIMAGES_TXT = $(addsuffix .txt, $(SPARSEIMAGES_1)) |
|
82 |
6832
|
83 IMAGES_EPS = $(SPARSEIMAGES_EPS) $(INTERPIMAGES_EPS) \ |
6888
|
84 $(GEOMETRYIMAGES_EPS) $(PLOTIMAGES_EPS) |
6832
|
85 IMAGES_PDF = $(SPARSEIMAGES_PDF) $(INTERPIMAGES_PDF) \ |
6888
|
86 $(GEOMETRYIMAGES_PDF) $(PLOTIMAGES_PDF) |
6832
|
87 IMAGES_PNG = $(SPARSEIMAGES_PNG) $(INTERPIMAGES_PNG) \ |
6888
|
88 $(GEOMETRYIMAGES_PNG) $(PLOTIMAGES_PNG) |
7255
|
89 IMAGES_TXT = $(SPARSEIMAGES_TXT) $(INTERPIMAGES_TXT) \ |
|
90 $(GEOMETRYIMAGES_TXT) $(PLOTIMAGES_TXT) |
6031
|
91 |
|
92 HTML_IMAGES_PNG = $(addprefix HTML/, $(IMAGES_PNG)) |
6366
|
93 |
6001
|
94 IMAGES = $(IMAGES_EPS) $(IMAGES_PDF) $(IMAGES_PNG) $(IMAGES_TXT) |
5648
|
95 |
6784
|
96 SUB_SOURCE := arith.txi audio.txi basics.txi bugs.txi \ |
4167
|
97 container.txi control.txi cp-idx.txi data.txi \ |
6569
|
98 debug.txi diffeq.txi dynamic.txi emacs.txi errors.txi eval.txi \ |
6559
|
99 expr.txi finance.txi fn-idx.txi func.txi geometry.txi gpl.txi \ |
6706
|
100 grammar.txi image.txi install.txi interp.txi \ |
6558
|
101 intro.txi io.txi linalg.txi matrix.txi nonlin.txi numbers.txi \ |
6537
|
102 op-idx.txi optim.txi package.txi plot.txi poly.txi preface.txi \ |
5164
|
103 quad.txi quaternion.txi set.txi signal.txi sparse.txi stats.txi \ |
6838
|
104 stmt.txi strings.txi system.txi testfun.txi tips.txi var.txi \ |
|
105 vr-idx.txi |
152
|
106 |
6572
|
107 SOURCES := $(SUB_SOURCE) $(SCRIPT_SOURCES) |
3294
|
108 |
3851
|
109 MAIN_TEXINFO := $(srcdir)/octave.texi |
3297
|
110 |
|
111 SUB_TEXINFO := $(SUB_SOURCE:.txi=.texi) |
|
112 |
6654
|
113 # Don't list ../conf.texi here. |
|
114 TEXINFO_SOURCE := $(MAIN_TEXINFO) $(SUB_TEXINFO) contributors.texi |
|
115 |
|
116 TEXINFO := $(TEXINFO_SOURCE) ../conf.texi |
152
|
117 |
7075
|
118 # Do not use --output option argument, because this is not supported |
|
119 # by MiKTeX (compilation under Windows/MSVC assumes the use of MiKTeX |
|
120 # to build the doc). Instead, copy the source .texi using the |
|
121 # targeted file name (e.g. to generate octave-a4.pdf, copy to |
|
122 # octave-a4.texi) and call texi2[dvi|pdf] on it. |
6673
|
123 |
7075
|
124 TEXI2DVICOMMAND = TEXINPUTS="..$(sepchar)$(srcdir)$(sepchar)$(srcdir)/..$(sepchar)$(TEXINPUTS)$(sepchar)" \ |
|
125 $(TEXI2DVI) |
|
126 |
|
127 TEXI2PDFCOMMAND = TEXINPUTS="..$(sepchar)$(srcdir)$(sepchar)$(srcdir)/..$(sepchar)$(TEXINPUTS)$(sepchar)" \ |
|
128 $(TEXI2PDF) |
6673
|
129 |
|
130 FORMATTED = octave.info octave.pdf octave-a4.pdf octave.info-[0-9]* |
328
|
131 |
4339
|
132 MAN_BASE := mkoctfile octave octave-bug octave-config |
4149
|
133 MAN_SRC := $(addsuffix .1, $(MAN_BASE)) |
|
134 |
5775
|
135 # FIXME -- need to include generated figures here... |
6798
|
136 DISTFILES = $(addprefix $(srcdir)/, Makefile.in contributors.in \ |
|
137 mkcontrib.awk dir munge-texi.cc $(MAN_SRC) $(SOURCES) $(MAIN_TEXINFO)) \ |
|
138 $(SUB_TEXINFO) contributors.texi $(FORMATTED) $(IMAGES) |
299
|
139 |
5706
|
140 DISTDIRS = HTML |
|
141 |
6001
|
142 DISTSUBDIRS := |
5706
|
143 |
6001
|
144 SUBDIRS := |
5806
|
145 |
2624
|
146 # Look for version.h to get version information. |
|
147 xfiles := $(TOPDIR)/src/version.h $(srcdir)/$(TOPDIR)/src/version.h |
|
148 |
|
149 version_file := $(firstword $(foreach file, $(xfiles), $(wildcard $(file)))) |
|
150 |
2689
|
151 SPELL = $(patsubst %.texi, %.spell, $(TEXINFO)) |
152
|
152 |
|
153 %.spell : %.texi |
|
154 rm -f $@ |
4084
|
155 $(SED) -e 's/@@/ at /g' -e 's/@[a-zA-Z]*//g' $< | spell > $@.tmp |
152
|
156 mv $@.tmp $@ |
|
157 |
6673
|
158 all: octave.info octave.pdf octave-a4.pdf HTML/index.html |
152
|
159 .PHONY: all |
|
160 |
4098
|
161 $(TEXINFO): src-DOCSTRINGS scripts-DOCSTRINGS munge-texi$(BUILD_EXEEXT) |
3297
|
162 |
4298
|
163 munge-texi$(BUILD_EXEEXT): munge-texi.cc |
|
164 $(BUILD_CXX) $(BUILD_CXXFLAGS) -o $@ $^ $(BUILD_LDFLAGS) |
3313
|
165 |
4619
|
166 src-DOCSTRINGS: |
4093
|
167 $(MAKE) -C ../../src DOCSTRINGS |
|
168 .PHONY: src-DOCSTRINGS |
|
169 |
|
170 scripts-DOCSTRINGS: |
|
171 $(MAKE) -C ../../scripts DOCSTRINGS |
|
172 .PHONY: scripts-DOCSTRINGS |
3294
|
173 |
6535
|
174 contributors.texi: contributors.in |
|
175 $(AWK) -f $(srcdir)/mkcontrib.awk $(srcdir)/contributors.in > $@-t |
|
176 @$(simple-move-if-change-rule) |
|
177 |
7075
|
178 octave-a4.texi: $(MAIN_TEXINFO) |
|
179 cp $< $@ |
|
180 |
|
181 octave-smallbook.texi: $(MAIN_TEXINFO) |
|
182 cp $< $@ |
|
183 |
6535
|
184 $(SUB_TEXINFO) : %.texi : %.txi |
3364
|
185 @echo making $@ from $< |
|
186 @./munge-texi \ |
3294
|
187 -d $(TOPDIR)/src/DOCSTRINGS \ |
6152
|
188 -d $(TOPDIR)/scripts/DOCSTRINGS < $< > $@-t |
|
189 @$(simple-move-if-change-rule) |
3294
|
190 |
6577
|
191 octave.info: $(IMAGES_TXT) $(TEXINFO) $(EXAMPLE_FILES) |
6001
|
192 -$(MAKEINFO) -I.. -I$(srcdir) -I$(srcdir)/.. $(MAIN_TEXINFO) |
2000
|
193 |
6577
|
194 octave.dvi: $(IMAGES_EPS) $(TEXINFO) $(EXAMPLE_FILES) |
7075
|
195 -TEXINPUTS="..$(sepchar)$(srcdir)$(sepchar)$(srcdir)/..$(sepchar)$(TEXINPUTS)$(sepchar)" \ |
|
196 $(TEXI2DVI) $(MAIN_TEXINFO) |
2000
|
197 |
7075
|
198 octave-a4.dvi: $(IMAGES_EPS) $(TEXINFO) $(EXAMPLE_FILES) octave-a4.texi |
|
199 -$(TEXI2DVICOMMAND) octave-a4.texi -t @afourpaper |
6673
|
200 |
7075
|
201 octave-smallbook.dvi: $(IMAGES_EPS) $(TEXINFO) $(EXAMPLE_FILES) octave-smallbook.texi |
|
202 -$(TEXI2DVICOMMAND) octave-smallbook.texi -t @smallbook |
6673
|
203 |
2000
|
204 octave.ps: octave.dvi |
5422
|
205 -dvips -o $@ $< |
2000
|
206 |
6673
|
207 octave-a4.ps: octave-a4.dvi |
|
208 -dvips -o $@ $< |
|
209 |
|
210 octave-smallbook.ps: octave-smallbook.dvi |
|
211 -dvips -o $@ $< |
|
212 |
6577
|
213 octave.pdf: $(IMAGES_PDF) $(TEXINFO) $(EXAMPLE_FILES) |
7075
|
214 -$(TEXI2PDFCOMMAND) $(MAIN_TEXINFO) |
6673
|
215 |
7075
|
216 octave-a4.pdf: $(IMAGES_PDF) $(TEXINFO) $(EXAMPLE_FILES) octave-a4.texi |
|
217 -$(TEXI2PDFCOMMAND) octave-a4.texi -t @afourpaper |
6673
|
218 |
7075
|
219 octave-smallbook.pdf: $(IMAGES_PDF) $(TEXINFO) $(EXAMPLE_FILES) octave-smallbook.texi |
|
220 -$(TEXI2PDFCOMMAND) octave-smallbook.texi -t @smallbook |
5151
|
221 |
2627
|
222 ../../INSTALL.OCTAVE: install.texi |
3176
|
223 rm -f INSTALL |
5151
|
224 -$(MAKEINFO) -D INSTALLONLY \ |
3176
|
225 --no-validate --no-headers --no-split --output INSTALL \ |
5650
|
226 -I.. -I$(srcdir) -I$(srcdir)/.. $< |
2001
|
227 mv INSTALL ../../INSTALL.OCTAVE |
2000
|
228 |
2627
|
229 ../../BUGS: bugs.texi |
3176
|
230 rm -f BUGS |
5151
|
231 -$(MAKEINFO) -D BUGSONLY \ |
3176
|
232 --no-validate --no-headers --no-split --output BUGS \ |
5650
|
233 -I.. -I$(srcdir) -I$(srcdir)/.. $< |
2001
|
234 mv BUGS ../../BUGS |
2000
|
235 |
6577
|
236 HTML/index.html: $(HTML_IMAGES_PNG) $(TEXINFO) $(EXAMPLE_FILES) |
6001
|
237 -$(MAKEINFO) --html --ifinfo --output=HTML -I.. -I$(srcdir) -I$(srcdir)/.. $(MAIN_TEXINFO) |
5708
|
238 |
6031
|
239 $(HTML_IMAGES_PNG): HTML/%.png : %.png |
|
240 @if [ -d HTML ]; then \ |
|
241 true; \ |
|
242 else \ |
|
243 echo "creating HTML directory"; \ |
|
244 mkdir HTML; \ |
|
245 fi |
6669
|
246 cp $(filter-out html-dir, $<) HTML |
3189
|
247 |
6798
|
248 ## Sleep for a second after plotting to allow gnuplot to finish |
|
249 ## writing its output before Octave exits. |
6001
|
250 define run-octave |
6798
|
251 $(TOPDIR)/run-octave -f -q -H -p $(srcdir) \ |
6126
|
252 --eval "$(notdir $(basename $<)) ('$(notdir $(basename $@))', '$(patsubst .%,%, $(suffix $@))'); sleep (1);" |
6001
|
253 endef |
|
254 |
6832
|
255 $(GEOMETRYIMAGES_EPS) $(GEOMETRYIMAGES_PNG) $(GEOMETRYIMAGES_TXT): geometryimages.m |
|
256 $(run-octave) |
|
257 |
6888
|
258 $(PLOTIMAGES_EPS) $(PLOTIMAGES_PNG) $(PLOTIMAGES_TXT): plotimages.m |
|
259 $(run-octave) |
|
260 |
6858
|
261 $(INTERPIMAGES_EPS) $(INTERPIMAGES_PNG) $(INTERPIMAGES_TXT): interpimages.m |
6721
|
262 $(run-octave) |
|
263 |
6001
|
264 $(SPARSEIMAGES_EPS) $(SPARSEIMAGES_PNG) $(SPARSEIMAGES_TXT): sparseimages.m |
|
265 $(run-octave) |
|
266 |
|
267 $(IMAGES_PDF) : %.pdf : %.eps |
|
268 if [ -f $< ] ; then $(GHOSTSCRIPT) -dBATCH -dEPSCrop -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=$@ $< ; fi |
|
269 |
152
|
270 check: all |
|
271 .PHONY: check |
|
272 |
5866
|
273 install install-strip: all |
5806
|
274 @$(subdir-for-command) |
4413
|
275 $(top_srcdir)/mkinstalldirs $(DESTDIR)$(man1dir) $(DESTDIR)$(infodir) |
|
276 @if test -d $(DESTDIR)$(man1dir); then \ |
4149
|
277 for f in $(MAN_BASE); do \ |
4413
|
278 rm -f $(DESTDIR)$(man1dir)/$$f$(man1ext); \ |
|
279 echo "installing $(srcdir)/$$f.1 in $(DESTDIR)$(man1dir)"; \ |
|
280 $(INSTALL_DATA) $(srcdir)/$$f.1 $(DESTDIR)$(man1dir)/$$f$(man1ext); \ |
4149
|
281 done ; \ |
979
|
282 fi |
4413
|
283 @if test -d $(DESTDIR)$(infodir); then \ |
|
284 rm -f $(DESTDIR)$(infodir)/octave.info*; \ |
|
285 echo "installing info files in $(DESTDIR)$(infodir)"; \ |
3028
|
286 if test -f octave.info; then \ |
|
287 for f in octave.info*; do \ |
4413
|
288 $(INSTALL_DATA) $$f $(DESTDIR)$(infodir)/$$f; \ |
3028
|
289 done; \ |
152
|
290 else \ |
3028
|
291 for f in $(srcdir)/octave.info*; do \ |
4413
|
292 $(INSTALL_DATA) $$f $(DESTDIR)$(infodir)/`basename $$f`; \ |
3028
|
293 done; \ |
|
294 fi; \ |
4413
|
295 if test -f $(DESTDIR)$(infodir)/dir; then \ |
|
296 if grep "^\* Octave: (octave)." $(DESTDIR)$(infodir)/dir > /dev/null; then \ |
3028
|
297 true; \ |
980
|
298 else \ |
3028
|
299 echo ""; \ |
|
300 echo "You should add the following entry"; \ |
|
301 echo ""; \ |
|
302 echo "* Octave: (octave)."; \ |
|
303 echo " Interactive language for numerical computations."; \ |
|
304 echo ""; \ |
4413
|
305 echo "to $(DESTDIR)$(infodir)/dir."; \ |
3028
|
306 echo ""; \ |
|
307 fi; \ |
976
|
308 else \ |
4413
|
309 echo "installing $(srcdir)/dir in $(DESTDIR)$(infodir)"; \ |
|
310 $(INSTALL_DATA) $(srcdir)/dir $(DESTDIR)$(infodir)/dir; \ |
3028
|
311 fi; \ |
152
|
312 fi |
5866
|
313 .PHONY: install install-strip |
152
|
314 |
5866
|
315 uninstall: |
|
316 @$(subdir-for-command) |
4149
|
317 rm -f $(infodir)/octave.info* |
4413
|
318 for f in $(MAN_BASE); do rm -f $(DESTDIR)$(man1dir)/$$f$(man1ext); done |
5866
|
319 .PHONY: uninstall |
152
|
320 |
|
321 tags: $(SOURCES) |
|
322 ctags $(SOURCES) |
|
323 |
|
324 TAGS: $(SOURCES) |
|
325 etags $(SOURCES) |
|
326 |
|
327 spell: $(SPELL) |
|
328 .PHONY: spell |
|
329 |
5866
|
330 mostlyclean clean: |
|
331 @$(subdir-for-command) |
1458
|
332 rm -f octave.cp octave.fn octave.in \ |
349
|
333 octave.ky octave.op octave.pg octave.rd octave.tp octave.vr \ |
|
334 octave.cps octave.fns octave.ins octave.kys octave.ops \ |
|
335 octave.pgs octave.rds octave.tps octave.vrs octave.aux \ |
3601
|
336 octave.log octave.toc \ |
7075
|
337 munge-texi$(BUILD_EXEEXT) munge-texi.o \ |
|
338 octave-a4.cp octave-a4.fn octave-a4.in \ |
|
339 octave-a4.ky octave-a4.op octave-a4.pg octave-a4.rd octave-a4.tp octave-a4.vr \ |
|
340 octave-a4.cps octave-a4.fns octave-a4.ins octave-a4.kys octave-a4.ops \ |
|
341 octave-a4.pgs octave-a4.rds octave-a4.tps octave-a4.vrs octave-a4.aux \ |
|
342 octave-a4.log octave-a4.toc \ |
|
343 octave-smallbook.cp octave-smallbook.fn octave-smallbook.in \ |
|
344 octave-smallbook.ky octave-smallbook.op octave-smallbook.pg octave-smallbook.rd octave-smallbook.tp octave-smallbook.vr \ |
|
345 octave-smallbook.cps octave-smallbook.fns octave-smallbook.ins octave-smallbook.kys octave-smallbook.ops \ |
|
346 octave-smallbook.pgs octave-smallbook.rds octave-smallbook.tps octave-smallbook.vrs octave-smallbook.aux \ |
|
347 octave-smallbook.log octave-smallbook.toc |
5866
|
348 .PHONY: mostlyclean clean |
152
|
349 |
5866
|
350 distclean: clean |
|
351 @$(subdir-for-command) |
3601
|
352 rm -f Makefile |
5866
|
353 .PHONY: distclean |
152
|
354 |
6673
|
355 maintainer-clean: clean clean-texi |
6001
|
356 rm -f Makefile tags TAGS $(FORMATTED) $(IMAGES) |
5422
|
357 rm -rf HTML |
5866
|
358 .PHONY: maintainer-clean |
152
|
359 |
3315
|
360 clean-texi: |
7075
|
361 rm -f $(SUB_TEXINFO) contributors.texi octave-a4.texi octave-smallbook.texi |
3315
|
362 .PHONY: clean-texi |
|
363 |
|
364 dist: clean-texi all |
6467
|
365 ln $(DISTFILES) ../../`cat ../../.fname`/doc/interpreter |
6798
|
366 for dir in $(DISTDIRS); do \ |
|
367 mkdir ../../`cat ../../.fname`/doc/interpreter/$$dir; \ |
|
368 ln ../../doc/interpreter/$$dir/* ../../`cat ../../.fname`/doc/interpreter/$$dir; \ |
|
369 done |
5706
|
370 for dir in $(DISTSUBDIRS); do mkdir ../../`cat ../../.fname`/doc/interpreter/$$dir; $(MAKE) -C $$dir $@; done |
152
|
371 .PHONY: dist |