-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathMakefile
More file actions
43 lines (35 loc) · 787 Bytes
/
Makefile
File metadata and controls
43 lines (35 loc) · 787 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#
# Copyright (c) 2023 Siddharth Chandrasekaran <sidcha.dev@gmail.com>
#
# SPDX-License-Identifier: Apache-2.0
#
O ?= obj
NAME ?= bip39
SRC := src/bip39.c src/sha256.c
OBJ := $(SRC:%.c=$(O)/%.o)
TEST_SRC := test/test.c
TEST_OBJ := $(TEST_SRC:%.c=$(O)/%.o)
CCFLAGS ?= -Wall -O3 -g
ifeq ($(V),)
Q := @
else
Q :=
endif
.PHONY: all
all: $(O)/lib$(NAME).a
@echo > /dev/null
$(O)/lib$(NAME).a: $(OBJ)
@echo " AR $(@F)"
$(Q)$(AR) -qc $@ $^
$(O)/%.o: %.c
@echo " CC $<"
@mkdir -p $(@D)
$(Q)$(CC) -c $< $(CCFLAGS) -Iinclude/ -o $@
$(O)/test.bin: $(O)/lib$(NAME).a $(TEST_OBJ)
$(Q)$(CC) -o $@ $^ -L $(O) -l bip39
.PHONY: test
check: $(O)/test.bin
$(Q)./$(O)/test.bin
.PHONY: clean
clean:
$(Q)rm -f $(OBJ) $(TEST_OBJ) $(O)/lib$(NAME).a $(O)/test.bin