📄 configure.in
字号:
ISC_LWRES_GETHOSTBYADDRVOID="#undef ISC_LWRES_GETHOSTBYADDRVOID"])AC_SUBST(ISC_LWRES_GETHOSTBYADDRVOID)AC_MSG_CHECKING(for h_errno in netdb.h)AC_TRY_COMPILE([#include <netdb.h>],[h_errno = 1; return(0);], [AC_MSG_RESULT(yes) ISC_LWRES_NEEDHERRNO="#undef ISC_LWRES_NEEDHERRNO"], [AC_MSG_RESULT(no) ISC_LWRES_NEEDHERRNO="#define ISC_LWRES_NEEDHERRNO 1"])AC_SUBST(ISC_LWRES_NEEDHERRNO)AC_CHECK_FUNC(getipnodebyname, [ISC_LWRES_GETIPNODEPROTO="#undef ISC_LWRES_GETIPNODEPROTO"], [ISC_LWRES_GETIPNODEPROTO="#define ISC_LWRES_GETIPNODEPROTO 1"])AC_CHECK_FUNC(getnameinfo, [ISC_LWRES_GETNAMEINFOPROTO="#undef ISC_LWRES_GETNAMEINFOPROTO"], [ISC_LWRES_GETNAMEINFOPROTO="#define ISC_LWRES_GETNAMEINFOPROTO 1"])AC_CHECK_FUNC(getaddrinfo, [ISC_LWRES_GETADDRINFOPROTO="#undef ISC_LWRES_GETADDRINFOPROTO" AC_DEFINE(HAVE_GETADDRINFO)], [ISC_LWRES_GETADDRINFOPROTO="#define ISC_LWRES_GETADDRINFOPROTO 1"])AC_CHECK_FUNC(gai_strerror, AC_DEFINE(HAVE_GAISTRERROR))AC_SUBST(ISC_LWRES_GETIPNODEPROTO)AC_SUBST(ISC_LWRES_GETADDRINFOPROTO)AC_SUBST(ISC_LWRES_GETNAMEINFOPROTO)AC_CHECK_FUNC(pselect, [NEED_PSELECT="#undef NEED_PSELECT"], [NEED_PSELECT="#define NEED_PSELECT"])AC_SUBST(NEED_PSELECT)AC_CHECK_FUNC(gettimeofday, [NEED_GETTIMEOFDAY="#undef NEED_GETTIMEOFDAY"], [NEED_GETTIMEOFDAY="#define NEED_GETTIMEOFDAY 1"])AC_SUBST(NEED_GETTIMEOFDAY)AC_CHECK_FUNC(strndup, [HAVE_STRNDUP="#define HAVE_STRNDUP 1"], [HAVE_STRNDUP="#undef HAVE_STRNDUP"])AC_SUBST(HAVE_STRNDUP)## Look for a sysctl call to get the list of network interfaces.#AC_MSG_CHECKING(for interface list sysctl)AC_EGREP_CPP(found_rt_iflist, [#include <sys/param.h>#include <sys/sysctl.h>#include <sys/socket.h>#ifdef NET_RT_IFLISTfound_rt_iflist#endif], [AC_MSG_RESULT(yes) AC_DEFINE(HAVE_IFLIST_SYSCTL)], [AC_MSG_RESULT(no)])## Check for some other useful functions that are not ever-present.#AC_CHECK_FUNC(strsep, [ISC_PLATFORM_NEEDSTRSEP="#undef ISC_PLATFORM_NEEDSTRSEP"], [ISC_PLATFORM_NEEDSTRSEP="#define ISC_PLATFORM_NEEDSTRSEP 1"])AC_CHECK_FUNC(vsnprintf, [ISC_PLATFORM_NEEDVSNPRINTF="#undef ISC_PLATFORM_NEEDVSNPRINTF"], [ISC_EXTRA_OBJS="$ISC_EXTRA_OBJS print.$O" ISC_EXTRA_SRCS="$ISC_EXTRA_SRCS print.c" ISC_PLATFORM_NEEDVSNPRINTF="#define ISC_PLATFORM_NEEDVSNPRINTF 1"])AC_SUBST(ISC_PLATFORM_NEEDSTRSEP)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))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"],)))),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")case "$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)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")AC_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)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="#define HOST_R_ERRNO NULL"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")AC_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)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*/")AC_SUBST(HOST_R_END_RESULT)AC_SUBST(HOST_R_END_RETURN)AC_SUBST(HOST_R_ENT_ARGS)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")AC_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>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -