TongBaseV1.2 内存数据引擎 SUSE Linux 静态链接库 新鲜出炉 附makefile
TongBaseV1.2 内存数据引擎 SUSE Linux 静态链接库 新鲜出炉 附makefile
编译方法:make -f makelib_linux
库文件libtb.a 下载见http://groups.google.com/group/tongbase 或 http://groups.csdn.net/tongbase
详见:http://blog.csdn.net/tongbase
################################################################################
###
### makefile for TB of Unix or Linux
### modified by kevin 2006-04-10 14:30
### 2008-2-25 kevin modified for make lib note:this makefile only make lib
################################################################################
### PLATFORM could be "AIX", "HPUX", "SUN", "COMPAQ", "SUSE", "WINDOWS"
PLATFORM = SUSE
#------------------------------ Paths Setting ---------------------------------#
_TB_SORUCE_PATH = .
_TB_OBJ_PATH = $(_TB_SORUCE_PATH)/obj
_TB_OUTPUT_PATH = $(_TB_SORUCE_PATH)
_TB_TEMP_PATH = $(_TB_SORUCE_PATH)
_TB_INC = $(_TB_SORUCE_PATH)/inc
_TB_PUB_INC = $(_TB_SORUCE_PATH)/pub
_TB_SRC = $(_TB_SORUCE_PATH)/src
_TB_DEPEND = -I$(_TB_INC) -I$(_TB_PUB_INC)
#------------------------------ Complier & Flags ------------------------------#
AIXCC = cc
HPUXCC = cc
SUNCC = cc
COMPAQCC = cc
SUSECC = cc
WINDOWSCC = gcc
AIXFLAGS = -qlanglvl=EXT
HPUXFLAGS = -Ae -D_POSIX_C_SOURCE=199506L -D_REENTRANT
SUNFLAGS = -xCC
COMPAQFLAGS = -verbose -assume noaligned_objects
SUSECCFLAGS =
COMPILER = $($(PLATFORM)CC) -g -DPOSIX
CCOPTIONS = -D__$(PLATFORM)__ -DCHECK $($(PLATFORM)FLAGS)
## 可选用参数 -DDIAGNOSTIC : 打开ASSERT指示开关.
#------------------------------ Library Linker --------------------------------#
AIXLINKER = ar
HPUXLINKER = ar
SUNLINKER = ar
COMPAQLINKER = ar
SUSELINKER = ar
WINDOWSLINKER = ar
LINKER = $($(PLATFORM)LINKER) -cr
#------------------------------- Libs -----------------------------------------#
AIXLIBS = -lpthread -L./ -lmyposix -lm
HPUXLIBS = -lxnet -lpthread -lrt -lm
SUNLIBS = -lxnet -lpthread -lposix4 -lsocket -lm
COMPAQLIBS = -lpthread -lxnet -lrt -lm
SUSELIBS = -lpthread
LIBS = $($(PLATFORM)LIBS)
#------------------------------- Souce code files -----------------------------#
_TB_All_C = $(wildcard $(_TB_SRC)/*.c)
_TB_All_CPP = $(wildcard $(_TB_SRC)/*.cpp)
#------------------------------- Objects --------------------------------------#
_TB_All_O = $(addprefix $(_TB_OBJ_PATH)/, $(subst .c,.o,$(notdir $(_TB_All_C))))
_TB_All_OPP = $(addprefix $(_TB_OBJ_PATH)/, $(subst .cpp,.o,$(notdir $(_TB_All_CPP))))
#------------------------------ Target ----------------------------------------#
# TB Static Libray File
SLIB_FILE = libtb.a
TARGET = $(_TB_OUTPUT_PATH)/$(SLIB_FILE)
#------------------------------ Macros ----------------------------------------#
# unix 下创建目录确实和windows不一样,所以增加了MKENV的处理。以及在cleanall下删除目录的功能。
all: mkenv $(TARGET)
.PHONY : mkenv
mkenv:
@echo 创建编译临时工作目录: $(_TB_TEMP_PATH)
@mkdir -p $(_TB_TEMP_PATH)
@echo 创建中间文件所在目录: $(_TB_OBJ_PATH)
@mkdir -p $(_TB_OBJ_PATH)
@echo 创建库文件所在目录: $(_TB_OUTPUT_PATH)
@mkdir -p $(_TB_OUTPUT_PATH)
@echo
$(TARGET):$(_TB_All_O)
@echo 编译完成!开始连接库文件: $@
@echo Linking $@ ......
$(LINKER) $(TARGET) $(_TB_All_O)
@echo Done!
@echo
@echo 连接完成!输出文件: $(TARGET)
@echo
$(_TB_OBJ_PATH)/%.o : $(_TB_SRC)/%.c
@echo 开始编译 $(_TB_SORUCE_PATH)/$ <
@echo Making $@ ......
$(COMPILER) $(CCOPTIONS) $(_TB_DEPEND) -c $ < -o $@
@echo Done!
@echo
.PHONY : clean
clean:
rm -f $(_TB_OBJ_PATH)/*.o $(TARGET)
.PHONY : cleanall
cleanall:
rm -f $(_TB_OBJ_PATH)/*.o $(TARGET)
rm -rf $(_TB_OBJ_PATH)
rm -rf $(_TB_TEMP_PATH)
rm -rf $(_TB_OUTPUT_PATH)