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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82
|
CFLAGS := -g -ggdb -Wall -Wextra -std=c11
CINCS := -I. -I/usr/local/wolfssl
CLIBS := -L/usr/local/lib
CDEPS := -lc -lg -lm -lwolfssl
WOLFSSL_BUILD=build
MKDIR_P = mkdir -p
ENABLE_DEBUG_UART_IO := off
ENABLE_DEBUG_UART_IO_EXTRA := off
ENABLE_SECRET_CALLBACK := off
ifeq ($(ENABLE_DEBUG_UART_IO), on)
CFLAGS+=-DDEBUG_UART_IO
endif
ifeq ($(ENABLE_DEBUG_UART_IO_EXTRA), on)
CFLAGS+=-DDEBUG_UART_IO -DDEBUG_UART_IO_EXTRA_VERBOSE
endif
ifeq ($(ENABLE_SECRET_CALLBACK), on)
CFLAGS+=-DUSE_SECRET_CALLBACK
endif
OBJS:=$(WOLFSSL_BUILD)/main.o $(WOLFSSL_BUILD)/client-tls13.o
default: all
.PHONY: all clean help
define run-help =
echo "Run 'make TARGET* OPTION*'"
echo ""
echo "TARGET (specify 0 or more):"
echo " all (default target)"
echo " Build main.bin executable"
echo " main.bin"
echo " Build main.bin executable"
echo " main.o"
echo " Build main.o"
echo " client-tls13.o"
echo " Build client-tls13.o"
echo " clean"
echo " Clean *.o and *.bin"
echo " help"
echo " This help"
echo ""
echo "OPTION (specify 0 or more):"
echo " ENABLE_DEBUG_UART_IO=on|off (default off)"
echo " Enable printing ASCII characters sent and received by the UART"
echo " ENABLE_DEBUG_UART_IO_EXTRA=on|off (default off)"
echo " Enable more printing hex characters sent and received by the UART"
echo " Setting this on implicitly sets ENABLE_DEBUG_UART_IO=on"
echo " ENABLE_SECRET_CALLBACK=on|off (default off)"
echo " Enable secret callback for TLS 1.3 handshaking, which can be useful for wireshark sniffing"
echo ""
echo "Example:"
echo " make all ENABLE_DEBUG_UART_IO_EXTRA=on"
echo ""
endef
help:
@$(run-help)
all: directories main.bin
directories: $(WOLFSSL_BUILD)
$(WOLFSSL_BUILD):
${MKDIR_P} $(WOLFSSL_BUILD)
main.bin: $(OBJS)
$(CC) $(CFLAGS) $(CINCS) $(CLIBS) -o $@ $^ $(CDEPS)
$(WOLFSSL_BUILD)/main.o: main.c
$(CC) $(CFLAGS) $(CINCS) $(CLIBS) -c -o $@ $^ $(CDEPS)
$(WOLFSSL_BUILD)/client-tls13.o: client-tls13.c
$(CC) $(CFLAGS) $(CINCS) $(CLIBS) -c -o $@ $^ $(CDEPS)
clean:
rm -f *.o *.bin
rm -rf build
|