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