summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile9
-rw-r--r--README10
m---------build-scripts0
l---------[-rwxr-xr-x]configure126
l---------[-rw-r--r--]configure.py81
5 files changed, 21 insertions, 205 deletions
diff --git a/Makefile b/Makefile
index b448f3a21..0003a647b 100644
--- a/Makefile
+++ b/Makefile
@@ -11,6 +11,9 @@ tslint = node_modules/tslint/bin/tslint
-include config.mk
+self-strap: submodules/init submodules/update
+ cd build-scripts && make
+
.PHONY: tsc
tsc: tsconfig.json yarn-install
$(tsc)
@@ -39,6 +42,12 @@ typedoc:
clean:
rm -rf dist/ config.mk
+submodules/init:
+ git submodule update --init --recursive
+
+submodules/update:
+ git submodule update --recursive --remote
+
.PHONY: check
check: tsc yarn-install
find dist/node -name '*-test.js' | xargs $(ava)
diff --git a/README b/README
index b7091b70d..d5dc71a2e 100644
--- a/README
+++ b/README
@@ -22,6 +22,16 @@ in the libtaler-emscripten repository:
https://git.taler.net/libtalerutil-emscripten.git/
+pre-configure step
+==================
+
+make submodules/init
+make submodules/update
+
+or, at your choice:
+
+make self-strap
+
Building from source (Web Extension)
======================================
diff --git a/build-scripts b/build-scripts
-Subproject d9be86a291fcaa170d359b363cea29e156e86f0
+Subproject 952fca0fef5c2944a4beb244188e7a093df9b89
diff --git a/configure b/configure
index 8f456dd8c..5ea41c58a 100755..120000
--- a/configure
+++ b/configure
@@ -1,125 +1 @@
-#!/bin/sh
-
-# This file is part of TALER
-# (C) 2019 GNUnet e.V.
-#
-# This is very simple POSIX sh script which
-# identifies the first matching
-# python3 identifier in $PATH and produces
-# configure.py from configure.py.in, and then
-# calls the new executable configure.py.
-#
-# It should be portable on Unices. Report bugs on
-# the bugtracker if you discover that it isn't
-# working as intended.
-#
-# Authors:
-# Author: ng0 <ng0@taler.net>
-#
-# Permission to use, copy, modify, and/or distribute this software for any
-# purpose with or without fee is hereby granted.
-#
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE
-# LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
-# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-# ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-# THIS SOFTWARE.
-#
-# SPDX-License-Identifier: 0BSD
-
-# there is a function used in curl to replicate which(1), but
-# it uses too many other tools. this one uses command and in
-# gnunet so far has no reports about failures.
-existence()
-{
- command -v "$1" >/dev/null 2>&1
-}
-
-# We have to check every possible variant of the
-# executable name because there is a PEP which
-# defines the executable to be like this.
-if existence python3; then
- python="python3"
-elif existence python3.1; then
- python="python3.1"
-elif existence python3.2; then
- python="python3.2"
-elif existence python3.3; then
- python="python3.3"
-elif existence python3.4; then
- python="python3.4"
-elif existence python3.5; then
- python="python3.5"
-elif existence python3.6; then
- python="python3.6"
-elif existence python3.7; then
- python="python3.7"
-elif existence python3.8; then
- python="python3.8"
-else
- echo "*** No known python3 executable found in path ***"
- echo "*** falling back to env(1) python ***"
- # Unreliable, but if env finds no python, we still can
- # not assume python in a fixed location.
- # TODO: Check this in a clean chroot!
- python="env python"
-fi
-
-# we could check the return value here via || echo "blafoo"
-# or fail anyway once configure.py is invoked because we
-# don't have python if we reach the point to fail.
-PYTHON=$($python -c 'import sys; print(sys.executable)')
-#echo $PYTHON
-
-if ! existence node; then
- echo 'Error: node executable not found.'
- echo 'If you are using Linux, Ubuntu or Debian, try installing the'
- echo 'node-legacy package or symlink node to nodejs.'
-else
- node_version=$(node --version)
- #echo "Using node ${node_version}"
- if ! node -p 'process.exit(!(/v([0-9]+)/.exec(process.version)[1] >= 4))'; then
- echo 'Your node version is too old, use Node 4.x or newer'
- exit 1
- fi
-fi
-
-if existence yarn; then
- if yarn help 2>&1 | grep "No such file or directory"; then
- echo "ERROR: wrong yarn binary installed, please remove the"
- echo "ERROR: conflicting binary before continuing."
- if existence cmdtest; then
- echo "WARNING: cmdtest is installed, this can lead"
- echo "WARNING: to know issues with yarn."
- fi
- exit 1
- fi
- myyarn="yarn"
-elif existence yarnpkg; then
- myyarn="yarnpkg"
-else
- echo 'ERROR: yarn missing. See https://yarnpkg.com/en/docs/install'
- exit 1
-fi
-
-# for the weird systems and sandboxes, only as a anotice.
-# make will fail anyway.
-if ! existence find; then
- echo "INFO: find(1) is missing"
-fi
-if ! existence xargs; then
- echo "INFO: xargs(1) is missing"
-fi
-if ! existence msgmerge; then
- echo "INFO: msgmerge(1) is missing"
-fi
-
-# Call configure.py, assuming all went well.
-# $1 is read by configure.py as the prefix.
-# If $1 is empty, the python script checks the
-# environment for PREFIX. We might need more
-# variables and switches, such as DESTDIR.
-$PYTHON ./configure.py --yarn=$myyarn $@
+build-scripts/configure \ No newline at end of file
diff --git a/configure.py b/configure.py
index 3abef380b..51dc3d24b 100644..120000
--- a/configure.py
+++ b/configure.py
@@ -1,80 +1 @@
-# This file is part of TALER
-# (C) 2019 GNUnet e.V.
-#
-# Authors:
-# Author: ng0 <ng0@taler.net>
-#
-# Permission to use, copy, modify, and/or distribute this software for any
-# purpose with or without fee is hereby granted.
-#
-# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
-# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
-# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE
-# LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES
-# OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS,
-# WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION,
-# ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
-# THIS SOFTWARE.
-#
-# SPDX-License-Identifier: 0BSD
-
-import argparse
-import os
-import sys
-import logging
-
-# This script so far generates config.mk.
-# The only value it produces is prefix,
-# which is either taken as the first argument
-# to this script, or as --prefix=, or read
-# from the environment variable PREFIX.
-#
-# TODO: Also respect DESTDIR ($PREFIX/$DESTDIR/rest).
-
-
-def _read_prefix():
- logging.basicConfig(level=logging.DEBUG)
- logger = logging.getLogger(__name__)
-
- if 'PREFIX' in os.environ:
- logger.debug('PREFIX from environment')
- myprefix = os.environ.get('PREFIX')
- if myprefix is not None and os.path.isdir(myprefix) is True:
- logger.debug('PREFIX from environment: %s', myprefix)
- return myprefix
-
- else:
- # logger.debug('PREFIX from argv')
- parser = argparse.ArgumentParser()
- parser.add_argument("-p",
- "--prefix",
- type=str,
- required=True,
- help='Directory prefix for installation')
- parser.add_argument("-y",
- "--yarn",
- type=str,
- required=True,
- help='name of yarn executable')
- # logger.debug('parser.parse_args step')
- args = parser.parse_args()
- # logger.debug('%s', args)
- myprefix = args.prefix
- yarnexe = args.yarn
- # if args.prefix is not None and os.path.isdir(myprefix) is True:
- if args.prefix and os.path.isdir(myprefix) is True:
- return [myprefix, yarnexe];
-
-def main():
- # mylist = str(_read_prefix())
- mylist = _read_prefix()
- myprefix = mylist[0]
- yarnexe = mylist[1]
- f = open('config.mk', 'w+')
- f.write('# this file is autogenerated by ./configure\n')
- f.write('prefix=' + myprefix + '\n')
- f.write('yarnexe=' + yarnexe + '\n')
- f.close()
-
-
-main()
+build-scripts/configure.py \ No newline at end of file