wisp
 
(Arne Babenhauserheide)
2014-01-08: Integrated bootstrapping with autotools. v0.5.3

Integrated bootstrapping with autotools.

diff --git a/AUTHORS b/AUTHORS
new file mode 100644
--- /dev/null
+++ b/AUTHORS
@@ -0,0 +1,17 @@
+Main Author: Arne Babenhauserheide
+
+Specific Contributions:
+
+- Mark Weaver and Arne Babenhauserheide: Efficient string-replace-substring
+- Mark Weaver and NalaGinrut and Arne Babenhauserheide: wisp-reader.w
+
+Authors Info:
+
+Arne Babenhauserheide:
+    Arne Babenhauserheide known as ArneBab: http://savannah.gnu.org/users/arnebab
+
+NalaGinrut: 
+    "Mu Lei" known as "NalaGinrut" <NalaGinrut@gmail.com>: http://savannah.gnu.org/users/nalaginrut
+
+Mark Weaver:
+    Mark H. Weaver: http://savannah.gnu.org/users/mhw
\ No newline at end of file
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,14 @@
+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
+CLEANFILES = ${wisp} 
+DISTCLEANFILES = ${CLEANFILES} @builddir@/1 @builddir@/2
+
+all : ${wisp} $(changelog)
+
+# emacs org-mode beamer build instructions
+${wisp} : input.in.intermediate
+
+.INTERMEDIATE: input.in.intermediate
+input.in.intermediate: ${wisp_SOURCES}
+	@srcdir@/bootstrap.sh @srcdir@
diff --git a/NEWS b/NEWS
new file mode 100644
--- /dev/null
+++ b/NEWS
@@ -0,0 +1,17 @@
+wisp 0.5.3 (2014-01-08): Started to use autotools to get make distcheck.
+
+wisp 0.5.2 (2014-01-07): Support general paren-prefixes for macros.
+
+wisp-mode 0.1.5 (2014-01-04): Resolved a name-clash for the emacs wisp-mode together with Steve Purcell und Kris Jenkins: the javascript wisp-mode was renamed to wispjs-mode and wisp.el is called wisp-mode 0.1.5. It provides syntax highlighting for Emacs and minimal indentation support via tab. You can install it with `M-x package-install wisp-mode`
+
+wisp 0.5 (2013-09-13): Wisp now has a REPL! Thanks go to GNU Guile and especially Mark Weaver, who guided me through the process (along with nalaginrut who answered my first clueless questions…).
+    To test the REPL, get the current code snapshot, unpack it, run ./bootstrap.sh, start guile with $ guile -L . (requires guile 2.x) and enter ,language wisp.
+    Example usage:
+
+        display "Hello World!\n"
+
+    then hit enter thrice.
+    VoilĂ , you have wisp at the REPL!
+    Caveeat: the wisp-parser is still experimental and contains known bugs. Use it for testing, but please do not rely on it for important stuff, yet.
+
+wisp 0.4 (2013-09-10): wisp-guile.w can now parse itself! Bootstrapping: The magical feeling of seeing a language (dialect) grow up to live by itself: python3 wisp.py wisp-guile.w > 1 && guile 1 wisp-guile.w > 2 && guile 2 wisp-guile.w > 3 && diff 2 3. Starting today, wisp is implemented in wisp.
\ No newline at end of file
diff --git a/bootstrap.sh b/bootstrap.sh
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -1,13 +1,18 @@
 #!/bin/sh
 
 # Bootstrap wisp-guile with wisp.py
+if [[ x"$1" == x"" ]]; then 
+    srcdir=.
+else
+    srcdir="$1"
+fi
 
-diff=$(python3 wisp.py wisp-guile.w > 1 && guile 1 wisp-guile.w > 2 && guile 2 wisp-guile.w > wisp.scm && diff 2 wisp.scm && echo success)
+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 "successfully bootstrapped wisp.scm"
     echo preparing the reader: wisp at the REPL
     mkdir -p language/wisp
-    guile wisp.scm 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 ...succeeded \
         && echo 'to use wisp at the REPL, run `guile -L` . and then in guile `,L wisp`'
 else
diff --git a/configure.ac b/configure.ac
new file mode 100644
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,23 @@
+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.3], 
+        [arne_bab@web.de])
+# Check for programs I need for my build
+AC_CANONICAL_TARGET
+AC_ARG_VAR([guile], [How to call GNU Guile.])
+AC_CHECK_TARGET_TOOL([guile], [guile], [no])
+AS_IF([test "x$guile" = "xno"],
+      [AC_MSG_ERROR([cannot find GNU Guile.])])
+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.])])
+# Run automake
+# Use GNU style. Note that ChangeLog is created on every commit 
+# by a commit hook in .hg/hgrc
+#     [hooks]
+#     post-commit = hg log --style changelog > ChangeLog
+AM_INIT_AUTOMAKE([gnu])
+AM_MAINTAINER_MODE([enable])
+AC_CONFIG_FILES([Makefile])
+AC_OUTPUT
\ No newline at end of file