Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -359,7 +359,7 @@ coverage: coverage/coverage.info

# We make libwallycore.la a dependency, so that it gets built normally, without ncc.
# Ncc can't handle the libwally source code (yet).
ncc: external/libwally-core/src/libwallycore.la
ncc: ${TARGET_DIR}/libwally-core-build/src/libwallycore.la
$(MAKE) CC="ncc -ncgcc -ncld -ncfabs" AR=nccar LD=nccld

# Ignore test/ directories.
Expand Down
2 changes: 2 additions & 0 deletions external/.gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -5,3 +5,5 @@ libsodium.a
libsodium.la
libwallycore.a
libwallycore.la
libwally-core-build
libsodium-build
66 changes: 39 additions & 27 deletions external/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,11 @@ SUBMODULES = \

ifdef BUILD
CROSSCOMPILE_OPTS := --host="$(MAKE_HOST)" --build="$(BUILD)"
TARGET_DIR := external/"$(MAKE_HOST)"
TOP := ../..
else
TARGET_DIR := external
TOP := ..
endif

LIBSODIUM_HEADERS := external/libsodium/src/libsodium/include/sodium.h
Expand All @@ -17,45 +22,51 @@ LIBSECP_HEADERS := external/libwally-core/src/secp256k1/include/secp256k1_ecdh.h
JSMN_HEADERS := external/jsmn/jsmn.h

EXTERNAL_HEADERS := $(LIBSODIUM_HEADERS) $(LIBWALLY_HEADERS) $(LIBSECP_HEADERS) $(JSMN_HEADERS)
EXTERNAL_LIBS := external/libwallycore.a external/libsecp256k1.a external/libjsmn.a external/libbacktrace.a
EXTERNAL_LIBS := ${TARGET_DIR}/libwallycore.a ${TARGET_DIR}/libsecp256k1.a ${TARGET_DIR}/libjsmn.a ${TARGET_DIR}/libbacktrace.a

EXTERNAL_INCLUDE_FLAGS := \
-I external/libwally-core/include/ \
-I external/libwally-core/src/secp256k1/include/ \
-I external/jsmn/ \
-I external/libbacktrace/ \
-I external/libbacktrace-build
-I ${TARGET_DIR}/libbacktrace-build

ifneq ($(HAVE_GOOD_LIBSODIUM),1)
EXTERNAL_INCLUDE_FLAGS += -I external/libsodium/src/libsodium/include
EXTERNAL_LIBS += external/libsodium.a
EXTERNAL_INCLUDE_FLAGS += -I external/libsodium/src/libsodium/include \
-I external/libsodium/src/libsodium/include/sodium \
-I $(TARGET_DIR)/libsodium-build/src/libsodium/include
EXTERNAL_LIBS += ${TARGET_DIR}/libsodium.a
else
LDLIBS += -lsodium
endif

EXTERNAL_LDLIBS := -Lexternal $(patsubst lib%.a,-l%,$(notdir $(EXTERNAL_LIBS)))
EXTERNAL_LDLIBS := -L${TARGET_DIR} $(patsubst lib%.a,-l%,$(notdir $(EXTERNAL_LIBS)))

submodcheck: FORCE
@tools/refresh-submodules.sh $(SUBMODULES)

# We build libsodium, since Ubuntu xenial has one too old.
external/libsodium.a: external/libsodium/src/libsodium/libsodium.la
$(MAKE) -C external/libsodium DESTDIR=$$(pwd)/external install-exec
$(TARGET_DIR)/libsodium.a: $(TARGET_DIR)/libsodium-build/src/libsodium/libsodium.la
$(MAKE) -C $(TARGET_DIR)/libsodium-build DESTDIR=$$(pwd)/$(TARGET_DIR) install-exec

external/libsodium/src/libsodium/include/sodium.h: submodcheck

external/libsodium/src/libsodium/libsodium.la: external/libsodium/src/libsodium/include/sodium.h
cd external/libsodium && ./autogen.sh && ./configure CC="$(CC)" --enable-static=yes $(CROSSCOMPILE_OPTS) --enable-shared=no --enable-tests=no --prefix=/ --libdir=/ && $(MAKE)
$(TARGET_DIR)/libsodium-build/src/libsodium/libsodium.la: external/libsodium/src/libsodium/include/sodium.h
cd external/libsodium && ./autogen.sh
mkdir -p ${TARGET_DIR}/libsodium-build
cd $(TARGET_DIR)/libsodium-build && $(TOP)/libsodium/configure CC="$(CC)" --enable-static=yes $(CROSSCOMPILE_OPTS) --enable-shared=no --enable-tests=no --prefix=/ --libdir=/ && $(MAKE)

