📄 configure.in
字号:
dnl Use autoconf on this directory to produce configure scriptdnl Use autoheader on this file to produce config.h.indnl Then use configure script to generate makefile from Makefile.inAC_INIT(sockstream.h) dnl a distinct socket++ fileAC_CONFIG_HEADER(config.h)dnl check for programsAC_PROG_MAKE_SETAC_PROG_CCAC_PROG_CXXif test $ac_cv_prog_gxx = yes; then dnl check if g++ version is greater than or equal to 2.7.2 AC_MSG_CHECKING(whether g++ version is >= 2.7.2) AC_CACHE_VAL(socketxx_cv_gxx_ver, [ socketxx_gxx_version=`eval "$CXX --version"` oldifs=$IFS IFS='.-qab' set $socketxx_gxx_version IFS=$oldifs socketxx_cv_gxx_ver=`eval "expr $1 \* 10000 + $2 \* 100 + $3"`]) if test $socketxx_cv_gxx_ver -ge 20702; then AC_MSG_RESULT(yes) else AC_MSG_RESULT(no) AC_MSG_ERROR(g++ version $socketxx_gxx_version < 2.7.2) fi dnl add exception handling flag to g++ compiler dnl exception handling does not work with -O CXXFLAGS="-g -fhandle-exceptions" dnl add runtime type identification flag to g++ dnl CXXFLAGS="$CXXFLAGS -frtti" dnl libg++ is compiled without rtti thus we should not use rtti CXXFLAGS="$CXXFLAGS -fno-rtti"fiAC_PROG_RANLIBAC_CHECK_PROG(MAKEDEPEND, makedepend, makedepend, :) dnl not a smiley :(AC_PROG_CPP dnl later macros will use itAC_PROG_CXXCPP dnl later macros will use itAC_AIXdnl check for librariesAC_CHECK_LIB(nsl, t_accept, NETWORK_LIBS="$NETWORK_LIBS -lnsl")AC_CHECK_LIB(socket, socket, NETWORK_LIBS="$NETWORK_LIBS -lsocket")AC_SUBST(NETWORK_LIBS)dnl check for header filesAC_LANG_SAVEAC_LANG_CPLUSPLUSAC_CHECK_HEADERS(string.h memory.h)AC_CHECK_HEADER(_G_config.h, AC_DEFINE(_S_LIBGXX))AC_LANG_RESTOREAC_HEADER_SYS_WAITdnl check for typedefsAC_PID_Tdnl check for structuresdnl check for compiler characteristicsAC_SUBST(CXX_INCLUDE_PATH)AC_SUBST(CFLAGS)AC_SUBST(CXXFLAGS)AC_SUBST(LDFLAGS)dnl check for library functions and global variablesAC_RETSIGTYPEAC_FUNC_VFORKAC_HAVE_FUNCS(select)AC_MSG_CHECKING(for sys_siglist)AC_CACHE_VAL(socketxx_cv_siglist, [AC_TRY_LINK([# include <unistd.h># include <sys/signal.h>], [#ifndef _sys_siglist extern char* _sys_siglist[];#endif puts(*_sys_siglist);],socketxx_cv_siglist=_sys_siglist,socketxx_cv_siglist=sys_siglist) ])AC_DEFINE_UNQUOTED(SYS_SIGLIST, $socketxx_cv_siglist)AC_MSG_RESULT($socketxx_cv_siglist)AC_MSG_CHECKING(for sys_errlist)AC_CACHE_VAL(socketxx_cv_errlist, [AC_TRY_LINK([# include <errno.h># include <unistd.h>], [#ifndef _sys_errlist extern char* _sys_errlist[];#endif puts(*_sys_errlist);],socketxx_cv_errlist=_sys_errlist,socketxx_cv_errlist=sys_errlist) ])AC_DEFINE_UNQUOTED(SYS_ERRLIST, $socketxx_cv_errlist)AC_MSG_RESULT($socketxx_cv_errlist)AC_MSG_CHECKING(for sys_errlist prototype)AC_CACHE_VAL(socketxx_cv_errlist_proto, [AC_LANG_SAVEAC_LANG_CPLUSPLUSAC_TRY_COMPILE( [#include <errno.h>#include <unistd.h>#include <stdlib.h>#include <stdio.h>], [ puts (*$socketxx_cv_errlist);],socketxx_cv_errlist_proto=yes,socketxx_cv_errlist_proto=no) ])AC_LANG_RESTOREif test $socketxx_cv_errlist_proto = yes; then AC_DEFINE(SYS_ERRLIST_DECLARED)fiAC_MSG_RESULT($socketxx_cv_errlist_proto)AC_MSG_CHECKING(for signal handler arg type)AC_CACHE_VAL(socketxx_cv_sighnd_argtype, [AC_LANG_SAVEAC_LANG_CPLUSPLUSAC_TRY_COMPILE([# include <unistd.h># include <sys/signal.h> void sigh (int s, int c, void* p, void* a) {} ], [ typedef RETSIGTYPE (*funcptr) (...); struct sigaction sa; sa.sa_handler = funcptr (&sigh); ], socketxx_cv_sighnd_argtype=..., AC_TRY_COMPILE([# include <unistd.h># include <sys/signal.h> void sigh (int s, int c, void* p, void* a); ], [ typedef RETSIGTYPE (*funcptr) (int); struct sigaction sa; sa.sa_handler = funcptr (&sigh); ], socketxx_cv_sighnd_argtype=int, socketxx_cv_sighnd_argtype=void)) ])AC_LANG_RESTOREAC_DEFINE_UNQUOTED(SIGHND_ARGTYPE, $socketxx_cv_sighnd_argtype)AC_MSG_RESULT($socketxx_cv_sighnd_argtype)dnl the following check was provided bydnl Blair Zajac <blair@olympia.gps.caltech.edu>AC_MSG_CHECKING(if extern \"C\" wrappers are needed)AC_CACHE_VAL(bz_cv_cplusplus_needexternCwrapper, [AC_LANG_SAVEAC_LANG_CPLUSPLUSAC_TRY_LINK([# include <string.h># include <stdio.h>], [ char buf[100]; strcpy(buf, "Hello world\n");], bz_cv_cplusplus_needexternCwrapper=no, bz_cv_cplusplus_needexternCwrapper=yes)])AC_LANG_RESTOREif test $bz_cv_cplusplus_needexternCwrapper = no; then AC_DEFINE(EXTERN_C_BEGIN,) AC_DEFINE(EXTERN_C_END,)else AC_DEFINE(EXTERN_C_BEGIN, extern "C" {) AC_DEFINE(EXTERN_C_END, })fiAC_MSG_RESULT($bz_cv_cplusplus_needexternCwrapper)dnl check for systemdnl generate output filesAC_OUTPUT(Makefile test/Makefile)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -