📄 config.h
字号:
/* $Id: config.h 1246 2007-05-03 13:31:21Z bennylp $ */
/*
* Copyright (C)2003-2007 Benny Prijono <benny@prijono.org>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef __PJ_CONFIG_H__
#define __PJ_CONFIG_H__
/**
* @file config.h
* @brief PJLIB Main configuration settings.
*/
/********************************************************************
* Include compiler specific configuration.
*/
#if defined(_MSC_VER)
# include <pj/compat/cc_msvc.h>
#elif defined(__GNUC__)
# include <pj/compat/cc_gcc.h>
#elif defined(__CW32__)
# include <pj/compat/cc_mwcc.h>
#elif defined(__MWERKS__)
# include <pj/compat/cc_codew.h>
#elif defined(__GCCE__)
# include <pj/compat/cc_gcce.h>
#elif defined(__ARMCC__)
# include <pj/compat/cc_armcc.h>
#else
# error "Unknown compiler."
#endif
/********************************************************************
* Include target OS specific configuration.
*/
#if defined(PJ_AUTOCONF)
/*
* Autoconf
*/
# include <pj/compat/os_auto.h>
#elif defined(PJ_SYMBIAN) && PJ_SYMBIAN!=0
/*
* SymbianOS
*/
# include <pj/compat/os_symbian.h>
#elif defined(PJ_WIN32_WINCE) || defined(_WIN32_WCE) || defined(UNDER_CE)
/*
* Windows CE
*/
# undef PJ_WIN32_WINCE
# define PJ_WIN32_WINCE 1
# include <pj/compat/os_win32_wince.h>
/* Also define Win32 */
# define PJ_WIN32 1
#elif defined(PJ_WIN32) || defined(_WIN32) || defined(__WIN32__) || \
defined(_WIN64) || defined(WIN32) || defined(__TOS_WIN__)
/*
* Win32
*/
# undef PJ_WIN32
# define PJ_WIN32 1
# include <pj/compat/os_win32.h>
#elif defined(PJ_LINUX_KERNEL) && PJ_LINUX_KERNEL!=0
/*
* Linux kernel
*/
# include <pj/compat/os_linux_kernel.h>
#elif defined(PJ_LINUX) || defined(linux) || defined(__linux)
/*
* Linux
*/
# undef PJ_LINUX
# define PJ_LINUX 1
# include <pj/compat/os_linux.h>
#elif defined(PJ_PALMOS) && PJ_PALMOS!=0
/*
* Palm
*/
# include <pj/compat/os_palmos.h>
#elif defined(PJ_SUNOS) || defined(sun) || defined(__sun)
/*
* SunOS
*/
# undef PJ_SUNOS
# define PJ_SUNOS 1
# include <pj/compat/os_sunos.h>
#elif defined(PJ_DARWINOS) || defined(__MACOSX__)
/*
* MacOS X
*/
# undef PJ_DARWINOS
# define PJ_DARWINOS 1
# include <pj/compat/os_darwinos.h>
#elif defined(PJ_RTEMS) && PJ_RTEMS!=0
/*
* RTEMS
*/
# include <pj/compat/os_rtems.h>
#else
# error "Please specify target os."
#endif
/********************************************************************
* Target machine specific configuration.
*/
#if defined(PJ_AUTOCONF)
/*
* Autoconf configured
*/
#include <pj/compat/m_auto.h>
#elif defined (PJ_M_I386) || defined(_i386_) || defined(i_386_) || \
defined(_X86_) || defined(x86) || defined(__i386__) || \
defined(__i386) || defined(_M_IX86) || defined(__I86__)
/*
* Generic i386 processor family, little-endian
*/
# undef PJ_M_I386
# define PJ_M_I386 1
# define PJ_M_NAME "i386"
# define PJ_HAS_PENTIUM 1
# define PJ_IS_LITTLE_ENDIAN 1
# define PJ_IS_BIG_ENDIAN 0
#elif defined (PJ_M_X86_64) || defined(__amd64__) || defined(__amd64) || \
defined(__x86_64__) || defined(__x86_64)
/*
* AMD 64bit processor, little endian
*/
# undef PJ_M_X86_64
# define PJ_M_X86_64 1
# define PJ_M_NAME "x86_64"
# define PJ_HAS_PENTIUM 1
# define PJ_IS_LITTLE_ENDIAN 1
# define PJ_IS_BIG_ENDIAN 0
#elif defined(PJ_M_IA64) || defined(__ia64__) || defined(_IA64) || \
defined(__IA64__) || defined( _M_IA64)
/*
* Intel IA64 processor, little endian
*/
# undef PJ_M_IA64
# define PJ_M_IA64 1
# define PJ_M_NAME "ia64"
# define PJ_HAS_PENTIUM 1
# define PJ_IS_LITTLE_ENDIAN 1
# define PJ_IS_BIG_ENDIAN 0
#elif defined (PJ_M_M68K) && PJ_M_M68K != 0
/*
* Motorola m64k processor, little endian
*/
# undef PJ_M_M68K
# define PJ_M_M68K 1
# define PJ_M_NAME "m68k"
# define PJ_HAS_PENTIUM 0
# define PJ_IS_LITTLE_ENDIAN 1
# define PJ_IS_BIG_ENDIAN 0
#elif defined (PJ_M_ALPHA) || defined (__alpha__) || defined (__alpha) || \
defined (_M_ALPHA)
/*
* DEC Alpha processor, little endian
*/
# undef PJ_M_ALPHA
# define PJ_M_ALPHA 1
# define PJ_M_NAME "alpha"
# define PJ_HAS_PENTIUM 0
# define PJ_IS_LITTLE_ENDIAN 1
# define PJ_IS_BIG_ENDIAN 0
#elif defined(PJ_M_MIPS) || defined(__mips__) || defined(__mips) || \
defined(__MIPS__) || defined(MIPS) || defined(_MIPS_)
/*
* MIPS, default to little endian
*/
# undef PJ_M_MIPS
# define PJ_M_MIPS 1
# define PJ_M_NAME "mips"
# define PJ_HAS_PENTIUM 0
# if !defined(PJ_IS_LITTLE_ENDIAN) && !defined(PJ_IS_BIG_ENDIAN)
# define PJ_IS_LITTLE_ENDIAN 1
# define PJ_IS_BIG_ENDIAN 0
# endif
#elif defined (PJ_M_SPARC) || defined( __sparc__) || defined(__sparc)
/*
* Sun Sparc, big endian
*/
# undef PJ_M_SPARC
# define PJ_M_SPARC 1
# define PJ_M_NAME "sparc"
# define PJ_HAS_PENTIUM 0
# define PJ_IS_LITTLE_ENDIAN 0
# define PJ_IS_BIG_ENDIAN 1
#elif defined (PJ_M_ARMV4) || defined(ARM) || defined(_ARM_) || \
defined(ARMV4) || defined(__arm__)
/*
* ARM, default to little endian
*/
# undef PJ_M_ARMV4
# define PJ_M_ARMV4 1
# define PJ_M_NAME "armv4"
# define PJ_HAS_PENTIUM 0
# if !defined(PJ_IS_LITTLE_ENDIAN) && !defined(PJ_IS_BIG_ENDIAN)
# define PJ_IS_LITTLE_ENDIAN 1
# define PJ_IS_BIG_ENDIAN 0
# endif
#elif defined (PJ_M_POWERPC) || defined(__powerpc) || defined(__powerpc__) || \
defined(__POWERPC__) || defined(__ppc__) || defined(_M_PPC) || \
defined(_ARCH_PPC)
/*
* PowerPC, big endian
*/
# undef PJ_M_POWERPC
# define PJ_M_POWERPC 1
# define PJ_M_NAME "powerpc"
# define PJ_HAS_PENTIUM 0
# define PJ_IS_LITTLE_ENDIAN 0
# define PJ_IS_BIG_ENDIAN 1
#else
# error "Please specify target machine."
#endif
/* Include size_t definition. */
#include <pj/compat/size_t.h>
/* Include site/user specific configuration to control PJLIB features.
* YOU MUST CREATE THIS FILE YOURSELF!!
*/
#include <pj/config_site.h>
/********************************************************************
* PJLIB Features.
*/
/* Overrides for DOXYGEN */
#ifdef DOXYGEN
# undef PJ_FUNCTIONS_ARE_INLINED
# undef PJ_HAS_FLOATING_POINT
# undef PJ_LOG_MAX_LEVEL
# undef PJ_LOG_MAX_SIZE
# undef PJ_LOG_USE_STACK_BUFFER
# undef PJ_TERM_HAS_COLOR
# undef PJ_POOL_DEBUG
# undef PJ_HAS_TCP
# undef PJ_MAX_HOSTNAME
# undef PJ_IOQUEUE_MAX_HANDLES
# undef FD_SETSIZE
# undef PJ_HAS_SEMAPHORE
# undef PJ_HAS_EVENT_OBJ
# undef PJ_ENABLE_EXTRA_CHECK
# undef PJ_EXCEPTION_USE_WIN32_SEH
# undef PJ_HAS_ERROR_STRING
#endif
/**
* @defgroup pj_config Build Configuration
* @ingroup PJ
* @{
*
* This section contains macros that can set during PJLIB build process
* to controll various aspects of the library.
*
* <b>Note</b>: the values in this page does NOT necessarily reflect to the
* macro values during the build process.
*/
/**
* If this macro is set to 1, it will enable some debugging checking
* in the library.
*
* Default: equal to (NOT NDEBUG).
*/
#ifndef PJ_DEBUG
# ifndef NDEBUG
# define PJ_DEBUG 1
# else
# define PJ_DEBUG 0
# endif
#endif
/**
* Expand functions in *_i.h header files as inline.
*
* Default: 0.
*/
#ifndef PJ_FUNCTIONS_ARE_INLINED
# define PJ_FUNCTIONS_ARE_INLINED 0
#endif
/**
* Use floating point computations in the library.
*
* Default: 1.
*/
#ifndef PJ_HAS_FLOATING_POINT
# define PJ_HAS_FLOATING_POINT 1
#endif
/**
* Declare maximum logging level/verbosity. Lower number indicates higher
* importance, with the highest importance has level zero. The least
* important level is five in this implementation, but this can be extended
* by supplying the appropriate implementation.
*
* The level conventions:
* - 0: fatal error
* - 1: error
* - 2: warning
* - 3: info
* - 4: debug
* - 5: trace
* - 6: more detailed trace
*
* Default: 4
*/
#ifndef PJ_LOG_MAX_LEVEL
# define PJ_LOG_MAX_LEVEL 5
#endif
/**
* Maximum message size that can be sent to output device for each call
* to PJ_LOG(). If the message size is longer than this value, it will be cut.
* This may affect the stack usage, depending whether PJ_LOG_USE_STACK_BUFFER
* flag is set.
*
* Default: 2000
*/
#ifndef PJ_LOG_MAX_SIZE
# define PJ_LOG_MAX_SIZE 2000
#endif
/**
* Log buffer.
* Does the log get the buffer from the stack? (default is yes).
* If the value is set to NO, then the buffer will be taken from static
* buffer, which in this case will make the log function non-reentrant.
*
* Default: 1
*/
#ifndef PJ_LOG_USE_STACK_BUFFER
# define PJ_LOG_USE_STACK_BUFFER 1
#endif
/**
* Colorfull terminal (for logging etc).
*
* Default: 1
*/
#ifndef PJ_TERM_HAS_COLOR
# define PJ_TERM_HAS_COLOR 1
#endif
/**
* If pool debugging is used, then each memory allocation from the pool
* will call malloc(), and pool will release all memory chunks when it
* is destroyed. This works better when memory verification programs
* such as Rational Purify is used.
*
* Default: 0
*/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -