📄 configure.in
字号:
AC_MSG_RESULT(unsigned int) RTP_SOCKLENTYPE_UINT="#define RTP_SOCKLENTYPE_UINT" ])CXXFLAGS="$oldcxxflags"dnl ---------------------------------------------------------------------------dnl Check if multicast options are knowndnl ---------------------------------------------------------------------------AC_MSG_CHECKING(if necessary options for IPv4 multicasting are available)AC_TRY_COMPILE([ #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h>],[ int testval; struct ip_mreq mreq,mreq2; mreq = mreq2; // avoid 'unused variable' testval = IP_MULTICAST_TTL; testval = IP_ADD_MEMBERSHIP; testval = IP_DROP_MEMBERSHIP;],[ AC_MSG_RESULT(yes) RTP_SUPPORT_IPV4MULTICAST="#define RTP_SUPPORT_IPV4MULTICAST"], AC_MSG_RESULT(no))dnl ---------------------------------------------------------------------------dnl Check if sockaddr has a length field (sa_len)dnl ---------------------------------------------------------------------------AC_MSG_CHECKING(if struct sockaddr has sa_len member)AC_TRY_COMPILE([ #include <sys/types.h> #include <sys/socket.h>],[ struct sockaddr sa; sa.sa_len = 0;],[ AC_MSG_RESULT(yes) RTP_HAVE_SOCKADDR_LEN="#define RTP_HAVE_SOCKADDR_LEN"], AC_MSG_RESULT(no))dnl ---------------------------------------------------------------------------dnl Check if compiler needs -LANG:std (needed on Irix)dnl ---------------------------------------------------------------------------AC_MSG_CHECKING(if compiler can compile programs with STL)AC_TRY_COMPILE([ #include <iostream>],[ std::cout << "Bla" << std::endl; ], AC_MSG_RESULT(yes), [AC_MSG_RESULT(no) AC_MSG_CHECKING(if compiler can compile STL programs with option -LANG:std) CXXFLAGS="$CXXFLAGS -LANG:std" AC_TRY_COMPILE([ #include <iostream>],[ std::cout << "Bla" << std::endl; ], AC_MSG_RESULT(yes),[ AC_MSG_RESULT(no) AC_MSG_ERROR(Unable to compile a trivial STL program)] ) ])dnl ---------------------------------------------------------------------------dnl Check for uint32_t etcdnl ---------------------------------------------------------------------------AC_MSG_CHECKING(if types like uint32_t exist)AC_TRY_COMPILE([ #include <inttypes.h>],[ uint32_t x; x = 0;], [AC_MSG_RESULT(yes) echo -e "#include <inttypes.h>\n#include <sys/types.h>" >src/rtptypes_unix.h ],[ AC_MSG_RESULT(no) echo "Generating src/rtptypes.h ..." if ! ( $CXX $CFLAGS -o tools/gettypes tools/gettypes.cpp >/dev/null 2>/dev/null ) ; then AC_MSG_ERROR(Unable to create src/rtptypes_unix.h) fi if ! ( tools/gettypes >src/rtptypes_unix.h ) ; then AC_MSG_ERROR(Unable to create src/rtptypes_unix.h) fi ])dnl ---------------------------------------------------------------------------dnl Check random functionsdnl ---------------------------------------------------------------------------AC_MSG_CHECKING(for drand48_r and srand48_r)AC_COMPILE_IFELSE([ #include <stdlib.h> int main(void) { struct drand48_data drandbuffer; double x; srand48_r(12345,&drandbuffer); drand48_r(&drandbuffer,&x); return 0; } ], [AC_MSG_RESULT(yes) RTP_SUPPORT_GNUDRAND="#define RTP_SUPPORT_GNUDRAND"], [ AC_MSG_RESULT(no) AC_MSG_CHECKING(for rand_r) AC_COMPILE_IFELSE([ #include <stdlib.h> int main(void) { unsigned int x; x = 12345; rand_r(&x); return 0; } ], [ AC_MSG_RESULT(yes) RTP_SUPPORT_RANDR="#define RTP_SUPPORT_RANDR"], [ AC_MSG_RESULT(no)]) ])dnl ---------------------------------------------------------------------------dnl Check getlogin_r functionsdnl ---------------------------------------------------------------------------AC_MSG_CHECKING(for getlogin_r)AC_COMPILE_IFELSE([ #include <unistd.h> int main(void) { char buf[[256]]; getlogin_r(buf,256); return 0; } ], [AC_MSG_RESULT(yes) RTP_SUPPORT_GETLOGINR="#define RTP_SUPPORT_GETLOGINR"], [ AC_MSG_RESULT(no) ]) dnl ---------------------------------------------------------------------------dnl Check IPv6 supportdnl ---------------------------------------------------------------------------AC_ARG_ENABLE(IPv6,[ --disable-IPv6 Disable support for IPv6],[ if test "$enableval" = yes ; then ipv6support="yes" else ipv6support="no" fi],[ ipv6support="yes" ])if test "$ipv6support" = "yes" ; then if test "$cross_compiling" = yes ; then cat << EOFABOUT IPv6 SUPPORT: Can't check if IPv6 support is possible when cross-compiling. For now, lets assume that you want IPv6 support enabled. To disable it, comment the two appropriate lines in src/rtpconfig_unix.h before running make.EOF else AC_MSG_CHECKING(IPv6 support) AC_RUN_IFELSE([ #include <sys/types.h> #include <sys/socket.h> int main(void) { int s; s = socket(PF_INET6,SOCK_DGRAM,0); if (s < 0) return -1; return 0; } ], [AC_MSG_RESULT(enabled) RTP_SUPPORT_IPV6="#define RTP_SUPPORT_IPV6" dnl --------------------------------------------------------------------------- dnl Check if multicast options are known dnl --------------------------------------------------------------------------- AC_MSG_CHECKING(if necessary options for IPv6 multicasting are available) AC_COMPILE_IFELSE([ #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> int main(void) { int testval; struct ipv6_mreq mreq,mreq2; mreq = mreq2; // avoid 'unused variable' testval = IPV6_MULTICAST_HOPS; testval = IPV6_JOIN_GROUP; testval = IPV6_LEAVE_GROUP; return 0; } ],[ AC_MSG_RESULT(yes) RTP_SUPPORT_IPV6MULTICAST="#define RTP_SUPPORT_IPV6MULTICAST"], AC_MSG_RESULT(no))], [ AC_MSG_RESULT(disabled) ]) fifidnl ---------------------------------------------------------------------------dnl Check if ifaddrs.h exists so we can use getifaddrsdnl ---------------------------------------------------------------------------AC_CHECK_HEADER(ifaddrs.h,[RTP_SUPPORT_IFADDRS="#define RTP_SUPPORT_IFADDRS"])dnl ---------------------------------------------------------------------------dnl Finish up...dnl ---------------------------------------------------------------------------AC_SUBST(RTP_FILIO)AC_SUBST(RTP_SOCKIO)AC_SUBST(RTP_ENDIAN)AC_SUBST(RTP_SOCKLENTYPE_UINT)AC_SUBST(RTP_JTHREADINCLUDES)AC_SUBST(RTP_HAVE_SOCKADDR_LEN)AC_SUBST(RTP_SUPPORT_IPV4MULTICAST)AC_SUBST(RTP_SUPPORT_THREAD)AC_SUBST(RTP_SUPPORT_SDESPRIV)AC_SUBST(RTP_SUPPORT_INLINETEMPLATEPARAM)AC_SUBST(RTP_SUPPORT_PROBATION)AC_SUBST(RTP_SUPPORT_GNUDRAND)AC_SUBST(RTP_SUPPORT_RANDR)AC_SUBST(RTP_SUPPORT_GETLOGINR)AC_SUBST(RTP_SUPPORT_IPV6)AC_SUBST(RTP_SUPPORT_IPV6MULTICAST)AC_SUBST(RTP_SUPPORT_IFADDRS)AC_SUBST(RTP_SUPPORT_SENDAPP)AC_SUBST(RTP_SUPPORT_MEMORYMANAGEMENT)AC_SUBST(RTP_LINKLIBS)AC_OUTPUT(Makefile \ src/Makefile \ src/rtpconfig_unix.h \ doc/Makefile \ tools/Makefile \ examples/Makefile \ pkgconfig/Makefile \ pkgconfig/jrtplib.pc \ pkgconfig/jrtplib-uninstalled.pc \ )
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -