diff options
| author | ruki <[email protected]> | 2017-12-07 22:46:25 +0800 |
|---|---|---|
| committer | ruki <[email protected]> | 2017-12-08 14:10:23 +0800 |
| commit | cb44535305f596bd757ffb58e5ae3cde6d3589fa (patch) | |
| tree | 343f0ff9287b90204a6a000e0af1a7a1ed6c640b /core | |
| parent | abe87994168053e4f420a8b7ab286c65b546eaae (diff) | |
improve log and add color attrs for curses
Diffstat (limited to 'core')
| -rw-r--r-- | core/makefile | 2 | ||||
| -rw-r--r-- | core/plat/linux/prefix.mak | 132 | ||||
| -rw-r--r-- | core/plat/macosx/prefix.mak | 168 | ||||
| -rw-r--r-- | core/src/lcurses/lcurses.c | 4 | ||||
| -rw-r--r-- | core/xmake.lua | 3 |
5 files changed, 155 insertions, 154 deletions
diff --git a/core/makefile b/core/makefile index 478fca71f..236e6a028 100644 --- a/core/makefile +++ b/core/makefile @@ -261,7 +261,7 @@ endif ifeq ($(PLAT),linux) base_LIBPATH := base_LIBNAMES := -base_LIBNAMES += $(shell if { cat detect/curses.c | $(CC) -xc - -lcurses -o /dev/null 2>/dev/null; }; then echo curses; fi ) +base_LIBNAMES += $(shell if { cat detect/curses.c | $(CC) -xc - -lcurses -o /dev/null 2>/dev/null; }; then echo curses tinfo; fi ) base_LIBNAMES += $(shell if { cat detect/readline.c | $(CC) -xc - -lreadline -o /dev/null 2>/dev/null; }; then echo readline; fi ) base_LIBNAMES += m dl pthread endif diff --git a/core/plat/linux/prefix.mak b/core/plat/linux/prefix.mak index 0319a8333..1dc7f0a33 100644 --- a/core/plat/linux/prefix.mak +++ b/core/plat/linux/prefix.mak @@ -1,129 +1,129 @@ # architecture makefile configure # prefix & suffix -BIN_PREFIX = -BIN_SUFFIX = .b +BIN_PREFIX = +BIN_SUFFIX = .b -OBJ_PREFIX = -OBJ_SUFFIX = .o +OBJ_PREFIX = +OBJ_SUFFIX = .o -LIB_PREFIX = lib -LIB_SUFFIX = .a +LIB_PREFIX = lib +LIB_SUFFIX = .a -DLL_PREFIX = lib -DLL_SUFFIX = .so +DLL_PREFIX = lib +DLL_SUFFIX = .so -ASM_SUFFIX = .s +ASM_SUFFIX = .s # prefix -PRE_ := $(if $(BIN),$(BIN)/$(PRE),) +PRE_ := $(if $(BIN),$(BIN)/$(PRE),) # tool -CC = $(PRE_)gcc -LD = $(PRE_)gcc -AR = $(PRE_)ar -STRIP = $(PRE_)strip -RANLIB = $(PRE_)ranlib +CC = $(PRE_)gcc +LD = $(PRE_)gcc +AR = $(PRE_)ar +STRIP = $(PRE_)strip +RANLIB = $(PRE_)ranlib AS = $(CC) -RM = rm -f -RMDIR = rm -rf -CP = cp -CPDIR = cp -r -MKDIR = mkdir -p -MAKE = make -r +RM = rm -f +RMDIR = rm -rf +CP = cp +CPDIR = cp -r +MKDIR = mkdir -p +MAKE = make -r # architecture flags -AHFLAGS := $(if $(AHFLAGS),$(AHFLAGS),$(if $(findstring x86_64,$(ARCH)),-m64,)) -AHFLAGS := $(if $(AHFLAGS),$(AHFLAGS),$(if $(findstring i386,$(ARCH)),-m32,)) +AHFLAGS := $(if $(AHFLAGS),$(AHFLAGS),$(if $(findstring x86_64,$(ARCH)),-m64,)) +AHFLAGS := $(if $(AHFLAGS),$(AHFLAGS),$(if $(findstring i386,$(ARCH)),-m32,)) # check flags for x64 or x86 ifneq ($(AHFLAGS),) ifeq ($(CXFLAGS_CHECK),) -CC_CHECK = ${shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi } -CXFLAGS_CHECK := +CC_CHECK = ${shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi } +CXFLAGS_CHECK := export CXFLAGS_CHECK endif ifeq ($(LDFLAGS_CHECK),) -LD_CHECK = ${shell if $(LD) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi } -LDFLAGS_CHECK := $(call LD_CHECK,-no-pie,) +LD_CHECK = ${shell if $(LD) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi } +LDFLAGS_CHECK := $(call LD_CHECK,-no-pie,) export LDFLAGS_CHECK endif endif # cxflags: .c/.cc/.cpp files -CXFLAGS_RELEASE = -CXFLAGS_DEBUG = -g -D__tb_debug__ -CXFLAGS = $(AHFLAGS) $(CXFLAGS_CHECK) -c -Wall -CXFLAGS-I = -I -CXFLAGS-o = -o +CXFLAGS_RELEASE = +CXFLAGS_DEBUG = -g -D__tb_debug__ +CXFLAGS = $(AHFLAGS) $(CXFLAGS_CHECK) -c -Wall +CXFLAGS-I = -I +CXFLAGS-o = -o # suppress warning for ccache + clang bug -CXFLAGS += $(if $(findstring clang,$(CC)),-Qunused-arguments,) +CXFLAGS += $(if $(findstring clang,$(CC)),-Qunused-arguments,) # optimization ifeq ($(SMALL),y) -CXFLAGS_RELEASE += -Os +CXFLAGS_RELEASE += -Os else -CXFLAGS_RELEASE += -O3 +CXFLAGS_RELEASE += -O3 endif # profile ifeq ($(PROF),y) -CXFLAGS += -g -pg -fno-omit-frame-pointer +CXFLAGS += -g -pg -fno-omit-frame-pointer else -CXFLAGS_RELEASE += -fomit-frame-pointer -CXFLAGS_DEBUG += -fno-omit-frame-pointer +CXFLAGS_RELEASE += -fomit-frame-pointer +CXFLAGS_DEBUG += -fno-omit-frame-pointer endif # cflags: .c files -CFLAGS_RELEASE = -CFLAGS_DEBUG = -CFLAGS = \ +CFLAGS_RELEASE = +CFLAGS_DEBUG = +CFLAGS = \ -std=gnu99 \ -D_GNU_SOURCE=1 -D_REENTRANT \ -fno-math-errno # ccflags: .cc/.cpp files -CCFLAGS_RELEASE = -fno-rtti -CCFLAGS_DEBUG = -CCFLAGS = -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 +CCFLAGS_RELEASE = -fno-rtti +CCFLAGS_DEBUG = +CCFLAGS = -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 # ldflags -LDFLAGS_RELEASE = -LDFLAGS_DEBUG = -rdynamic -LDFLAGS = $(AHFLAGS) $(LDFLAGS_CHECK) -LDFLAGS-L = -L -LDFLAGS-l = -l -LDFLAGS-f = -LDFLAGS-o = -o +LDFLAGS_RELEASE = +LDFLAGS_DEBUG = -rdynamic +LDFLAGS = $(AHFLAGS) $(LDFLAGS_CHECK) +LDFLAGS-L = -L +LDFLAGS-l = -l +LDFLAGS-f = +LDFLAGS-o = -o # prof ifeq ($(PROF),y) -LDFLAGS += -pg +LDFLAGS += -pg else -LDFLAGS_RELEASE += -s -LDFLAGS_DEBUG += +LDFLAGS_RELEASE += -s +LDFLAGS_DEBUG += endif # asflags -ASFLAGS_RELEASE = -ASFLAGS_DEBUG = -ASFLAGS = -c -fPIC $(AHFLAGS) -ASFLAGS-I = -I -ASFLAGS-o = -o +ASFLAGS_RELEASE = +ASFLAGS_DEBUG = +ASFLAGS = -c -fPIC $(AHFLAGS) +ASFLAGS-I = -I +ASFLAGS-o = -o # arflags -ARFLAGS_RELEASE = -ARFLAGS_DEBUG = -ARFLAGS = -cr -ARFLAGS-o = +ARFLAGS_RELEASE = +ARFLAGS_DEBUG = +ARFLAGS = -cr +ARFLAGS-o = # shflags -SHFLAGS_RELEASE = -s -SHFLAGS = $(AHFLAGS) -shared -Wl,-soname +SHFLAGS_RELEASE = -s +SHFLAGS = $(AHFLAGS) -shared -Wl,-soname # include sub-config -include $(PLAT_DIR)/config.mak +include $(PLAT_DIR)/config.mak diff --git a/core/plat/macosx/prefix.mak b/core/plat/macosx/prefix.mak index 62e73beae..bb0bf2624 100644 --- a/core/plat/macosx/prefix.mak +++ b/core/plat/macosx/prefix.mak @@ -1,171 +1,171 @@ # architecture makefile configure # prefix & suffix -BIN_PREFIX = -BIN_SUFFIX = .b +BIN_PREFIX = +BIN_SUFFIX = .b -OBJ_PREFIX = -OBJ_SUFFIX = .o +OBJ_PREFIX = +OBJ_SUFFIX = .o -LIB_PREFIX = lib -LIB_SUFFIX = .a +LIB_PREFIX = lib +LIB_SUFFIX = .a -DLL_PREFIX = -DLL_SUFFIX = .dylib +DLL_PREFIX = +DLL_SUFFIX = .dylib -ASM_SUFFIX = .s +ASM_SUFFIX = .s # cpu bits -BITS := $(if $(findstring x86_64,$(ARCH)),64,) -BITS := $(if $(findstring i386,$(ARCH)),32,) -BITS := $(if $(BITS),$(BITS),$(shell getconf LONG_BIT)) +BITS := $(if $(findstring x86_64,$(ARCH)),64,) +BITS := $(if $(findstring i386,$(ARCH)),32,) +BITS := $(if $(BITS),$(BITS),$(shell getconf LONG_BIT)) # prefix -PRE_ := $(if $(BIN),$(BIN)/$(PRE),xcrun -sdk macosx ) +PRE_ := $(if $(BIN),$(BIN)/$(PRE),xcrun -sdk macosx ) # cc -CC = $(PRE_)clang +CC = $(PRE_)clang ifeq ($(CXFLAGS_CHECK),) -CC_CHECK = ${shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi } -CXFLAGS_CHECK := $(call CC_CHECK,-ftrapv,) $(call CC_CHECK,-fsanitize=address,) +CC_CHECK = ${shell if $(CC) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi } +CXFLAGS_CHECK := $(call CC_CHECK,-ftrapv,) $(call CC_CHECK,-fsanitize=address,) export CXFLAGS_CHECK endif # ld -LD = $(PRE_)clang +LD = $(PRE_)clang ifeq ($(LDFLAGS_CHECK),) -LD_CHECK = ${shell if $(LD) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi } -LDFLAGS_CHECK := $(call LD_CHECK,-ftrapv,) $(call LD_CHECK,-fsanitize=address,) +LD_CHECK = ${shell if $(LD) $(1) -S -o /dev/null -xc /dev/null > /dev/null 2>&1; then echo "$(1)"; else echo "$(2)"; fi } +LDFLAGS_CHECK := $(call LD_CHECK,-ftrapv,) $(call LD_CHECK,-fsanitize=address,) export LDFLAGS_CHECK endif # tool -MM = $(PRE_)clang -AR = $(PRE_)ar -STRIP = $(PRE_)strip -RANLIB = $(PRE_)ranlib +MM = $(PRE_)clang +AR = $(PRE_)ar +STRIP = $(PRE_)strip +RANLIB = $(PRE_)ranlib AS = $(PRE_)clang -RM = rm -f -RMDIR = rm -rf -CP = cp -CPDIR = cp -r -MKDIR = mkdir -p -MAKE = make -r +RM = rm -f +RMDIR = rm -rf +CP = cp +CPDIR = cp -r +MKDIR = mkdir -p +MAKE = make -r # cxflags: .c/.cc/.cpp files -CXFLAGS_RELEASE = -fvisibility=hidden -CXFLAGS_DEBUG = -g -D__tb_debug__ -CXFLAGS = -m$(BITS) -c -Wall -Werror -Wno-error=deprecated-declarations -Qunused-arguments -mssse3 -CXFLAGS-I = -I -CXFLAGS-o = -o +CXFLAGS_RELEASE = -fvisibility=hidden +CXFLAGS_DEBUG = -g -D__tb_debug__ +CXFLAGS = -m$(BITS) -c -Wall -Werror -Wno-error=deprecated-declarations -Qunused-arguments -mssse3 +CXFLAGS-I = -I +CXFLAGS-o = -o # opti ifeq ($(SMALL),y) -CXFLAGS_RELEASE += -Os +CXFLAGS_RELEASE += -Os else -CXFLAGS_RELEASE += -O3 +CXFLAGS_RELEASE += -O3 endif # prof ifeq ($(PROF),y) -CXFLAGS += -g -fno-omit-frame-pointer +CXFLAGS += -g -fno-omit-frame-pointer else -CXFLAGS_RELEASE += -fomit-frame-pointer -CXFLAGS_DEBUG += -fno-omit-frame-pointer $(CXFLAGS_CHECK) +CXFLAGS_RELEASE += -fomit-frame-pointer +CXFLAGS_DEBUG += -fno-omit-frame-pointer $(CXFLAGS_CHECK) endif # cflags: .c files -CFLAGS_RELEASE = -CFLAGS_DEBUG = -CFLAGS = \ +CFLAGS_RELEASE = +CFLAGS_DEBUG = +CFLAGS = \ -std=c99 \ -D_GNU_SOURCE=1 -D_REENTRANT \ -fno-math-errno -fno-tree-vectorize # ccflags: .cc/.cpp files -CCFLAGS_RELEASE = -CCFLAGS_DEBUG = -CCFLAGS = \ +CCFLAGS_RELEASE = +CCFLAGS_DEBUG = +CCFLAGS = \ -D_ISOC99_SOURCE -D_FILE_OFFSET_BITS=64 -D_LARGEFILE_SOURCE \ -D_POSIX_C_SOURCE=200112 -D_XOPEN_SOURCE=600 # mxflags: .m/.mm files -MXFLAGS_RELEASE = -fvisibility=hidden -MXFLAGS_DEBUG = -g -D__tb_debug__ -MXFLAGS = \ +MXFLAGS_RELEASE = -fvisibility=hidden +MXFLAGS_DEBUG = -g -D__tb_debug__ +MXFLAGS = \ -m$(BITS) -c -Wall -Werror -Wno-error=deprecated-declarations -Qunused-arguments \ -mssse3 $(ARCH_CXFLAGS) -fmessage-length=0 -pipe -fpascal-strings \ "-DIBOutlet=__attribute__((iboutlet))" \ "-DIBOutletCollection(ClassName)=__attribute__((iboutletcollection(ClassName)))" \ "-DIBAction=void)__attribute__((ibaction)" -MXFLAGS-I = -I -MXFLAGS-o = -o +MXFLAGS-I = -I +MXFLAGS-o = -o # opti ifeq ($(SMALL),y) -MXFLAGS_RELEASE += -Os +MXFLAGS_RELEASE += -Os else -MXFLAGS_RELEASE += -O3 +MXFLAGS_RELEASE += -O3 endif # prof ifeq ($(PROF),y) -MXFLAGS += -g -fno-omit-frame-pointer +MXFLAGS += -g -fno-omit-frame-pointer else -MXFLAGS_RELEASE += -fomit-frame-pointer -MXFLAGS_DEBUG += -fno-omit-frame-pointer $(LDFLAGS_CHECK) +MXFLAGS_RELEASE += -fomit-frame-pointer +MXFLAGS_DEBUG += -fno-omit-frame-pointer $(LDFLAGS_CHECK) endif # mflags: .m files -MFLAGS_RELEASE = -MFLAGS_DEBUG = -MFLAGS = -std=c99 +MFLAGS_RELEASE = +MFLAGS_DEBUG = +MFLAGS = -std=c99 # mmflags: .mm files -MMFLAGS_RELEASE = -MMFLAGS_DEBUG = -MMFLAGS = +MMFLAGS_RELEASE = +MMFLAGS_DEBUG = +MMFLAGS = # ldflags -LDFLAGS_RELEASE = -LDFLAGS_DEBUG = -LDFLAGS = -m$(BITS) -all_load -pagezero_size 10000 -image_base 100000000 -mmacosx-version-min=10.7 -LDFLAGS-L = -L -LDFLAGS-l = -l -LDFLAGS-f = -LDFLAGS-o = -o +LDFLAGS_RELEASE = +LDFLAGS_DEBUG = +LDFLAGS = -m$(BITS) -all_load -pagezero_size 10000 -image_base 100000000 -mmacosx-version-min=10.7 +LDFLAGS-L = -L +LDFLAGS-l = -l +LDFLAGS-f = +LDFLAGS-o = -o # prof ifeq ($(PROF),y) else -LDFLAGS_RELEASE += -s -LDFLAGS_DEBUG += -ftrapv +LDFLAGS_RELEASE += -s +LDFLAGS_DEBUG += -ftrapv endif # asflags -ASFLAGS_RELEASE = -ASFLAGS_DEBUG = -ASFLAGS = -m$(BITS) -c -Wall -ASFLAGS-I = -I -ASFLAGS-o = -o +ASFLAGS_RELEASE = +ASFLAGS_DEBUG = +ASFLAGS = -m$(BITS) -c -Wall +ASFLAGS-I = -I +ASFLAGS-o = -o # arflags -ARFLAGS_RELEASE = -ARFLAGS_DEBUG = -ARFLAGS = -cr -ARFLAGS-o = +ARFLAGS_RELEASE = +ARFLAGS_DEBUG = +ARFLAGS = -cr +ARFLAGS-o = # shflags -SHFLAGS_RELEASE = -s -SHFLAGS = $(ARCH_LDFLAGS) -dynamiclib -mmacosx-version-min=10.7 +SHFLAGS_RELEASE = -s +SHFLAGS = $(ARCH_LDFLAGS) -dynamiclib -mmacosx-version-min=10.7 # include directory -INC_DIR += /usr/include /usr/local/include +INC_DIR += /usr/include /usr/local/include # library directory -LIB_DIR += /usr/lib /usr/local/lib +LIB_DIR += /usr/lib /usr/local/lib # config -include $(PLAT_DIR)/config.mak +include $(PLAT_DIR)/config.mak diff --git a/core/src/lcurses/lcurses.c b/core/src/lcurses/lcurses.c index f379824a5..704c8fab3 100644 --- a/core/src/lcurses/lcurses.c +++ b/core/src/lcurses/lcurses.c @@ -1436,14 +1436,12 @@ static int lc_raw(lua_State *L) return 1; } -#if 0 // disable it because need link libtinfo.so on linux static int lc_halfdelay(lua_State *L) { int tenths = luaL_checkint(L, 1); lua_pushboolean(L, B(halfdelay(tenths))); return 1; } -#endif static int lcw_intrflush(lua_State *L) { @@ -2265,7 +2263,7 @@ static const luaL_reg curseslib[] = { "cbreak", lc_cbreak }, { "echo", lc_echo }, { "raw", lc_raw }, -// { "halfdelay", lc_halfdelay }, + { "halfdelay", lc_halfdelay }, /* util */ { "unctrl", lc_unctrl }, diff --git a/core/xmake.lua b/core/xmake.lua index edf65dbe7..f3f69f6ed 100644 --- a/core/xmake.lua +++ b/core/xmake.lua @@ -51,6 +51,9 @@ option_end() -- the curses option option("curses") add_links("curses") + if is_plat("linux") then + add_links("tinfo") + end add_cincludes("curses.h") add_defines("XM_CONFIG_API_HAVE_CURSES") option_end() |
