i2c-stub-toy/Makefile

44 lines
891 B
Makefile
Raw Permalink Normal View History

2019-02-08 09:40:34 +00:00
objify = $(patsubst %.c,obj/%.$2,$(patsubst %.s,obj/%.$2,$1))
CC=clang
INC = -Iext/libtomcrypt/src/headers
CFLAGS = -std=c99 -D_GNU_SOURCE
CFLAGS += -Wextra -Wall -Werror -Wno-missing-braces -Wno-missing-field-initializers $(INC)
LDFLAGS = -Lext/libtomcrypt -ltomcrypt
DIRS=bin obj out
OBJS = $(call objify,$(SRC),o)
# Enable for testing only
DEBUG=1
ifeq ($(DEBUG), 1)
CFLAGS += -g -O0 -fsanitize=undefined,leak,address
LDFLAGS += -fsanitize=undefined,leak,address
CC=clang
else
CFLAGS += -O2
endif
# source files
SRC = \
src/crypt.c \
src/i2c.c \
src/main.c
all: libtomcrypt bin/main
obj/%.o: %.c
case $@ in */*) f=$@; mkdir -p $${f%/*} ;; esac
$(CC) -o $@ -c $< $(CFLAGS)
bin/main: $(OBJS)
case $@ in */*) f=$@; mkdir -p $${f%/*} ;; esac
$(CC) -o bin/main $(OBJS) $(LDFLAGS)
clean:
rm -rf $(DIRS)
make -C ext/libtomcrypt clean
libtomcrypt:
make -C ext/libtomcrypt