$(LIBWALLY_HEADERS) $(LIBSECP_HEADERS): submodcheck

# libsecp included in libwally.
# Wildcards here are magic. See http://stackoverflow.com/questions/2973445/gnu-makefile-rule-generating-a-few-targets-from-a-single-source-file
external/libsecp256k1.% external/libwallycore.%: external/libwally-core/src/secp256k1/libsecp256k1.la external/libwally-core/src/libwallycore.la
$(MAKE) -C external/libwally-core DESTDIR=$$(pwd)/external install-exec
$(TARGET_DIR)/libsecp256k1.% $(TARGET_DIR)/libwallycore.%: $(TARGET_DIR)/libwally-core-build/src/secp256k1/libsecp256k1.la $(TARGET_DIR)/libwally-core-build/src/libwallycore.la
$(MAKE) -C $(TARGET_DIR)/libwally-core-build DESTDIR=$$(pwd)/$(TARGET_DIR) install-exec

external/libwally-core/src/libwallycore.% external/libwally-core/src/secp256k1/libsecp256k1.%: $(LIBWALLY_HEADERS) $(LIBSECP_HEADERS)
cd external/libwally-core && ./tools/autogen.sh && ./configure CC="$(CC)" --enable-static=yes $(CROSSCOMPILE_OPTS) --enable-module-recovery --enable-elements --enable-shared=no --prefix=/ --libdir=/ --enable-debug && $(MAKE)
$(TARGET_DIR)/libwally-core-build/src/libwallycore.% $(TARGET_DIR)/libwally-core-build/src/secp256k1/libsecp256k1.%: $(LIBWALLY_HEADERS) $(LIBSECP_HEADERS)
cd external/libwally-core && ./tools/autogen.sh
mkdir -p ${TARGET_DIR}/libwally-core-build
cd ${TARGET_DIR}/libwally-core-build && ${TOP}/libwally-core/configure CC="$(CC)" --enable-static=yes $(CROSSCOMPILE_OPTS) --enable-module-recovery --enable-elements --enable-shared=no --prefix=/ --libdir=/ --enable-debug && $(MAKE)

external/jsmn/jsmn.h: submodcheck

Expand All @@ -64,32 +75,33 @@ external/jsmn/jsmn.h: submodcheck
external/jsmn/jsmn.c: external/jsmn/jsmn.h
[ -f $@ ]

external/jsmn.o: external/jsmn/jsmn.c Makefile
$(COMPILE.c) -DJSMN_STRICT=1 $(OUTPUT_OPTION) $<
$(TARGET_DIR)/jsmn-build/jsmn.o: external/jsmn/jsmn.c Makefile
@mkdir -p $(@D)
$(COMPILE.c) -DJSMN_STRICT=1 -o $@ $<

external/libjsmn.a: external/jsmn.o
$(TARGET_DIR)/libjsmn.a: $(TARGET_DIR)/jsmn-build/jsmn.o
$(AR) rc $@ $<

external/libbacktrace/backtrace.h: submodcheck

# Need separate build dir: changes inside submodule make git think it's dirty.
external/libbacktrace.a: external/libbacktrace/backtrace.h
@mkdir external/libbacktrace-build 2>/dev/null || true
cd external/libbacktrace-build && ../libbacktrace/configure CC="$(CC)" --enable-static=yes $(CROSSCOMPILE_OPTS) --enable-shared=no --prefix=/ --libdir=/ && $(MAKE)
$(MAKE) -C external/libbacktrace-build DESTDIR=$$(pwd)/external install-exec
$(TARGET_DIR)/libbacktrace.a: external/libbacktrace/backtrace.h
@mkdir $(TARGET_DIR)/libbacktrace-build 2>/dev/null || true
cd $(TARGET_DIR)/libbacktrace-build && $(TOP)/libbacktrace/configure CC="$(CC)" --enable-static=yes $(CROSSCOMPILE_OPTS) --enable-shared=no --prefix=/ --libdir=/ && $(MAKE)
$(MAKE) -C $(TARGET_DIR)/libbacktrace-build DESTDIR=$$(pwd)/$(TARGET_DIR) install-exec

