📄 configure.in
字号:
[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 if compiler can handle inline function in template argumentdnl ---------------------------------------------------------------------------AC_MSG_CHECKING(if compiler supports an inline function as a template argument)AC_TRY_COMPILE([ #include "src/rtphashtable.h" inline int GetIndex(const int &elem) { return elem%10; }],[ RTPHashTable<int,GetIndex,10> table; ], [AC_MSG_RESULT(yes) RTP_SUPPORT_INLINETEMPLATEPARAM="#define RTP_SUPPORT_INLINETEMPLATEPARAM"], AC_MSG_RESULT(no) ) dnl ---------------------------------------------------------------------------dnl Check for u_int32_t etcdnl ---------------------------------------------------------------------------AC_MSG_CHECKING(if types like u_int32_t exist)AC_TRY_COMPILE([ #include <sys/types.h>],[ u_int32_t x; x = 0;], [AC_MSG_RESULT(yes) echo "#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 Check gstreamer supportdnl ---------------------------------------------------------------------------AC_ARG_ENABLE(gst,[ --disable-gst Disable support GStreamer],[ if test "$enableval" = yes ; then gstsupport="yes" else gstsupport="no" fi],[ gstsupport="yes" ])if test "$gstsupport" = "yes" ; then dnl uninstalled is selected preferentially -- see pkg-config(1) GST_REQ=0.9 GST_MAJORMINOR=0.9 PKG_CHECK_MODULES(GST, gstreamer-$GST_MAJORMINOR >= $GST_REQ, HAVE_GST="yes", HAVE_GST="no") dnl check for gstreamer-plugins-base; uinstalled is selected preferentially PKG_CHECK_MODULES(GST_PLUGINS_BASE, gstreamer-plugins-base-$GST_MAJORMINOR >= $GST_REQ, HAVE_GST_PLUGINS="yes", HAVE_GST_PLUGINS="no") if test "x$HAVE_GST_PLUGINS" = "xyes" && test "x$HAVE_GST" = "xyes"; then RTP_SUPPORT_GST="#define RTP_SUPPORT_GST" GST_LIBS="$GST_LIBS -lgstnet-$GST_MAJORMINOR" fi RTP_GSTINCLUDES="$GST_CFLAGS $GST_PLUGINS_BASE_CFLAGS" RTP_LINKLIBS="$RTP_LINKLIBS $GST_LIBS $GST_PLUGIN_BASE_LIBS"fidnl ---------------------------------------------------------------------------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_GST)AC_SUBST(RTP_GSTINCLUDES)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 + -