diff options
author | Mike Gerwitz <mike.gerwitz@rtspecialty.com> | 2018-10-08 23:27:02 -0400 |
---|---|---|
committer | Mike Gerwitz <mike.gerwitz@rtspecialty.com> | 2018-10-11 22:25:18 -0400 |
commit | 6027769633abc3d8d2377caceb7b942fc7fd92aa (patch) | |
tree | 12b17cd67576d1b9d53989245f967392991b7c0a /build-aux | |
parent | 88da519c5e43566871e504a4716ac7609e9adf2c (diff) | |
download | tame-6027769633abc3d8d2377caceb7b942fc7fd92aa.tar.gz tame-6027769633abc3d8d2377caceb7b942fc7fd92aa.tar.bz2 tame-6027769633abc3d8d2377caceb7b942fc7fd92aa.zip |
Integrate new compilation scripts, remove cqueue and Makefile.2
This is a major step toward normalcy---removing the kluge of a build process
that was causing so many issues. Rather than echoing all operations to a
queue file before passing it off to dslc, the new build scripts in `bin/'
are used to invoke tame normally, as needed. This solves all of the current
issues with things not rebuilding when they should. And, as a bonus, tab
completion on targets works.
Sorry this took so long. There wasn't much motivation until we hired so
many people that are suffering from this.
This does a few major things, along with some miscellaneous others:
- Invoke bin/tame directly;
- Merge Makefile.2.in into Makefile.am; and
- Fix up some targets.
* build-aux/Makefile.2.in: Delete file. Mostly merged with Makefile.am.
* build-aux/Makefile.am: Add a bunch of new targets and definitions from
Makefile.2.in. Modify all that previously used .cqueue to now invoke
`$(TAME)' directly. Remove miscellaneous targets for trying to proxy
targets to Makefile.2.
(saneout, _go): Remove definitions.
(.NOTPARALLEL): Add to prevent parallel builds.
(ui/program.expanded.xml)[.version.xml]: Remove dependency for now.
(clean): Also clean generated PHP files. Follow symlinks to clean core.
This is still incomplete (does not clean all rate table stuff).
(suppliers.mk)[xmlo_cmd]: Remove. See `gen-make' and `gen-c1make'.
(lvroot)[summary-html]: New dependency.
(kill-tamed, tamed-die): New targets (former alias of latter) to kill
tamed.
* build-aux/gen-c1make: Generate `$(TAME)' invocation.
* build-aux/gen-make: Likewise. Remove `xmlo_cmd' output. Ignore recursive
`tame' symlink (this can be removed once we clean `rater/' up.
* build-aux/m4/calcdsl.m4 (TAME): Update description to reflect that it
should now be the path to `bin/tame'. Adjust `AC_CHECK_FILE' lines
accordingly.
(tame_needed_ver): Remove. We have been in the same repo as TAME itself
for quite some time. Remove associated code.
(AC_CONFIG_FILES): Remove `Makefile.2'.
* src/current/src/com/lovullo/dslc/DslCompiler.java (_DslCompiler)[compile]:
Perform validation prefore `compile' command rather than a separate
`validate' step. Remove `rm'.
[compileSrc]: Stop echoing command. This was only necessary because of
the previous Makefile klugery; now Make echoes on its own correctly.
Diffstat (limited to 'build-aux')
-rw-r--r-- | build-aux/Makefile.2.in | 215 | ||||
-rw-r--r-- | build-aux/Makefile.am | 230 | ||||
-rwxr-xr-x | build-aux/gen-c1make | 3 | ||||
-rwxr-xr-x | build-aux/gen-make | 14 | ||||
-rw-r--r-- | build-aux/m4/calcdsl.m4 | 27 |
5 files changed, 160 insertions, 329 deletions
diff --git a/build-aux/Makefile.2.in b/build-aux/Makefile.2.in deleted file mode 100644 index 5618833..0000000 --- a/build-aux/Makefile.2.in +++ /dev/null @@ -1,215 +0,0 @@ -# @configure_input@ -# -# Compiles packages written in the Calc DSL. -# -# Copyright (C) 2018 R-T Specialty, LLC. -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. -# -# Note that this build process is unconventional in order to avoid the startup -# costs that would be associated with executing dslc with each and every package -# (see the other Makefile for more information). Therefore, everything is -# written to .cqueue for later processing by dslc. -# -# The issue of re-building based on timestamps---which Make would normally take -# care of exclusively---must also be given special care now that we are handling -# the building separately from Make. Each enqueued request also touches the -# destination file to update its timestamp, ensuring that it is seen by Make as -# modified (as if it were compiled) and therefore will trigger the building of -# the targets that depend upon it. In the case of the object files (xmlo), a -# temporary file is created when it is enqueued. As part of the queued request -# for compilation is a request to delete this temporary file. In the event that -# the build fails, this temporary file will be seen and will force a rebuild of -# the file, despite its timestamp. -# -# The same issue does not exist for xmle, js, and html files, since they have -# linear dependency trees and dslc will rm the file on failure, which -# obliterates the timestamp. -# # - -path_rates := $(path_suppliers)/rates -path_map := map -path_c1map := $(path_map)/c1 -path_dsl := rater -path_ui := ui -path_suppliers := suppliers -path_lv := lovullo -path_srv := srv - -src_suppliers := $(wildcard $(path_suppliers)/*.xml) -src_map := $(wildcard $(path_map)/*.xml) -src_c1map := $(wildcard $(path_c1map)/*.xml) - -dest_summary_html := $(patsubst \ - $(path_suppliers)/%.xml, \ - $(path_suppliers)/%.html, \ - $(src_suppliers)) -dest_standalone := $(patsubst \ - $(path_suppliers)/%.xml, \ - $(path_suppliers)/%.js, \ - $(src_suppliers)) -dest_map := $(patsubst \ - $(path_map)/%.xml, \ - $(path_map)/%.xmle, \ - $(src_map)) -dest_c1map := $(patsubst \ - $(path_c1map)/%.xml, \ - $(path_c1map)/%.php, \ - $(src_c1map)) - -compiled_suppliers := $(src_suppliers:.xml=.xmlo) -linked_suppliers := $(src_suppliers:.xml=.xmle) - -comma := , -extless_supp_delim := $(subst .xml,,$(subst .xml ,$(comma),$(src_suppliers))) - -cqueue=.cqueue - -ant = @ANT@ -e - -.DELETE_ON_ERROR: - -.PHONY: default clean \ - interp-rate-tables summary-html c1map \ - standalones program-ui program-ui-immediate program-data-copy \ - do-build version FORCE - -# these files will never be deleted when Make considers them to be intermediate -# (e.g. when building summary pages), since they are still needed or take a -# while to build -.PRECIOUS: %.js %.xml %.xmle %.xmlo - -SHELL = /bin/bash -O extglob - -default: program-ui c1map FORCE - -program-ui: standalones ui/package.js ui/Program.js program-ui-immediate -program-ui-immediate: ui/html/index.phtml - -include suppliers.mk - -# starts with a fresh cqueue -prexmlo: - @>$(cqueue) - -summary-html: $(dest_summary_html) ; - -%.html: %.js - @echo "summary $*.xmle $@" >>.cqueue - @touch $@ - -standalones: $(dest_standalone) -%.xmle: %.xmlo - @echo "link $< $@" >>.cqueue - @touch $@ -%.js: %.xmle - @echo "standalone $< $@" >>.cqueue - @touch $@ - -# C1 XML (specific recipes are in suppliers.mk) -c1map: $(dest_c1map) - -%.dot: %.xmlo - @echo "dot $< $@" >> .cqueue -%.dote: %.xmle - @echo "dot $< $@" >> .cqueue - -%.svg: %.dote - dot -Tsvg "$<" > "$@" -%.svg: %.dot - dot -Tsvg "$<" > "$@" - -%.xml: %.dat - rater/tools/tdat2xml $< > $@ - -%.xml: %.typelist - rater/tame/build-aux/list2typedef $(*F) < $< > $@ - -%.csvo: %.csvm - rater/tools/csvm2csv $< > $@ -%.csvo: %.csvi - rater/tools/csvi $< > $@ -%.csvo: %.csv - cp $< $@ - -%.xml: %.csvo - rater/tools/csv2xml $< > $@ - -version: .version.xml -.version.xml: FORCE - git log HEAD^.. -1 --pretty=format:'<version>%h</version>' > .version.xml - -ui/program.expanded.xml: ui/program.xml | .version.xml - @echo "progui-expand $< $@" >> .cqueue -ui/Program.js: ui/program.expanded.xml ui/package.js - @echo "progui-class $< $@ include-path=../../../ui/" >> .cqueue -ui/html/index.phtml: ui/program.expanded.xml - @echo "progui-html $< $@ out-path=./" >> .cqueue -ui/package-dfns.xmlo: ui/package-dfns.xml -ui/package-dfns.xml: ui/program.expanded.xml - @echo "progui-pkg $< $@" >> .cqueue -ui/package-map.xmlo: ui/package-map.xml -ui/package-map.xml: ui/program.expanded.xml ui/package-dfns.xml - @echo "progui-pkg-map $< $@" >> .cqueue - -# for the time being, this does not depend on clean-rate-tables because $(ant) will -specs: - $(MAKE) -C doc/specs - # -# this will eventually go away once we don't have X-repo klugery - -# for the time being, this does not depend on clean-rate-tables because ant will -# run it -clean: - find $(path_suppliers) $(path_map) $(path_c1map) common/ rater/core rater/lv \( \ - -name '*.xmlo' \ - -o -name '*.xmle' \ - -o -name '*.js' \ - -o -name '*.html' \ - -o -name '*.dep' \ - -o -name '*.tmp' \ - \) -exec rm -v {} \; - rm -rf $(path_ui)/package-dfns.* \ - $(path_ui)/package-map.* \ - $(path_ui)/program.expanded.xml \ - $(path_ui)/include.js \ - $(path_ui)/Program.js \ - $(path_ui)/html - find . -path '*/tables/*.csvm' -o -path '*/territories/*.dat' \ - | sed 's/\.csvm$$/\.xml/; s/\.dat$$/\.xml/' \ - | xargs rm -fv - -# generates a Makefile that will properly build all package dependencies; note -# that territory and rate packages also have includes; see top of this file for -# an explanation -suppliers.mk: - $(ant) pkg-dep \ - && mv $(path_ui)/program.dep $(path_ui)/package-dfns.dep - xmlo_cmd='@echo "validate $$(patsubst %.tmp,%.xml,$$<) $$@" >> .cqueue \ - && echo "compile $$(patsubst %.tmp,%.xml,$$<) $$@" >> .cqueue \ - && echo "rm $$(patsubst %.xmlo,%.tmp,$$@)" >> .cqueue \ - && touch $$@ \ - && touch -d +1sec $$(patsubst %.xmlo,%.tmp,$$@) >> .cqueue' \ - ./rater/tame/build-aux/gen-make common/ $(path_suppliers)/ $(path_dsl)/ $(path_map)/ $(path_ui)/ >$@ \ - && ./rater/tame/build-aux/gen-c1make $(path_c1map)/*.xml >>$@ - -me-a-sandwich: - @test $$EUID -eq 0 \ - && echo 'You actually ran me as root? Are you insane!?' \ - || echo 'Make it yourself.' - -# simply forces a job to run, thereby forcing the invocation of the secondary -# Makefile (this is not explicitly required, because of prepare, but signifies -# intent and is self-documenting) -FORCE: ; diff --git a/build-aux/Makefile.am b/build-aux/Makefile.am index 4ddec3b..e1f07a8 100644 --- a/build-aux/Makefile.am +++ b/build-aux/Makefile.am @@ -16,15 +16,7 @@ # # You should have received a copy of the GNU General Public License # along with this program. If not, see <http://www.gnu.org/licenses/>. -# -# This fragment exists as a kluge to provide support for running a command -# after all targets have been run (in this case, dslc). -# -# A list of everything to be compiled is output into .cqueue, which is then -# picked up by dslc; this avoids the overhead of starting the JVM, -# recompiling XSL stylesheets, etc, which is quite substantial. -# -# !!! Unfortunately, this does not yet support parallel job execution. +## path_rates := $(path_suppliers)/rates path_map := map @@ -38,63 +30,153 @@ path_srv := srv path_lvroot := lvroot path_intralov_root := "intralov-root/@program@" -.PHONY: FORCE prepare program-data-copy lvroot program-ui-immediate test - -JAVA_HEAP_SIZE ?= 5120M -JAVA_STACK_SIZE ?= 5M +src_suppliers := $(wildcard $(path_suppliers)/*.xml) +src_map := $(wildcard $(path_map)/*.xml) +src_c1map := $(wildcard $(path_c1map)/*.xml) + +dest_summary_html := $(patsubst \ + $(path_suppliers)/%.xml, \ + $(path_suppliers)/%.html, \ + $(src_suppliers)) +dest_standalone := $(patsubst \ + $(path_suppliers)/%.xml, \ + $(path_suppliers)/%.js, \ + $(src_suppliers)) +dest_map := $(patsubst \ + $(path_map)/%.xml, \ + $(path_map)/%.xmle, \ + $(src_map)) +dest_c1map := $(patsubst \ + $(path_c1map)/%.xml, \ + $(path_c1map)/%.php, \ + $(src_c1map)) + +compiled_suppliers := $(src_suppliers:.xml=.xmlo) +linked_suppliers := $(src_suppliers:.xml=.xmle) + +comma := , +extless_supp_delim := $(subst .xml,,$(subst .xml ,$(comma),$(src_suppliers))) + +ant = @ANT@ -e + +.PHONY: FORCE default program-data-copy lvroot program-ui-immediate test \ + default clean interp-rate-tables summary-html c1map standalones \ + program-ui version FORCE + +default: program-ui c1map FORCE .DELETE_ON_ERROR: - -# less verbose output; all to runlog -define saneout - time -f 'total time: %E' awk ' \ - BEGIN { e=0; w=0; } \ - { printf "[%d] ", systime() >> ".runlog"; print >> ".runlog"; } \ - /^~~~~\[begin /,/^~~~~\[end / { next } \ - /^rm / { next } \ - /^Exception|^\t+at / { \ - if ( /^E/ ) { \ - print; \ - print "Stack trace written to .runlog"; \ - } \ - next; \ - } \ - /[Ww]arning:|[Nn]otice:/ { printf "\033[0;33m"; w++; out=1; } \ - /[Ff]atal:/ { printf "\033[0;31m"; out=1; } \ - /!|[Ee]rror:/ { printf "\033[0;31m"; e++; out=1; } \ - /internal:/ { printf "\033[0;35m"; out=1; } \ - /internal error:/ { printf "\033[1m"; out=1; } \ - /^[^[]/ || out { print; printf "\033[0;0m"; out=0; } \ - END { printf "%d error(s); %d warning(s).\n", e, w; } \ - ' -endef - -define _go - touch .cqueue \ - && ( test -s .cqueue || echo "Nothing to be done for \`$@'." ) \ - && echo "$(JAVA_HEAP_SIZE) $(JAVA_STACK_SIZE)" \ \ - && CLASSPATH="$(RATER_CLASSPATH):rater/src/dslc.jar" \ - $(JAVA) -Xmx$(JAVA_HEAP_SIZE) -Xss$(JAVA_STACK_SIZE) \ - com.lovullo.dslc.DslCompiler < .cqueue 2>&1 \ - | $(saneout); \ - exit $${PIPESTATUS[0]}; \ - @>.cqueue -endef +.NOTPARALLEL: SHELL = /bin/bash -O extglob -all: program-data-copy +# these files will never be deleted when Make considers them to be intermediate +# (e.g. when building summary pages), since they are still needed or take a +# while to build +.PRECIOUS: %.js %.xml %.xmle %.xmlo -program-ui-immediate: - @>.cqueue - @$(MAKE) --no-print-directory -f Makefile.2 program-ui-immediate - @$(MAKE) program-data-copy - @$(_go) +all: program-data-copy -program-data-copy: - @>.cqueue - @$(MAKE) --no-print-directory -f Makefile.2 standalones program-ui c1map - @$(_go) +program-ui: standalones ui/package.js ui/Program.js program-ui-immediate +program-ui-immediate: ui/html/index.phtml + +# Note the `$()' here to prevent Automake from inlining this file---it is +# to be generated when imports change, which can be at any time. +include $()suppliers.mk + +summary-html: $(dest_summary_html) ; + +%.html: %.js + $(TAME) summary $*.xmle $@ + +standalones: $(dest_standalone) +%.xmle: %.xmlo + $(TAME) link $< $@ +%.js: %.xmle + $(TAME) standalone $< $@ + +# C1 XML (specific recipes are in suppliers.mk) +c1map: $(dest_c1map) + +%.dot: %.xmlo + $(TAME) dot $< $@ +%.dote: %.xmle + $(TAME) dot $< $@ + +%.svg: %.dote + dot -Tsvg "$<" > "$@" +%.svg: %.dot + dot -Tsvg "$<" > "$@" + +%.xml: %.dat + rater/tools/tdat2xml $< > $@ + +%.xml: %.typelist + rater/tame/build-aux/list2typedef $(*F) < $< > $@ + +%.csvo: %.csvm + rater/tools/csvm2csv $< > $@ +%.csvo: %.csvi + rater/tools/csvi $< > $@ +%.csvo: %.csv + cp $< $@ + +%.xml: %.csvo + rater/tools/csv2xml $< > $@ + +version: .version.xml +.version.xml: FORCE + git log HEAD^.. -1 --pretty=format:'<version>%h</version>' > .version.xml + +ui/program.expanded.xml: ui/program.xml + $(TAME) progui-expand $< $@ +ui/Program.js: ui/program.expanded.xml ui/package.js + $(TAME) progui-class $< $@ include-path=../../../ui/ +ui/html/index.phtml: ui/program.expanded.xml + $(TAME) progui-html $< $@ out-path=./ +ui/package-dfns.xmlo: ui/package-dfns.xml +ui/package-dfns.xml: ui/program.expanded.xml + $(TAME) progui-pkg $< $@ +ui/package-map.xmlo: ui/package-map.xml +ui/package-map.xml: ui/program.expanded.xml ui/package-dfns.xml + $(TAME) progui-pkg-map $< $@ + +# for the time being, this does not depend on clean-rate-tables because $(ant) will +specs: + $(MAKE) -C doc/specs + +# for the time being, this does not depend on clean-rate-tables because ant will +# run it +clean: + find -L $(path_suppliers) $(path_map) $(path_c1map) common/ rater/core rater/lv \( \ + -name '*.xmlo' \ + -o -name '*.xmle' \ + -o -name '*.js' \ + -o -name '*.html' \ + -o -name '*.dep' \ + -o -name '*.tmp' \ + -o -name '*.php' \ + \) -exec rm -v {} \; + rm -rf $(path_ui)/package-dfns.* \ + $(path_ui)/package-map.* \ + $(path_ui)/program.expanded.xml \ + $(path_ui)/include.js \ + $(path_ui)/Program.js \ + $(path_ui)/html + find . -path '*/tables/*.csvm' -o -path '*/territories/*.dat' \ + | sed 's/\.csvm$$/\.xml/; s/\.dat$$/\.xml/' \ + | xargs rm -fv + +# generates a Makefile that will properly build all package dependencies; note +# that territory and rate packages also have includes; see top of this file for +# an explanation +suppliers.mk: + $(ant) pkg-dep + mv $(path_ui)/program.dep $(path_ui)/package-dfns.dep + ./rater/tame/build-aux/gen-make common/ $(path_suppliers)/ $(path_dsl)/ $(path_map)/ $(path_ui)/ >$@ + ./rater/tame/build-aux/gen-c1make $(path_c1map)/*.xml >>$@ + +program-data-copy: standalones program-ui c1map .version.xml mkdir -p "$(path_lv)/src/node/program/rater/programs/@program@" mkdir -p "$(path_lv)/src/node/program/classify" mkdir -p "$(path_lv)/src/node/program/ui/custom" @@ -124,7 +206,7 @@ program-data-copy: ant -f "$(path_lv)/build.xml" js-mod-order # TODO: merge this and the above -lvroot: prepare +lvroot: summary-html mkdir -p "$(path_lvroot)/src/node/program/rater/programs/@program@" mkdir -p "$(path_lvroot)/src/node/program/classify" mkdir -p "$(path_lvroot)/src/node/program/ui/custom" @@ -155,28 +237,18 @@ intralov-root: summary-html ln -fL $(path_dsl)/scripts/*.js "$(path_intralov_root)/rater/scripts/" ln -fL $(path_suppliers)/*.{html,js} "$(path_intralov_root)/suppliers" - -# because of the crazy wildcard target below, we want to ignore -# some Automake-generated stuff -%.am: -%.m4: -%.ac: - -%: prepare - @if [[ "$@" != [Mm]akefile ]]; then \ - $(MAKE) --no-print-directory -f Makefile.2 $@; \ - $(_go); \ - fi - -clean: - $(MAKE) --no-print-directory -f Makefile.2 clean - -prepare: FORCE - @>.cqueue - test: check check-am: standalones ui/package.js @$(path_dsl)/build-aux/progtest-runner $(path_suppliers) $(path_tests) @$(path_dsl)/build-aux/progtest-runner ui/package.xml $(path_tests)/ui +kill-tamed: tamed-die +tamed-die: + $(TAME) --kill + +me-a-sandwich: + @test $$EUID -eq 0 \ + && echo 'You actually ran me as root? Are you insane!?' \ + || echo 'Make it yourself.' + FORCE: ; diff --git a/build-aux/gen-c1make b/build-aux/gen-c1make index 3de7a2b..ed7ffdb 100755 --- a/build-aux/gen-c1make +++ b/build-aux/gen-c1make @@ -75,8 +75,7 @@ c1recipe() ) echo "$dir/$base.php: $file $includes" - echo -e '\t@echo "c1map $< $@" >> .cqueue' - echo -e '\t@touch $@' + echo -e '\t$(TAME) c1map $< $@' } diff --git a/build-aux/gen-make b/build-aux/gen-make index fbed524..63aa436 100755 --- a/build-aux/gen-make +++ b/build-aux/gen-make @@ -54,16 +54,8 @@ resolv-path() # rule for building [ -z "$GEN_MAKE" ] && { - echo "%.xmlo:: %.tmp" - echo -e "\t@rm -f \$@ \$<" - [ -n "$xmlo_cmd" ] \ - && echo -e "\t$xmlo_cmd" \ - || echo -e "\ttouch \$@" - - echo "%.xmlo:: %.xml | prexmlo" - [ -n "$xmlo_cmd" ] \ - && echo -e "\t$xmlo_cmd" \ - || echo -e "\ttouch \$@" + echo "%.xmlo: %.xml" + echo -e '\t$(TAME) compile $< $@' export GEN_MAKE="$( pwd )/$0" exec "$GEN_MAKE" "$@" @@ -119,6 +111,8 @@ until [ $# -eq 0 ]; do ( # recurse on every subdirectory for p in */; do [ "$p" == ./ -o "$p" == ../ ] && continue + [ "$p" == node_modules/ -o "$p" == tame/ ] && continue + [ ! -d "$p" ] || ( cd "$OLDPWD" && "$GEN_MAKE" "$path/$p" ) || { echo "fatal: failed to recurse on $( pwd )/$path/$p" >&2 exit 1 diff --git a/build-aux/m4/calcdsl.m4 b/build-aux/m4/calcdsl.m4 index 18f8ab5..d846fa0 100644 --- a/build-aux/m4/calcdsl.m4 +++ b/build-aux/m4/calcdsl.m4 @@ -33,13 +33,10 @@ AM_INIT_AUTOMAKE([foreign]) AC_ARG_VAR([JAVA], [The Java executable]) AC_ARG_VAR([ANT], [Apache Ant]) AC_ARG_VAR([DSLC_JAR], [Path to DSL Compiler JAR]) -AC_ARG_VAR([TAME], [Path to TAME]) +AC_ARG_VAR([TAME], [The TAME compiler]) AC_ARG_VAR([RATER_CLASSPATH], [DSL Compiler Saxon class path]) AC_ARG_VAR([PROGUI_TEST_PATH], [Path to JavaScript tests for Program UI]) -# Required version of TAME -AC_SUBST([tame_needed_ver], [1.0.0]) - # Auto-discover Java and Ant paths AC_CHECK_PROGS(JAVA, [java]) AC_CHECK_PROGS(ANT, [ant]) @@ -64,34 +61,18 @@ AS_IF([test ! "$DSLC_JAR"], # TAME is the compiler (whereas dslc invokes it, keeps things in memory, etc) AS_IF([test ! "$TAME"], - [AC_CHECK_FILE([$CALCROOT/tame], - [AC_SUBST([TAME], [$CALCROOT/tame])], + [AC_CHECK_FILE([$CALCROOT/tame/bin/tame], + [AC_SUBST([TAME], [$CALCROOT/tame/bin/tame])], [AC_MSG_ERROR( [TAME not found])])], []) -AC_MSG_CHECKING([TAME version]) - -AC_SUBST_FILE([tame_version]) -tame_version=$( cat "$TAME/VERSION" ) - -# We get subtle errors or potential compiler bugs if the TAME version is -# incorrect; check for >= the required version -AS_VERSION_COMPARE([$tame_version], [$tame_needed_ver], - [ - AC_MSG_RESULT([$tame_version]) - AC_MSG_ERROR([TAME version $tame_needed_ver or greater required]) - ], - [AC_MSG_RESULT([$tame_version])], - [AC_MSG_RESULT([$tame_version (>$tame_needed_ver)])]) - # @program@ in *.in files will be replaced with the program name provided by AC_INIT AC_SUBST([program], AC_PACKAGE_NAME) # Final files to be output by `configure'. The path before the colon is the # destination name; after the colon is the source. -AC_CONFIG_FILES(Makefile:m4_defn(`calc_root')/build-aux/Makefile.in - Makefile.2:m4_defn(`calc_root')/build-aux/Makefile.2.in) +AC_CONFIG_FILES(Makefile:m4_defn(`calc_root')/build-aux/Makefile.in) # Generate configure script AC_OUTPUT |