Adjusted the PLUGIN/REQ so that lgh is the last thing configured/built.
[bpt/guile.git] / Makefile.in
CommitLineData
0f2d19dd
JB
1# Copyright (C) 1994,1995 Free Software Foundation, Inc.
2#
3# This program is free software; you can redistribute it and/or modify
4# it under the terms of the GNU General Public License as published by
5# the Free Software Foundation; either version 2, or (at your option)
6# any later version.
7#
8# This program is distributed in the hope that it will be useful,
9# but WITHOUT ANY WARRANTY; without even the implied warranty of
10# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
11# GNU General Public License for more details.
12#
13# You should have received a copy of the GNU General Public License
14# along with this software; see the file COPYING. If not, write to
15# the Free Software Foundation, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
16
2d26def0 17VERSION = @GUILE_VERSION@
0f2d19dd
JB
18
19SHELL = /bin/sh
20
2d26def0 21srcdir=@srcdir@
16ade06b
JB
22subdirs=@build_subdirs@
23dist_dirs=@existingdirs@ doc
0f2d19dd 24
8251fceb
JB
25DISTFILES = COPYING \
26 ChangeLog \
2d26def0 27 GUILE-VERSION \
8251fceb
JB
28 INSTALL \
29 NEWS \
30 README \
2d26def0 31 TODO \
0f2d19dd
JB
32 Makefile.in \
33 configure \
34 configure.in \
35 config.sub \
36 config.guess \
37 install-sh
38
0f2d19dd
JB
39# `all'
40# Compile the entire program. This should be the default target.
41# This target need not rebuild any documentation files; info files
42# should normally be included in the distribution, and DVI files
43# should be made only when explicitly asked for.
44all:
45 @for dir in ${subdirs}; do \
46 cd $$dir; \
47 ${MAKE} all; \
48 cd .. ;\
49 done
50
51#`install'
52# Compile the program and copy the executables, libraries, and so on
53# to the file names where they should reside for actual use. If
54# there is a simple test to verify that a program is properly
55# installed then run that test.
56#
57# Use `-' before any command for installing a man page, so that
58# `make' will ignore any errors. This is in case there are systems
59# that don't have the Unix man page documentation system installed.
60#
61# In the future, when we have a standard way of installing info
62# files, `install' targets will be the proper place to do so.
63#
64subdir-inst-target=install-nobuild
65
66install: all
67 ${MAKE} subdir-inst-target=install install-nobuild
68
69install-nobuild:
70 for dir in ${subdirs}; do \
71 cd $$dir; \
72 ${MAKE} ${subdir-inst-target}; \
73 cd .. ;\
74 done
75
76#`uninstall'
77# Delete all the installed files that the `install' target would
78# create (but not the noninstalled files such as `make all' would
79# create).
80uninstall:
81 for dir in ${subdirs}; do \
82 cd $$dir; \
83 ${MAKE} uninstall; \
84 cd .. ;\
85 done
86
87
88#`clean'
89# Delete all files from the current directory that are normally
90# created by building the program. Don't delete the files that
91# record the configuration. Also preserve files that could be made
92# by building, but normally aren't because the distribution comes
93# with them.
94#
95# Delete `.dvi' files here if they are not part of the distribution.
96#
97clean:
98 for dir in ${subdirs}; do \
99 cd $$dir; \
100 ${MAKE} clean; \
101 cd .. ;\
102 done
103
104#`distclean'
105# Delete all files from the current directory that are created by
106# configuring or building the program. If you have unpacked the
107# source and built the program without creating any other files,
108# `make distclean' should leave only the files that were in the
109# distribution.
110distclean:
111 rm -f config.cache
112 rm -f config.log
113 rm -f config.status
99d0ee22 114 rm -f config.build-subdirs
0f2d19dd 115 rm -f Makefile
6bf41160 116 rm -f doc/Makefile
0f2d19dd
JB
117 for dir in ${subdirs}; do \
118 cd $$dir; \
119 ${MAKE} distclean; \
120 cd .. ;\
121 done
122
123
124#`mostlyclean'
125# Like `clean', but may refrain from deleting a few files that people
126# normally don't want to recompile. For example, the `mostlyclean'
127# target for GCC does not delete `libgcc.a', because recompiling it
128# is rarely necessary and takes a lot of time.
129mostlyclean:
130 for dir in ${subdirs}; do \
131 cd $$dir; \
132 ${MAKE} mostlyclean; \
133 cd .. ;\
134 done
135
136
137#`realclean'
138# Delete everything from the current directory that can be
139# reconstructed with this Makefile. This typically includes
140# everything deleted by distclean, plus more: C source files
141# produced by Bison, tags tables, info files, and so on.
142#
143# One exception, however: `make realclean' should not delete
144# `configure' even if `configure' can be remade using a rule in the
145# Makefile. More generally, `make realclean' should not delete
146# anything that needs to exist in order to run `configure' and then
147# begin to build the program.
148realclean:
149 for dir in ${subdirs}; do \
150 cd $$dir; \
151 ${MAKE} realclean; \
152 cd .. ;\
153 done
154
155
156#`TAGS'
157# Update a tags table for this program.
ddc2af86
JB
158# We could allow each subdirectory to create its own TAGS file,
159# and then use etags' --include option to incorporate them all by
160# reference into a top-level TAGS file, but the --include option
161# seems to be deprecated, and this works fine.
c2483da0
JB
162#
163# The extra 'tags' name is useful --- 'make TAGS' won't run the
164# commands if the file `TAGS' already exists, but `make tags'
165# doesn't have that problem.
166TAGS tags:
ddc2af86
JB
167 etags \
168 --regex='/SCM_PROC[^"]*"[^"]*"/' \
169 `find . -name '*.[ch]' -o -name '*.scm'`
0f2d19dd
JB
170
171#`info'
172# Generate any info files needed. The best way to write the rules
173# is as follows:
174#
175# info: foo.info
176#
177# foo.info: $(srcdir)/foo.texi $(srcdir)/chap1.texi $(srcdir)/chap2.texi
178# $(MAKEINFO) $(srcdir)/foo.texi
179#
180# You must define the variable `MAKEINFO' in the Makefile. It
181# should run the Makeinfo program, which is part of the Texinfo2
182# distribution.
183info:
2d26def0 184 cd doc; ${MAKE} info
0f2d19dd
JB
185
186#`dvi'
187# Generate DVI files for all TeXinfo documentation. For example:
188#
189# dvi: foo.dvi
190#
191# foo.dvi: $(srcdir)/foo.texi $(srcdir)/chap1.texi $(srcdir)/chap2.texi
192# $(TEXI2DVI) $(srcdir)/foo.texi
193#
194# You must define the variable `TEXI2DVI' in the Makefile. It should
195# run the program `texi2dvi', which is part of the Texinfo2
196# distribution. Alternatively, write just the dependencies, and
197# allow GNU Make to provide the command.
198dvi:
199 for dir in ${subdirs}; do \
200 cd $$dir; \
201 ${MAKE} dvi; \
202 cd .. ;\
203 done
204
205#`dist'
206# Create a distribution tar file for this program. The tar file
207# should be set up so that the file names in the tar file start with
208# a subdirectory name which is the name of the package it is a
209# distribution for. This name can include the version number.
210#
211# For example, the distribution tar file of GCC version 1.40 unpacks
212# into a subdirectory named `gcc-1.40'.
213#
214# The easiest way to do this is to create a subdirectory
215# appropriately named, use `ln' or `cp' to install the proper files
216# in it, and then `tar' that subdirectory.
217#
218# The `dist' target should explicitly depend on all non-source files
219# that are in the distribution, to make sure they are up to date in
220# the distribution. *Ref Making Releases: (standards)Releases.
2d26def0
JB
221.PHONY: dist
222GZIP=gzip --best
223GZIP_EXT=.gz
224TAR_VERBOSE=v
225DIST_NAME=guile-${VERSION}
226dist: info
227 @echo "Creating distribution for ${DIST_NAME}."
228 rm -rf ${DIST_NAME} ${DIST_NAME}.tar${GZIP_EXT}
229 ${MAKE} dist-dir DISTDIR="${DIST_NAME}"
230 for dir in ${dist_dirs}; do \
231 ( DISTDIR="../${DIST_NAME}/$${dir}"; \
232 cd $${dir} && \
233 ${MAKE} dist-dir DISTDIR="$${DISTDIR}" \
234 ); \
0f2d19dd 235 done
2d26def0
JB
236 tar chf${TAR_VERBOSE} - ${DIST_NAME} | ${GZIP} > "${DIST_NAME}.tar${GZIP_EXT}"
237 rm -rf ${DIST_NAME}
238
239# The `dist' target in the top-level Makefile uses this `dist-dir'
240# target to select the appropriate files for distribution from the
241# directory containing this Makefile.
242.PHONY: dist-dir
243dist-dir:
244 mkdir ${DISTDIR}
245 for i in ${DISTFILES}; do \
246 ln $(srcdir)/$${i} ${DISTDIR}; \
247 done
0f2d19dd
JB
248
249#`check'
250# Perform self-tests (if any). The user must build the program
251# before running the tests, but need not install the program; you
252# should write the self-tests so that they work when the program is
253# built but not installed.
254check:
255 for dir in ${subdirs}; do \
256 cd $$dir; \
257 ${MAKE} check; \
258 cd .. ;\
259 done
260
261
262#`installcheck'
263# Perform installation tests (if any). The user must build and
264# install the program before running the tests. You should not
265# assume that `$(bindir)' is in the search path.
266installcheck:
267 for dir in ${subdirs}; do \
268 cd $$dir; \
269 ${MAKE} installcheck; \
270 cd .. ;\
271 done
272
273
274#`installdirs'
275# It's useful to add a target named `installdirs' to create the
276# directories where files are installed, and their parent
277# directories. There is a script called `mkinstalldirs' which is
278# convenient for this; find it in the Texinfo package.You can use a
279# rule like this:
280#
281# # Make sure all installation directories, e.g. $(bindir) actually exist by
282# # making them if necessary.
283# installdirs: mkinstalldirs
284# $(srcdir)/mkinstalldirs $(bindir) $(datadir) $(libdir) \
285# $(infodir) $(mandir)
286installdirs:
287 for dir in ${subdirs}; do \
288 cd $$dir; \
289 ${MAKE} installdirs; \
290 cd .. ;\
291 done
292
293
294
295# Cygnus extention:
296#
297# `Makefile'
298# Calls `./config.status' to rebuild the `Makefile' in this
299# directory.
300Makefile:
301 ${SHELL-/bin/sh} config.status