1 dnl This is copyright RĂ¼diger Kuhlmann <info@ruediger-kuhlmann.de>
3 AC_DEFUN([AC_FUNC_SNPRINTF],
4 [AC_CHECK_FUNCS(snprintf vsnprintf)
5 AC_MSG_CHECKING(for working snprintf)
6 AC_CACHE_VAL(ac_cv_have_working_snprintf,
12 char bufs[5] = { 'x', 'x', 'x', '\0', '\0' };
13 char bufd[5] = { 'x', 'x', 'x', '\0', '\0' };
15 i = snprintf (bufs, 2, "%s", "111");
16 if (strcmp (bufs, "1")) exit (1);
18 i = snprintf (bufd, 2, "%d", 111);
19 if (strcmp (bufd, "1")) exit (1);
22 }], ac_cv_have_working_snprintf=yes, ac_cv_have_working_snprintf=no, ac_cv_have_working_snprintf=cross)])
23 AC_MSG_RESULT([$ac_cv_have_working_snprintf])
24 AC_MSG_CHECKING(for working vsnprintf)
25 AC_CACHE_VAL(ac_cv_have_working_vsnprintf,
30 int my_vsnprintf (char *buf, const char *tmpl, ...)
34 va_start (args, tmpl);
35 i = vsnprintf (buf, 2, tmpl, args);
42 char bufs[5] = { 'x', 'x', 'x', '\0', '\0' };
43 char bufd[5] = { 'x', 'x', 'x', '\0', '\0' };
45 i = my_vsnprintf (bufs, "%s", "111");
46 if (strcmp (bufs, "1")) exit (1);
48 i = my_vsnprintf (bufd, "%d", 111);
49 if (strcmp (bufd, "1")) exit (1);
52 }], ac_cv_have_working_vsnprintf=yes, ac_cv_have_working_vsnprintf=no, ac_cv_have_working_vsnprintf=cross)])
53 AC_MSG_RESULT([$ac_cv_have_working_vsnprintf])
54 if test x$ac_cv_have_working_snprintf$ac_cv_have_working_vsnprintf != "xyesyes"; then
56 AC_MSG_WARN([Replacing missing/broken (v)snprintf() with version from http://www.ijs.si/software/snprintf/.])
57 AC_DEFINE(PREFER_PORTABLE_SNPRINTF, 1, "enable replacement (v)snprintf if system (v)snprintf is broken")
60 dnl This macro figures out what libraries are required on this platform to link
61 dnl sockets programs. It's usually -lsocket and/or -lnsl or neither. We test for
62 dnl all three combinations.
63 dnl Copyright Warren Young <warren@etr-usa.com>
65 AC_DEFUN([ETR_SOCKET_NSL],
67 AC_CACHE_CHECK(for libraries containing socket functions,
72 #include <sys/types.h>
73 #include <sys/socket.h>
74 #include <netinet/in.h>
75 #include <arpa/inet.h>
79 int sd = socket(AF_INET, SOCK_STREAM, 0);
82 ac_cv_socket_libs=-lc, ac_cv_socket_libs=no)
84 if test x"$ac_cv_socket_libs" = "xno"
86 CFLAGS="$oCFLAGS -lsocket"
88 #include <sys/types.h>
89 #include <sys/socket.h>
90 #include <netinet/in.h>
91 #include <arpa/inet.h>
95 int sd = socket(AF_INET, SOCK_STREAM, 0);
98 ac_cv_socket_libs=-lsocket, ac_cv_socket_libs=no)
101 if test x"$ac_cv_socket_libs" = "xno"
103 CFLAGS="$oCFLAGS -lsocket -lnsl"
105 #include <sys/types.h>
106 #include <sys/socket.h>
107 #include <netinet/in.h>
108 #include <arpa/inet.h>
112 int sd = socket(AF_INET, SOCK_STREAM, 0);
115 ac_cv_socket_libs="-lsocket -lnsl", ac_cv_socket_libs=no)
121 if test x"$ac_cv_socket_libs" = "xno"
123 AC_MSG_ERROR([Cannot find socket libraries])
124 elif test x"$ac_cv_socket_libs" = "x-lc"
128 ETR_SOCKET_LIBS="$ac_cv_socket_libs"
131 AC_SUBST(ETR_SOCKET_LIBS)
132 ]) dnl ETR_SOCKET_NSL