mirror of
https://github.com/muun/recovery.git
synced 2025-02-23 11:32:33 -05:00
76 lines
1.7 KiB
Bash
76 lines
1.7 KiB
Bash
|
#!/bin/bash
|
||
|
|
||
|
set -xe
|
||
|
|
||
|
if [[ -z "$1" ]]; then
|
||
|
echo "Usage: $0 <path to lib>"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
if [[ $(dirname "$0") != "." ]]; then
|
||
|
echo "Not on musig dir"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
lib_path="$1"
|
||
|
|
||
|
(
|
||
|
cd "$lib_path";
|
||
|
./autogen.sh;
|
||
|
./configure --with-asm=no;
|
||
|
make;
|
||
|
make check
|
||
|
)
|
||
|
|
||
|
find . -name "*.c" -and -not -name "umbrella.c" -delete
|
||
|
find . -name "*.h" -and -not -name "umbrella.h" -delete
|
||
|
rm -f secp256k1.k
|
||
|
|
||
|
cp -r "$lib_path"/include/*.h .
|
||
|
cp -r "$lib_path"/src/*.c .
|
||
|
cp -r "$lib_path"/src/*.h .
|
||
|
|
||
|
function include_module() {
|
||
|
cp -r "$lib_path"/src/modules/"$1"/*.h .
|
||
|
# Modules are composed of all .h files. Some contain several headers, but
|
||
|
# all have a file named main_impl.h with all the logic. To avoid modules
|
||
|
# overwritting each other files, we rename it to module_main_impl.h
|
||
|
mv main_impl.h "$1_main_impl.h"
|
||
|
}
|
||
|
|
||
|
include_module extrakeys
|
||
|
include_module schnorrsig
|
||
|
include_module musig
|
||
|
|
||
|
# Delete unit tests, benchmarks and unused headers.
|
||
|
rm \
|
||
|
tests.c \
|
||
|
tests_exhaustive.c \
|
||
|
tests_exhaustive_impl.h \
|
||
|
tests_impl.h \
|
||
|
valgrind_ctime_test.c \
|
||
|
bench_*.c \
|
||
|
bench.h \
|
||
|
secp256k1_ecdh.h \
|
||
|
secp256k1_ecdsa_adaptor.h \
|
||
|
secp256k1_ecdsa_s2c.h \
|
||
|
secp256k1_generator.h \
|
||
|
secp256k1_rangeproof.h \
|
||
|
secp256k1_recovery.h \
|
||
|
secp256k1_surjectionproof.h \
|
||
|
secp256k1_whitelist.h \
|
||
|
gen_context.c
|
||
|
|
||
|
# This file makes cgo go crazy, but we need it.
|
||
|
# The solution is to rename to avoid cgo compiling it, and then including it from
|
||
|
# umbrella.c
|
||
|
mv secp256k1.c secp256k1.k
|
||
|
|
||
|
# Remove all folder references from includes, they are not needed anymore
|
||
|
sed -i "" 's/include \"[.\/a-z]*\/\([^.\/]*\.h\)/include "\1/g' \
|
||
|
secp256k1.k \
|
||
|
*.c \
|
||
|
*.h
|
||
|
|
||
|
go test -v
|