Add Makefile.am for bootstrapping
This provides a very basic Automake+Autoconf configuration. At the moment it handles only bootstrapping, but at least allows for the user to enter `make' and have something useful happen. * .gitignore: New file. * Makefile.am: New file. * autogen.sh: New file. * bootstrap/Bootstrap.js (_error): Re-throw error. * bootstrap/bootstrap.js: Exit with non-zero status code on failure. * configure.ac: New file.master
parent
aae726b7a6
commit
ba93b7c034
|
@ -0,0 +1,14 @@
|
||||||
|
# autotools- and configure-generated
|
||||||
|
/aclocal.m4
|
||||||
|
/Makefile.in
|
||||||
|
/Makefile
|
||||||
|
/*.cache/
|
||||||
|
/configure
|
||||||
|
/config.*
|
||||||
|
|
||||||
|
# should be added using autoreconf -i
|
||||||
|
/build-aux/install-sh
|
||||||
|
/build-aux/missing
|
||||||
|
/build-aux/mdate-sh
|
||||||
|
/build-aux/texinfo.tex
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
## Ulambda Makefile.am
|
||||||
|
#
|
||||||
|
# Copyright (C) 2018 Mike Gerwitz
|
||||||
|
#
|
||||||
|
# This file is part of Ulambda Scheme.
|
||||||
|
#
|
||||||
|
# Ulambda Scheme 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/>.
|
||||||
|
##
|
||||||
|
|
||||||
|
path_build_aux = $(top_srcdir)/build_aux
|
||||||
|
path_bootstrap = $(top_srcdir)/bootstrap
|
||||||
|
|
||||||
|
.PHONY: bootstrap
|
||||||
|
|
||||||
|
all: bootstrap
|
||||||
|
|
||||||
|
# will force a reconfigure (for version data) if in the git repo
|
||||||
|
reconf:
|
||||||
|
test ! -d .git || ./autogen.sh
|
||||||
|
|
||||||
|
bootstrap:
|
||||||
|
if HAS_NODEJS
|
||||||
|
cd "$(path_bootstrap)" && "$(NODEJS)" bootstrap.js
|
||||||
|
else
|
||||||
|
@echo "Node.js is required for command-line bootstrapping."
|
||||||
|
@echo "Alternatively, direct your web browser to"
|
||||||
|
@echo "bootstrap/bootstrap.html to bootstrap in-browser."
|
||||||
|
@exit 1
|
||||||
|
endif
|
|
@ -0,0 +1,31 @@
|
||||||
|
#!/bin/sh
|
||||||
|
#
|
||||||
|
# Generate configure script from repository
|
||||||
|
#
|
||||||
|
# Copyright (C) 2018 Mike Gerwitz
|
||||||
|
#
|
||||||
|
# This file is part of Ulambda Scheme.
|
||||||
|
#
|
||||||
|
# Ulambda Scheme 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/>.
|
||||||
|
#
|
||||||
|
# This script is not necessary to configure GNU ease.js; it is provided for
|
||||||
|
# convenience.
|
||||||
|
##
|
||||||
|
|
||||||
|
which autoreconf >/dev/null || {
|
||||||
|
echo "fatal: missing autoreconf" >&2
|
||||||
|
exit 1
|
||||||
|
}
|
||||||
|
|
||||||
|
exec autoreconf -fvi
|
|
@ -413,7 +413,9 @@ class Bootstrap
|
||||||
*
|
*
|
||||||
* @param {Error} e error
|
* @param {Error} e error
|
||||||
*
|
*
|
||||||
* @return {boolean} false
|
* @throws {Error} e
|
||||||
|
*
|
||||||
|
* @return {undefined}
|
||||||
*/
|
*/
|
||||||
_error( e )
|
_error( e )
|
||||||
{
|
{
|
||||||
|
@ -421,7 +423,7 @@ class Bootstrap
|
||||||
|
|
||||||
this._logf( str, e );
|
this._logf( str, e );
|
||||||
|
|
||||||
return false;
|
throw e;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -50,4 +50,7 @@ const getf = path => Promise.resolve(
|
||||||
|
|
||||||
const strap = new Bootstrap( getf, logf, new Prebirth() );
|
const strap = new Bootstrap( getf, logf, new Prebirth() );
|
||||||
|
|
||||||
strap.bootstrap();
|
// Attempt bootstrap. Error output is handled by Bootstrap, since the
|
||||||
|
// output must also work correctly in a browser environment.
|
||||||
|
strap.bootstrap()
|
||||||
|
.catch( _ => process.exit( 1 ) );
|
||||||
|
|
|
@ -0,0 +1,40 @@
|
||||||
|
# For use by Autoconf
|
||||||
|
#
|
||||||
|
# Copyright (C) 2018 Mike Gerwitz
|
||||||
|
#
|
||||||
|
# This file is part of Ulambda Scheme
|
||||||
|
#
|
||||||
|
# Ulambda Scheme 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/>.
|
||||||
|
##
|
||||||
|
|
||||||
|
AC_INIT([easejs], [0.0.0-dev], [mtg@gnu.org])
|
||||||
|
AC_CONFIG_AUX_DIR([build-aux])
|
||||||
|
AM_INIT_AUTOMAKE([foreign])
|
||||||
|
|
||||||
|
# Node.js is required for command-line bootstrapping
|
||||||
|
AC_ARG_VAR([NODEJS], [The Node.js interpreter])
|
||||||
|
AC_CHECK_PROGS(NODEJS, [node nodejs])
|
||||||
|
AM_CONDITIONAL(HAS_NODEJS, [test "$NODEJS"])
|
||||||
|
|
||||||
|
# certain portions of the build process require that node be installed (in the
|
||||||
|
# future, we may be able to allow alternatives, such as SpiderMonkey)
|
||||||
|
test "$NODEJS" || AC_MSG_WARN([
|
||||||
|
|
||||||
|
Node.js is not installed; command-line bootstrapping will not be
|
||||||
|
available, but you may bootstrap using your web browser.
|
||||||
|
])
|
||||||
|
|
||||||
|
AC_CONFIG_FILES([Makefile])
|
||||||
|
|
||||||
|
AC_OUTPUT
|
Loading…
Reference in New Issue