- Start LibLog support implementation,

- Fix .h and .c file headers.
This commit is contained in:
Arnaud G. GIBERT 2024-04-18 00:54:52 +02:00
parent 70b7e5a49e
commit 3a3002375f
8 changed files with 131 additions and 103 deletions

View File

@ -1,9 +1,3 @@
# $RCSfile: Makefile,v $
# $Revision: 1.3 $
# $Name: $
# $Date: 2003/07/16 23:32:06 $
# $Author: agibert $
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------
# Main Makefile # Main Makefile
#------------------------------------------------------------------------------ #------------------------------------------------------------------------------

View File

@ -10,12 +10,12 @@ include ../Makefile.rule
DEP_STATIC += ../lib/libnode.a DEP_STATIC += ../lib/libnode.a ../../liblog/lib/liblog.a
DEP_DYNAMIC += ../lib/libnode.so DEP_DYNAMIC += ../lib/libnode.so ../../liblog/lib/liblog.so
INCLUDE += -I . -I ../include INCLUDE += -I . -I ../include -I ../../liblog/include
LIBDIR += -L . -L ../lib LIBDIR += -L . -L ../lib -L ../../liblog/lib
LIB_STATIC += ../lib/libnode.a -ldl LIB_STATIC += ../lib/libnode.a ../../liblog/lib/liblog.a -ldl
LIB_DYNAMIC += -lnode -ldl LIB_DYNAMIC += -lnode -llog -ldl
CFLAGS += -rdynamic CFLAGS += -rdynamic
ifdef _LIBVER_SUPPORT ifdef _LIBVER_SUPPORT

View File

@ -107,6 +107,7 @@ NDT_Status Demo_DS_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_No
ND_VA_ARG_GET( Cmd, *Args_Ptr, NDT_Command); ND_VA_ARG_GET( Cmd, *Args_Ptr, NDT_Command);
ND_VA_ARG_GET( Value_Ptr, *Args_Ptr, void *); ND_VA_ARG_GET( Value_Ptr, *Args_Ptr, void *);
*/ */
ND_VA_ARG_GET( Reply_Index_Id_Ptr, *Args_Ptr, NDT_Index_Id *); ND_VA_ARG_GET( Reply_Index_Id_Ptr, *Args_Ptr, NDT_Index_Id *);
ND_VA_ARG_GET( Reply_Command_Ptr, *Args_Ptr, NDT_Command *); ND_VA_ARG_GET( Reply_Command_Ptr, *Args_Ptr, NDT_Command *);
ND_VA_ARG_GET( Cmd, *Args_Ptr, NDT_Command); ND_VA_ARG_GET( Cmd, *Args_Ptr, NDT_Command);
@ -167,6 +168,7 @@ NDT_Status Demo_DS_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_No
ND_VA_LIST_CLOSE( user_args); ND_VA_LIST_CLOSE( user_args);
*/ */
ND_VA_ARG_GET( Value_Ptr_Ptr, *Args_Ptr, Demo_Value **); ND_VA_ARG_GET( Value_Ptr_Ptr, *Args_Ptr, Demo_Value **);
@ -198,6 +200,7 @@ NDT_Status Demo_DS_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_No
ND_VA_LIST_CLOSE( user_args); ND_VA_LIST_CLOSE( user_args);
*/ */
ND_VA_ARG_GET( Value_Ptr, *Args_Ptr, Demo_Value *); ND_VA_ARG_GET( Value_Ptr, *Args_Ptr, Demo_Value *);
@ -220,6 +223,7 @@ NDT_Status Demo_DS_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_No
ND_VA_LIST_CLOSE( user_args); ND_VA_LIST_CLOSE( user_args);
*/ */
ND_VA_ARG_GET( Value1_Ptr, *Args_Ptr, Demo_Value *); ND_VA_ARG_GET( Value1_Ptr, *Args_Ptr, Demo_Value *);
ND_VA_ARG_GET( Value2_Ptr, *Args_Ptr, Demo_Value *); ND_VA_ARG_GET( Value2_Ptr, *Args_Ptr, Demo_Value *);
@ -367,6 +371,7 @@ NDT_Status Demo_DS_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT_No
ND_VA_LIST_CLOSE( user_args); ND_VA_LIST_CLOSE( user_args);
ND_VA_LIST_CLOSE( lib_args); ND_VA_LIST_CLOSE( lib_args);
*/ */
ND_VA_ARG_GET( Next_Node_Ptr, *Args_Ptr, NDT_Node *); ND_VA_ARG_GET( Next_Node_Ptr, *Args_Ptr, NDT_Node *);
ND_VA_LIST_OPEN( lib_args, *Args_Ptr); ND_VA_LIST_OPEN( lib_args, *Args_Ptr);

