Ignore:
Timestamp:
Aug 1, 2006 11:01:55 PM (18 years ago)
Author:
bennylp
Message:

Fix PJLIB on WinCE:

  • Added CPU and OS autodetection feature in config.h. For target CPU type, now we don't need to specify PJ_M_* anymore.
  • Fix stricmp_alnum() link error on WinCE
  • Exclude error message test on WincE, since WinCE doesn't have full error reporting capability as Win32.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • pjproject/trunk/pjlib/include/pj/config.h

    r624 r640  
    4040 * Include target OS specific configuration. 
    4141 */ 
    42 #if defined(PJ_WIN32) && PJ_WIN32!=0 
    43 #  include <pj/compat/os_win32.h> 
    44 #elif defined(PJ_WIN32_WINCE) && PJ_WIN32_WINCE!=0 
    45 #  include <pj/compat/os_win32_wince.h> 
    46 #elif defined(PJ_LINUX) && PJ_LINUX!=0 
    47 #  include <pj/compat/os_linux.h> 
     42#if defined(PJ_WIN32_WINCE) || defined(_WIN32_WCE) || defined(UNDER_CE) 
     43    /* 
     44     * Windows CE 
     45     */ 
     46#   undef PJ_WIN32_WINCE 
     47#   define PJ_WIN32_WINCE   1 
     48#   include <pj/compat/os_win32_wince.h> 
     49 
     50    /* Also define Win32 */ 
     51#   define PJ_WIN32 1 
     52 
     53#elif defined(PJ_WIN32) || defined(_WIN32) || defined(__WIN32__) || \ 
     54        defined(_WIN64) || defined(WIN32) || defined(__TOS_WIN__) 
     55    /* 
     56     * Win32 
     57     */ 
     58#   undef PJ_WIN32 
     59#   define PJ_WIN32 1 
     60#   include <pj/compat/os_win32.h> 
     61 
    4862#elif defined(PJ_LINUX_KERNEL) && PJ_LINUX_KERNEL!=0 
     63    /* 
     64     * Linux kernel 
     65     */ 
    4966#  include <pj/compat/os_linux_kernel.h> 
     67 
     68#elif defined(PJ_LINUX) || defined(linux) || defined(__linux) 
     69    /* 
     70     * Linux 
     71     */ 
     72#   undef PJ_LINUX 
     73#   define PJ_LINUX         1 
     74#   include <pj/compat/os_linux.h> 
     75 
    5076#elif defined(PJ_PALMOS) && PJ_PALMOS!=0 
     77    /* 
     78     * Palm 
     79     */ 
    5180#  include <pj/compat/os_palmos.h> 
    52 #elif defined(PJ_SUNOS) && PJ_SUNOS!=0 
    53 #  include <pj/compat/os_sunos.h> 
    54 #elif defined(PJ_DARWINOS) && PJ_DARWINOS!=0 
    55 #  include <pj/compat/os_darwinos.h> 
     81 
     82#elif defined(PJ_SUNOS) || defined(sun) || defined(__sun) 
     83    /* 
     84     * SunOS 
     85     */ 
     86#   undef PJ_SUNOS 
     87#   define PJ_SUNOS         1 
     88#   include <pj/compat/os_sunos.h> 
     89 
     90#elif defined(PJ_DARWINOS) || defined(__MACOSX__) 
     91    /* 
     92     * MacOS X 
     93     */ 
     94#   undef PJ_DARWINOS 
     95#   define PJ_DARWINOS      1 
     96#   include <pj/compat/os_darwinos.h> 
     97 
    5698#elif defined(PJ_RTEMS) && PJ_RTEMS!=0 
     99    /* 
     100     * RTEMS 
     101     */ 
    57102#  include <pj/compat/os_rtems.h> 
    58103#else 
    59 error "Please specify target os." 
     104 error "Please specify target os." 
    60105#endif 
    61106 
     
    64109 * Target machine specific configuration. 
    65110 */ 
    66 #if defined (PJ_M_I386) && PJ_M_I386 != 0 
    67 #   include <pj/compat/m_i386.h> 
    68 #elif defined (PJ_M_X86_64) && PJ_M_X86_64 != 0 
    69 #   include <pj/compat/m_x86_64.h> 
     111#if defined (PJ_M_I386) || defined(_i386_) || defined(i_386_) || \ 
     112        defined(_X86_) || defined(x86) || defined(__i386__) || \ 
     113        defined(__i386) || defined(_M_IX86) || defined(__I86__) 
     114    /* 
     115     * Generic i386 processor family, little-endian 
     116     */ 
     117#   undef PJ_M_I386 
     118#   define PJ_M_I386            1 
     119#   define PJ_M_NAME            "i386" 
     120#   define PJ_HAS_PENTIUM       1 
     121#   define PJ_IS_LITTLE_ENDIAN  1 
     122#   define PJ_IS_BIG_ENDIAN     0 
     123 
     124 
     125#elif defined (PJ_M_X86_64) || defined(__amd64__) || defined(__amd64) || \ 
     126        defined(__x86_64__) || defined(__x86_64) 
     127    /* 
     128     * AMD 64bit processor, little endian 
     129     */ 
     130#   undef PJ_M_X86_64 
     131#   define PJ_M_X86_64          1 
     132#   define PJ_M_NAME            "x86_64" 
     133#   define PJ_HAS_PENTIUM       1 
     134#   define PJ_IS_LITTLE_ENDIAN  1 
     135#   define PJ_IS_BIG_ENDIAN     0 
     136 
     137#elif defined(PJ_M_IA64) || defined(__ia64__) || defined(_IA64) || \ 
     138        defined(__IA64__) || defined(   _M_IA64) 
     139    /* 
     140     * Intel IA64 processor, little endian 
     141     */ 
     142#   undef PJ_M_IA64 
     143#   define PJ_M_IA64            1 
     144#   define PJ_M_NAME            "ia64" 
     145#   define PJ_HAS_PENTIUM       1 
     146#   define PJ_IS_LITTLE_ENDIAN  1 
     147#   define PJ_IS_BIG_ENDIAN     0 
     148 
    70149#elif defined (PJ_M_M68K) && PJ_M_M68K != 0 
    71 #   include <pj/compat/m_m68k.h> 
    72 #elif defined (PJ_M_ALPHA) && PJ_M_ALPHA != 0 
    73 #   include <pj/compat/m_alpha.h> 
    74 #elif defined (PJ_M_SPARC) && PJ_M_SPARC != 0 
    75 #   include <pj/compat/m_sparc.h> 
    76 #elif defined (PJ_M_ARMV4) && PJ_M_ARMV4 != 0 
    77 #   include <pj/compat/m_armv4.h> 
    78 #elif defined (PJ_M_POWERPC) && PJ_M_POWERPC != 0 
    79 #   include <pj/compat/m_powerpc.h> 
     150 
     151    /* 
     152     * Motorola m64k processor, little endian 
     153     */ 
     154#   undef PJ_M_M68K 
     155#   define PJ_M_M68K            1 
     156#   define PJ_M_NAME            "m68k" 
     157#   define PJ_HAS_PENTIUM       0 
     158#   define PJ_IS_LITTLE_ENDIAN  1 
     159#   define PJ_IS_BIG_ENDIAN     0 
     160 
     161 
     162#elif defined (PJ_M_ALPHA) || defined (__alpha__) || defined (__alpha) || \ 
     163        defined (_M_ALPHA) 
     164    /* 
     165     * DEC Alpha processor, little endian 
     166     */ 
     167#   undef PJ_M_ALPHA 
     168#   define PJ_M_ALPHA           1 
     169#   define PJ_M_NAME            "alpha" 
     170#   define PJ_HAS_PENTIUM       0 
     171#   define PJ_IS_LITTLE_ENDIAN  1 
     172#   define PJ_IS_BIG_ENDIAN     0 
     173 
     174 
     175#elif defined(PJ_M_MIPS) || defined(__mips__) || defined(__mips) || \\ 
     176        defined(__MIPS__) || defined(MIPS) || defined(_MIPS_) 
     177    /* 
     178     * MIPS, little endian 
     179     */ 
     180#   undef PJ_M_MIPS 
     181#   define PJ_M_MIPS            1 
     182#   define PJ_M_NAME            "mips" 
     183#   define PJ_HAS_PENTIUM       0 
     184#   define PJ_IS_LITTLE_ENDIAN  1 
     185#   define PJ_IS_BIG_ENDIAN     0 
     186 
     187 
     188#elif defined (PJ_M_SPARC) || defined(  __sparc__) || defined(__sparc) 
     189    /* 
     190     * Sun Sparc, big endian 
     191     */ 
     192#   undef PJ_M_SPARC 
     193#   define PJ_M_SPARC           1 
     194#   define PJ_M_NAME            "sparc" 
     195#   define PJ_HAS_PENTIUM       0 
     196#   define PJ_IS_LITTLE_ENDIAN  0 
     197#   define PJ_IS_BIG_ENDIAN     1 
     198 
     199#elif defined (PJ_M_ARMV4) || defined(ARM) || defined(_ARM_) ||  \ 
     200        defined(ARMV4) || defined(__arm__) 
     201    /* 
     202     * ARM, default to little endian */ 
     203     */ 
     204#   undef PJ_M_ARMV4 
     205#   define PJ_M_ARMV4           1 
     206#   define PJ_M_NAME            "armv4" 
     207#   define PJ_HAS_PENTIUM       0 
     208#   if !defined(PJ_IS_LITTLE_ENDIAN) && !defined(PJ_IS_BIG_ENDIAN) 
     209#       define PJ_IS_LITTLE_ENDIAN      1 
     210#       define PJ_IS_BIG_ENDIAN         0 
     211#   endif 
     212 
     213#elif defined (PJ_M_POWERPC) || defined(__powerpc) || defined(__powerpc__) || \ 
     214        defined(__POWERPC__) || defined(__ppc__) || defined(_M_PPC) || \ 
     215        defined(_ARCH_PPC) 
     216    /* 
     217     * PowerPC, big endian 
     218     */ 
     219#   undef PJ_M_POWERPC 
     220#   define PJ_M_POWERPC         1 
     221#   define PJ_M_NAME            "powerpc" 
     222#   define PJ_HAS_PENTIUM       0 
     223#   define PJ_IS_LITTLE_ENDIAN  1 
     224#   define PJ_IS_BIG_ENDIAN     0 
     225 
    80226#else 
    81 error "Please specify target machine." 
     227 error "Please specify target machine." 
    82228#endif 
    83229 
Note: See TracChangeset for help on using the changeset viewer.