# Builds the C example against the C ABI library built from ffi/usakey_ffi.
USAKEY_FFI ?= ../ffi/usakey_ffi
USAKEY_PROFILE ?= debug
INCLUDE_DIR := $(USAKEY_FFI)/include
LIB_DIR := $(USAKEY_FFI)/target/$(USAKEY_PROFILE)

CFLAGS ?= -std=c11 -Wall -Wextra -Werror -O2
CPPFLAGS += -I$(INCLUDE_DIR)
# The static library needs the platform libraries the Rust core links against.
LDLIBS += $(LIB_DIR)/libusakey_ffi.a -lpthread -ldl -lm -lcrypto

.PHONY: all test clean

all: build/activate

build/activate: examples/activate.c $(LIB_DIR)/libusakey_ffi.a
	@mkdir -p build
	$(CC) $(CFLAGS) $(CPPFLAGS) $< $(LDLIBS) -o $@

test: build/activate
	USAKEY_EXAMPLE_LICENSE_KEY=TEST-ONLY-C-LICENSE USAKEY_EXPECT_SEALED=1 sh ../tools/run-example.sh ./build/activate

clean:
	rm -rf build
