Full rewrite
This commit is contained in:
@@ -1,119 +1,14 @@
|
||||
CC = gcc
|
||||
RM = rm
|
||||
MKDIR = mkdir
|
||||
.PHONY: all report
|
||||
|
||||
EXT_WINDOWS = exe
|
||||
EXT_LINUX = out
|
||||
#LFLAGS = -lws2_32
|
||||
LFLAGS = -lssl -lcrypto -ggdb
|
||||
|
||||
# Can be either RELEASE or DEBUG
|
||||
BUILD = RELEASE
|
||||
all:
|
||||
#gcc -o test tests/test.c tests/test_branch_coverage.c http.c -fprofile-arcs -ftest-coverage
|
||||
|
||||
SUFFIX_RELEASE =
|
||||
SUFFIX_DEBUG = _debug
|
||||
|
||||
# ------------------------------------------------------ #
|
||||
|
||||
TEST_CFILES = tinyhttp.c tests/picohttpparser.c tests/test.c tests/test_reuse.c tests/test_chunking.c tests/test_parse_request.c
|
||||
TEST_HFILES = tinyhttp.h tests/picohttpparser.h
|
||||
|
||||
TEST_FLAGS = -Wall -Wextra
|
||||
TEST_FLAGS_DEBUG = -ggdb
|
||||
TEST_FLAGS_RELEASE = -O2 -DNDEBUG
|
||||
|
||||
TEST_FLAGS_WINDOWS = -lws2_32
|
||||
TEST_FLAGS_WINDOWS_DEBUG =
|
||||
TEST_FLAGS_WINDOWS_RELEASE =
|
||||
|
||||
TEST_FLAGS_LINUX =
|
||||
TEST_FLAGS_LINUX_DEBUG =
|
||||
TEST_FLAGS_LINUX_RELEASE =
|
||||
|
||||
# ------------------------------------------------------ #
|
||||
|
||||
DEMO0_CFILES = tinyhttp.c examples/server_api.c
|
||||
DEMO0_HFILES = tinyhttp.h
|
||||
|
||||
DEMO0_FLAGS =
|
||||
DEMO0_FLAGS_DEBUG = -ggdb
|
||||
DEMO0_FLAGS_RELEASE = -O2 -DNDEBUG
|
||||
|
||||
DEMO0_FLAGS_WINDOWS = -lws2_32
|
||||
DEMO0_FLAGS_WINDOWS_DEBUG =
|
||||
DEMO0_FLAGS_WINDOWS_RELEASE =
|
||||
|
||||
DEMO0_FLAGS_LINUX =
|
||||
DEMO0_FLAGS_LINUX_DEBUG =
|
||||
DEMO0_FLAGS_LINUX_RELEASE =
|
||||
|
||||
# ------------------------------------------------------ #
|
||||
|
||||
DEMO1_CFILES = tinyhttp.c examples/stream_api_with_select.c
|
||||
DEMO1_HFILES = tinyhttp.h
|
||||
DEMO1_FLAGS =
|
||||
|
||||
DEMO1_FLAGS =
|
||||
DEMO1_FLAGS_DEBUG = -ggdb
|
||||
DEMO1_FLAGS_RELEASE = -O2 -DNDEBUG
|
||||
|
||||
DEMO1_FLAGS_WINDOWS = -lws2_32
|
||||
DEMO1_FLAGS_WINDOWS_DEBUG =
|
||||
DEMO1_FLAGS_WINDOWS_RELEASE =
|
||||
|
||||
DEMO1_FLAGS_LINUX =
|
||||
DEMO1_FLAGS_LINUX_DEBUG =
|
||||
DEMO1_FLAGS_LINUX_RELEASE =
|
||||
|
||||
# ------------------------------------------------------ #
|
||||
# ------------------------------------------------------ #
|
||||
# ------------------------------------------------------ #
|
||||
|
||||
ifeq ($(OS),Windows_NT)
|
||||
OSTAG = WINDOWS
|
||||
else
|
||||
UNAME_S := $(shell uname -s)
|
||||
ifeq ($(UNAME_S),Linux)
|
||||
OSTAG = LINUX
|
||||
endif
|
||||
ifeq ($(UNAME_S),Darwin)
|
||||
OSTAG = OSX
|
||||
endif
|
||||
endif
|
||||
|
||||
EXT = ${EXT_$(OSTAG)}
|
||||
|
||||
TEST_FLAGS += ${TEST_FLAGS_$(BUILD)}
|
||||
TEST_FLAGS += ${TEST_FLAGS_$(OSTAG)}
|
||||
TEST_FLAGS += ${TEST_FLAGS_$(OSTAG)_$(BUILD)}
|
||||
|
||||
DEMO0_FLAGS += ${DEMO0_FLAGS_$(BUILD)}
|
||||
DEMO0_FLAGS += ${DEMO0_FLAGS_$(OSTAG)}
|
||||
DEMO0_FLAGS += ${DEMO0_FLAGS_$(OSTAG)_$(BUILD)}
|
||||
|
||||
DEMO1_FLAGS += ${DEMO1_FLAGS_$(BUILD)}
|
||||
DEMO1_FLAGS += ${DEMO1_FLAGS_$(OSTAG)}
|
||||
DEMO1_FLAGS += ${DEMO1_FLAGS_$(OSTAG)_$(BUILD)}
|
||||
|
||||
SUFFIX = ${SUFFIX_$(BUILD)}
|
||||
|
||||
# ------------------------------------------------------ #
|
||||
# ------------------------------------------------------ #
|
||||
# ------------------------------------------------------ #
|
||||
|
||||
.PHONY: all clean
|
||||
|
||||
all: out/test$(SUFFIX).$(EXT) out/demo0$(SUFFIX).$(EXT) out/demo1$(SUFFIX).$(EXT)
|
||||
|
||||
out:
|
||||
$(MKDIR) out
|
||||
|
||||
out/test$(SUFFIX).$(EXT): out $(TEST_CFILES) $(TEST_HFILES)
|
||||
$(CC) -o $@ $(TEST_CFILES) $(TEST_FLAGS)
|
||||
|
||||
out/demo0$(SUFFIX).$(EXT): out $(DEMO0_CFILES) $(DEMO0_HFILES)
|
||||
$(CC) -o $@ $(DEMO0_CFILES) $(DEMO0_FLAGS)
|
||||
|
||||
out/demo1$(SUFFIX).$(EXT): out $(DEMO1_CFILES) $(DEMO1_HFILES)
|
||||
$(CC) -o $@ $(DEMO1_CFILES) $(DEMO1_FLAGS)
|
||||
report:
|
||||
lcov --capture --directory . --output-file coverage.info --rc lcov_branch_coverage=1
|
||||
genhtml coverage.info --output-directory coverage_report --rc lcov_branch_coverage=1 --rc genhtml_branch_coverage=1
|
||||
|
||||
clean:
|
||||
$(RM) -fr out
|
||||
rm *.gcda *.gcno coverage.info test test.exe
|
||||
|
||||
Reference in New Issue
Block a user