From 75143d4bd2d5322d2480b1315c5c4b42091ffb95 Mon Sep 17 00:00:00 2001 From: Chris Hanson Date: Thu, 18 Oct 2018 01:25:27 -0700 Subject: [PATCH] Another major refactoring, to split up cross host/target. Primary testing so far is for SVM. To build SVM from 9.2 x86-64, do the following: 1. Generate a new build with an SVM compiler: ./configure --with-compiler-target=svm make 2. Create a second build configured with: ./configure --enable-native-code=svm --enable-cross-compiling make make cross-target --- src/Makefile.in | 455 ++++++++++++++++++++++------------------------- src/configure.ac | 18 +- 2 files changed, 222 insertions(+), 251 deletions(-) diff --git a/src/Makefile.in b/src/Makefile.in index 5e6e9c13d..bc260ef41 100644 --- a/src/Makefile.in +++ b/src/Makefile.in @@ -70,14 +70,33 @@ MIT_SCHEME_EXE = @MIT_SCHEME_EXE@ AUXDIR_NAME = @AUXDIR_NAME@ AUXDIR = @AUXDIR@ +@IF_CROSS@COMPILER_SETTINGS_CROSS = (set! compiler:cross-compiling? true) +@IF_LIARC@COMPILER_SETTINGS_LIARC = (set! compiler:invoke-c-compiler? false) +HOST_COMPILER_HEAP = @HOST_COMPILER_HEAP@ + +HOST_COMPILER_SETTINGS = \ + $(COMPILER_SETTINGS_CROSS) \ + $(COMPILER_SETTINGS_LIARC) + +HOST_COMPILER = '$(MIT_SCHEME_EXE)' --batch-mode $(HOST_COMPILER_HEAP) \ + --eval '(begin $(HOST_COMPILER_SETTINGS))' --load runtime/host-adapter.scm + +HOST_RUNTIME_ONLY = '$(MIT_SCHEME_EXE)' --batch-mode $(HOST_COMPILER_HEAP) \ + --band runtime.com --load runtime/host-adapter.scm + +# This rule is for LIARC. +.SUFFIXES: .bld .pkd .c +.pkd.c .bld.c: + echo '(cbf "$<")' | $(HOST_COMPILER) + + +.PHONY: default-target default-target: @DEFAULT_TARGET@ +.PHONY: all all: @ALL_TARGET@ -check: - ./microcode/scheme --library lib --batch-mode \ - --load ../tests/check.scm --eval '(%exit)' - +.PHONY: all-native all-native: microcode/scheme all-native: lib/runtime.com all-native: lib/all.com @@ -91,247 +110,177 @@ all-native: all-ssp all-native: all-star-parser all-native: all-win32 all-native: all-xml -all-native: cross-target - -@IF_CROSS@COMPILER_SETTINGS_CROSS = (set! compiler:cross-compiling? true) -@IF_LIARC@COMPILER_SETTINGS_LIARC = (set! compiler:invoke-c-compiler? false) -HOST_COMPILER_HEAP = @HOST_COMPILER_HEAP@ - -HOST_COMPILER_SETTINGS = \ - $(COMPILER_SETTINGS_CROSS) \ - $(COMPILER_SETTINGS_LIARC) -HOST_COMPILER = '$(MIT_SCHEME_EXE)' --batch-mode $(HOST_COMPILER_HEAP) \ - --eval '(begin $(HOST_COMPILER_SETTINGS))' --load runtime/host-adapter.scm +# XXX This should really depend on microcode/gen-nonce and +# microcode/extract-liarc-decls instead of microcode/scheme, but +# splitting up dependencies within the microcode subdirectory is more +# trouble than it's worth right now. Later, we should reorganize the +# directory structure to better reflect the build rather than just +# shoving all the C code into microcode/. +.PHONY: liarc-bundle-tools +liarc-bundle-tools: microcode/scheme -HOST_RUNTIME_ONLY = '$(MIT_SCHEME_EXE)' --batch-mode $(HOST_COMPILER_HEAP) \ - --band runtime.com --load runtime/host-adapter.scm +################ +# Microcode +################ -.PHONY: microcode/scheme @IF_LIARC@microcode/scheme: all-runtime @IF_SVM@microcode/scheme: microcode/svm1-defns.h microcode/scheme: (cd microcode && $(MAKE) all) +.PHONY: compile-microcode +compile-microcode: microcode/scheme + +stamp_install-microcode: compile-microcode + (cd microcode; $(MAKE) install) + echo "done" > $@ + microcode/svm1-defns.h: compiler/machines/svm/svm1-defns.h @$(top_srcdir)/etc/maybe-update-file.sh \ compiler/machines/svm/svm1-defns.h \ microcode/svm1-defns.h -compiler/machines/svm/svm1-defns.h: \ - compiler/machines/svm/assembler-rules.scm \ - compiler/machines/svm/machine.scm \ - compiler/machines/svm/assembler-compiler.scm \ - compiler/machines/svm/assembler-runtime.scm \ - compiler/machines/svm/compile-assembler.scm - ( cd compiler/machines/svm/ \ - && "$(MIT_SCHEME_EXE)" --batch-mode \ - --load ../../../runtime/host-adapter.scm \ - --load compile-assembler \ - $@ .PHONY: bundle-runtime bundle-runtime: runtime/runtime-unx.c -bundle-runtime: runtime/runtime-w32.c - -# XXX Kludgey bogus rules for LIARC. -#runtime/runtime-w32.pkd: runtime/runtime-unx.pkd ################ # SF ################ .PHONY: all-sf -all-sf: compile-sf +all-sf: stamp_compile-sf @IF_LIARC@all-sf: bundle-sf -.PHONY: syntax-sf -syntax-sf: +stamp_compile-sf: (echo '(with-working-directory-pathname "sf"' && \ - echo ' (lambda () (load "sf.sf")))') \ - | $(HOST_COMPILER) - -.PHONY: compile-sf -compile-sf: syntax-sf - (echo '(with-working-directory-pathname "sf"' && \ - echo ' (lambda () (load "sf.cbf")))') \ + echo ' (lambda () (load "sf.sf") (load "sf.cbf")))') \ | $(HOST_COMPILER) + echo "done" > $@ .PHONY: bundle-sf bundle-sf: liarc-bundle-tools -bundle-sf: compile-sf +bundle-sf: stamp_compile-sf bundle-sf: sf/sf-unx.c -bundle-sf: sf/sf-w32.c (cd sf && $(MAKE) compile-liarc-bundle) -# XXX Kludgey bogus rules for liarc. -#sf/sf-w32.pkd: sf/sf-unx.pkd - -################ +################# # Compiler (LIAR) -################ +################# .PHONY: all-compiler -all-compiler: compile-compiler +all-compiler: stamp_compile-compiler @IF_LIARC@all-compiler: bundle-compiler -.PHONY: syntax-compiler -@IF_SVM@syntax-compiler: compiler/machines/svm/svm1-defns.h -syntax-compiler: syntax-sf +stamp_syntax-compiler: stamp_compile-sf +@IF_SVM_COMPILER@stamp_syntax-compiler: compiler/machines/svm/svm1-defns.h (echo '(with-working-directory-pathname "compiler"' && \ echo ' (lambda () (load "compiler.sf")))') \ | $(HOST_RUNTIME_ONLY) + echo "done" > $@ -.PHONY: compile-compiler -compile-compiler: syntax-compiler +stamp_compile-compiler: stamp_syntax-compiler (echo '(with-working-directory-pathname "compiler"' && \ echo ' (lambda () (load "compiler.cbf")))') \ | $(HOST_COMPILER) + echo "done" > $@ .PHONY: bundle-compiler bundle-compiler: liarc-bundle-tools -bundle-compiler: compile-compiler +bundle-compiler: stamp_compile-compiler bundle-compiler: compiler/compiler-unx.c -bundle-compiler: compiler/compiler-w32.c (cd compiler && $(MAKE) compile-liarc-bundle) +compiler/machines/svm/svm1-defns.h: \ + compiler/machines/svm/assembler-rules.scm \ + compiler/machines/svm/machine.scm \ + compiler/machines/svm/assembler-compiler.scm \ + compiler/machines/svm/assembler-runtime.scm \ + compiler/machines/svm/compile-assembler.scm + (echo '(with-working-directory-pathname "compiler/machines/svm"' && \ + echo ' (lambda () (load "compile-assembler")))') \ + | $(HOST_RUNTIME_ONLY) + ################ # CREF ################ .PHONY: all-cref -all-cref: compile-cref +all-cref: stamp_compile-cref @IF_LIARC@all-cref: bundle-cref -.PHONY: syntax-cref -syntax-cref: - (echo '(with-working-directory-pathname "cref"' && \ - echo ' (lambda () (load "cref.sf")))') \ - | $(HOST_COMPILER) - -.PHONY: compile-cref -compile-cref: syntax-cref +stamp_compile-cref: (echo '(with-working-directory-pathname "cref"' && \ - echo ' (lambda () (load "cref.cbf")))') \ + echo ' (lambda () (load "cref.sf") (load "cref.cbf")))') \ | $(HOST_COMPILER) + echo "done" > $@ .PHONY: bundle-cref bundle-cref: liarc-bundle-tools -bundle-cref: compile-cref +bundle-cref: stamp_compile-cref bundle-cref: cref/cref-unx.c -bundle-cref: cref/cref-w32.c (cd cref && $(MAKE) compile-liarc-bundle) -# XXX Kludgey bogus rules for LIARC. -#cref/cref-w32.pkd: cref/cref-unx.pkd - ################ # *PARSER ################ .PHONY: all-star-parser -all-star-parser: compile-star-parser +all-star-parser: stamp_compile-star-parser @IF_LIARC@all-star-parser: bundle-star-parser -.PHONY: compile-star-parser -compile-star-parser: +stamp_compile-star-parser: stamp_compile-runtime (echo '(with-working-directory-pathname "star-parser"' && \ echo ' (lambda () (load "compile")))') \ | $(HOST_COMPILER) + echo "done" > $@ .PHONY: bundle-star-parser bundle-star-parser: liarc-bundle-tools -bundle-star-parser: compile-star-parser +bundle-star-parser: stamp_compile-star-parser bundle-star-parser: star-parser/parser-unx.c -bundle-star-parser: star-parser/parser-w32.c (cd star-parser && $(MAKE) compile-liarc-bundle) -# XXX Kludgey bogus rules for LIARC. -#star-parser/parser-w32.pkd: star-parser/parser-unx.pkd - ### More stuff we build with tools. We could build it with the newly ### built compiler in the native case, but we want to avoid having to ### do that to encourage cross-compilation. @@ -341,154 +290,124 @@ bundle-star-parser: star-parser/parser-w32.c ################ .PHONY: all-ffi -all-ffi: compile-ffi +all-ffi: stamp_compile-ffi @IF_LIARC@all-ffi: bundle-ffi -.PHONY: compile-ffi -compile-ffi: +stamp_compile-ffi: stamp_compile-runtime (echo '(with-working-directory-pathname "ffi"' && \ echo ' (lambda () (load "compile.scm")))') \ | $(HOST_COMPILER) + echo "done" > $@ .PHONY: bundle-ffi bundle-ffi: liarc-bundle-tools -bundle-ffi: compile-ffi +bundle-ffi: stamp_compile-ffi bundle-ffi: ffi/ffi-unx.c -bundle-ffi: ffi/ffi-w32.c (cd ffi && $(MAKE) compile-liarc-bundle) -# XXX Kludgey bogus rules for LIARC. -#ffi/ffi-w32.pkd: ffi/ffi-unx.pkd - ################ # SOS ################ .PHONY: all-sos -all-sos: compile-sos +all-sos: stamp_compile-sos @IF_LIARC@all-sos: bundle-sos -.PHONY: compile-sos -compile-sos: +stamp_compile-sos: stamp_compile-runtime (echo '(with-working-directory-pathname "sos"' && \ echo ' (lambda () (load "compile")))') \ | $(HOST_COMPILER) + echo "done" > $@ .PHONY: bundle-sos bundle-sos: liarc-bundle-tools -bundle-sos: compile-sos +bundle-sos: stamp_compile-sos bundle-sos: sos/sos-unx.c -bundle-sos: sos/sos-w32.c (cd sos && $(MAKE) compile-liarc-bundle) -# XXX Kludgey bogus rules for LIARC. -#sos/sos-w32.pkd: sos/sos-unx.pkd - ################ # SSP ################ .PHONY: all-ssp -all-ssp: compile-ssp +all-ssp: stamp_compile-ssp @IF_LIARC@all-ssp: bundle-ssp -.PHONY: compile-ssp -compile-ssp: compile-xml +stamp_compile-ssp: stamp_compile-runtime stamp_compile-xml (echo '(with-working-directory-pathname "ssp"' && \ echo ' (lambda () (load "compile")))') \ | $(HOST_COMPILER) + echo "done" > $@ .PHONY: bundle-ssp bundle-ssp: liarc-bundle-tools -bundle-ssp: compile-ssp +bundle-ssp: stamp_compile-ssp bundle-ssp: ssp/ssp-unx.c -bundle-ssp: ssp/ssp-w32.c (cd ssp && $(MAKE) compile-liarc-bundle) -# XXX Kludgey bogus rules for LIARC. -#ssp/ssp-w32.pkd: ssp/ssp-unx.pkd - ################ # Windows FFI ################ .PHONY: all-win32 -all-win32: compile-win32 +all-win32: stamp_compile-win32 -.PHONY: syntax-win32 -syntax-win32: +stamp_compile-win32: stamp_compile-runtime (echo '(with-working-directory-pathname "win32"' && \ - echo ' (lambda () (load "win32.sf")))') \ + echo ' (lambda () (load "win32.sf") (load "win32.cbf")))') \ | $(HOST_COMPILER) - -.PHONY: compile-win32 -compile-win32: syntax-win32 - (echo '(with-working-directory-pathname "win32"' && \ - echo ' (lambda () (load "win32.cbf")))') \ - | $(HOST_COMPILER) - -# XXX Kludgey bogus rules for liarc. -#win32/win32-w32.pkd: win32/win32-unx.pkd + echo "done" > $@ ################ # XML ################ .PHONY: all-xml -all-xml: compile-xml +all-xml: stamp_compile-xml @IF_LIARC@all-xml: bundle-xml -.PHONY: compile-xml -compile-xml: compile-star-parser +stamp_compile-xml: stamp_compile-runtime stamp_compile-sos stamp_compile-star-parser (echo '(with-working-directory-pathname "xml"' && \ echo ' (lambda () (load "compile")))') \ | $(HOST_COMPILER) + echo "done" > $@ .PHONY: bundle-xml bundle-xml: liarc-bundle-tools -bundle-xml: compile-xml +bundle-xml: stamp_compile-xml bundle-xml: xml/xml-unx.c -bundle-xml: xml/xml-w32.c (cd xml && $(MAKE) compile-liarc-bundle) -# XXX Kludgey bogus rules for liarc. -#xml/xml-w32.pkd: xml/xml-unx.pkd - -################################ -### Cross-compilation finish-up. -################################ +##################### +### Cross compilation +##################### # We split this up into two targets, cross-host and cross-target, so # that you can type `make cross-host' to do everything on the -# cross-compilation host, transfer everything over, and then run `make' -# to do the rest, since the default target depends on cross-target. -# (Rsync should help iterating this process.) +# cross-compilation host, transfer everything over, and then run `make +# target' to do the rest. # # Anything that depends on running the target code should depend on # cross-target, and there should be a plan for obviating the need to # run the target code. .PHONY: cross-host -cross-host: compile-compiler -cross-host: compile-cref -cross-host: compile-ffi -cross-host: compile-runtime -cross-host: compile-sf -cross-host: compile-sos -cross-host: compile-ssp -cross-host: compile-star-parser -cross-host: compile-win32 -cross-host: compile-xml -cross-host: microcode/scheme -cross-host: syntax-compiler -cross-host: syntax-runtime +cross-host: stamp_compile-compiler +cross-host: stamp_compile-cref +cross-host: stamp_compile-ffi +cross-host: stamp_compile-runtime +cross-host: stamp_compile-sf +cross-host: stamp_compile-sos +cross-host: stamp_compile-ssp +cross-host: stamp_compile-star-parser +cross-host: stamp_compile-win32 +cross-host: stamp_compile-xml + echo "done" > stamp_$@ .PHONY: cross-target -cross-target: cross-host -@IF_CROSS@cross-target: cross-end +cross-target: stamp_cross-finished lib/runtime.com lib/all.com -.PHONY: cross-end -cross-end: cross-host +stamp_cross-finished: stamp_cross-host microcode/scheme (echo '(let ((env (->environment (quote (runtime)))))' && \ echo ' (load "../compiler/base/crsend" env)' && \ echo ' ((access finish-cross-compilation:files env) ".."))') \ @@ -499,31 +418,71 @@ cross-end: cross-host echo ' ((access finish-cross-compilation:info-files env) ".."))') \ | (cd runtime && ../microcode/scheme --batch-mode --library ../lib \ --fasl make.com) + echo "done" > $@ -# **** Legacy serialized targets **** +################ +# Miscellany +################ -all-liarc: - @$(top_srcdir)/etc/c-compile.sh "$(MIT_SCHEME_EXE)" --batch-mode - $(MAKE) compile-liarc-bundles build-bands +.PHONY: check +check: + ./microcode/scheme --library lib --batch-mode \ + --load ../tests/check.scm --eval '(%exit)' +.PHONY: macosx-app macosx-app: stamp_macosx-app stamp_macosx-app: all etc/macosx/make-app.sh echo "done" > $@ -compile-microcode: - (cd microcode && $(MAKE) all) +.PHONY: mostlyclean clean distclean maintainer-clean c-clean +mostlyclean clean distclean maintainer-clean c-clean: + $(top_srcdir)/Clean.sh $@ $(SUBDIRS) -stamp_install-microcode: compile-microcode - (cd microcode; $(MAKE) install) - echo "done" > $@ +.PHONY: clean-boot-root +clean-boot-root: + rm -rf boot-root + rm -f stamp_* +.PHONY: tags TAGS +tags TAGS: + $(top_srcdir)/Tags.sh $(SUBDIRS) + +.PHONY: subdir-list +subdir-list: + @for D in $(SUBDIRS); do echo $$D; done + +.PHONY: install +install: install-standard @INSTALL_LIARC_BUNDLES@ + +.PHONY: install-standard +install-standard: install-auxdir-top + etc/make-in-subdirs.sh install $(INSTALLED_SUBDIRS) + +.PHONY: install-auxdir-top +install-auxdir-top: + $(mkinstalldirs) $(DESTDIR)$(AUXDIR) + $(INSTALL_DATA) $(top_srcdir)/etc/optiondb.scm $(DESTDIR)$(AUXDIR)/. + $(INSTALL_DATA) $(top_srcdir)/etc/plugins.scm $(DESTDIR)$(AUXDIR)/. + $(INSTALL_DATA) lib/*.com $(DESTDIR)$(AUXDIR)/. + +################ +# Legacy +################ + +.PHONY: all-liarc +all-liarc: + @$(top_srcdir)/etc/c-compile.sh "$(MIT_SCHEME_EXE)" --batch-mode + $(MAKE) compile-liarc-bundles build-bands + +.PHONY: build-bands build-bands: @$(top_srcdir)/etc/build-bands.sh # **** Make liarc distribution from native **** +.PHONY: liarc-dist liarc-dist: @$(top_srcdir)/etc/compile-boot-compiler.sh "$(MIT_SCHEME_EXE)" @$(top_srcdir)/etc/c-prepare.sh "$(MIT_SCHEME_EXE)" @@ -555,9 +514,11 @@ stamp_liarc-compile-scheme: stamp_compile-liarc-bundles: stamp_liarc-compile-scheme compile-liarc-bundles echo "done" > $@ +.PHONY: compile-liarc-bundles compile-liarc-bundles: compile-microcode etc/make-in-subdirs.sh compile-liarc-bundle $(LIARC_BUNDLES) +.PHONY: install-liarc-bundles install-liarc-bundles: etc/make-in-subdirs.sh install-liarc-bundle $(LIARC_BUNDLES) @@ -576,33 +537,37 @@ stamp_native-compile-scheme: compile-microcode --library boot-root/lib/$(AUXDIR_NAME) --band boot-compiler.com echo "done" > $@ +########################## +### Save/restore utilities +########################## -mostlyclean clean distclean maintainer-clean c-clean: - $(top_srcdir)/Clean.sh $@ $(SUBDIRS) - -clean-boot-root: - rm -rf boot-root - rm -f stamp_* - -tags TAGS: - $(top_srcdir)/Tags.sh $(SUBDIRS) - -subdir-list: - @for D in $(SUBDIRS); do echo $$D; done - -install: install-standard @INSTALL_LIARC_BUNDLES@ - -install-standard: install-auxdir-top - etc/make-in-subdirs.sh install $(INSTALLED_SUBDIRS) - -install-auxdir-top: - $(mkinstalldirs) $(DESTDIR)$(AUXDIR) - $(INSTALL_DATA) $(top_srcdir)/etc/optiondb.scm $(DESTDIR)$(AUXDIR)/. - $(INSTALL_DATA) $(top_srcdir)/etc/plugins.scm $(DESTDIR)$(AUXDIR)/. - $(INSTALL_DATA) lib/*.com $(DESTDIR)$(AUXDIR)/. +.PHONY: save +save: + @echo 'Saving objects...' + @rm -rf saved-objects && \ + mkdir saved-objects && \ + ( \ + find $(SUBDIRS) -type f \ + \( \ + -name '*.bci' -o \ + -name '*.bin' -o \ + -name '*.c' -o \ + -name '*.com' -o \ + -name '*.crf' -o \ + -name '*.ext' -o \ + -name '*.fre' -o \ + -name '*.moc' -o \ + -name '*.o' -o \ + -name '*.pkd' -o \ + -name '*.so' -o \ + -false \ + \) \ + -print0 \ + | pax -rw -pe -l -v -d -0 saved-objects/. \ + ) || { rm -rf saved-objects; exit 1; } -.PHONY: default-target all all-native all-liarc macosx-app -.PHONY: compile-microcode build-bands -.PHONY: liarc-dist compile-liarc-bundles install-liarc-bundles -.PHONY: mostlyclean clean distclean maintainer-clean c-clean clean-boot-root -.PHONY: tags TAGS subdir-list install install-standard install-auxdir-top +.PHONY: restore +restore: + @echo 'Restoring objects...' + @if ! test -d saved-objects; then exit 1; fi && \ + (cd saved-objects && pax -rw -pe -v . ../../.) diff --git a/src/configure.ac b/src/configure.ac index 847977204..6e068af43 100644 --- a/src/configure.ac +++ b/src/configure.ac @@ -38,7 +38,7 @@ fi AC_ARG_ENABLE([debugging], AS_HELP_STRING([--enable-debugging], [Compile with debugging support [[no]]])) -: ${enable_debugging='no'} +: ${enable_debugging=no} AC_ARG_ENABLE([native-code], AS_HELP_STRING([--enable-native-code], @@ -66,24 +66,27 @@ AC_ARG_ENABLE([cross-compiling], if test "x${enable_cross_compiling}" = xyes; then IF_CROSS= else - IF_CROSS=\# + IF_CROSS='#!cross-compiling: ' fi AC_ARG_WITH([default-target], AS_HELP_STRING([--with-default-target], [Set the default make target [[all]]])) if test x"${IS_NATIVE_RELEASE}" = xyes; then - : ${with_default_target=compile-microcode} + DEFAULT_DEFAULT_TARGET=compile-microcode +elif test "x${enable_cross_compiling}" = xyes; then + DEFAULT_DEFAULT_TARGET=cross-host else - : ${with_default_target=all} + DEFAULT_DEFAULT_TARGET=all fi +: ${with_default_target=${DEFAULT_DEFAULT_TARGET}} DEFAULT_TARGET=${with_default_target} AC_CANONICAL_HOST MIT_SCHEME_NATIVE_CODE([${enable_native_code}],[${host_cpu}]) -IF_LIARC=\# -IF_SVM=\# +IF_LIARC='#!LIARC: ' +IF_SVM='#!SVM: ' case ${mit_scheme_native_code} in c) ALL_TARGET=all-liarc @@ -105,6 +108,7 @@ svm1) esac AC_MSG_CHECKING([for compiler target]) +IF_SVM_COMPILER='#!SVM compiler: ' MIT_SCHEME_ARCHITECTURE([${with_compiler_target}]) case ${mit_scheme_architecture} in yes) @@ -124,6 +128,7 @@ c) ;; svm1) AC_MSG_RESULT([yes, using portable SVM code]) + IF_SVM_COMPILER= ;; *) AC_MSG_RESULT([yes, for ${mit_scheme_compiler_target}]) @@ -214,6 +219,7 @@ AC_SUBST([AUXDIR]) AC_SUBST([IF_CROSS]) AC_SUBST([IF_LIARC]) AC_SUBST([IF_SVM]) +AC_SUBST([IF_SVM_COMPILER]) AC_SUBST([HOST_COMPILER_HEAP]) AC_PROG_INSTALL -- 2.25.1