summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArun Isaac2021-04-25 23:42:10 +0530
committerArun Isaac2021-04-26 00:25:06 +0530
commit95f771b096ad7e9728b16c619f3644b177cea4d3 (patch)
treef5b8669cf6c0dc7398e268e1c31ca4aaab3cbd32
parent9ab2f84cfa1d4e7016dd0aba1fa9a41eec85b4a1 (diff)
downloadccwl-95f771b096ad7e9728b16c619f3644b177cea4d3.tar.gz
ccwl-95f771b096ad7e9728b16c619f3644b177cea4d3.tar.lz
ccwl-95f771b096ad7e9728b16c619f3644b177cea4d3.zip
Add autotools build system.
* Makefile.am, bootstrap.sh, configure.ac, pre-inst-env.in: New files.
-rw-r--r--Makefile.am54
-rwxr-xr-xbootstrap.sh21
-rw-r--r--configure.ac29
-rw-r--r--pre-inst-env.in28
4 files changed, 132 insertions, 0 deletions
diff --git a/Makefile.am b/Makefile.am
new file mode 100644
index 0000000..a5e66f9
--- /dev/null
+++ b/Makefile.am
@@ -0,0 +1,54 @@
+# ccwl --- Concise Common Workflow Language
+# Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
+#
+# This file is part of ccwl.
+#
+# ccwl 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.
+#
+# ccwl 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 ccwl. If not, see <https://www.gnu.org/licenses/>.
+
+GOBJECTS = $(SOURCES:%.scm=%.go)
+
+nobase_mod_DATA = $(SOURCES) $(NOCOMP_SOURCES)
+nobase_go_DATA = $(GOBJECTS)
+
+# Make sure source files are installed first, so that the mtime of
+# installed compiled files is greater than that of installed source
+# files. See
+# <http://lists.gnu.org/archive/html/guile-devel/2010-07/msg00125.html>
+# for details.
+guile_install_go_files = install-nobase_goDATA
+$(guile_install_go_files): install-nobase_modDATA
+
+CLEANFILES = $(GOBJECTS)
+EXTRA_DIST = $(SOURCES) $(NOCOMP_SOURCES)
+GUILE_WARNINGS = -Wunbound-variable -Warity-mismatch -Wformat
+SUFFIXES = .scm .go
+.scm.go:
+ $(AM_V_GEN)$(top_builddir)/pre-inst-env $(GUILD) compile $(GUILE_WARNINGS) -o "$@" "$<"
+
+moddir = $(prefix)/share/guile/site/$(GUILE_EFFECTIVE_VERSION)
+godir = $(libdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site-ccache
+
+SOURCES = \
+ ccwl/ccwl.scm \
+ ccwl/yaml.scm \
+ ccwl/utils.scm
+
+SCM_LOG_DRIVER = \
+ $(top_builddir)/pre-inst-env \
+ $(GUILE) --no-auto-compile -s \
+ $(top_builddir)/build-aux/test-driver.scm
+
+EXTRA_DIST += \
+ COPYING \
+ README.org
diff --git a/bootstrap.sh b/bootstrap.sh
new file mode 100755
index 0000000..1e8f2fb
--- /dev/null
+++ b/bootstrap.sh
@@ -0,0 +1,21 @@
+#! /bin/sh
+
+# ccwl --- Concise Common Workflow Language
+# Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
+#
+# This file is part of ccwl.
+#
+# ccwl 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.
+#
+# ccwl 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 ccwl. If not, see <https://www.gnu.org/licenses/>.
+
+autoreconf --verbose --install --force
diff --git a/configure.ac b/configure.ac
new file mode 100644
index 0000000..2e1f1fe
--- /dev/null
+++ b/configure.ac
@@ -0,0 +1,29 @@
+dnl ccwl --- Concise Common Workflow Language
+dnl Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
+dnl
+dnl This file is part of ccwl.
+dnl
+dnl ccwl is free software: you can redistribute it and/or modify it
+dnl under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation, either version 3 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl ccwl is distributed in the hope that it will be useful, but
+dnl WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+dnl General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with ccwl. If not, see <https://www.gnu.org/licenses/>.
+
+AC_INIT([ccwl], [0.1.0])
+AC_CONFIG_AUX_DIR([build-aux])
+AM_INIT_AUTOMAKE([color-tests -Wall -Wno-portability foreign check-news no-dist-gzip dist-lzip])
+AM_SILENT_RULES([yes])
+
+GUILE_PKG([3.0 2.2])
+GUILE_PROGS
+
+AC_CONFIG_FILES([Makefile])
+AC_CONFIG_FILES([pre-inst-env], [chmod +x pre-inst-env])
+AC_OUTPUT
diff --git a/pre-inst-env.in b/pre-inst-env.in
new file mode 100644
index 0000000..4e73d75
--- /dev/null
+++ b/pre-inst-env.in
@@ -0,0 +1,28 @@
+#! /bin/sh
+
+# ccwl --- Concise Common Workflow Language
+# Copyright © 2021 Arun Isaac <arunisaac@systemreboot.net>
+#
+# This file is part of ccwl.
+#
+# ccwl 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.
+#
+# ccwl 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 ccwl. If not, see <https://www.gnu.org/licenses/>.
+
+abs_top_srcdir="`cd "@abs_top_srcdir@" > /dev/null; pwd -P`"
+abs_top_builddir="`cd "@abs_top_builddir@" > /dev/null; pwd -P`"
+
+GUILE_LOAD_COMPILED_PATH="$abs_top_builddir${GUILE_LOAD_COMPILED_PATH:+:}$GUILE_LOAD_COMPILED_PATH"
+GUILE_LOAD_PATH="$abs_top_builddir:$abs_top_srcdir${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH"
+export GUILE_LOAD_COMPILED_PATH GUILE_LOAD_PATH
+
+exec "$@"