1.update build.sh for multi argument parsing

2.fix libhash depdency
3.add ASAN check into makefile
This commit is contained in:
gozfree
2023-04-16 23:39:17 +08:00
parent e646926b4e
commit 5e1947fd7b
14 changed files with 175 additions and 54 deletions

110
build.sh
View File

@@ -2,23 +2,10 @@
set -e
CMD=$0
MODULE=$1
ARCH=$2
MODE=$3
#default is linux
case $# in
0)
MODULE=all;
ARCH=linux;
MODE=debug;;
1)
ARCH=linux;
MODE=debug;;
2)
MODE=debug;;
esac
MODULE=all
ARCH=linux
MODE=debug
ASAN=0
#add supported platform to here
@@ -28,10 +15,12 @@ PLATFORM="[linux|pi|android|ios]"
BASIC_LIBS="libposix libtime liblog libdarray libthread libgevent libworkq libdict libhash libsort \
librbtree libringbuffer libvector libstrex libmedia-io \
libdebug libfile libqueue libplugin libhal libsubmask"
MEDIA_LIBS="libavcap"
MEDIA_LIBS="libavcap libmp4"
FRAMEWORK_LIBS="libipc"
NETWORK_LIBS="libsock libptcp librpc librtsp librtmpc"
usage()
{
echo "==== usage ===="
@@ -66,26 +55,51 @@ usage()
exit
}
config_linux()
{
CROSS_PREFIX=
}
#-o或--options选项后面接可接受的短选项如ab:c::,表示可接受的短选项为-a -b -c其中-a选项不接参数-b选项后必须接参数-c选项的参数为可选的
#-l或--long选项后面接可接受的长选项用逗号分开冒号的意义同短选项。
#-n选项后接选项解析错误时提示的脚本名字
ARGS=`getopt -o a:m:h --long arch:,module:,help,asan: -n 'build.sh' -- "$@"`
if [ $? != 0 ]; then
echo "Terminating..."
exit 1
fi
config_pi()
{
CROSS_PREFIX=arm-linux-gnueabihf-
}
#将规范化后的命令行参数分配至位置参数($1,$2,...)
eval set -- "${ARGS}"
config_android()
{
CROSS_PREFIX=arm-linux-androideabi-
}
config_ios()
{
echo "need a mac computer, who can help me :-)"
exit 0;
}
while true
do
case "$1" in
-h|--help)
usage;
shift
;;
-a|--arch)
ARCH=$2
shift 2
;;
-m|--mode)
MODE=$2
shift 2
;;
--module)
MODULE=$2
shift 2
;;
--asan)
ASAN=$2
shift 2
;;
--)
shift
break
;;
*)
echo "invalid arguments: $@"
exit 1
;;
esac
done
config_common()
{
@@ -98,15 +112,21 @@ config_arch()
{
case $ARCH in
"pi")
config_pi;;
CROSS_PREFIX=arm-linux-gnueabihf-
;;
"android")
config_android;;
CROSS_PREFIX=arm-linux-androideabi-
;;
"linux")
config_linux;;
CROSS_PREFIX=
;;
"ios")
config_ios;;
echo "not support cross compile, should compile native on Mac"
exit 0;
;;
*)
usage;;
echo "arch: $ARCH not supported"
;;
esac
}
@@ -175,12 +195,8 @@ build_module()
;;
*)
echo "==== build ${ARCH} ${MODULE} start..."
MAKE="make ARCH=${ARCH} OUTPUT=${OUTPUT} MODE=${MODE}"
if [[ ${ARCH} == "linux" || ${ARCH} == "pi" || ${ARCH} == "android" ]]; then
${MAKE} > /dev/null
else
echo "${ARCH} not support now" #make -f Makefile.${ARCH} > /dev/null
fi
MAKE="make ARCH=${ARCH} OUTPUT=${OUTPUT} MODE=${MODE} ASAN=${ASAN}"
${MAKE} > /dev/null
if [ $? -ne 0 ]; then
echo "==== build ${ARCH} ${MODULE} failed"
return;

View File

@@ -52,7 +52,10 @@ CFLAGS := -g -Wall -Werror -fPIC
LTYPE := debug
endif
#CFLAGS += -fsanitize=address -fno-omit-frame-pointer -static-libasan
ifeq ($(ASAN), 1)
CFLAGS += -fsanitize=address -fno-omit-frame-pointer -static-libasan
endif
ifeq ($(OUTPUT),/usr/local)
OUTLIBPATH :=/usr/local
else
@@ -71,7 +74,10 @@ LDFLAGS += -pthread
ifeq ($(ENABLE_FILEWATCHER), 1)
LDFLAGS += -L$(OUTLIBPATH)/lib/gear-lib -ldict -lgevent -lthread -ldarray
endif
#LDFLAGS += -fsanitize=address -static-libasan
ifeq ($(ASAN), 1)
LDFLAGS += -fsanitize=address -static-libasan
endif
###############################################################################
# target

