--- /dev/null
+# -*- Autotest -*-
+
+AT_BANNER([Erlang low level compiling and utility macros.])
+
+# Copyright (C) 2009 Free Software Foundation, Inc.
+#
+# 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 2, 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, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+# 02110-1301, USA.
+
+
+# Since the macros which compile are required by most tests, check
+# them first. But remember that looking for a compiler is even more
+# primitive, so check those first.
+
+
+# AT_SETUP_ERLANG(title)
+# ----------------------
+# Setup a test group for Erlang, named TITLE.
+m4_define([AT_SETUP_ERLANG],
+[AT_SETUP([$1])
+AT_KEYWORDS([Erlang])
+found_erl=no
+found_erlc=no
+_AS_PATH_WALK([], [
+if AS_EXECUTABLE_P(["$as_dir/erl"]); then found_erl=yes; fi
+if AS_EXECUTABLE_P(["$as_dir/erlc"]); then found_erlc=yes; fi
+if test "${found_erl}${found_erlc}" = "yesyes"; then break; fi
+])
+AT_SKIP_IF([test "$found_erl$found_erlc" != "yesyes"])])
+
+
+## ----------------- ##
+## Erlang Compiler. ##
+## ----------------- ##
+
+AT_SETUP_ERLANG([Erlang])
+
+AT_DATA([configure.ac],
+[[AC_INIT
+AC_ERLANG_NEED_ERL
+AC_ERLANG_NEED_ERLC
+AC_LANG([Erlang])
+## Can't compile, but can run an Erlang module:
+AC_COMPILE_IFELSE([AC_LANG_PROGRAM([], [halt(0)])],
+ [AC_MSG_RESULT([ok])
+ AC_MSG_ERROR([compiling Erlang program should fail])],
+ [AC_MSG_RESULT([failed])])
+AC_RUN_IFELSE([AC_LANG_PROGRAM([], [halt(0)])],
+ [AC_MSG_RESULT([ok])],
+ [AC_MSG_RESULT([failed])
+ AC_MSG_ERROR([could not run test program])])
+]])
+
+AT_CHECK_AUTOCONF
+AT_CHECK_CONFIGURE([-q])
+
+AT_CLEANUP
+
+
+## ----------------------- ##
+## Erlang path detection. ##
+## ----------------------- ##
+
+AT_SETUP_ERLANG([AC_ERLANG_CHECK_LIB])
+
+AT_DATA([configure.ac],
+[[AC_INIT
+AC_ERLANG_NEED_ERL
+AC_ERLANG_NEED_ERLC
+AC_ERLANG_CHECK_LIB([stdlib],
+ [AC_MSG_RESULT([ok])],
+ [AC_MSG_RESULT([failed])])
+AC_CONFIG_FILES([dir])
+AC_OUTPUT
+]])
+
+AT_DATA([dir.in],
+[[@ERLANG_LIB_DIR_stdlib@
+]])
+
+AT_CHECK_AUTOCONF
+AT_CHECK_CONFIGURE([-q])
+
+dir=`cat dir`
+rm -f dir
+AT_CHECK([test "$dir" = "not found" || test -d "$dir"])
+
+AT_CLEANUP
+
+
+## --------------------------- ##
+## Erlang root dir detection. ##
+## --------------------------- ##
+
+AT_SETUP_ERLANG([AC_ERLANG_SUBST_ROOT_DIR])
+
+AT_DATA([configure.ac],
+[[AC_INIT
+AC_ERLANG_NEED_ERL
+AC_ERLANG_NEED_ERLC
+AC_ERLANG_SUBST_ROOT_DIR
+AC_CONFIG_FILES([dir])
+AC_OUTPUT
+]])
+
+AT_DATA([dir.in],
+[[@ERLANG_ROOT_DIR@
+]])
+
+AT_CHECK_AUTOCONF
+AT_CHECK_CONFIGURE([-q])
+
+dir=`cat dir`
+rm -f dir
+AT_CHECK([test -d "$dir"])
+
+AT_CLEANUP
+
+
+## -------------------------- ##
+## Erlang lib dir detection. ##
+## -------------------------- ##
+
+AT_SETUP_ERLANG([AC_ERLANG_SUBST_LIB_DIR])
+
+AT_DATA([configure.ac],
+[[AC_INIT
+AC_ERLANG_NEED_ERL
+AC_ERLANG_NEED_ERLC
+AC_ERLANG_SUBST_LIB_DIR
+AC_CONFIG_FILES([dir])
+AC_OUTPUT
+]])
+
+AT_DATA([dir.in],
+[[@ERLANG_LIB_DIR@
+]])
+
+AT_CHECK_AUTOCONF
+AT_CHECK_CONFIGURE([-q])
+
+dir=`cat dir`
+rm -f dir
+AT_CHECK([test -d "$dir"])
+
+AT_CLEANUP
+
+
+## ------------------------------- ##
+## Erlang installation detection. ##
+## ------------------------------- ##
+
+AT_CHECK_MACRO([AC_ERLANG_SUBST_INSTALL_LIB_DIR], [],
+[AT_KEYWORDS([Erlang])])
+
+
+## ------------------------------- ##
+## Erlang installation detection. ##
+## ------------------------------- ##
+
+AT_SETUP([AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR])
+AT_KEYWORDS([Erlang])
+
+AT_DATA([configure.ac],
+[[AC_INIT
+AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR([test_blah], [1.24-b])
+AC_CONFIG_FILES([dir])
+AC_OUTPUT
+]])
+
+AT_DATA([dir.in],
+[[@ERLANG_INSTALL_LIB_DIR_test_blah@
+]])
+
+AT_CHECK_AUTOCONF
+AT_CHECK_CONFIGURE([-q])
+
+dir=`cat dir`
+subdir=`AS_BASENAME([$dir])`
+rm -f dir
+AT_CHECK([test "$subdir" = "test_blah-1.24-b"])
+
+AT_CLEANUP
+
+
+## -------------------------- ##
+## Erlang version detection. ##
+## -------------------------- ##
+
+AT_SETUP_ERLANG([AC_ERLANG_SUBST_ERTS_VER])
+
+AT_DATA([configure.ac],
+[[AC_INIT
+AC_ERLANG_NEED_ERL
+AC_ERLANG_NEED_ERLC
+AC_ERLANG_SUBST_ERTS_VER
+]])
+
+AT_CHECK_AUTOCONF
+AT_CHECK_CONFIGURE([-q])
+
+AT_CLEANUP