wolfBoot/tools/delta/Makefile

58 lines
1.6 KiB
Makefile

# Default library paths (can be overridden)
# NOTE: This makefile expects to only be called from the top level
# wolfBoot directory, so use default relative path from there
WOLFBOOT_LIB_WOLFSSL?=./lib/wolfssl
# Convert to absolute paths for standalone usage
WOLFBOOT_LIB_WOLFSSL:=$(abspath $(WOLFBOOT_LIB_WOLFSSL))
all: bmdiff bmpatch
CFLAGS+=-Wall -Werror -Wextra -DDELTA_UPDATES
ifeq ($(HASH),SHA3)
WOLFCRYPT_OBJS+=$(WOLFBOOT_LIB_WOLFSSL)/wolfcrypt/src/sha3.o
CFLAGS+=-D"WOLFBOOT_HASH_SHA3_384"
SIGN_OPTIONS+=--sha3
else
CFLAGS+=-D"WOLFBOOT_HASH_SHA256"
endif
bmdiff: delta.o bmdiff.o
gcc -o bmdiff delta.o bmdiff.o
bmpatch: delta.o bmdiff.o
gcc -o bmpatch delta.o bmdiff.o
lib: delta.o
delta.o:
gcc -c -o delta.o ../../src/delta.c -I../../include -ggdb $(CFLAGS)
bmdiff.o:
gcc -c -o bmdiff.o bmdiff.c -I../../include -ggdb $(CFLAGS)
clean:
rm -f bmpatch bmdiff bmdiff-test delta.o test-bmdiff.o
delta-test: FORCE bmdiff bmpatch
@./bmdiff delta-test/0.txt delta-test/1.txt 0-to-1.patch
@./bmdiff delta-test/1.txt delta-test/0.txt 1-to-0.patch
@cp delta-test/0.txt 0p.txt
@cp delta-test/1.txt 1p.txt
@./bmpatch 0p.txt 0-to-1.patch
@./bmpatch 1p.txt 1-to-0.patch
@diff 0p.txt delta-test/1.txt && echo "Test 0-to-1: OK"
@diff 1p.txt delta-test/0.txt && echo "Test 1-to-0: OK"
@rm -f 0-to-1.patch 1-to-0.patch 0p.txt 1p.txt
bmdiff-test: test-bmdiff.o
gcc -o bmdiff-test test-bmdiff.o
test-bmdiff.o:
gcc -c -o test-bmdiff.o test-bmdiff.c -I../../include -ggdb $(CFLAGS)
test: FORCE bmdiff-test
@./bmdiff-test && echo "bmdiff mmap failure test: OK"
.PHONY: FORCE