blob: 6cb3b85cc6ccb6861764341b77313cb14370acd5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
|
# 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
%.go: %.scm
$(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
bin_SCRIPTS = scripts/ccwl
SOURCES = \
ccwl/ccwl.scm \
ccwl/yaml.scm \
ccwl/utils.scm
TEST_EXTENSIONS = .scm
SCM_TESTS = \
tests/ccwl.scm \
tests/yaml.scm
TESTS = $(SCM_TESTS)
SCM_LOG_DRIVER = \
$(top_builddir)/pre-inst-env \
$(GUILE) --no-auto-compile -s \
$(top_builddir)/build-aux/test-driver.scm
EXTRA_DIST += \
$(TESTS) \
COPYING \
README.org
# Build documentation
SKRIBILO_BUILD_DIR = $(srcdir)/doc/skribilo
DOC_IMAGES = $(addprefix $(SKRIBILO_BUILD_DIR)/, \
checksum.svg \
decompress-compile-run.svg)
$(SKRIBILO_BUILD_DIR)/%.cwl: doc/%.scm
$(MKDIR_P) $(SKRIBILO_BUILD_DIR)
$(AM_V_GEN)$(top_builddir)/pre-inst-env ccwl compile $< > $@
# Print out graph for graphviz's dot, but remove file path prefix from
# workflow step identifiers.
%.dot: %.cwl
$(CWLTOOL) --print-dot $< | $(SED) 's/file:[^#]*#//g' > $@
%.svg: %.dot
$(DOT) -Tsvg -o$@ $<
# The info and html targets depend on the info-local and html-local
# targets respectively. So, we use them to extend the info and html
# targets.
info-local: $(SKRIBILO_BUILD_DIR)/ccwl.info
html-local: $(SKRIBILO_BUILD_DIR)/ccwl.html
$(SKRIBILO_BUILD_DIR)/ccwl.info: doc/ccwl.skb ccwl/skribilo.scm $(DOC_IMAGES)
$(MKDIR_P) $(SKRIBILO_BUILD_DIR)
$(AM_V_GEN)$(top_builddir)/pre-inst-env $(SKRIBILO) -t info $< -o $@
$(SKRIBILO_BUILD_DIR)/ccwl.html: doc/ccwl.skb ccwl/skribilo.scm $(DOC_IMAGES)
rm -rf $@
$(MKDIR_P) $@
$(AM_V_GEN)$(top_builddir)/pre-inst-env $(SKRIBILO) -t html $< -o $@/index.html
cp -vr $(DOC_IMAGES) $@
install-data-local: install-info-local
install-info-local: $(SKRIBILO_BUILD_DIR)/ccwl.info
$(MKDIR_P) $(DESTDIR)$(infodir)
$(INSTALL_DATA) $(SKRIBILO_BUILD_DIR)/ccwl.info $(DESTDIR)$(infodir)
install-html-local: $(SKRIBILO_BUILD_DIR)/ccwl.html
$(MKDIR_P) $(DESTDIR)$(htmldir)
$(INSTALL_DATA) $(SKRIBILO_BUILD_DIR)/ccwl.html $(DESTDIR)$(htmldir)
uninstall-local:
rm -f $(DESTDIR)$(infodir)/ccwl.info $(DESTDIR)$(htmldir)/ccwl.html
# Build website
website: website/index.html website/manual/dev/en
website/index.html: README.org
$(MKDIR_P) $(dir $@)
$(EMACS) -Q --script build-aux/build-home-page.el
website/manual/dev/en: $(SKRIBILO_BUILD_DIR)/ccwl.html
rm -rf $@
cp -vr $< $@
# The clean target depends on clean-local. We use clean-local to clean
# up the website and the skribilo build directory.
clean-local:
rm -rf website/index.html website/manual/dev/en $(SKRIBILO_BUILD_DIR)
|