distclean: external-distclean
clean: external-clean

external-clean:
$(RM) $(EXTERNAL_LIBS) external/*.la external/*.o
if [ -f external/libsodium/Makefile ]; then make -C external/libsodium clean; fi
if [ -f external/libwally-core/Makefile ]; then make -C external/libwally-core clean; fi
if [ -f external/ibwally-core/src/Makefile ]; then make -C external/libwally-core/src clean; fi
$(RM) $(EXTERNAL_LIBS) $(TARGET_DIR)/*.la $(TARGET_DIR)/*.o
if [ -f ${TARGET_DIR}/libsodium-build/Makefile ]; then make -C ${TARGET_DIR}/libsodium-build clean; fi
if [ -f ${TARGET_DIR}/libwally-core-build/Makefile ]; then make -C ${TARGET_DIR}/libwally-core-build clean; fi
if [ -f ${TARGET_DIR}/libwally-core-build/src/Makefile ]; then make -C ${TARGET_DIR}/libwally-core-build/src clean; fi

external-distclean:
make -C external/libsodium distclean || true
$(RM) -rf external/libbacktrace-build
$(RM) external/libsodium/src/libsodium/libsodium.la
$(RM) external/libwally-core/src/secp256k1/libsecp256k1.la external/libwally-core/src/libwallycore.la
$(RM) -rf ${TARGET_DIR}/libbacktrace-build
$(RM) ${TARGET_DIR}/libsodium-build/src/libsodium/libsodium.la
$(RM) ${TARGET_DIR}/libwally-core-build/src/secp256k1/libsecp256k1.la ${TARGET_DIR}/libwally-core-build/src/libwallycore.la
$(RM) -r `git status --ignored --porcelain external/libwally-core | grep '^!! ' | cut -c3-`
2 changes: 1 addition & 1 deletion external/libwally-core
Submodule libwally-core updated 54 files
+33 −5 .travis.yml
+9 −0 CHANGES.md
+20 −1 README.md
+10 −3 configure.ac
+1 −1 docs/source/conf.py
+109 −1 include/wally_address.h
+48 −0 include/wally_bip32.h
+14 −0 include/wally_crypto.h
+41 −0 include/wally_elements.h
+576 −0 include/wally_psbt.h
+114 −0 include/wally_script.h
+1 −1 setup.py
+16 −1 src/Makefile.am
+123 −0 src/address.c
+71 −2 src/bip32.c
+3 −0 src/bip32_int.h
+311 −0 src/blech32.c
+1 −0 src/ccan/ccan/base64/LICENSE
+41 −0 src/ccan/ccan/base64/_info
+253 −0 src/ccan/ccan/base64/base64.c
+241 −0 src/ccan/ccan/base64/base64.h
+96 −0 src/ccan/ccan/base64/test/moretap.h
+359 −0 src/ccan/ccan/base64/test/run.c
+218 −0 src/ctest/test_blech32.c
+20 −0 src/ctest/test_clear.c
+65 −0 src/elements.c
+5 −0 src/internal.c
+2 −0 src/internal.h
+2,935 −0 src/psbt.c
+263 −3 src/script.c
+5 −0 src/script.h
+24 −0 src/sign.c
+4 −0 src/swig_java/jni_elements_extra.java_in
+22 −0 src/swig_java/swig.i
+16 −1 src/swig_python/python_extra.py_in
+91 −36 src/swig_python/swig.i
+131 −0 src/test/data/psbt.json
+145 −0 src/test/test_address.py
+13 −0 src/test/test_bip32.py
+191 −0 src/test/test_pegin.py
+118 −0 src/test/test_pegout.py
+108 −0 src/test/test_psbt.py
+98 −1 src/test/util.py
+39 −13 src/transaction.c
+28 −0 src/transaction_shared.h
+1 −1 src/wrap_js/cordovaplugin/package.json
+1,452 −1,527 src/wrap_js/cordovaplugin/yarn.lock
+4 −4 src/wrap_js/package.json
+2 −0 src/wrap_js/src/combined.c
+67 −47 src/wrap_js/yarn.lock
+18 −0 tools/msvc/wallyjs.bat
+3 −0 tools/msvc/wheel.bat
+1 −1 tools/travis_build.sh
+18 −2 tools/travis_install.sh