View File

@ -1,18 +1,13 @@
/*---------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
/* $RCSfile: node.h,v $ */ /* node.h */
/*---------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
/* $Revision: 2.13 $ */
/* $Name: libnode-2_2_0-1 $ */
/* $Date: 2010/06/06 21:26:31 $ */
/* $Author: agibert $ */
/*---------------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
/* This file is part of LibNode */ /* This file is part of LibNode */
/* */ /* */
/* LibNode is free software; you can redistribute it and/or modify */ /* LibNode is free software: you can redistribute it and/or modify it */
/* it under the terms of the GNU Lesser General Public Licence as published by */ /* under the terms of the GNU Lesser General Public License as published */
/* the Free Software Foundation; either version 2.1 of the License, or */ /* by the Free Software Foundation, either version 3 of the License, or */
/* (at your option) any later version. */ /* (at your option) any later version. */
/* */ /* */
/* LibNode is distributed in the hope that it will be useful, */ /* LibNode is distributed in the hope that it will be useful, */
@ -20,14 +15,16 @@
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU Lesser General Public License for more details. */ /* GNU Lesser General Public License for more details. */
/* */ /* */
/* You should have received a copy of the GNU Lesser General Public License */ /* You should have received a copy of the GNU Lesser General Public */
/* along with LibNode; if not, write to the Free Software */ /* License along with Drummer. If not, see */
/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* <https://www.gnu.org/licenses/>. */
/*---------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
/* Includes */
/*----------------------------------------------------------------------------*/
#ifndef _LIBNODE_H_ #ifndef _LIBNODE_H_
# define _LIBNODE_H_ # define _LIBNODE_H_
@ -45,6 +42,9 @@ extern "C" {
# include <ver.h> # include <ver.h>
# endif # endif
# include <log.h>

View File

@ -9,8 +9,8 @@ include ../Makefile.rule
DEP += libnode.h ../include/node.h Makefile DEP += libnode.h ../include/node.h ../../liblog/include/log.h Makefile
INCLUDE += -I . -I ../include INCLUDE += -I . -I ../include -I ../../liblog/include
ifdef _LIBVER_SUPPORT ifdef _LIBVER_SUPPORT
DEP += ../../libver/ver.h DEP += ../../libver/ver.h

View File

@ -1,18 +1,13 @@
/*---------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
/* $RCSfile: libnode.c,v $ */ /* libnode.c */
/*---------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
/* $Revision: 2.17 $ */
/* $Name: libnode-2_2_0-1 $ */
/* $Date: 2010/06/06 21:26:31 $ */
/* $Author: agibert $ */
/*---------------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
/* This file is part of LibNode */ /* This file is part of LibNode */
/* */ /* */
/* LibNode is free software; you can redistribute it and/or modify */ /* LibNode is free software: you can redistribute it and/or modify it */
/* it under the terms of the GNU Lesser General Public Licence as published by */ /* under the terms of the GNU Lesser General Public License as published */
/* the Free Software Foundation; either version 2.1 of the License, or */ /* by the Free Software Foundation, either version 3 of the License, or */
/* (at your option) any later version. */ /* (at your option) any later version. */
/* */ /* */
/* LibNode is distributed in the hope that it will be useful, */ /* LibNode is distributed in the hope that it will be useful, */
@ -20,21 +15,23 @@
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU Lesser General Public License for more details. */ /* GNU Lesser General Public License for more details. */
/* */ /* */
/* You should have received a copy of the GNU Lesser General Public License */ /* You should have received a copy of the GNU Lesser General Public */
/* along with LibNode; if not, write to the Free Software */ /* License along with Drummer. If not, see */
/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* <https://www.gnu.org/licenses/>. */
/*---------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
/* Includes */
/*----------------------------------------------------------------------------*/
#define _LIBNODE_C_ #define _LIBNODE_C_
#include <libnode.h> #include <libnode.h>
#ifdef _LIBVER_SUPPORT #ifdef _LIBVER_SUPPORT
VER_INFO_EXPORT( libnode, "$Revision: 2.17 $", "$Name: libnode-2_2_0-1 $", __FILE__, "$Author: agibert $") //VER_INFO_EXPORT( libnode, "$Revision: 2.17 $", "$Name: libnode-2_2_0-1 $", __FILE__, "$Author: agibert $")
#endif #endif
@ -76,6 +73,7 @@ NDT_Status ND_Default_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT
ND_VA_ARG_GET( Cmd, *Args_Ptr, NDT_Command); ND_VA_ARG_GET( Cmd, *Args_Ptr, NDT_Command);
ND_VA_ARG_GET( Value_Ptr, *Args_Ptr, void *); ND_VA_ARG_GET( Value_Ptr, *Args_Ptr, void *);
*/ */
ND_VA_ARG_GET( Reply_Index_Id_Ptr, *Args_Ptr, NDT_Index_Id *); ND_VA_ARG_GET( Reply_Index_Id_Ptr, *Args_Ptr, NDT_Index_Id *);
ND_VA_ARG_GET( Reply_Command_Ptr, *Args_Ptr, NDT_Command *); ND_VA_ARG_GET( Reply_Command_Ptr, *Args_Ptr, NDT_Command *);
ND_VA_ARG_GET( Cmd, *Args_Ptr, NDT_Command); ND_VA_ARG_GET( Cmd, *Args_Ptr, NDT_Command);
@ -359,7 +357,6 @@ NDT_Status ND_Default_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id, NDT
ND_VA_LIST_CLOSE( user_args); ND_VA_LIST_CLOSE( user_args);
void *Value_Ptr = Node_Ptr->Value; void *Value_Ptr = Node_Ptr->Value;
*/ */
@ -669,6 +666,9 @@ NDT_Status ND_OpenStruct_Manager( NDT_Root *Root_Ptr, NDT_Index_Id Index_Id,
NDT_Status ND_Library_Open_I( int Debug_Mode) NDT_Status ND_Library_Open_I( int Debug_Mode)
{ {
LGT_Status lg_status;
NDG_Base.Debug_Mode = Debug_Mode; NDG_Base.Debug_Mode = Debug_Mode;
NDG_Base.Open_Status = NDD_TRUE; NDG_Base.Open_Status = NDD_TRUE;
@ -677,6 +677,13 @@ NDT_Status ND_Library_Open_I( int Debug_Mode)
ND_Library_StdErr_Set_I( stderr); ND_Library_StdErr_Set_I( stderr);
} }
if( ( lg_status = LG_Library_Open( LGD_LOG_WRITER_DEFAULT, true)) != LGS_OK)
{
fprintf( stderr, "Can't open LibLog library: (%d)\n", lg_status);
return( -1);
}
#if !defined(_WIN32) #if !defined(_WIN32)
if( ( NDG_Base.DL_Ptr = dlopen( NULL, ( RTLD_NOW | RTLD_GLOBAL))) == NULL) if( ( NDG_Base.DL_Ptr = dlopen( NULL, ( RTLD_NOW | RTLD_GLOBAL))) == NULL)
{ {
@ -2300,13 +2307,22 @@ NDT_Status ND_Index_Info_Print_I( FILE *Out, NDT_Root *Root_Ptr, NDT_Index_Id
{ {
memset( offset, ' ', Recursive_Offset * ND_RECURSIVE_PRINT_OFFSET); memset( offset, ' ', Recursive_Offset * ND_RECURSIVE_PRINT_OFFSET);
offset[Recursive_Offset * ND_RECURSIVE_PRINT_OFFSET] = '\0'; offset[Recursive_Offset * ND_RECURSIVE_PRINT_OFFSET] = '\0';
/*
fprintf( Out, "%s Index Id: (%d)\tType: (%#06x) [%s:%s:%s]\tNode Nb: (%ld)\tHead: (%s%p)\tTail: (%s%p)\n%s Min Depth: (%ld)\tMax Depth: (%ld)\tMax Dif: (%ld)\tNb Equ: (%ld)\tSave: (%s%p)\n\n", fprintf( Out, "%s Index Id: (%d)\tType: (%#06x) [%s:%s:%s]\tNode Nb: (%ld)\tHead: (%s%p)\tTail: (%s%p)\n%s Min Depth: (%ld)\tMax Depth: (%ld)\tMax Dif: (%ld)\tNb Equ: (%ld)\tSave: (%s%p)\n\n",
offset, Index_Id, Root_Ptr->Index_Tab[Index_Id].Type, ND_INDEX_STATUS_ASCII_GET( Root_Ptr, Index_Id), ND_INDEX_TYPE_ASCII_GET( Root_Ptr, Index_Id), ND_INDEX_SUBTYPE_ASCII_GET( Root_Ptr, Index_Id), offset, Index_Id, Root_Ptr->Index_Tab[Index_Id].Type, ND_INDEX_STATUS_ASCII_GET( Root_Ptr, Index_Id), ND_INDEX_TYPE_ASCII_GET( Root_Ptr, Index_Id), ND_INDEX_SUBTYPE_ASCII_GET( Root_Ptr, Index_Id),
Root_Ptr->Index_Tab[Index_Id].Node_Number, Root_Ptr->Index_Tab[Index_Id].Node_Number,
NDD_PRINTF_PTR_PREFIX, Root_Ptr->Index_Tab[Index_Id].Head, NDD_PRINTF_PTR_PREFIX, Root_Ptr->Index_Tab[Index_Id].Tail, NDD_PRINTF_PTR_PREFIX, Root_Ptr->Index_Tab[Index_Id].Head, NDD_PRINTF_PTR_PREFIX, Root_Ptr->Index_Tab[Index_Id].Tail,
offset, Root_Ptr->Index_Tab[Index_Id].Min_Depth, Root_Ptr->Index_Tab[Index_Id].Max_Depth, Root_Ptr->Index_Tab[Index_Id].Max_Dif, Root_Ptr->Index_Tab[Index_Id].Nb_Equ, offset, Root_Ptr->Index_Tab[Index_Id].Min_Depth, Root_Ptr->Index_Tab[Index_Id].Max_Depth, Root_Ptr->Index_Tab[Index_Id].Max_Dif, Root_Ptr->Index_Tab[Index_Id].Nb_Equ,
NDD_PRINTF_PTR_PREFIX, Root_Ptr->Index_Tab[Index_Id].Save); NDD_PRINTF_PTR_PREFIX, Root_Ptr->Index_Tab[Index_Id].Save);
*/
LG_LOG_INFO_11( "%s Index Id: (%d)\tType: (%#06x) [%s:%s:%s]\tNode Nb: (%ld)\tHead: (%s%p)\tTail: (%s%p)",
offset, Index_Id, Root_Ptr->Index_Tab[Index_Id].Type, ND_INDEX_STATUS_ASCII_GET( Root_Ptr, Index_Id), ND_INDEX_TYPE_ASCII_GET( Root_Ptr, Index_Id), ND_INDEX_SUBTYPE_ASCII_GET( Root_Ptr, Index_Id),
Root_Ptr->Index_Tab[Index_Id].Node_Number, NDD_PRINTF_PTR_PREFIX, Root_Ptr->Index_Tab[Index_Id].Head, NDD_PRINTF_PTR_PREFIX, Root_Ptr->Index_Tab[Index_Id].Tail);
LG_LOG_INFO_7( "%s Min Depth: (%ld)\tMax Depth: (%ld)\tMax Dif: (%ld)\tNb Equ: (%ld)\tSave: (%s%p)",
offset, Root_Ptr->Index_Tab[Index_Id].Min_Depth, Root_Ptr->Index_Tab[Index_Id].Max_Depth, Root_Ptr->Index_Tab[Index_Id].Max_Dif, Root_Ptr->Index_Tab[Index_Id].Nb_Equ,
NDD_PRINTF_PTR_PREFIX, Root_Ptr->Index_Tab[Index_Id].Save);
LG_LOG_INFO_0( "");
} }
if( ND_RECURSIVE_CHILD_IS(Recursive_Mode)) if( ND_RECURSIVE_CHILD_IS(Recursive_Mode))
@ -2394,11 +2410,19 @@ NDT_Status ND_DataStruct_Info_Print_I( FILE *Out, NDT_Root *Root_Ptr, NDT_Recu
status = ND_Manager_Exec_I( Root_Ptr, NDD_INDEX_UNKNOWN, NULL, NDD_CMD_MANAGER_VERSION, &version_name); status = ND_Manager_Exec_I( Root_Ptr, NDD_INDEX_UNKNOWN, NULL, NDD_CMD_MANAGER_VERSION, &version_name);
if( ND_ERROR( status)) return( status); if( ND_ERROR( status)) return( status);
/*
fprintf( Out, "%sRoot: (%s%p)\tIndex Nb: (%d)\tIndex Open Count: (%d)\tManager: (%s%p) [%s]\n%sAllocator: (%s%p) [%s]\tDeallocator: (%s%p) [%s]\tUser: (%s%p)\n%sManager Version: [%s]\n\n", fprintf( Out, "%sRoot: (%s%p)\tIndex Nb: (%d)\tIndex Open Count: (%d)\tManager: (%s%p) [%s]\n%sAllocator: (%s%p) [%s]\tDeallocator: (%s%p) [%s]\tUser: (%s%p)\n%sManager Version: [%s]\n\n",
offset, NDD_PRINTF_PTR_PREFIX, Root_Ptr, Root_Ptr->Index_Nb, Root_Ptr->Index_Open_Count, NDD_PRINTF_PTR_PREFIX, Root_Ptr->Manager_Ptr, Root_Ptr->Manager_Name, offset, NDD_PRINTF_PTR_PREFIX, Root_Ptr, Root_Ptr->Index_Nb, Root_Ptr->Index_Open_Count, NDD_PRINTF_PTR_PREFIX, Root_Ptr->Manager_Ptr, Root_Ptr->Manager_Name,
offset, NDD_PRINTF_PTR_PREFIX, Root_Ptr->Allocator_Ptr, Root_Ptr->Allocator_Name, NDD_PRINTF_PTR_PREFIX, Root_Ptr->Deallocator_Ptr, Root_Ptr->Deallocator_Name, NDD_PRINTF_PTR_PREFIX, Root_Ptr->User_Ptr, offset, NDD_PRINTF_PTR_PREFIX, Root_Ptr->Allocator_Ptr, Root_Ptr->Allocator_Name, NDD_PRINTF_PTR_PREFIX, Root_Ptr->Deallocator_Ptr, Root_Ptr->Deallocator_Name, NDD_PRINTF_PTR_PREFIX, Root_Ptr->User_Ptr,
offset, version_name); offset, version_name);
*/
LG_LOG_INFO_8( "%sRoot: (%s%p)\tIndex Nb: (%d)\tIndex Open Count: (%d)\tManager: (%s%p) [%s]",
offset, NDD_PRINTF_PTR_PREFIX, Root_Ptr, Root_Ptr->Index_Nb, Root_Ptr->Index_Open_Count, NDD_PRINTF_PTR_PREFIX, Root_Ptr->Manager_Ptr, Root_Ptr->Manager_Name);
LG_LOG_INFO_9( "%sAllocator: (%s%p) [%s]\tDeallocator: (%s%p) [%s]\tUser: (%s%p)",
offset, NDD_PRINTF_PTR_PREFIX, Root_Ptr->Allocator_Ptr, Root_Ptr->Allocator_Name, NDD_PRINTF_PTR_PREFIX, Root_Ptr->Deallocator_Ptr, Root_Ptr->Deallocator_Name, NDD_PRINTF_PTR_PREFIX, Root_Ptr->User_Ptr);
LG_LOG_INFO_2( "%sManager Version: [%s]", offset, version_name);
LG_LOG_INFO_0( "");
} }
if( ND_RECURSIVE_CHILD_IS( Recursive_Mode)) if( ND_RECURSIVE_CHILD_IS( Recursive_Mode))

View File

@ -1,18 +1,13 @@
/*---------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
/* $RCSfile: libnode.h,v $ */ /* libnode.h */
/*---------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
/* $Revision: 2.10 $ */
/* $Name: libnode-2_2_0-1 $ */
/* $Date: 2010/06/06 21:26:31 $ */
/* $Author: agibert $ */
/*---------------------------------------------------------------------------------*/
/*---------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
/* This file is part of LibNode */ /* This file is part of LibNode */
/* */ /* */
/* LibNode is free software; you can redistribute it and/or modify */ /* LibNode is free software: you can redistribute it and/or modify it */
/* it under the terms of the GNU Lesser General Public Licence as published by */ /* under the terms of the GNU Lesser General Public License as published */
/* the Free Software Foundation; either version 2.1 of the License, or */ /* by the Free Software Foundation, either version 3 of the License, or */
/* (at your option) any later version. */ /* (at your option) any later version. */
/* */ /* */
/* LibNode is distributed in the hope that it will be useful, */ /* LibNode is distributed in the hope that it will be useful, */
@ -20,14 +15,16 @@
/* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */ /* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the */
/* GNU Lesser General Public License for more details. */ /* GNU Lesser General Public License for more details. */
/* */ /* */
/* You should have received a copy of the GNU Lesser General Public License */ /* You should have received a copy of the GNU Lesser General Public */
/* along with LibNode; if not, write to the Free Software */ /* License along with Drummer. If not, see */
/* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ /* <https://www.gnu.org/licenses/>. */
/*---------------------------------------------------------------------------------*/ /*----------------------------------------------------------------------------*/
/*----------------------------------------------------------------------------*/
/* Includes */
/*----------------------------------------------------------------------------*/
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
@ -51,6 +48,14 @@
/*----------------------------------------------------------------------------*/
/* Definitions */
/*----------------------------------------------------------------------------*/
#define LGD_MODULE_NAME "nd"
#ifdef __linux #ifdef __linux
# define NDD_PRINTF_PTR_PREFIX "" # define NDD_PRINTF_PTR_PREFIX ""
#else #else

View File

@ -11,12 +11,12 @@ include ../Makefile.rule
DEP_STATIC += ../lib/libnode.a DEP_STATIC += ../lib/libnode.a ../../liblog/lib/liblog.a
DEP_DYNAMIC += ../lib/libnode.so DEP_DYNAMIC += ../lib/libnode.so ../../liblog/lib/liblog.so
INCLUDE += -I . -I ../include INCLUDE += -I . -I ../include -I ../../liblog/include
LIBDIR += -L . -L ../lib LIBDIR += -L . -L ../lib -L ../../liblog/lib
LIB_STATIC += ../lib/libnode.a -ldl LIB_STATIC += ../lib/libnode.a ../../liblog/lib/liblog.a -ldl
LIB_DYNAMIC += -lnode -ldl LIB_DYNAMIC += -lnode -llog -ldl
CFLAGS += -rdynamic CFLAGS += -rdynamic
ifdef _LIBVER_SUPPORT ifdef _LIBVER_SUPPORT