1# makefile for Gambit system.
2
3# Copyright (c) 1994-2018 by Marc Feeley, All Rights Reserved.
4
5PACKAGE_SHORTNAME = @PACKAGE_SHORTNAME@
6PACKAGE_NAME = @PACKAGE_NAME@
7PACKAGE_VERSION = @PACKAGE_VERSION@
8PACKAGE_STRING = @PACKAGE_STRING@
9PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
10PACKAGE_TARNAME = @PACKAGE_TARNAME@
11
12@SET_MAKE@
13
14srcdir = @srcdir@
15VPATH = @srcdir@
16srcdirpfx = @srcdirpfx@
17
18CONFIGURE_COMMAND = @CONFIGURE_COMMAND@
19
20C_COMPILER = @C_COMPILER_MF@
21C_PREPROC = @C_PREPROC_MF@
22FLAGS_OBJ =  -pipe -O2 -fno-strict-aliasing
23FLAGS_DYN =  -pipe -O2 -fno-strict-aliasing
24FLAGS_LIB = @FLAGS_LIB_MF@
25FLAGS_EXE = @FLAGS_EXE_MF@
26FLAGS_OPT = @FLAGS_OPT_MF@
27FLAGS_OPT_RTS = @FLAGS_OPT_RTS_MF@
28DEFS = @DEFS@
29LIBS = @LIBS@
30
31GAMBITLIB_DEFS = @GAMBITLIB_DEFS_MF@
32LIB_PREFIX = @LIB_PREFIX@
33LIB_VERSION_SUFFIX = @LIB_VERSION_SUFFIX@
34LIB_MAJOR_VERSION_SUFFIX = @LIB_MAJOR_VERSION_SUFFIX@
35
36LIB_EXTENSION = @LIB_EXTENSION@
37GAMBITLIB = @GAMBITLIB@
38GAMBITGSCLIB = @GAMBITGSCLIB@
39GAMBITGSILIB = @GAMBITGSILIB@
40INSTALL = @INSTALL@
41INSTALL_DATA = @INSTALL_DATA@
42INSTALL_LIB = @INSTALL_LIB@
43INSTALL_PROGRAM = @INSTALL_PROGRAM@
44LN_S = @LN_S@
45RANLIB = @RANLIB@
46AR = @AR@
47RC = @RC@
48GIT = @GIT@
49HG = @HG@
50
51prefix = @prefix@
52exec_prefix = @exec_prefix@
53includedir = @includedir@
54libdir = @libdir@
55bindir = @bindir@
56docdir = @docdir@
57infodir = @infodir@
58emacsdir = @emacsdir@
59libexecdir = @libexecdir@
60datarootdir = @datarootdir@
61datadir = @datadir@
62htmldir = @htmldir@
63dvidir = @dvidir@
64pdfdir = @pdfdir@
65psdir = @psdir@
66localedir = @localedir@
67mandir = @mandir@
68
69# This directory's subdirectories are mostly independent; you can cd
70# into them and run `make' without going through this makefile.
71# To change the values of `make' variables: instead of editing makefiles,
72# (1) if the variable is set in `config.status', edit `config.status'
73#     (which will cause the makefiles to be regenerated when you run `make');
74# (2) otherwise, pass the desired values on the `make' command line.
75
76MDEFINES = prefix="$(prefix)" exec_prefix="$(exec_prefix)" \
77includedir="$(includedir)" libdir="$(libdir)" \
78bindir="$(bindir)" docdir="$(docdir)" \
79infodir="$(infodir)" emacsdir="$(emacsdir)"
80
81SUBDIRS = include lib gsi gsc bin misc doc tests examples contrib prebuilt bench githooks
82
83RCFILES = README INSTALL.txt LICENSE-2.0.txt LGPL.txt \
84makefile.in configure configure.ac config.guess config.sub install-sh mkidirs \
85relpath gsc-boot.unix gsc-boot.bat.windows
86
87GITRCFILES = .gitignore .gitattributes
88HGRCFILES = .hgignore .hgtags
89
90GENDISTFILES =
91
92DISTFILES = $(RCFILES) $(GENDISTFILES)
93
94GITDISTFILES = $(GITRCFILES)
95HGDISTFILES = $(HGRCFILES)
96
97#BUILD_FARM = farm
98BUILD_FARM = localhost
99#BUILD_HOST = baro.iro.umontreal.ca
100BUILD_HOST = localhost
101
102.SUFFIXES:
103
104all:
105
106all-pre: gsc-boot@exe@
107
108all-post:
109
110from-scratch: fake_target
111	$(MAKE) bootclean
112	$(MAKE) bootstrap # make gsc compiler corresponding to repo HEAD
113	$(MAKE) bootclean
114	$(MAKE) all       # make everything with repo HEAD gsc compiler
115
116boot-most-recent-release: fake_target
117	@if test -x "boot/gsc-boot@exe@" && \
118	    test "`boot/gsc-boot@exe@ -v | sed -e 's/ .*//'`" = "$(PACKAGE_VERSION)"; then \
119	  echo "**** boot/gsc-boot@exe@ doesn't need to be rebuilt"; \
120	else \
121	  $(MAKE) boot-most-recent-release-gsc-boot; \
122	fi
123
124boot-most-recent-release-gsc-boot: fake_target
125	@echo "**** building boot/gsc-boot@exe@"
126	rm -rf boot
127	mkdir -p boot
128	$(GIT) archive tags/$(PACKAGE_VERSION) | (cd boot && tar xf -)
129	cd boot && \
130	./configure CC='$(C_COMPILER)' && \
131	$(MAKE) bootstrap
132
133boot-wip-compiler: fake_target
134	@if test -x "boot/gsc/gsc@exe@" && \
135	    test "`boot/gsc/gsc -v | sed -e 's/ .*//'`" = "$(PACKAGE_VERSION)" && \
136	    test "`find gsc/makefile.in gsc/*.scm -exec diff -q \{\} boot/\{\} \; 2>&1`" = ""; then \
137	  echo "**** boot/gsc/gsc@exe@ doesn't need to be rebuilt"; \
138	else \
139	  $(MAKE) boot-wip-compiler-gsc-gsc && $(MAKE) bootclean; \
140	fi
141
142boot-wip-compiler-gsc-gsc: boot-most-recent-release
143	@echo "**** building boot/gsc/gsc@exe@ using boot/gsc-boot@exe@"
144	cd boot && \
145	rm -f gsc/makefile && \
146	cp ../gsc/makefile.in ../gsc/*.scm gsc && \
147	./configure CC='$(C_COMPILER)' && \
148	for i in lib gsi gsc ; do (cd $$i ; $(MAKE) all) ; done
149
150wip-gsc-boot: boot-wip-compiler
151	cp boot/gsc/gsc@exe@ gsc-boot@exe@
152
153current-gsc-boot: wip-gsc-boot
154
155dummy-gsc-boot:
156	rm -f gsc-boot@bat@ gsc-boot@exe@
157	cp gsc-boot.bat.windows gsc-boot@bat@
158	cp gsc-boot.unix gsc-boot@exe@
159	chmod +x gsc-boot@exe@
160
161gsc-boot@exe@:
162	@if [ -e .git ] && \
163	    $(GIT) --version > /dev/null 2> /dev/null && \
164	    $(GIT) describe --tags > /dev/null 2> /dev/null && \
165	    test "`$(GIT) describe --tags`" != "$(PACKAGE_VERSION)"; then \
166	  echo "**** checking if current gsc-boot must be built"; \
167	  $(MAKE) current-gsc-boot; \
168	else \
169	  echo "**** using a dummy gsc-boot"; \
170	  $(MAKE) dummy-gsc-boot; \
171	fi
172
173fake_target:
174
175doc info pdf html txt: fake_target
176	@cd doc && $(MAKE) $(MDEFINES) $@
177
178check ut ut-C ut-js ut-python ut-ruby ut-php ut-java st st-C st-js st-python st-ruby st-php st-java: fake_target all
179	@cd tests && $(MAKE) $(MDEFINES) $@
180
181bench: fake_target all
182	@cd bench && $(MAKE) $(MDEFINES) $@
183
184examples: fake_target all
185	@cd examples && $(MAKE) $(MDEFINES) $@
186
187prebuilt: dist dist-devel
188	PATH="gsi:$$PATH" prebuilt/remote-connect $(BUILD_FARM) "" "(define tmpdir \"gambtmp0\")(define gambit-dist \"$(PACKAGE_TARNAME)\")(define timeout 3000)(ssh timeout (string-append \"rm -rf \" tmpdir \";mkdir \" tmpdir \";echo \\\"logged in on:\\\";hostname\"))(scp-to timeout (string-append gambit-dist \".tgz\") (string-append tmpdir \"/.\"))(ssh timeout (string-append \"ssh $(BUILD_HOST) \\\"cd \" tmpdir \";tar zxf \" gambit-dist \".tgz;cd \" gambit-dist \";./configure;make -j 4;mv ../\" gambit-dist \".tgz .;cd prebuilt;make prebuilt\\\"\"))(scp-from timeout (string-append tmpdir \"/\" gambit-dist \"/$(PACKAGE_TARNAME)-*\") \".\")"
189	@# cd prebuilt && $(MAKE) $(MDEFINES) $@
190
191xactlog@exe@: fake_target
192	@cd contrib/xactlog && $(MAKE) $(MDEFINES) $@
193
194stamp: fake_target
195	@cd include && $(MAKE) $(MDEFINES) $@
196
197commit: stamp deselect-gen-for-commit
198	$(RC) commit
199
200diff: fake_target
201	@$(RC) diff | cat
202
203log: fake_target
204	@$(RC) log | cat
205
206status: fake_target
207	@$(RC) status || :
208
209push: fake_target
210	@if test "$(RC)" = "$(GIT)"; then \
211	  $(GIT) push git@github.com:gambit/gambit.git; \
212	  $(GIT) push --tags git@github.com:gambit/gambit.git; \
213	else \
214	  $(HG) push; \
215	fi
216
217pull: fake_target
218	@if test "$(RC)" = "$(GIT)"; then \
219	  $(GIT) pull; \
220	  $(GIT) fetch --tags; \
221	else \
222	  $(HG) pull; \
223	fi
224
225update-nopull: fake_target
226	@if test "$(RC)" = "$(GIT)"; then \
227	  next_version=`$(GIT) tag | fgrep -e '-bootstrap' | sed -e 's/v//g' -e 's/-bootstrap.*//g' | sort -r -s -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n | sed 's/^/v/g' | sed -n '/^$(PACKAGE_VERSION)/{n;p;}'`; \
228	else \
229	  next_version=`$(HG) tags | fgrep -e '-bootstrap' | sed -e 's/v//g' -e 's/-bootstrap.*//g' | sort -r -s -t. -k 1,1n -k 2,2n -k 3,3n -k 4,4n -k 5,5n | sed 's/^/v/g' | sed -n '/^$(PACKAGE_VERSION)/{n;p;}'`; \
230	fi; \
231	if test "$$next_version" = ""; then \
232	  if test "$(RC)" = "$(GIT)"; then \
233	    $(GIT) checkout master; \
234	  else \
235	    $(HG) checkout; \
236	  fi; \
237	else \
238	  $(RC) checkout $$next_version-bootstrap; \
239	  $(MAKE) bootstrap; \
240	  $(RC) checkout $$next_version; \
241	  $(MAKE) bootclean bootstrap update; \
242	fi
243
244update: pull update-nopull
245	$(MAKE)
246
247new-major: fake_target
248	major=`echo $(PACKAGE_VERSION) | sed -e "s/v//g" -e "s/\.[^.]*\.[^.]*//g"`; \
249	next_major=`eval expr 1 + $$major`; \
250	next_version=v$$next_major.0.0; \
251	$(MAKE) NEW_VERSION=$$next_version change-version
252
253new-minor: fake_target
254	major=`echo $(PACKAGE_VERSION) | sed -e "s/v//g" -e "s/\.[^.]*\.[^.]*//g"`; \
255	minor=`echo $(PACKAGE_VERSION) | sed -e "s/v[^.]*\.//g" -e "s/\.[^.]*//g"`; \
256	next_minor=`eval expr 1 + $$minor`; \
257	next_version=v$$major.$$next_minor.0; \
258	$(MAKE) NEW_VERSION=$$next_version change-version
259
260new-revision: fake_target
261	major=`echo $(PACKAGE_VERSION) | sed -e "s/v//g" -e "s/\.[^.]*\.[^.]*//g"`; \
262	minor=`echo $(PACKAGE_VERSION) | sed -e "s/v[^.]*\.//g" -e "s/\.[^.]*//g"`; \
263	revision=`echo $(PACKAGE_VERSION) | sed -e "s/v[^.]*\.[^.]*\.//g" -e "s///g"`; \
264	next_revision=`eval expr 1 + $$revision`; \
265	next_version=v$$major.$$minor.$$next_revision; \
266	$(MAKE) NEW_VERSION=$$next_version change-version
267
268change-version: deselect-gen-for-commit
269	major=`echo $(PACKAGE_VERSION) | sed -e "s/v//g" -e "s/\.[^.]*\.[^.]*//g"`; \
270	minor=`echo $(PACKAGE_VERSION) | sed -e "s/v[^.]*\.//g" -e "s/\.[^.]*//g"`; \
271	revision=`echo $(PACKAGE_VERSION) | sed -e "s/v[^.]*\.[^.]*\.//g" -e "s///g"`; \
272	next_major=`echo $(NEW_VERSION) | sed -e "s/v//g" -e "s/\.[^.]*\.[^.]*//g"`; \
273	next_minor=`echo $(NEW_VERSION) | sed -e "s/v[^.]*\.//g" -e "s/\.[^.]*//g"`; \
274	next_revision=`echo $(NEW_VERSION) | sed -e "s/v[^.]*\.[^.]*\.//g" -e "s///g"`; \
275	version_num=`eval expr "\( 100000 \\* $$major \) + \( 1000 \\* $$minor \) + $$revision"`; \
276	new_version_num=`eval expr "\( 100000 \\* $$next_major \) + \( 1000 \\* $$next_minor \) + $$next_revision"`; \
277	sed -e "/(define (compiler-version) $$version_num)/s/$$version_num/$$new_version_num/" gsc/_parms.scm > gsc/_parms.scm-new; \
278	if ! diff gsc/_parms.scm gsc/_parms.scm-new > /dev/null; then \
279	  mv gsc/_parms.scm-new gsc/_parms.scm; \
280	  if test "$(RC)" = "$(GIT)"; then \
281	    $(GIT) commit -a -m "[COMPILER CHANGES NEEDED FOR $(NEW_VERSION)] Changed version in compiler"; \
282	  else \
283	    $(HG) commit -m "[COMPILER CHANGES NEEDED FOR $(NEW_VERSION)] Changed version in compiler"; \
284	  fi; \
285	  $(RC) tag $(NEW_VERSION)-bootstrap; \
286	  if $(MAKE) bootstrap; then \
287	    misc/changev $$version_num $$new_version_num; \
288	    touch doc/gambit.txi; \
289	    cd tests; @SETDLPATH@ ../gsc/gsc -:~~bin=../bin,~~lib=../lib,~~include=../include -f -warnings -c mix.scm; mv mix.c test5.ok; cd ..; \
290	    if $(MAKE) bootclean && $(MAKE) -j 2 && $(MAKE) check && $(MAKE) doc && $(MAKE) select-gen-for-commit; then \
291	      if test "$(RC)" = "$(GIT)"; then \
292	        $(GIT) commit -a -m "[RUNTIME CHANGES NEEDED FOR $(NEW_VERSION)] Changed version of runtime using misc/changev"; \
293	      else \
294	        $(HG) commit -m "[RUNTIME CHANGES NEEDED FOR $(NEW_VERSION)] Changed version of runtime using misc/changev"; \
295	      fi; \
296	      $(RC) tag $(NEW_VERSION); \
297	    fi; \
298	  fi; \
299	else \
300	  echo Compiler version in gsc/_parms.scm is inconsistent with PACKAGE_VERSION; \
301	fi
302
303release: fake_target
304	$(MAKE) bootstrap
305	$(MAKE) clean
306	$(MAKE) all
307	$(MAKE) check
308	$(MAKE) doc
309	rm -f $(PACKAGE_TARNAME).tgz $(PACKAGE_TARNAME)-*.*
310	$(MAKE) prebuilt
311
312publish-release: fake_target
313	misc/publish-release $(PACKAGE_VERSION) $(PACKAGE_TARNAME).tgz $(PACKAGE_TARNAME)-*.*
314
315bootstrap-pre: all
316
317bootstrap-post:
318
319install-pre:
320	@if test "@ENABLE_SHARED@" = "yes" -a "@ENABLE_ABSOLUTE_SHARED_LIBS@" = "yes" -a "$(DESTDIR)" != ""; then \
321	  echo "*** The use of --enable-shared and --enable-absolute-shared-libs is"; \
322	  echo "*** incompatible with the use of DESTDIR.  You can either specify an"; \
323	  echo "*** empty DESTDIR or reconfigure with --disable-absolute-shared-libs."; \
324	  exit 1; \
325	fi
326
327install-post: all
328	if test "@ENABLE_MULTIPLE_VERSIONS@" = "yes"; then \
329	  if test "@bat@" = ""; then \
330	    $(srcdirpfx)./mkidirs "$(DESTDIR)$(prefix)"; \
331	    rm -f "$(DESTDIR)$(prefix)/../current" \
332	      "$(DESTDIR)$(prefix)/../current.lnk"; \
333	    (cd "$(DESTDIR)$(prefix)/.." && $(LN_S) $(PACKAGE_VERSION) current); \
334	  fi; \
335	fi
336
337uninstall-pre:
338
339uninstall-post:
340	if test "@ENABLE_MULTIPLE_VERSIONS@" = "yes"; then \
341	  if test "@bat@" = ""; then \
342	    (cd "$(DESTDIR)$(prefix)/.." && \
343	     rm -f current && \
344	     rmdir $(PACKAGE_VERSION)); \
345	  fi; \
346	fi
347
348select-gen-for-commit-pre:
349
350select-gen-for-commit-post:
351
352deselect-gen-for-commit-pre:
353
354deselect-gen-for-commit-post:
355
356mostlyclean-pre:
357
358mostlyclean-post:
359
360clean-pre: mostlyclean-pre
361
362clean-post: mostlyclean-post
363
364distclean-pre: clean-pre
365
366distclean-post: clean-post
367
368bootclean-pre: distclean-pre
369
370bootclean-post: distclean-post
371
372realclean-pre: bootclean-pre
373
374realclean-post: bootclean-post
375	rm -f config.log config.status makefile
376
377rc-setup-pre:
378	$(RC) init
379	@if test "$(RC)" = "$(GIT)"; then \
380	  $(GIT) add $(RCFILES) $(GITRCFILES); \
381	  rm -f .git/config; \
382	  echo '[core]' >> .git/config; \
383	  echo '	repositoryformatversion = 0' >> .git/config; \
384	  echo '	fileMode = false' >> .git/config; \
385	  echo '	bare = false' >> .git/config; \
386	  echo '	logallrefupdates = true' >> .git/config; \
387	  echo '	ignorecase = true' >> .git/config; \
388	  echo '	autocrlf = false' >> .git/config; \
389	  echo '[remote "origin"]' >> .git/config; \
390	  echo '	url = git@github.com:gambit/gambit.git' >> .git/config; \
391	  echo '	fetch = +refs/heads/*:refs/remotes/origin/*' >> .git/config; \
392	  echo '[branch "master"]' >> .git/config; \
393	  echo '	remote = origin' >> .git/config; \
394	  echo '	merge = refs/heads/master' >> .git/config; \
395	else \
396	  $(HG) add $(RCFILES) $(HGRCFILES); \
397	  rm -f .hg/hgrc; \
398	  echo "[paths]" > .hg/hgrc; \
399	  echo "default-push = ssh://gambit@frontal07.iro.umontreal.ca/HTML/repo/gambit" >> .hg/hgrc; \
400	  echo "default = http://www.iro.umontreal.ca/~gambit/repo/gambit/" >> .hg/hgrc; \
401	fi
402
403rc-setup-post:
404	@if test "$(RC)" = "$(GIT)"; then \
405	  $(GIT) commit -a -m "Initial commit of $(PACKAGE_STRING)"; \
406	else \
407	  $(HG) commit -m "Initial commit of $(PACKAGE_STRING)"; \
408	fi
409
410dist-pre:
411	rm -rf $(PACKAGE_TARNAME)
412	mkdir $(PACKAGE_TARNAME)
413	chmod 777 $(PACKAGE_TARNAME)
414	@echo "  Copying distribution files:"
415	@for file in $(DISTFILES); do \
416	  echo "    $$file"; \
417	  ln $(srcdirpfx)$$file $(PACKAGE_TARNAME) 2> /dev/null \
418	    || cp -p $(srcdirpfx)$$file $(PACKAGE_TARNAME); \
419	done
420
421dist-post:
422	COPYFILE_DISABLE=1 tar chof $(PACKAGE_TARNAME).tar $(PACKAGE_TARNAME)
423	gzip -9 $(PACKAGE_TARNAME).tar
424	mv $(PACKAGE_TARNAME).tar.gz $(PACKAGE_TARNAME).tgz
425	rm -rf $(PACKAGE_TARNAME)
426
427dist-devel-pre:
428	rm -rf $(PACKAGE_TARNAME)
429	mkdir $(PACKAGE_TARNAME)
430	chmod 777 $(PACKAGE_TARNAME)
431	@echo "  Copying distribution files:"
432	@for file in $(DISTFILES); do \
433	  echo "    $$file"; \
434	  ln $(srcdirpfx)$$file $(PACKAGE_TARNAME) 2> /dev/null \
435	    || cp -p $(srcdirpfx)$$file $(PACKAGE_TARNAME); \
436	done
437	@if test "$(RC)" = "$(GIT)"; then \
438	  for file in $(GITDISTFILES); do \
439	    echo "    $$file"; \
440	    ln $(srcdirpfx)$$file $(PACKAGE_TARNAME) 2> /dev/null \
441	      || cp -p $(srcdirpfx)$$file $(PACKAGE_TARNAME); \
442	  done; \
443	  echo "    .git"; \
444	  ln $(srcdirpfx).git $(PACKAGE_TARNAME) 2> /dev/null \
445	    || cp -p -R $(srcdirpfx).git $(PACKAGE_TARNAME); \
446	else \
447	  for file in $(HGDISTFILES); do \
448	    echo "    $$file"; \
449	    ln $(srcdirpfx)$$file $(PACKAGE_TARNAME) 2> /dev/null \
450	      || cp -p $(srcdirpfx)$$file $(PACKAGE_TARNAME); \
451	  done; \
452	  echo "    .hg"; \
453	  ln $(srcdirpfx).hg $(PACKAGE_TARNAME) 2> /dev/null \
454	    || cp -p -R $(srcdirpfx).hg $(PACKAGE_TARNAME); \
455	fi
456
457dist-devel-post:
458	rm -rf $(PACKAGE_TARNAME)-devel
459	mv $(PACKAGE_TARNAME) $(PACKAGE_TARNAME)-devel
460	COPYFILE_DISABLE=1 tar chof $(PACKAGE_TARNAME)-devel.tar $(PACKAGE_TARNAME)-devel
461	gzip -9 $(PACKAGE_TARNAME)-devel.tar
462	mv $(PACKAGE_TARNAME)-devel.tar.gz $(PACKAGE_TARNAME)-devel.tgz
463	rm -rf $(PACKAGE_TARNAME)-devel
464
465all-recursive bootstrap-recursive install-recursive uninstall-recursive select-gen-for-commit-recursive deselect-gen-for-commit-recursive mostlyclean-recursive clean-recursive distclean-recursive bootclean-recursive realclean-recursive rc-setup-recursive dist-recursive dist-devel-recursive:
466	@for subdir in $(SUBDIRS); do \
467	  target=`echo $@ | sed 's/-recursive//'`; \
468	  echo making $$target in $$subdir; \
469	  (cd $$subdir && $(MAKE) $$target) || exit 1; \
470	done
471
472all: all-post
473
474all-post: all-recursive
475
476all-recursive: all-pre
477
478bootstrap: bootstrap-post
479
480bootstrap-post: bootstrap-recursive
481
482bootstrap-recursive: bootstrap-pre
483
484install: install-post
485
486install-post: install-recursive
487
488install-recursive: install-pre
489
490uninstall: uninstall-post
491
492uninstall-post: uninstall-recursive
493
494uninstall-recursive: uninstall-pre
495
496select-gen-for-commit: select-gen-for-commit-post
497
498select-gen-for-commit-post: select-gen-for-commit-recursive
499
500select-gen-for-commit-recursive: select-gen-for-commit-pre
501
502deselect-gen-for-commit: deselect-gen-for-commit-post
503
504deselect-gen-for-commit-post: deselect-gen-for-commit-recursive
505
506deselect-gen-for-commit-recursive: deselect-gen-for-commit-pre
507
508mostlyclean: mostlyclean-post
509
510mostlyclean-post: mostlyclean-recursive
511
512mostlyclean-recursive: mostlyclean-pre
513
514clean: clean-post
515
516clean-post: clean-recursive
517
518clean-recursive: clean-pre
519
520distclean: distclean-post
521
522distclean-post: distclean-recursive
523
524distclean-recursive: distclean-pre
525
526bootclean: bootclean-post
527
528bootclean-post: bootclean-recursive
529
530bootclean-recursive: bootclean-pre
531
532realclean: realclean-post
533
534realclean-post: realclean-recursive
535
536realclean-recursive: realclean-pre
537
538rc-setup: rc-setup-post
539
540rc-setup-post: rc-setup-recursive
541
542rc-setup-recursive: rc-setup-pre
543
544dist: doc dist-post
545
546dist-post: dist-recursive
547
548dist-recursive: dist-pre
549
550dist-devel: doc dist-devel-post
551
552dist-devel-post: dist-devel-recursive
553
554dist-devel-recursive: dist-devel-pre
555
556# For an explanation of the following makefile rules, see node
557# `Automatic Remaking' in GNU Autoconf documentation.
558
559makefile: makefile.in config.status
560	CONFIG_FILES=$@ CONFIG_HEADERS= ./config.status
561
562config.status: configure
563	./config.status --recheck
564
565configure: configure.ac
566	cd $(srcdir) && autoconf configure.ac > configure && chmod 755 configure
567
568# Tell versions [3.59,3.63) of GNU make not to export all variables.
569# Otherwise a system limit (for SysV at least) may be exceeded.
570.NOEXPORT:
571