mirror of
https://github.com/gozfree/gear-lib.git
synced 2026-02-05 18:51:20 +08:00
1.update build.sh for multi argument parsing
2.fix libhash depdency 3.add ASAN check into makefile
This commit is contained in:
110
build.sh
110
build.sh
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
###############################################################################
|
||||
|
||||
@@ -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
|
||||
###############################################################################
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
###############################################################################
|
||||
|
||||
@@ -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
|
||||
###############################################################################
|
||||
|
||||
@@ -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
|
||||
###############################################################################
|
||||
|
||||
@@ -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 *);
|
||||
|
||||
@@ -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
|
||||
###############################################################################
|
||||
|
||||
@@ -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
|
||||
###############################################################################
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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
|
||||
###############################################################################
|
||||
|
||||
Reference in New Issue
Block a user