mirror of
https://github.com/warmcat/libwebsockets.git
synced 2025-03-16 00:00:07 +01:00

1) Introduce LWS_WITH_GCOV to build with gcc / clang coverage instrumentation. $ cd build $ make clean && rm -f `find . -name "*.gcno" -o -name "*.gcda"` && make -j16 && sudo make install && sudo /usr/local/bin/libwebsockets-test-server -s ... $ gcov `find . -name *.c.gcno | grep -v test-apps` -b | sed "/\.h.\$/,/^$/d" The above are available in two helper scripts - scripts/build-gcov.sh - scripts/gcov.sh 2) CMake defaults changed: - LWS_WITH_ZIP_FOPS: OFF - LWS_WITH_RANGES: OFF - LWS_WITHOUT_EXTENSIONS: ON - LWS_WITH_ZLIB: OFF New CMake controls that default-OFF: - LWS_WITH_GENHASH - LWS_WITH_GENRSA these are implied by LWS_WITH_JWS (which is implied by LWS_WITH_ACME) 3) rename ./lib/tls/XXX/server.c and client.c to XXX-server.c / XXX-client.c. This is because gcov dumps its results using the .c filename part only, the copies overwrite each other if there are different .c files in the tree with the same filename part. 4) Add onetime test-client mode and test to ./test-apps/attack.sh 5) Add gcov howto in READMEs/README.build.md using attack.sh
45 lines
1.6 KiB
Makefile
45 lines
1.6 KiB
Makefile
COMPONENT_DEPENDS := mbedtls openssl
|
|
#COMPONENT_ADD_INCLUDEDIRS := ../../../../../../../../../../../../../../../../../../../../$(COMPONENT_BUILD_DIR)/include
|
|
|
|
COMPONENT_OWNBUILDTARGET := 1
|
|
|
|
CROSS_PATH1 := $(shell which xtensa-esp32-elf-gcc )
|
|
CROSS_PATH := $(shell dirname $(CROSS_PATH1) )/..
|
|
|
|
# detect MSYS2 environment and set generator flag if found
|
|
# also set executable extension to .exe so that tools can be properly found
|
|
# and disable bundled zlib
|
|
MSYS_VERSION = $(if $(findstring Msys, $(shell uname -o)),$(word 1, $(subst ., ,$(shell uname -r))),0)
|
|
ifneq ($(MSYS_VERSION),0)
|
|
MSYS_FLAGS = -DLWS_WITH_BUNDLED_ZLIB=0 -DEXECUTABLE_EXT=.exe -G'MSYS Makefiles'
|
|
endif
|
|
|
|
# -DNDEBUG=1 after cflags stops debug etc being built
|
|
.PHONY: build
|
|
build:
|
|
cd $(COMPONENT_BUILD_DIR) ; \
|
|
echo "doing lws cmake" ; \
|
|
cmake $(COMPONENT_PATH) -DLWS_C_FLAGS="$(CFLAGS) -DNDEBUG=1" \
|
|
-DIDF_PATH=$(IDF_PATH) \
|
|
-DCROSS_PATH=$(CROSS_PATH) \
|
|
-DBUILD_DIR_BASE=$(BUILD_DIR_BASE) \
|
|
-DCMAKE_TOOLCHAIN_FILE=$(COMPONENT_PATH)/contrib/cross-esp32.cmake \
|
|
-DCMAKE_BUILD_TYPE=RELEASE \
|
|
-DLWS_MBEDTLS_INCLUDE_DIRS="${IDF_PATH}/components/openssl/include;${IDF_PATH}/components/mbedtls/include;${IDF_PATH}/components/mbedtls/port/include" \
|
|
-DLWS_WITH_STATS=0 \
|
|
-DLWS_WITH_HTTP2=1 \
|
|
-DLWS_WITH_RANGES=1 \
|
|
-DLWS_WITH_ACME=1 \
|
|
-DLWS_WITH_ZLIB=1 \
|
|
-DLWS_WITH_ZIP_FOPS=1 \
|
|
-DZLIB_LIBRARY=$(BUILD_DIR_BASE)/zlib/libzlib.a \
|
|
-DZLIB_INCLUDE_DIR=$(COMPONENT_PATH)/../zlib \
|
|
-DLWS_WITH_ESP32=1 \
|
|
$(MSYS_FLAGS) ; \
|
|
make && \
|
|
cp ${COMPONENT_BUILD_DIR}/lib/libwebsockets.a ${COMPONENT_BUILD_DIR}/liblibwebsockets.a
|
|
|
|
clean: myclean
|
|
|
|
myclean:
|
|
rm -rf ./build
|