(Arne Babenhauserheide)
2014-01-27: merge merge
diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -8,3 +8,8 @@ ce8ccd40ef936710e76200d2ee138535e4ab0fb4 00de78a95055f846906d57b1a094a1c3e6bb2dbd v0.5.2 df64e82e0920bdd079d77cd4829bac9d30461a25 v0.5.3 f9c6e637d91d107bbf2ad807f30dc04150ddb251 v0.5.4 +3f72f85e4cddf57e5e6c84c735f554f330d3b88b v0.5.5 +2ae2c7c154e0c80acd21bdb2dace1c98a0a8d7a7 v0.5.6 +fb1b0fb41bc768485f582f3f5af16478aa6212a1 v0.5.7 +efd0ee6e65c3948e0c643526063029b691424de8 v0.5.8 +bb1c4165b8a6d12929625e6518a5b1c727c75942 v0.5.9 diff --git a/Makefile.am b/Makefile.am --- a/Makefile.am +++ b/Makefile.am @@ -1,17 +1,20 @@ wisp = wisp.scm language/wisp/spec.scm wisp_SOURCES = wisp-guile.w wisp-reader.w -EXTRA_DIST = $(wisp_SOURCES) $(wisp_DATA) bootstrap.sh wisp.py examples tests runtests.sh -CLEANFILES = ${wisp} +EXTRA_DIST = $(wisp_SOURCES) $(wisp_DATA) bootstrap.sh wisp.py examples tests runtests.sh wisp-repl-guile.sh +CLEANFILES = ${wisp} ChangeLog DISTCLEANFILES = ${CLEANFILES} @abs_top_builddir@/1 @abs_top_builddir@/2 @abs_top_builddir@/test.sh -all : ${wisp} $(changelog) +all : ${wisp} + +ChangeLog : + hg log --style changelog > ChangeLog # emacs org-mode beamer build instructions ${wisp} : input.in.intermediate .INTERMEDIATE: input.in.intermediate input.in.intermediate: ${wisp_SOURCES} - @abs_top_srcdir@/bootstrap.sh @abs_top_srcdir@ + @abs_top_srcdir@/bootstrap.sh @abs_top_srcdir@ @guile@ @python3@ .PHONY: test.sh test.sh : wisp.scm runtests.sh diff --git a/bootstrap.sh b/bootstrap.sh --- a/bootstrap.sh +++ b/bootstrap.sh @@ -7,14 +7,31 @@ else srcdir="$1" fi -diff=$(python3 ${srcdir}/wisp.py ${srcdir}/wisp-guile.w > 1 && guile 1 ${srcdir}/wisp-guile.w > 2 && guile 2 ${srcdir}/wisp-guile.w > wisp.scm && diff 2 wisp.scm && echo success) +# Bootstrap wisp-guile with wisp.py +if [[ x"$2" == x"" ]]; then + guile="guile" +else + guile="$2" +fi + +# Bootstrap wisp-guile with wisp.py +if [[ x"$3" == x"" ]]; then + python3="python3" +else + python3="$3" +fi + +diff=$(${python3} ${srcdir}/wisp.py ${srcdir}/wisp-guile.w > 1 && ${guile} 1 ${srcdir}/wisp-guile.w > 2 && ${guile} 2 ${srcdir}/wisp-guile.w > wisp.scm && diff 2 wisp.scm && echo success) if [[ ! x"${diff}" == x"success" ]]; then echo "failed to bootstrap wisp.scm. diff: " ${diff} exit 1 fi echo "successfully bootstrapped wisp.scm" echo preparing the reader: wisp at the REPL +echo parsing the spec file... mkdir -p language/wisp -guile wisp.scm ${srcdir}/wisp-reader.w 2>/dev/null > language/wisp/spec.scm \ +${guile} wisp.scm ${srcdir}/wisp-reader.w 2>/dev/null > language/wisp/spec.scm \ + && echo ...precompiling the spec file... \ + && ${guile} -L . -s language/wisp/spec.scm \ && echo ...succeeded \ - && echo 'to use wisp at the REPL, run `guile -L` . and then in guile `,L wisp`' + && echo to use wisp at the REPL, run '`'${guile} -L . --language=wisp'`' diff --git a/configure.ac b/configure.ac --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ dnl run `autoreconf -i` to generate a configure script. dnl Then run ./configure to generate a Makefile. dnl Finally run make to generate the project. -AC_INIT([wisp], [0.5.4], +AC_INIT([wisp], [0.5.9], [arne_bab@web.de]) # Check for programs I need for my build AC_CANONICAL_TARGET @@ -9,6 +9,7 @@ AC_ARG_VAR([guile], [How to call GNU Gui AC_CHECK_TARGET_TOOL([guile], [guile], [no]) AS_IF([test "x$guile" = "xno"], [AC_MSG_ERROR([cannot find GNU Guile.])]) +AC_ARG_VAR([python3], [How to call Python 3.]) AC_CHECK_TARGET_TOOL([python3], [python3], [no]) AS_IF([test "x$python3" = "xno"], [AC_MSG_ERROR([cannot find Python 3 which is required for bootstrapping.])]) diff --git a/wisp-repl-guile.sh b/wisp-repl-guile.sh new file mode 100755 --- /dev/null +++ b/wisp-repl-guile.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +# if the spec file does not exist yet, run the build chain +if test ! -f language/wisp/spec.scm; then + # if we are in a distribution tarball, just run configure + if test -f ./configure; then + ./configure && make check + # otherwise run the full autoconf chain + else + autoreconf -i && ./configure && make check + fi +fi + +# if the file still does not exist, our chain is broken +if test ! -f language/wisp/spec.scm; then + echo "ERROR: wisp failed to compile. Please check the previous output." +else + guile -L . --language=wisp +fi