Mike Gerwitz

Activist for User Freedom

aboutsummaryrefslogtreecommitdiffstats
blob: c5fc84d1b41649dcdb1fbf6e654186f995dcb4d3 (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
## For use my automake and autoconf
#
#  Copyright (C) 2010-2019 R-T Specialty, LLC.
#
#  This file is part of liza.
#
#  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 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/>.
##

m4_define([ver], m4_esyscmd(build-aux/vergen))
m4_if(ver, [], [m4_exit(1)])

AC_INIT([liza], [ver], [dev@lovullo.com])
AC_CONFIG_AUX_DIR([build-aux])
AM_INIT_AUTOMAKE([foreign])

# provide more granular version numbers based on the above AC_INIT line
m4_define([ver_split], m4_split(m4_translit(AC_PACKAGE_VERSION, [-], [.]), [\.]))
AC_SUBST(MAJOR, m4_argn(1, ver_split))
AC_SUBST(MINOR, m4_argn(2, ver_split))
AC_SUBST(REV, m4_argn(3, ver_split))
AC_SUBST(SUFFIX, m4_argn(4, ver_split))

AC_ARG_VAR([NODE], [The Node.js interpreter])
AC_ARG_VAR([NODE_FLAGS], [Arguments to Node.js for Liza Server (bin/server)])
AC_CHECK_PROGS(NODE, [node nodejs])

test -n "$NODE" || AC_MSG_ERROR([missing Node.js])

AC_MSG_CHECKING([node version])
node_version=$($NODE --version | sed 's/^v//')
AC_MSG_RESULT([$NODE_VERSION])

AC_ARG_VAR([TS_NODE_VERSION], [Version to use for @types/node dependency])
TS_NODE_VERSION=${TS_NODE_VERSION:-$node_version}

# graphviz
AC_ARG_VAR([TWOPI], [Graphviz twopi layout])
AC_CHECK_PROGS(TWOPI, [twopi])
AM_CONDITIONAL(HAS_TWOPI, [test "$TWOPI"])

# only needed for older versions of Node
AC_MSG_CHECKING([$NODE --harmony_destructuring])
AS_IF(["$NODE" --harmony_destructuring >/dev/null 2>/dev/null],
      [AC_MSG_RESULT(available)
       AC_SUBST([NODE_DESTRUCTURE], [--harmony_destructuring])],
      [AC_MSG_RESULT(no)])

# include above check(s) in NODE_FLAGS
NODE_FLAGS="$NODE_FLAGS $NODE_DESTRUCTURE"

set_devnotes='@set DEVNOTES'
AC_ARG_ENABLE(
  [devnotes],
  [AS_HELP_STRING([--enable-devnotes],
                  [include note for liza developers (enabled by default)])],
  [test "x$enableval" != xno || set_devnotes="@c $set_devnotes"])

AC_SUBST([SET_DEVNOTES], [$set_devnotes])

set_srcuri='@c @set SRCURI <source code uri>'
AC_ARG_WITH(
  [srcuri],
  [AS_HELP_STRING([--with-srcuri],
                  [root URI for Liza source code cross-references
                   (disabled by default)])],
  [test "x$withval" = x || set_srcuri="@set SRCURI $withval"])

AC_SUBST([SET_SRCURI], [$set_srcuri])

AC_ARG_ENABLE(
  [code_coverage],
  [AS_HELP_STRING([--enable-code-coverage],
                  [Generate a code coverage report when tests are run
                   (disabled by default)])],
  AC_SUBST([CODE_COV], ["nyc --reporter=html --reporter=text --all --include=src \
                  --exclude=**/index.js --exclude=src/version.js"])
  AC_SUBST([COV_ARGS], ["--require ts-node/register/transpile-only \
                  --require source-map-support/register"]))

AC_SUBST([AUTOGENERATED],
         ["THIS FILE IS AUTOGENERATED!  DO NOT MODIFY!  See *.in."])

# generate files from their *.in counterparts
AC_CONFIG_FILES([Makefile package.json
                 doc/Makefile doc/config.texi
                 src/version.js])
AC_CONFIG_FILES([bin/server],
                [chmod +x bin/server])
AC_CONFIG_FILES([bin/delta-processor],
                [chmod +x bin/delta-processor])

AC_OUTPUT

AC_MSG_NOTICE([You may now invoke \`make' to build.])