| 106 | |
| 107 | === Configuration macros are not set properly by configure script === #crlf |
| 108 | |
| 109 | Q: After running {{{./configure}}} script successfully, {{{make}}} returns this error: |
| 110 | {{{ |
| 111 | .. |
| 112 | ../../pjlib/include/pj/config.h:1006:4: error: #error |
| 113 | "PJ_HAS_HIGH_RES_TIMER is not defined!" |
| 114 | ../../pjlib/include/pj/config.h:1022:4: error: #error |
| 115 | "PJ_EMULATE_RWMUTEX should be defined in compat/os_xx.h" |
| 116 | .. |
| 117 | }}} |
| 118 | |
| 119 | And upon inspecting {{{pjlib/include/pj/compat/os_auto.h}}}, all macros are undefined: |
| 120 | {{{ |
| 121 | ... |
| 122 | /* Canonical OS name */ |
| 123 | /* #undef PJ_OS_NAME */ |
| 124 | |
| 125 | /* Legacy macros */ |
| 126 | /* #undef PJ_WIN32 */ |
| 127 | /* #undef PJ_WIN32_WINNT */ |
| 128 | ... |
| 129 | }}} |
| 130 | |
| 131 | However {{{config.log}}} shows that these macros have been resolved properly: |
| 132 | {{{ |
| 133 | .. |
| 134 | ## ----------- ## |
| 135 | ## confdefs.h. ## |
| 136 | ## ----------- ## |
| 137 | |
| 138 | #define HAVE_INTTYPES_H 1 |
| 139 | #define HAVE_LIBM 1 |
| 140 | #define HAVE_LIBNSL 1 |
| 141 | #define HAVE_LIBPTHREAD 1 |
| 142 | }}} |
| 143 | |
| 144 | A: According to this discussion entitled [http://lists.pjsip.org/pipermail/pjsip_lists.pjsip.org/2008-May/002915.html Error in configuring SVN version, on Linux, i686] on pjsip mailing list, this was caused by incorrect CRLF line endings in the {{{pjlib/include/pj/compat/os_auto.h.in}}} file, causing {{{sed}}} to fail. If you're working on Linux, make sure that you use the {{{.tar.gz}}} tarball rather than the {{{.zip}}} file since both have different CRLF formatting, and be careful when transferring/editing source files between your Linux and a Windows machine. |
| 145 | |