View File

@@ -42,7 +42,10 @@ CFLAGS := -O0 -Wall -Werror -fPIC
LTYPE := release
else
CFLAGS := -g -Wall -Werror -fPIC
# -fsanitize=address -fno-omit-frame-pointer -static-libasan
ifeq ($(ASAN), 1)
CFLAGS += -fsanitize=address -fno-omit-frame-pointer -static-libasan
endif
LTYPE := debug
endif
ifeq ($(OUTPUT),/usr/local)
@@ -58,7 +61,10 @@ SHARED := -shared
LDFLAGS := $($(ARCH)_LDFLAGS)
LDFLAGS += -L$(OUTLIBPATH)/lib/gear-lib -lposix -ldarray -lthread
LDFLAGS += -pthread
# -fsanitize=address -static-libasan
ifeq ($(ASAN), 1)
LDFLAGS += -fsanitize=address -static-libasan
endif
###############################################################################
# target

View File

@@ -51,12 +51,20 @@ endif
CFLAGS += $($(ARCH)_CFLAGS)
CFLAGS += -I$(OUTPUT)/include/gear-lib
ifeq ($(ASAN), 1)
CFLAGS += -fsanitize=address -fno-omit-frame-pointer -static-libasan
endif
SHARED := -shared
LDFLAGS := $($(ARCH)_LDFLAGS)
LDFLAGS += -L$(OUTLIBPATH)/lib/gear-lib -ldarray -lposix
LDFLAGS += -pthread
ifeq ($(ASAN), 1)
LDFLAGS += -fsanitize=address -static-libasan
endif
###############################################################################
# target
###############################################################################

View File

@@ -57,12 +57,20 @@ endif
CFLAGS += $($(ARCH)_CFLAGS)
CFLAGS += -I$(OUTPUT)/include/gear-lib
ifeq ($(ASAN), 1)
CFLAGS += -fsanitize=address -fno-omit-frame-pointer -static-libasan
endif
SHARED := -shared
LDFLAGS := $($(ARCH)_LDFLAGS)
LDFLAGS += -L$(OUTLIBPATH)/lib/gear-lib -lstrex
LDFLAGS += -L$(OUTLIBPATH)/lib/gear-lib -lposix
LDFLAGS += -pthread
ifeq ($(ASAN), 1)
LDFLAGS += -fsanitize=address -static-libasan
endif
###############################################################################
# target
###############################################################################

View File

@@ -58,12 +58,19 @@ endif
EXTRA_CFLAGS += $($(ARCH)_CFLAGS)
EXTRA_CFLAGS += -I$(OUTPUT)/include/gear-lib
ifeq ($(ASAN), 1)
EXTRA_CFLAGS += -fsanitize=address -fno-omit-frame-pointer -static-libasan
endif
SHARED := -shared
EXTRA_LDFLAGS := $($(ARCH)_LDFLAGS)
EXTRA_LDFLAGS += -L$(OUTLIBPATH)/lib/gear-lib -lposix -ldict -lgevent -ldarray -lthread
EXTRA_LDFLAGS += -pthread -lrt
ifeq ($(ASAN), 1)
EXTRA_LDFLAGS += -fsanitize=address -static-libasan
endif
###############################################################################
# target

View File

@@ -51,12 +51,21 @@ endif
CFLAGS += $($(ARCH)_CFLAGS)
CFLAGS += -I$(OUTPUT)/include/gear-lib
ifeq ($(ASAN), 1)
CFLAGS += -fsanitize=address -fno-omit-frame-pointer -static-libasan
endif
SHARED := -shared
LDFLAGS := $($(ARCH)_LDFLAGS)
LDFLAGS += -L$(OUTLIBPATH)/lib/gear-lib -lposix
LDFLAGS += -pthread
ifeq ($(ASAN), 1)
LDFLAGS += -fsanitize=address -static-libasan
endif
###############################################################################
# target
###############################################################################

View File

@@ -51,12 +51,20 @@ endif
CFLAGS += $($(ARCH)_CFLAGS)
CFLAGS += -I$(OUTPUT)/include/gear-lib
ifeq ($(ASAN), 1)
CFLAGS += -fsanitize=address -fno-omit-frame-pointer -static-libasan
endif
SHARED := -shared
LDFLAGS := $($(ARCH)_LDFLAGS)
LDFLAGS += -pthread
LDFLAGS += -lavcodec -lavformat -lavutil
ifeq ($(ASAN), 1)
LDFLAGS += -fsanitize=address -static-libasan
endif
###############################################################################
# target
###############################################################################

