52 lines
1.3 KiB
Makefile
52 lines
1.3 KiB
Makefile
# Simple Makefile for p256k1 library
|
|
# For BIP-340 X-only public keys, signatures, and ECDH
|
|
|
|
CC = gcc
|
|
CFLAGS = -Wall -Wextra -std=c99 -O2 -g
|
|
DEFINES = -DSECP256K1_BUILD=1 -DENABLE_MODULE_SCHNORRSIG=1 -DENABLE_MODULE_EXTRAKEYS=1 -DENABLE_MODULE_ECDH=1
|
|
INCLUDES = -Iinclude -Isrc
|
|
|
|
# Source files
|
|
SOURCES = src/secp256k1.c src/precomputed_ecmult.c src/precomputed_ecmult_gen.c
|
|
OBJECTS = $(SOURCES:.c=.o)
|
|
|
|
# Library name
|
|
LIBRARY = libp256k1.a
|
|
SHARED_LIB = libp256k1.so
|
|
|
|
# Default target
|
|
all: $(LIBRARY) $(SHARED_LIB) examples
|
|
|
|
# Static library
|
|
$(LIBRARY): $(OBJECTS)
|
|
ar rcs $@ $^
|
|
|
|
# Shared library
|
|
$(SHARED_LIB): $(OBJECTS)
|
|
$(CC) -shared -o $@ $^
|
|
|
|
# Object files
|
|
%.o: %.c
|
|
$(CC) $(CFLAGS) $(DEFINES) $(INCLUDES) -fPIC -c $< -o $@
|
|
|
|
# Examples
|
|
examples: examples/schnorr examples/ecdh
|
|
|
|
examples/schnorr: examples/schnorr.c $(LIBRARY)
|
|
$(CC) $(CFLAGS) $(DEFINES) $(INCLUDES) -o $@ $< -L. -lp256k1
|
|
|
|
examples/ecdh: examples/ecdh.c $(LIBRARY)
|
|
$(CC) $(CFLAGS) $(DEFINES) $(INCLUDES) -o $@ $< -L. -lp256k1
|
|
|
|
# Clean
|
|
clean:
|
|
rm -f $(OBJECTS) $(LIBRARY) $(SHARED_LIB) examples/schnorr examples/ecdh
|
|
|
|
# Install (basic)
|
|
install: $(LIBRARY) $(SHARED_LIB)
|
|
mkdir -p /usr/local/lib /usr/local/include
|
|
cp $(LIBRARY) $(SHARED_LIB) /usr/local/lib/
|
|
cp include/*.h /usr/local/include/
|
|
|
|
.PHONY: all clean install examples
|