76 lines
1.8 KiB
Text
76 lines
1.8 KiB
Text
SRCS=src/mqtt.c src/packet.c src/protocol.c src/state_queue.c src/subscriptions.c platform/linux.c
|
|
OBJS=$(SRCS:%.c=%.o)
|
|
DEBUG_OBJS=$(SRCS:%.c=%.do)
|
|
COVERAGE_FILES=$(SRCS:%.c=%.gcno) $(SRCS:%.c=%.gcda)
|
|
|
|
TARGET=libmqtt.a
|
|
DEBUG_TARGET=libmqtt-debug.a
|
|
|
|
MAJOR_VERSION=0
|
|
MINOR_VERSION=1
|
|
|
|
PLATFORM_FLAGS=
|
|
|
|
AR=ar
|
|
CC=gcc
|
|
EXTRA_CFLAGS=
|
|
CFLAGS=-g -Os -Wall -pthread -I./platform -I./src $(EXTRA_CFLAGS) $(PLATFORM_FLAGS)
|
|
COVERAGE_FLAGS=-fprofile-arcs -ftest-coverage
|
|
DEBUG_FLAGS=-DDEBUG=1 $(COVERAGE_FLAGS)
|
|
|
|
all: $(TARGET) $(DEBUG_TARGET)
|
|
|
|
test:
|
|
$(MAKE) EXTRA_CFLAGS="-DMQTT_SERVER=1 -DMQTT_CLIENT=1" clean all
|
|
$(MAKE) -C tests
|
|
$(MAKE) clean
|
|
|
|
coverage:
|
|
$(MAKE) EXTRA_CFLAGS="-DMQTT_SERVER=1 -DMQTT_CLIENT=1" clean all
|
|
$(MAKE) DEBUG_FLAGS= -C tests clean all
|
|
lcov --capture --directory . --output-file lcov.info
|
|
rm -rf coverage
|
|
mkdir -p coverage
|
|
genhtml -o coverage lcov.info
|
|
|
|
dist: $(TARGET)
|
|
mkdir -p dist/include
|
|
mkdir -p dist/lib
|
|
cp libmqtt.a dist/lib
|
|
cp src/mqtt.h dist/include
|
|
(cd dist && tar czvf ../libmqtt-$(MAJOR_VERSION).$(MINOR_VERSION).tar.gz .)
|
|
|
|
src/mqtt.h: src/mqtt.h.in
|
|
sed \
|
|
-e 's/@LIBMQTT_VERSION_MAJOR@/'$(MAJOR_VERSION)'/' \
|
|
-e 's/@LIBMQTT_VERSION_MINOR@/'$(MINOR_VERSION)'/' \
|
|
-e 's/@LIBMQTT_BUILD_DATE@/"'`date +%Y-%m-%d_%H-%M-%S`'"/' \
|
|
src/mqtt.h.in >src/mqtt.h
|
|
|
|
|
|
$(TARGET): $(OBJS)
|
|
$(AR) -cr $(TARGET) $(OBJS)
|
|
|
|
$(DEBUG_TARGET): $(DEBUG_OBJS)
|
|
$(AR) -cr $(DEBUG_TARGET) $(DEBUG_OBJS)
|
|
|
|
%.do: %.c src/mqtt.h
|
|
$(CC) $(CFLAGS) $(DEBUG_FLAGS) -o $@ -c $<
|
|
|
|
%.o: %.c src/mqtt.h
|
|
$(CC) $(CFLAGS) -o $@ -c $<
|
|
|
|
mqtt.o: mqtt.h
|
|
|
|
clean:
|
|
$(MAKE) -C tests clean
|
|
rm -f $(TARGET) $(DEBUG_TARGET)
|
|
rm -f $(OBJS) $(DEBUG_OBJS)
|
|
rm -f $(COVERAGE_FILES)
|
|
rm -f *.gcov
|
|
rm -rf docs/
|
|
rm -rf coverage/
|
|
rm -rf dist/
|
|
rm -f libmqtt-$(MAJOR_VERSION).$(MINOR_VERSION).tar.gz
|
|
|
|
.PHONY: coverage test src/mqtt.h
|