home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 35 Internet / 35-Internet.zip / socks5v1.zip / configure.in < prev    next >
Text File  |  1999-08-02  |  10KB  |  255 lines

  1. AC_INIT(README)
  2. AC_PREREQ(2.4)
  3. AC_CONFIG_HEADER(include/config.h)
  4.  
  5. dnl Need these for some of the things we'll do in configure, so define them now
  6.  
  7. dnl We want to put the -g -O stuff from AC_PROG_CC in CDEBUG_FLAGS, not CFLAGS, so 
  8. dnl store the old ones...then switch back
  9.  
  10. OS=`uname -s`
  11. AC_PROG_ANSI_CC
  12. AC_PROG_GCC_TRADITIONAL
  13. AC_C_CONST
  14. AC_C_INLINE
  15.  
  16. echo
  17.  
  18. AC_PROG_RANLIB
  19. AC_PROG_INSTALL
  20. AC_CHECK_PROG(MAKED,    makedepend, makedepend, true)
  21. AC_CHECK_PROG(AUTOCONF, autoconf,   autoconf,   true)
  22. AC_CHECK_PROG(AUTOHDR,  autoheader, autoheader, true)
  23.  
  24. echo 
  25.  
  26. AC_CHECK_HEADERS(fcntl.h memory.h unistd.h string.h strings.h bstring.h varargs.h stdarg.h stdlib.h time.h syslog.h ifaddrs.h crypt.h)
  27. AC_CHECK_HEADERS(sys/stat.h sys/param.h sys/signal.h sys/resource.h sys/socket.h sys/uio.h sys/time.h sys/wait.h)
  28. AC_CHECK_HEADERS(sys/ttychars.h sys/ipc.h sys/bitypes.h sys/mbuf.h sys/sem.h sys/select.h)
  29. AC_CHECK_HEADERS(sys/file.h sys/ioctl.h sys/fcntl.h sys/filio.h sys/sockio.h)
  30. AC_CHECK_HEADERS(sys/termios.h sys/termio.h termios.h termio.h sys/un.h)
  31. AC_CHECK_HEADERS(netinet/in_systm.h net/route.h machine/endian.h paths.h nl_types.h)
  32. AC_HEADER_TIME
  33. AC_HEADER_STDC
  34. AC_HEADER_DIRENT
  35.  
  36.  
  37. echo
  38.  
  39. if test "$OS" != "IRIX"; then
  40. AC_CHECK_LIB(socket,  main)
  41. dnl usual lib for dlopen
  42. AC_CHECK_LIB(dl,      main)
  43. fi
  44. dnl AC_CHECK_LIB(sun,     main)
  45. dnl lib for HP's shl_load
  46. AC_CHECK_LIB(dld,     main)
  47. dnl AIX lib for dlopen
  48. AC_CHECK_LIB(svld,     main)
  49. AC_CHECK_LIB(termcap, setupterm, [TELNET_LIBS="$TELNET_LIBS -ltermcap"; TELNET_DEFS="$TELNET_DEFS -DHAVE_SETUPTERM"], 
  50.  AC_CHECK_LIB(curses, setupterm, [TELNET_LIBS="$TELNET_LIBS -lcurses"; TELNET_DEFS="$TELNET_DEFS -DHAVE_SETUPTERM"], 
  51.   AC_CHECK_LIB(ncurses, setupterm, [TELNET_LIBS="$TELNET_LIBS -lncurses"; TELNET_DEFS="$TELNET_DEFS -DHAVE_SETUPTERM"],
  52.    AC_CHECK_LIB(termcap, tgetent, [TELNET_LIBS="$TELNET_LIBS -ltermcap"],
  53.     AC_CHECK_LIB(curses, tgetent, [TELNET_LIBS="$TELNET_LIBS -lcurses"], 
  54.      AC_CHECK_LIB(ncurses, tgetent, [TELNET_LIBS="$TELNET_LIBS -lncurses"])
  55. )))))
  56. AC_CHECK_LIB(c,  gethostbyname, [STATIC_LIBS=""], AC_CHECK_LIB(resolv,  gethostbyname, [STATIC_LIBS="-lresolv"]))
  57.  
  58. AC_MSG_CHECKING(if we can use -lnsl)
  59. AC_CACHE_VAL(r_cv_use_libnsl, [AC_TRY_RUN(main() { if (gethostbyname("localhost")) exit(0); exit(-1); }, r_cv_use_libnsl=no, r_cv_use_libnsl=yes, r_cv_use_libnsl=yes)])
  60. AC_MSG_RESULT($r_cv_use_libnsl)
  61. if test "$r_cv_use_libnsl" = "yes"; then LIBS="$LIBS -lnsl"; fi
  62.  
  63. AC_CHECK_SHLIBS(libc libnsl libsocket libresolv libdgc)
  64. dnl just a trick to get these into include/config.h
  65. if test "yes" = "no"; then
  66. AC_DEFINE_UNQUOTED(LIBC_NAME)
  67. AC_DEFINE_UNQUOTED(LIBNSL_NAME)
  68. AC_DEFINE_UNQUOTED(LIBRESOLV_NAME)
  69. AC_DEFINE_UNQUOTED(LIBSOCKET_NAME)
  70. AC_DEFINE_UNQUOTED(LIBDGC_NAME)
  71. fi
  72.  
  73. echo
  74.  
  75. AC_TYPE_PID_T
  76. AC_TYPE_SIZE_T
  77. AC_TYPE_SIGNAL
  78. AC_SOCKADDR_SUN_LEN
  79.  
  80. AC_MSG_CHECKING(for sig_atomic_t)
  81. AC_CACHE_VAL(r_cv_type_sig_atomic_t,
  82. [AC_EGREP_CPP(sig_atomic_t, [
  83. #include <sys/types.h>
  84. #include <signal.h>
  85. #if HAVE_SYS_SIGNAL_H
  86. #include <sys/signal.h>
  87. #endif], r_cv_type_sig_atomic_t=yes, r_cv_type_sig_atomic_t=no)])dnl
  88. AC_MSG_RESULT($r_cv_type_sig_atomic_t)
  89. if test "$r_cv_type_sig_atomic_t" = "no"; then
  90. AC_DEFINE(sig_atomic_t, int)
  91. fi
  92.  
  93. AC_MSG_CHECKING(for cc_t)
  94. AC_CACHE_VAL(r_cv_have_cct, AC_TRY_LINK([cc_t],[#include <termio.h>],[cc_t foo;],r_cv_have_cct=yes,r_cv_have_cct=no))
  95. if test $r_cv_have_cct = no; then AC_DEFINE(NO_CC_T) fi
  96. AC_MSG_RESULT($r_cv_have_cct)
  97.  
  98. AC_MSG_CHECKING(for sig_t)
  99. AC_CACHE_VAL(r_cv_have_sigt, AC_TRY_LINK([#include <signal.h>], [sig_t i = (sig_t)0;], r_cv_have_sigt=yes, r_cv_have_sigt=no))
  100. if test "$r_cv_have_sigt" = "no"; then [FTPDEFS="$FTPDEFS -DCOMPAT"]; fi
  101. AC_MSG_RESULT($r_cv_have_sigt)
  102.  
  103. AC_CHECK_FUNC(getpassphrase, r_cv_have_getpassphrase=yes, r_cv_have_getpassphrase=no)
  104. if test "$r_cv_have_getpassphrase" = "yes"; then [FTPDEFS="$FTPDEFS -DHAVE_GETPASSPHRASE"]; fi
  105.  
  106. echo
  107.  
  108. AC_MSG_CHECKING(for sys_errlist)
  109. AC_CACHE_VAL(r_cv_have_sysel, AC_TRY_LINK(,[extern char **sys_errlist;char **foo = sys_errlist;], r_cv_have_sysel=yes, r_cv_have_sysel=no))
  110. if test "$r_cv_have_sysel" = "yes"; then AC_DEFINE(HAVE_SYSERRLIST) fi
  111. AC_MSG_RESULT($r_cv_have_sysel)
  112.  
  113. AC_CHECK_FUNCS(dlopen shl_load) 
  114.  
  115. saved_libs="$LIBS"
  116. LIBS="$LIBS $TELNET_LIBS"
  117. AC_CHECK_FUNCS(setupterm)
  118. AC_CHECK_FUNCS(tgetent)
  119. LIBS="$saved_libs"
  120.  
  121. AC_CHECK_FUNCS(gethostbyname2)
  122. AC_CHECK_FUNCS(gethostbyname_r gethostbyaddr_r getpwuid_r getservbyname_r)
  123. AC_CHECK_FUNCS(memset memcmp memmove strchr strrchr strdup strerror)
  124. AC_CHECK_FUNCS(bcopy bcmp bzero index rindex)
  125. AC_CHECK_FUNCS(setenv putenv unsetenv getenv)
  126. AC_CHECK_FUNCS(getdomainname rresvport sendmsg setsid setpgid setpgrp getifaddrs)
  127. AC_CHECK_FUNCS(waitpid flock dgettext sigaction sigprocmask)
  128. AC_CHECK_FUNCS(re_comp strspn getcwd vfork herror genget getopt)
  129. AC_VPRINTF
  130. AC_FUNC_SETPGRP
  131. AC_KERBEROS5
  132. AC_IDENT
  133.  
  134. echo
  135.  
  136. dnl If your path doesn't have these, some of the respective clients won't work.
  137. AC_PATH_PROG(ORIG_FINGER, finger)
  138. AC_PATH_PROG(TROUTEPROG,  traceroute)
  139. if test "$TROUTEPROG" != ""; then 
  140. AC_DEFINE_UNQUOTED(TROUTEPROG,  "$TROUTEPROG") 
  141. fi
  142. AC_PATH_PROG(PINGPROG, ping)
  143. if test "$PINGPROG" != "";  then 
  144. AC_DEFINE_UNQUOTED(PINGPROG, "$PINGPROG") 
  145. fi
  146.  
  147. echo
  148.  
  149. SRVPID_FILE="/tmp/socks5.pid"
  150. SRVCONF_FILE="/etc/socks5.conf"
  151. SRVIDT_FILE="/tmp/socks5.ident"
  152. LIBCONF_FILE="/etc/libsocks5.conf"
  153.  
  154. AC_ARG_WITH(debug,           --with-debug        Turn on debugging and compile time warnings,     [if test "$GCC" = "yes"; then CDEBUG_FLAGS="-g -Wall -Wno-comment"; else CDEBUG_FLAGS="-g"; fi])
  155. AC_ARG_WITH(static,          --with-static        Turn on static compiling,             [if test "$withval" != "yes"; then CC="$CC $withval" ; else CC="$CC -static" ;  fi])
  156. AC_ARG_WITH(threads,         --with-threads        Turn on threading in the server if possible, [threads="$withval"], [threads="no"])
  157. if test "$threads" != "no"; then
  158.         CFLAGS="$CFLAGS -D_THREAD_SAFE"
  159.     if test "$threads" != "yes"; then
  160.                 CFLAGS="$CFLAGS -D_THREAD_SAFE -I$threads/include"
  161.                 LDFLAGS="$LDFLAGS -L$threads/lib"
  162.     fi;
  163.     AC_DEFINE(USE_THREADS)
  164.     S5_CHECK_HEADERS(pthread.h, $threads)
  165. saved_libs="$LIBS"
  166.         AC_CHECK_LIB(pthreads, main, [LIBS="-lpthreads $LIBS";SERVER_LIBS="$SERVER_LIBS -lpthreads"])
  167.         AC_CHECK_LIB(pthread, main, [LIBS="-lpthread $LIBS";SERVER_LIBS="$SERVER_LIBS -lpthread"])
  168.         if test "$GCC" = "yes"; then
  169.             if test "$OS" = "AIX"; then
  170.                     SERVER_LIBS="$SERVER_LIBS -lc_r"
  171.                     EXTRA_LDFLAGS="-nostartfiles"
  172.                     EXTRA_OBJS="/lib/crt0_r.o"
  173.             fi;
  174.             if test "$OS" = "OSF1"; then
  175.                     SERVER_LIBS="$SERVER_LIBS -lmach -lc_r"
  176.             fi;
  177.             if test "$OS" = "HP-UX"; then
  178.                 case "$OSVER" in
  179.                 *10.*)
  180.                     SERVER_LIBS="$SERVER_LIBS -lcma -lc_r"
  181.             LIBS="-lcma -lc_r $LIBS"
  182.                 esac
  183.             fi;
  184.         fi;
  185.         AC_CHECK_FUNCS(pthread_create pthread_self pthread_exit)
  186.         AC_CHECK_FUNCS(pthread_attr_init pthread_attr_setscope)
  187.         AC_CHECK_FUNCS(pthread_attr_setdetachstate)
  188.         AC_CHECK_FUNCS(pthread_detach)
  189.         AC_CHECK_FUNCS(pthread_sigmask pthread_kill)
  190. LIBS="$saved_libs"
  191. fi
  192. AC_ARG_WITH(libconffile,     --with-libconffile=val    Set the location of the library config file,     [LIBCONF_FILE="$withval"]; AC_DEFINE_UNQUOTED(LIBCONF_FILE, "$withval"))
  193. AC_ARG_WITH(srvconffile,     --with-srvconffile=val    Set the location of the server config file,      [SRVCONF_FILE="$withval"]; AC_DEFINE_UNQUOTED(SRVCONF_FILE, "$withval"))
  194. AC_ARG_WITH(srvpidfile,      --with-srvpidfile=val    Set the location of the server pid file,         [SRVPID_FILE="$withval" ]; AC_DEFINE_UNQUOTED(SRVPID_FILE,  "$withval"))
  195. AC_ARG_WITH(srvidtfile,      --with-srvidtfile=val    Set the location of the server ident file,      [SRVIDT_FILE="$withval" ]; AC_DEFINE_UNQUOTED(SRVIDT_FILE,  "$withval"))
  196. AC_ARG_WITH(srvpwdfile,      --with-srvpwdfile=val    Set the location of the server password file,      [SRVPWD_FILE="$withval" ]; AC_DEFINE_UNQUOTED(SRVPWD_FILE,  "$withval"))
  197. AC_ARG_WITH(default-port,    --with-default-port=val     Set the default socks port,             [SOCKS_DEFAULT_PORT="$withval"]; AC_DEFINE_UNQUOTED(SOCKS_DEFAULT_PORT, $withval))
  198. AC_ARG_WITH(default-server,  --with-default-server=val     Set the default socks server,             AC_DEFINE_UNQUOTED(SOCKS_DEFAULT_SERVER, "$withval"))
  199. AC_ARG_WITH(default-version, --with-default-version=val    Set the default socks version,             AC_DEFINE_UNQUOTED(SOCKS_DEFAULT_VERSION, $withval))
  200. AC_ARG_WITH(syslog-facility, --with-syslog-facility=val Set the syslog facility for socks5,         syslog_fac="$withval")
  201. if test "$syslog_fac" != "no"; then
  202.     if test "$syslog_fac" = "yes" -o "$syslog_fac" = ""; then
  203.         syslog_fac=LOG_DAEMON
  204.     fi
  205.     AC_DEFINE_UNQUOTED(SYSLOG_FAC, $syslog_fac)
  206. fi
  207. AC_ARG_WITH(passwd,          --with-passwd=val          Turn on use of passwd file for passwords,        AC_DEFINE(USE_PASSWD))
  208. AC_ARG_WITH(shadow-passwd,          --with-shadow-passwd=val          Turn on use of shadow passwd file for passwords,        AC_DEFINE(USE_SHADOW_PASSWD))
  209.  
  210. AC_MAKE_SHAREDLIB
  211. AC_SUBST(SHLIB_LFLAGS)
  212. AC_SUBST(SHLIB_LIBS)
  213.  
  214. BINRM="/bin/rm -f"
  215. LIBS="$LIBS $STATIC_LIBS"
  216.  
  217. AC_SUBST(SOCKS_DEFAULT_PORT)
  218. AC_SUBST(SRVPID_FILE)
  219. AC_SUBST(SRVCONF_FILE)
  220. AC_SUBST(LIBCONF_FILE)
  221.  
  222. AC_SUBST(CDEBUG_FLAGS)
  223. AC_SUBST(LDFLAGS)
  224. AC_SUBST(CFLAGS)
  225. AC_SUBST(BINRM)
  226. AC_SUBST(LIBS)
  227. AC_SUBST(DEFS)
  228.  
  229. AC_SUBST(SERVER_DEFS)
  230. AC_SUBST(SERVER_LIBS)
  231. AC_SUBST(EXTRA_OBJS)
  232. AC_SUBST(EXTRA_LDFLAGS)
  233. AC_SUBST(EXPORT_LDFLAGS)
  234. AC_SUBST(TELNET_DEFS)
  235. AC_SUBST(TELNET_LIBS)
  236. AC_SUBST(FTPDEFS)
  237.  
  238. AC_OUTPUT(Makefile
  239.     lib/Makefile
  240.     test/Makefile
  241.     shlib/Makefile
  242.     shlib/runsocks
  243.     server/Makefile
  244.     server/stopsocks
  245.     include/Makefile
  246.     clients/Makefile
  247.     clients/pt/Makefile
  248.     clients/ftp/Makefile 
  249.     clients/finger/Makefile
  250.     clients/archie/Makefile 
  251.     clients/telnet/Makefile
  252.     clients/telnet/libtelnet/Makefile
  253.     stamp-h)
  254.  
  255.