View File

@@ -54,6 +54,11 @@ else
CFLAGS := -g -Wall -Werror -fPIC
LTYPE := debug
endif
ifeq ($(ASAN), 1)
CFLAGS += -fsanitize=address -fno-omit-frame-pointer -static-libasan
endif
ifeq ($(OUTPUT),/usr/local)
OUTLIBPATH := /usr/local
else
@@ -67,6 +72,10 @@ SHARED := -shared
LDFLAGS := $($(ARCH)_LDFLAGS)
LDFLAGS += -pthread
ifeq ($(ASAN), 1)
LDFLAGS += -fsanitize=address -static-libasan
endif
###############################################################################
# target
###############################################################################

View File

@@ -219,6 +219,19 @@ typedef struct rational {
#endif
#endif
#define RETURN_IF_FAIL(expr) \
do { \
if (UNLIKELY(expr)) \
return; \
} while(0)
#define RETURN_VAL_IF_FAIL(expr, val) \
do { \
if (UNLIKELY(expr)) \
return (val); \
} while(0)
GEAR_API void *memdup(const void *src, size_t len);
GEAR_API struct iovec *iovec_create(size_t len);
GEAR_API void iovec_destroy(struct iovec *);

View File

@@ -53,6 +53,10 @@ endif
CFLAGS += $($(ARCH)_CFLAGS)
CFLAGS += -I$(OUTPUT)/include/gear-lib
ifeq ($(ASAN), 1)
CFLAGS += -fsanitize=address -fno-omit-frame-pointer -static-libasan
endif
SHARED := -shared
LDFLAGS := $($(ARCH)_LDFLAGS)
@@ -61,6 +65,10 @@ LDFLAGS += -pthread -lrt
LDFLAGS += -L$(PLATFORM_LIB)
LDFLAGS += $($(ARCH)_LDFLAGS)
ifeq ($(ASAN), 1)
LDFLAGS += -fsanitize=address -static-libasan
endif
###############################################################################
# target
###############################################################################

View File

@@ -60,6 +60,10 @@ ifeq ($(ENABLE_LIVEVIEW), 1)
CFLAGS += -DENABLE_LIVEVIEW
endif
ifeq ($(ASAN), 1)
CFLAGS += -fsanitize=address -fno-omit-frame-pointer -static-libasan
endif
SHARED := -shared
LDFLAGS := $($(ARCH)_LDFLAGS)
@@ -70,6 +74,10 @@ ifeq ($(ENABLE_LIVEVIEW), 1)
LDFLAGS += -lx264 -lavcap
endif
ifeq ($(ASAN), 1)
LDFLAGS += -fsanitize=address -static-libasan
endif
###############################################################################
# target
###############################################################################

View File

@@ -58,7 +58,6 @@ else
OUTLIBPATH :=$(OUTPUT)/$(LTYPE)
endif
#CFLAGS += -fsanitize=address -fno-omit-frame-pointer -static-libasan
CFLAGS += $($(ARCH)_CFLAGS)
CFLAGS += -I$(OUTPUT)/include/gear-lib
ifeq ($(ENABLE_SOCK_EXT), 1)
@@ -67,6 +66,11 @@ endif
ifeq ($(ENABLE_PTCP), 1)
CFLAGS += -DENABLE_PTCP
endif
ifeq ($(ASAN), 1)
CFLAGS += -fsanitize=address -fno-omit-frame-pointer -static-libasan
endif
SHARED := -shared
LDFLAGS := $($(ARCH)_LDFLAGS)
@@ -78,7 +82,9 @@ ifeq ($(ENABLE_PTCP), 1)
LDFLAGS += -L$(OUTLIBPATH)/lib/gear-lib -lptcp
endif
#LDFLAGS += -fsanitize=address -static-libasan
ifeq ($(ASAN), 1)
LDFLAGS += -fsanitize=address -static-libasan
endif
###############################################################################
# target

View File

@@ -51,12 +51,21 @@ endif
CFLAGS += $($(ARCH)_CFLAGS)
CFLAGS += -I$(OUTPUT)/include/gear-lib
ifeq ($(ASAN), 1)
CFLAGS += -fsanitize=address -fno-omit-frame-pointer -static-libasan
endif
SHARED := -shared
LDFLAGS := $($(ARCH)_LDFLAGS)
LDFLAGS += -L$(OUTLIBPATH)/lib/gear-lib -lthread -lposix -ldarray
LDFLAGS += -pthread
ifeq ($(ASAN), 1)
LDFLAGS += -fsanitize=address -static-libasan
endif
###############################################################################
# target
###############################################################################