📄 configure.in
字号:
AC_SUBST(ISC_PLATFORM_NEEDVSNPRINTF)AC_SUBST(ISC_EXTRA_OBJS)AC_SUBST(ISC_EXTRA_SRCS)AC_CHECK_FUNC(strerror, [USE_SYSERROR_LIST="#undef USE_SYSERROR_LIST"], [USE_SYSERROR_LIST="#define USE_SYSERROR_LIST 1"])AC_SUBST(USE_SYSERROR_LIST)## Determine the printf format characters to use when printing# values of type isc_int64_t. We make the assumption that platforms# where a "long long" is the same size as a "long" (e.g., Alpha/OSF1)# want "%ld" and everyone else can use "%lld". Win32 uses "%I64d",# but that's defined elsewhere since we don't use configure on Win32.#AC_MSG_CHECKING(printf format modifier for 64-bit integers)AC_TRY_RUN([main() { exit(!(sizeof(long long int) == sizeof(long int))); }], [AC_MSG_RESULT(l) ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "l"'], [AC_MSG_RESULT(ll) ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "ll"'], [AC_MSG_RESULT(default ll) ISC_PLATFORM_QUADFORMAT='#define ISC_PLATFORM_QUADFORMAT "ll"'])AC_SUBST(ISC_PLATFORM_QUADFORMAT)## Security Stuff#AC_CHECK_FUNC(chroot, AC_DEFINE(HAVE_CHROOT))## for accept, recvfrom, getpeername etc.#AC_MSG_CHECKING(for socket length type)AC_TRY_COMPILE([#include <sys/types.h>#include <sys/socket.h>int accept(int, struct sockaddr *, socklen_t *);],[],[ISC_SOCKLEN_T="#define ISC_SOCKLEN_T socklen_t"AC_MSG_RESULT(socklen_t)],AC_TRY_COMPILE([#include <sys/types.h>#include <sys/socket.h>int accept(int, struct sockaddr *, unsigned int *);],[],[ISC_SOCKLEN_T="#define ISC_SOCKLEN_T unsigned int"AC_MSG_RESULT(unsigned int)],AC_TRY_COMPILE([#include <sys/types.h>#include <sys/socket.h>int accept(int, struct sockaddr *, unsigned long *);],[],[ISC_SOCKLEN_T="#define ISC_SOCKLEN_T unsigned long"AC_MSG_RESULT(unsigned long)],AC_TRY_COMPILE([#include <sys/types.h>#include <sys/socket.h>int accept(int, struct sockaddr *, long *);],[],[ISC_SOCKLEN_T="#define ISC_SOCKLEN_T long"AC_MSG_RESULT(long)],ISC_SOCKLEN_T="#define ISC_SOCKLEN_T int"AC_MSG_RESULT(int)))))AC_SUBST(ISC_SOCKLEN_T)AC_CHECK_FUNC(getgrouplist,AC_TRY_COMPILE([#include <unistd.h>intgetgrouplist(const char *name, int basegid, int *groups, int *ngroups) {}],[return (0);],GETGROUPLIST_ARGS="#define GETGROUPLIST_ARGS const char *name, int basegid, int *groups, int *ngroups",GETGROUPLIST_ARGS="#define GETGROUPLIST_ARGS const char *name, gid_t basegid, gid_t *groups, int *ngroups"),GETGROUPLIST_ARGS="#define GETGROUPLIST_ARGS const char *name, gid_t basegid, gid_t *groups, int *ngroups"AC_DEFINE(NEED_GETGROUPLIST))AC_SUBST(GETGROUPLIST_ARGS)AC_CHECK_FUNC(setgroupent,,AC_DEFINE(NEED_SETGROUPENT))case $host inia64-hp-hpux11.*);;*)AC_CHECK_FUNC(getnetbyaddr_r,AC_TRY_COMPILE([#undef _REENTRANT#define _REENTRANT#define _OSF_SOURCE#undef __USE_MISC#define __USE_MISC#include <netdb.h>struct netent *getnetbyaddr_r(long net, int type, struct netent *result, char *buffer,int buflen) {}],[return (0)],[NET_R_ARGS="#define NET_R_ARGS char *buf, int buflen"NET_R_BAD="#define NET_R_BAD NULL"NET_R_COPY="#define NET_R_COPY buf, buflen"NET_R_COPY_ARGS="#define NET_R_COPY_ARGS NET_R_ARGS"NET_R_OK="#define NET_R_OK nptr"NET_R_SETANSWER="#undef NET_R_SETANSWER"NET_R_RETURN="#define NET_R_RETURN struct netent *"GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T long"NETENT_DATA="#undef NETENT_DATA"],AC_TRY_COMPILE([#undef _REENTRANT#define _REENTRANT#define _OSF_SOURCE#undef __USE_MISC#define __USE_MISC#include <netdb.h>int getnetbyaddr_r (unsigned long int, int, struct netent *, char *, size_t, struct netent **, int *);],[return (0)],[NET_R_ARGS="#define NET_R_ARGS char *buf, size_t buflen, struct netent **answerp, int *h_errnop"NET_R_BAD="#define NET_R_BAD ERANGE"NET_R_COPY="#define NET_R_COPY buf, buflen"NET_R_COPY_ARGS="#define NET_R_COPY_ARGS char *buf, size_t buflen"NET_R_OK="#define NET_R_OK 0"NET_R_SETANSWER="#define NET_R_SETANSWER 1"NET_R_RETURN="#define NET_R_RETURN int"GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T unsigned long int"NETENT_DATA="#undef NETENT_DATA"],AC_TRY_COMPILE([#undef _REENTRANT#define _REENTRANT#define _OSF_SOURCE#undef __USE_MISC#define __USE_MISC#include <netdb.h>extern int getnetbyaddr_r(int, int, struct netent *, struct netent_data *);],[return (0)],[NET_R_ARGS="#define NET_R_ARGS struct netent_data *ndptr"NET_R_BAD="#define NET_R_BAD (-1)"NET_R_COPY="#define NET_R_COPY ndptr"NET_R_COPY_ARGS="#define NET_R_COPY_ARGS struct netent_data *ndptr"NET_R_OK="#define NET_R_OK 0"NET_R_SETANSWER="#undef NET_R_SETANSWER"NET_R_RETURN="#define NET_R_RETURN int"GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T int"NETENT_DATA="#define NETENT_DATA 1"],AC_TRY_COMPILE(#undef __USE_MISC#define __USE_MISC[#include <netdb.h>int getnetbyaddr_r (long, int, struct netent *, struct netent_data *);],[return (0)],[NET_R_ARGS="#define NET_R_ARGS struct netent_data *ndptr"NET_R_BAD="#define NET_R_BAD (-1)"NET_R_COPY="#define NET_R_COPY ndptr"NET_R_COPY_ARGS="#define NET_R_COPY_ARGS struct netent_data *ndptr"NET_R_OK="#define NET_R_OK 0"NET_R_SETANSWER="#undef NET_R_SETANSWER"NET_R_RETURN="#define NET_R_RETURN int"GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T long"NETENT_DATA="#define NETENT_DATA 1"],AC_TRY_COMPILE(#undef __USE_MISC#define __USE_MISC[#include <netdb.h>int getnetbyaddr_r (uint32_t, int, struct netent *, char *, size_t, struct netent **, int *);],[return (0)],[NET_R_ARGS="#define NET_R_ARGS char *buf, size_t buflen, struct netent **answerp, int *h_errnop"NET_R_BAD="#define NET_R_BAD ERANGE"NET_R_COPY="#define NET_R_COPY buf, buflen"NET_R_COPY_ARGS="#define NET_R_COPY_ARGS char *buf, size_t buflen"NET_R_OK="#define NET_R_OK 0"NET_R_SETANSWER="#define NET_R_SETANSWER 1"NET_R_RETURN="#define NET_R_RETURN int"GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T unsigned long int"NETENT_DATA="#undef NETENT_DATA"],))))),NET_R_ARGS="#define NET_R_ARGS char *buf, int buflen"NET_R_BAD="#define NET_R_BAD NULL"NET_R_COPY="#define NET_R_COPY buf, buflen"NET_R_COPY_ARGS="#define NET_R_COPY_ARGS NET_R_ARGS"NET_R_OK="#define NET_R_OK nptr"NET_R_SETANSWER="#undef NET_R_SETANSWER"NET_R_RETURN="#define NET_R_RETURN struct netent *"GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T long"NETENT_DATA="#undef NETENT_DATA")esaccase "$host" in*dec-osf*) GETNETBYADDR_ADDR_T="#define GETNETBYADDR_ADDR_T int" ;;esacAC_SUBST(NET_R_ARGS)AC_SUBST(NET_R_BAD)AC_SUBST(NET_R_COPY)AC_SUBST(NET_R_COPY_ARGS)AC_SUBST(NET_R_OK)AC_SUBST(NET_R_SETANSWER)AC_SUBST(NET_R_RETURN)AC_SUBST(GETNETBYADDR_ADDR_T)AC_SUBST(NETENT_DATA)AC_CHECK_FUNC(setnetent_r,AC_TRY_COMPILE([#undef __USE_MISC#define __USE_MISC#include <netdb.h>void setnetent_r (int);] ,[return (0);],[NET_R_ENT_ARGS="#undef NET_R_ENT_ARGS /*empty*/"NET_R_SET_RESULT="#undef NET_R_SET_RESULT /*empty*/"NET_R_SET_RETURN="#define NET_R_SET_RETURN void"],AC_TRY_COMPILE([#define _REENTRANT#undef __USE_MISC#define __USE_MISC#include <netdb.h>extern int setnetent_r(int, struct netent_data *);] ,[return (0);],[NET_R_ENT_ARGS="#define NET_R_ENT_ARGS struct netent_data *ndptr"NET_R_SET_RESULT="#define NET_R_SET_RESULT NET_R_OK"NET_R_SET_RETURN="#define NET_R_SET_RETURN int"],)),NET_R_ENT_ARGS="#undef NET_R_ENT_ARGS /*empty*/"NET_R_SET_RESULT="#undef NET_R_SET_RESULT /*empty*/"NET_R_SET_RETURN="#define NET_R_SET_RETURN void")AC_SUBST(NET_R_ENT_ARGS)AC_SUBST(NET_R_SET_RESULT)AC_SUBST(NET_R_SET_RETURN)case $host inia64-hp-hpux11.*);;*)AC_CHECK_FUNC(endnetent_r,AC_TRY_COMPILE([#undef _REENTRANT#define _REENTRANT#undef __USE_MISC#define __USE_MISC#include <netdb.h>void endnetent_r (void);] ,[return (0);],[NET_R_END_RESULT="#define NET_R_END_RESULT(x) /*empty*/"NET_R_END_RETURN="#define NET_R_END_RETURN void"],AC_TRY_COMPILE([#undef _REENTRANT#define _REENTRANT#undef __USE_MISC#define __USE_MISC#include <netdb.h>extern int endnetent_r(struct netent_data *);] ,[return (0);],[NET_R_END_RESULT="#define NET_R_END_RESULT(x) return (x)"NET_R_END_RETURN="#define NET_R_END_RETURN int"],AC_TRY_COMPILE([#undef _REENTRANT#define _REENTRANT#undef __USE_MISC#define __USE_MISC#include <netdb.h>extern void endnetent_r(struct netent_data *);] ,[return (0);],[NET_R_END_RESULT="#define NET_R_END_RESULT(x) /*empty*/"NET_R_END_RETURN="#define NET_R_END_RETURN void"],))),NET_R_END_RESULT="#define NET_R_END_RESULT(x) /*empty*/"NET_R_END_RETURN="#define NET_R_END_RETURN void")esacAC_SUBST(NET_R_END_RESULT)AC_SUBST(NET_R_END_RETURN)AC_CHECK_FUNC(getgrnam_r,,AC_DEFINE(NEED_GETGRNAM_R))AC_CHECK_FUNC(getgrgid_r,,AC_DEFINE(NEED_GETGRGID_R))AC_CHECK_FUNC(getgrent_r,AC_TRY_COMPILE([#include <grp.h>struct group *getgrent_r(struct group *grp, char *buffer, int buflen) {}] ,[return (0);],[GROUP_R_ARGS="#define GROUP_R_ARGS char *buf, int buflen"GROUP_R_BAD="#define GROUP_R_BAD NULL"GROUP_R_OK="#define GROUP_R_OK gptr"GROUP_R_RETURN="#define GROUP_R_RETURN struct group *"],),GROUP_R_ARGS="#define GROUP_R_ARGS char *buf, int buflen"GROUP_R_BAD="#define GROUP_R_BAD NULL"GROUP_R_OK="#define GROUP_R_OK gptr"GROUP_R_RETURN="#define GROUP_R_RETURN struct group *"AC_DEFINE(NEED_GETGRENT_R))AC_SUBST(GROUP_R_ARGS)AC_SUBST(GROUP_R_BAD)AC_SUBST(GROUP_R_OK)AC_SUBST(GROUP_R_RETURN)AC_CHECK_FUNC(endgrent_r,,GROUP_R_END_RESULT="#define GROUP_R_END_RESULT(x) /*empty*/"GROUP_R_END_RETURN="#define GROUP_R_END_RETURN void"GROUP_R_ENT_ARGS="#define GROUP_R_ENT_ARGS void"AC_DEFINE(NEED_ENDGRENT_R))AC_SUBST(GROUP_R_END_RESULT)AC_SUBST(GROUP_R_END_RETURN)AC_SUBST(GROUP_R_ENT_ARGS)AC_CHECK_FUNC(setgrent_r,,GROUP_R_SET_RESULT="#undef GROUP_R_SET_RESULT /*empty*/"GROUP_R_SET_RETURN="#define GROUP_R_SET_RETURN void"AC_DEFINE(NEED_SETGRENT_R))AC_SUBST(GROUP_R_SET_RESULT)AC_SUBST(GROUP_R_SET_RETURN)case $host inia64-hp-hpux11.*);;*)AC_CHECK_FUNC(gethostbyname_r,AC_TRY_COMPILE([#undef __USE_MISC#define __USE_MISC#include <netdb.h>struct hostent *gethostbyname_r(const char *name, struct hostent *hp, char *buf, int len, int *h_errnop) {}],[return (0);],[HOST_R_ARGS="#define HOST_R_ARGS char *buf, int buflen, int *h_errnop"HOST_R_BAD="#define HOST_R_BAD NULL"HOST_R_COPY="#define HOST_R_COPY buf, buflen"HOST_R_COPY_ARGS="#define HOST_R_COPY_ARGS char *buf, int buflen"HOST_R_ERRNO="#define HOST_R_ERRNO *h_errnop = h_errno"HOST_R_OK="#define HOST_R_OK hptr"HOST_R_RETURN="#define HOST_R_RETURN struct hostent *"HOST_R_SETANSWER="#undef HOST_R_SETANSWER"HOSTENT_DATA="#undef HOSTENT_DATA"],AC_TRY_COMPILE([#undef __USE_MISC#define __USE_MISC#include <netdb.h>int gethostbyname_r(const char *name, struct hostent *result, struct hostent_data *hdptr);],,[HOST_R_ARGS="#define HOST_R_ARGS struct hostent_data *hdptr"HOST_R_BAD="#define HOST_R_BAD (-1)"HOST_R_COPY="#define HOST_R_COPY hdptr"HOST_R_COPY_ARGS="#define HOST_R_COPY_ARGS HOST_R_ARGS"HOST_R_ERRNO="#undef HOST_R_ERRNO"HOST_R_OK="#define HOST_R_OK 0"HOST_R_RETURN="#define HOST_R_RETURN int"HOST_R_SETANSWER="#undef HOST_R_SETANSWER"HOSTENT_DATA="#define HOSTENT_DATA 1"],AC_TRY_COMPILE([#undef __USE_MISC#define __USE_MISC#include <netdb.h>extern int gethostbyname_r (const char *, struct hostent *, char *, size_t, struct hostent **, int *);],,[HOST_R_ARGS="#define HOST_R_ARGS char *buf, size_t buflen, struct hostent **answerp, int *h_errnop"HOST_R_BAD="#define HOST_R_BAD ERANGE"HOST_R_COPY="#define HOST_R_COPY buf, buflen"HOST_R_COPY_ARGS="#define HOST_R_COPY_ARGS char *buf, int buflen"HOST_R_ERRNO="#define HOST_R_ERRNO *h_errnop = h_errno"HOST_R_OK="#define HOST_R_OK 0"HOST_R_RETURN="#define HOST_R_RETURN int"HOST_R_SETANSWER="#define HOST_R_SETANSWER 1"HOSTENT_DATA="#undef HOSTENT_DATA"],))),HOST_R_ARGS="#define HOST_R_ARGS char *buf, int buflen, int *h_errnop"HOST_R_BAD="#define HOST_R_BAD NULL"HOST_R_COPY="#define HOST_R_COPY buf, buflen"HOST_R_COPY_ARGS="#define HOST_R_COPY_ARGS char *buf, int buflen"HOST_R_ERRNO="#define HOST_R_ERRNO *h_errnop = h_errno"HOST_R_OK="#define HOST_R_OK hptr"HOST_R_RETURN="#define HOST_R_RETURN struct hostent *"HOST_R_SETANSWER="#undef HOST_R_SETANSWER"HOSTENT_DATA="#undef HOSTENT_DATA")esacAC_SUBST(HOST_R_ARGS)AC_SUBST(HOST_R_BAD)AC_SUBST(HOST_R_COPY)AC_SUBST(HOST_R_COPY_ARGS)AC_SUBST(HOST_R_ERRNO)AC_SUBST(HOST_R_OK)AC_SUBST(HOST_R_RETURN)AC_SUBST(HOST_R_SETANSWER)AC_SUBST(HOSTENT_DATA)case $host inia64-hp-hpux11.*);;*)AC_CHECK_FUNC(endhostent_r,AC_TRY_COMPILE([#undef _REENTRANT#define _REENTRANT#undef __USE_MISC#define __USE_MISC#include <netdb.h>int endhostent_r(struct hostent_data *buffer);], ,HOST_R_END_RESULT="#define HOST_R_END_RESULT(x) return (x)"HOST_R_END_RETURN="#define HOST_R_END_RETURN int"HOST_R_ENT_ARGS="#define HOST_R_ENT_ARGS struct hostent_data *hdptr",AC_TRY_COMPILE([#undef _REENTRANT#define _REENTRANT#undef __USE_MISC#define __USE_MISC#include <netdb.h>extern void endhostent_r(struct hostent_data *ht_data);],[],[HOST_R_END_RESULT="#define HOST_R_END_RESULT(x)"HOST_R_END_RETURN="#define HOST_R_END_RETURN void"HOST_R_ENT_ARGS="#define HOST_R_ENT_ARGS struct hostent_data *hdptr"],AC_TRY_COMPILE([#undef _REENTRANT#define _REENTRANT#undef __USE_MISC#define __USE_MISC#include <netdb.h>extern void endhostent_r(void);],[],[HOST_R_END_RESULT="#define HOST_R_END_RESULT(x) /*empty*/"HOST_R_END_RETURN="#define HOST_R_END_RETURN void"HOST_R_ENT_ARGS="#undef HOST_R_ENT_ARGS /*empty*/"],))),HOST_R_END_RESULT="#define HOST_R_END_RESULT(x) /*empty*/"HOST_R_END_RETURN="#define HOST_R_END_RETURN void"HOST_R_ENT_ARGS="#undef HOST_R_ENT_ARGS /*empty*/")esac;AC_SUBST(HOST_R_END_RESULT)AC_SUBST(HOST_R_END_RETURN)AC_SUBST(HOST_R_ENT_ARGS)case $host inia64-hp-hpux11.*);;*)AC_CHECK_FUNC(sethostent_r,AC_TRY_COMPILE([#undef _REENTRANT#define _REENTRANT#undef __USE_MISC#define __USE_MISC#include <netdb.h>extern void sethostent_r(int flag, struct hostent_data *ht_data);],[],[HOST_R_SET_RESULT="#undef HOST_R_SET_RESULT /*empty*/"HOST_R_SET_RETURN="#define HOST_R_SET_RETURN void"],AC_TRY_COMPILE([#undef _REENTRANT#define _REENTRANT#undef __USE_MISC#define __USE_MISC#include <netdb.h>extern int sethostent_r(int flag, struct hostent_data *ht_data);],[],[HOST_R_SET_RESULT="#define HOST_R_SET_RESULT 0"HOST_R_SET_RETURN="#define HOST_R_SET_RETURN int"],AC_TRY_COMPILE([#undef _REENTRANT#define _REENTRANT#undef __USE_MISC#define __USE_MISC#include <netdb.h>void sethostent_r (int);],[],[HOST_R_SET_RESULT="#undef HOST_R_SET_RESULT"HOST_R_SET_RETURN="#define HOST_R_SET_RETURN void"],))),HOST_R_SET_RESULT="#undef HOST_R_SET_RESULT"HOST_R_SET_RETURN="#define HOST_R_SET_RETURN void")esacAC_SUBST(HOST_R_SET_RESULT)AC_SUBST(HOST_R_SET_RETURN)AC_MSG_CHECKING(struct passwd element pw_class)AC_TRY_COMPILE([#include <sys/types.h>#include <pwd.h>],[struct passwd *pw; pw->pw_class = "";],AC_MSG_RESULT(yes)AC_DEFINE(HAS_PW_CLASS), AC_MSG_RESULT(no))AC_TRY_COMPILE([#include <sys/types.h>#include <pwd.h>voidsetpwent(void) {}],[return (0);],SETPWENT_VOID="#define SETPWENT_VOID 1",SETPWENT_VOID="#undef SETPWENT_VOID")AC_SUBST(SETPWENT_VOID)AC_TRY_COMPILE([#include <sys/types.h>#include <grp.h>voidsetgrent(void) {}],[return (0);],SETGRENT_VOID="#define SETGRENT_VOID 1",SETGRENT_VOID="#undef SETGRENT_VOID")AC_SUBST(SETGRENT_VOID)case $host inia64-hp-hpux11.*);;*)AC_CHECK_FUNC(getnetgrent_r,AC_TRY_COMPILE([#undef __USE_MISC#define __USE_MISC#include <netdb.h>int getnetgrent_r(char **m, char **u, char **d, char *b, int l) {}],[return (0);],[NGR_R_ARGS="#define NGR_R_ARGS char *buf, int buflen"NGR_R_BAD="#define NGR_R_BAD (0)"NGR_R_COPY="#define NGR_R_COPY buf, buflen"NGR_R_COPY_ARGS="#define NGR_R_COPY_ARGS NGR_R_ARGS"NGR_R_OK="#define NGR_R_OK 1"NGR_R_RETURN="#define NGR_R_RETURN int"],
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -