Makefile (2455B)
1 2 CFLAGS = -Wall -O2 -Ideps/secp256k1/include -Ideps/libsodium/src/libsodium/include/ 3 LDFLAGS = -lm 4 OBJS = sha256.o nostril.o aes.o base64.o nip44.o hmac_sha256.o hkdf_sha256.o 5 HEADERS = hex.h nip44.h cursor.h random.h config.h sha256.h deps/secp256k1/include/secp256k1.h 6 PREFIX ?= /usr/local 7 LIBSODIUM_AR=deps/libsodium/src/libsodium/.libs/libsodium.a 8 ARS = libsecp256k1.a $(LIBSODIUM_AR) 9 10 SUBMODULES = deps/secp256k1 deps/libsodium 11 12 all: nostril docs 13 14 docs: doc/nostril.1 15 16 doc/nostril.1: README.md 17 scdoc < $^ > $@ 18 19 version: nostril.c 20 grep '^#define VERSION' $< | sed -En 's,.*"([^"]+)".*,\1,p' > $@ 21 22 dist: docs version 23 @mkdir -p dist 24 git ls-files --recurse-submodules | tar --transform 's/^/nostril-$(shell cat version)\//' -T- -caf dist/nostril-$(shell cat version).tar.gz 25 @ls -dt dist/* | head -n1 | xargs echo "tgz " 26 cd dist;\ 27 sha256sum *.tar.gz > SHA256SUMS.txt;\ 28 gpg -u 0x8A478B64FFE30F1095A8736BF5F27EFD1B38DABB --sign --armor --detach-sig --output SHA256SUMS.txt.asc SHA256SUMS.txt 29 cp CHANGELOG dist/CHANGELOG.txt 30 rsync -avzP dist/ charon:/www/cdn.jb55.com/tarballs/nostril/ 31 32 $(LIBSODIUM_AR): deps/libsodium/config.log 33 cd deps/libsodium/src/libsodium; \ 34 make -j libsodium.la 35 36 deps/libsodium/config.log: deps/libsodium/configure 37 cd deps/libsodium; \ 38 ./configure --disable-shared --enable-minimal 39 40 deps/secp256k1/.git: 41 @devtools/refresh-submodules.sh $(SUBMODULES) 42 43 deps/secp256k1/include/secp256k1.h: deps/secp256k1/.git 44 45 deps/secp256k1/configure: deps/secp256k1/.git 46 cd deps/secp256k1; \ 47 ./autogen.sh 48 49 deps/secp256k1/config.log: deps/secp256k1/configure 50 cd deps/secp256k1; \ 51 ./configure --disable-shared --enable-module-ecdh --enable-module-schnorrsig --enable-module-extrakeys 52 53 deps/secp256k1/.libs/libsecp256k1.a: deps/secp256k1/config.log 54 cd deps/secp256k1; \ 55 make -j libsecp256k1.la 56 57 libsecp256k1.a: deps/secp256k1/.libs/libsecp256k1.a 58 cp $< $@ 59 60 %.o: %.c $(HEADERS) 61 @echo "cc $<" 62 @$(CC) $(CFLAGS) -c $< -o $@ 63 64 nostril: $(HEADERS) $(OBJS) $(ARS) 65 $(CC) $(CFLAGS) $(LDFLAGS) $(OBJS) $(ARS) -o $@ 66 67 install: all 68 mkdir -p $(PREFIX)/share/man/man1 69 mkdir -p $(PREFIX)/bin 70 install -m644 doc/nostril.1 $(PREFIX)/share/man/man1/nostril.1 71 install -m755 nostril $(PREFIX)/bin/nostril 72 install -m755 nostril-query $(PREFIX)/bin/nostril-query 73 74 config.h: configurator 75 ./configurator > $@ 76 77 configurator: configurator.c 78 $(CC) $< -o $@ 79 80 clean: 81 rm -f nostril *.o *.a 82 rm -rf deps/secp256k1 83 84 tags: fake 85 ctags *.c *.h 86 87 .PHONY: fake