configure.in
上传用户:zbbssh
上传日期:2007-01-08
资源大小:196k
文件大小:10k
源码类别:

CA认证

开发平台:

C/C++

  1. dnl This file in input to autoconf.  It consists of a series of m4
  2. dnl macros which expand to produce the shell script "configure".
  3. dnl Anything which is not an m4 macro is copied directly to the output.
  4. dnl
  5. dnl Start things up.  If the specified file doesn't exist, configure
  6. dnl will complain.
  7. AC_INIT(lbn16.c)
  8. dnl The following tests need to know that we intend to produce a config.h
  9. dnl file, even though this won't expand to any shell script code until
  10. dnl AC_OUTPUT time.  Name it config.hin to avoid MS-LOSS.
  11. AC_CONFIG_HEADER(config.h:config.hin)
  12. dnl Checks for programs.
  13. # Find a compiler to use.
  14. # Check 1) The $CC environment varaible, 2) gcc, 3) acc, and 4) cc.
  15. dnl This used to be just AC-CHECK-PROGS(CC, gcc acc, cc), but...
  16. # This deals with brain-damaged Sun systems that place a bogus cc or
  17. # acc executable in the $PATH, which just prints an error and exit.
  18. # We deal with this by actually trying to compile a trivial test program.
  19. if eval "test "`echo '$''{'ac_cv_prog_CC'+set}'`" = set"; then
  20.   AC_MSG_CHECKING(For C compiler (cached))
  21.   CC="$ac_cv_prog_CC"
  22.   AC_MSG_RESULT($CC)
  23. elif test -n "$CC"; then
  24.   ac_cv_prog_CC="$CC" # Let the user override the test.
  25.   AC_MSG_CHECKING(For C compiler)
  26.   AC_MSG_RESULT($CC)
  27. else
  28.   IFS="${IFS=  }"; ac_save_ifs="$IFS"; IFS="${IFS}:"
  29.   echo 'main(){return 0;}' > conftest.$ac_ext
  30.   for ac_prog in gcc acc cc; do
  31. # Extract the first word of "$ac_prog", so it can be a program name with args.
  32.     set dummy $ac_prog; ac_word=$2
  33.     AC_MSG_CHECKING(for $ac_word)
  34.     for ac_dir in $PATH; do
  35.       test -z "$ac_dir" && ac_dir=.
  36.       if test -x "$ac_dir/$ac_word"; then
  37.         CC="$ac_prog"
  38.         if eval $ac_compile; then
  39.           ac_cv_prog_CC="$ac_prog"
  40.         fi
  41.         break
  42.       fi
  43.     done
  44.     CC="$ac_cv_prog_CC"
  45.     if test -n "$CC"; then
  46.       AC_MSG_RESULT($ac_dir/$CC)
  47.       break;
  48.     fi
  49.     AC_MSG_RESULT(no)
  50.   done
  51.   if test ! -n "$CC"; then
  52.     AC_MSG_ERROR(no C compiler found)
  53.   fi
  54.   IFS="$ac_save_ifs"
  55.   rm -f conftest*
  56. fi
  57. AC_SUBST(CC)
  58. AC_CACHE_CHECK(whether we are using GNU CC, ac_cv_prog_gcc,
  59. [dnl The semicolon is to pacify NeXT's syntax-checking cpp.
  60. cat > conftest.c <<EOF
  61. #ifdef __GNUC__
  62.   yes;
  63. #endif
  64. EOF
  65. if ${CC-cc} -E conftest.c 2>&AC_FD_CC | egrep yes >/dev/null 2>&1; then
  66.   ac_cv_prog_gcc=yes
  67. else
  68.   ac_cv_prog_gcc=no
  69. fi])
  70. if test $ac_cv_prog_gcc = yes; then
  71.   if test "${CFLAGS+set}" != set; then
  72. AC_CACHE_CHECK(whether ${CC-cc} accepts -g, ac_cv_prog_gcc_g,
  73. [echo 'void f(){}' > conftest.c
  74. if test -z "`${CC-cc} -g -c conftest.c 2>&1`"; then
  75.   ac_cv_prog_gcc_g=yes
  76. else
  77.   ac_cv_prog_gcc_g=no
  78. fi
  79. rm -f conftest*
  80. ])
  81.   fi
  82.   # If we're using GCC, perform some Deep Magic to enable the result to
  83.   # link cleanly with code compiled with a compiler that doesn't understand
  84.   # GCC's support library (-lgcc).  Do a link, to relocatable object form,
  85.   # with just -lgcc.  If it's not GCC, do the normal -c thing.
  86.   # These substitutions are used in the Makefile to force that behaviour.
  87.   GCCMAGIC1='-Wl,-r -nostdlib'
  88.   GCCMAGIC2=-lgcc
  89. else
  90.   GCCMAGIC1=-c
  91.   GCCMAGIC2=
  92. fi
  93. AC_SUBST(GCCMAGIC1)
  94. AC_SUBST(GCCMAGIC2)
  95. # Now, figure out the CFLAGS we want.  If the user didn't *ask*
  96. # for CFLAGS, we're going to use some ideas of our own.
  97. if test "$(CFLAGS+set)" != set; then
  98. # First, remember one useful thing that was just figured out,
  99. # namely whether the compiler can take -g with -O.  (Most compilers
  100. # seem to do the opposite of what I want here - if you give both, -g
  101. # overrides and disables optimization.)  This is only done for
  102. # gcc at the moment, and the no/yes combination is possible but
  103. # misleading
  104. if test $ac_cv_prog_gcc$ac_cv_prog_gcc_g = yesyes; then
  105.   CFLAGS=-g
  106. else
  107.   CFLAGS=""
  108. fi
  109. # Now, the whole raison d'e^tre of this library is that it's *fast*.
  110. # So we are *not* happy with autoconf's normal conservative compilation
  111. # flags.  Try to figure out what kind the compiler we're using and soup
  112. # things up a bit.  Also turn on warnings if possible.
  113. # If it's GCC, crank up optimization to -O6, and try to add some
  114. # -m options, too.
  115. # Otherwise, it gets even more ad-hoc, but the test below works for the
  116. # SunPro C compiler and cranks it up to maximum optimization.
  117. dnl
  118. dnl Note that the situation here is actually *worse* than the usual
  119. dnl CPU-COMPANY-SYSTEM system type can detect, because it depends on
  120. dnl the C compiler.  For example, all of the options below (as of the
  121. dnl time this is written) are available on a single machine!
  122. dnl Using compiler-specific checks rather than config.guess seems
  123. dnl entirely appropriate here.
  124. AC_MSG_CHECKING(for useful tuning options ($TUNE))
  125. if test $ac_cv_prog_gcc = yes; then
  126.   : ${WARN="-Wall -W -Wshadow -Wpointer-arith -Wmissing-prototypes -Wwrite-strings"}
  127.   if test "${TUNE+set}" != set; then
  128.     TUNE=-O6
  129.     case `$CC -v 2>&1` in
  130.     *gcc-lib/sparc-*)
  131. # Try to use the architecture-detecting tool with SunPro CC.
  132. if bn_tune=`(fpversion -foption) 2>/dev/null`; then
  133.   if test "$bn_tune" = xcg92 || test "$bn_tune" = cg92; then
  134.     TUNE="$TUNE -mv8"
  135.   elif test "$bn_tune" != xcg89 && test "$bn_tune" != cg89; then
  136.     TUNE="$TUNE -mv8"
  137.     bn_tune_guess=yes
  138.   fi
  139. else
  140.   TUNE="$TUNE -mv8"
  141.   bn_tune_guess=yes
  142. fi
  143.     esac
  144.   fi
  145. elif $CC -flags 2>&1 | grep SunSoft >/dev/null 2>&1; then
  146.   if test "${WARN+set}" != set; then
  147.     if $CC -flags 2>&1 | grep 'checking' | grep '^-vc' > /dev/null 2>&1; then
  148.       WARN=-vc
  149.     elif $CC -flags 2>&1 | grep 'checking' | grep '^-v ' > /dev/null 2>&1; then
  150.       WARN=-v
  151.     fi
  152.     if $CC -flags 2>&1 | grep '^-xstrconst' > /dev/null 2>&1; then
  153.       WARN="${WARN}${WARN+ }-xstrconst"
  154.     fi
  155.   fi
  156.   # SunPro C compiler - now grok version and platform
  157.   if test "${TUNE+set}" != set; then
  158.     if $CC -flags 2>&1 | grep '^-xO.*5' >/dev/null 2>&1; then
  159.       TUNE=-xO5
  160.     else
  161.       TUNE=-xO4
  162.     fi
  163.     # Architecture: -native iv avail., else as fpversion says, else guess -mv8
  164.     if $CC -flags 2>&1 | grep '^-native' >/dev/null 2>&1; then
  165.       TUNE="$TUNE -native"
  166.     elif bn_tune=`(fpversion -foption) 2>/dev/null`; then
  167.       TUNE="$TUNE -$bn_tune"
  168.     elif $CC -flags 2>&1 | grep '^-xcg92' >/dev/null 2>&1; then
  169.       TUNE="$TUNE -xcg92"
  170.       bn_tune_guess=yes
  171.     fi
  172.   fi
  173. fi
  174. bn_tune_set=${TUNE+set}
  175. # If nothing better is available, turn on -O
  176. : ${TUNE=-O}
  177. AC_MSG_RESULT(${TUNE-none})
  178. if test "$bn_tune_set" != set; then
  179.   AC_MSG_WARN(not optimizing heavily - try setting $CFLAGS)
  180. elif test "$bn_tune_guess" = yes; then
  181.   AC_MSG_WARN([architecture guessed.  If incorrect, use explicit $TUNE.])
  182. fi
  183. AC_MSG_CHECKING(for useful warning options ($WARN))
  184. AC_MSG_RESULT(${WARN-none})
  185. fi 
  186. # ^^ End of "$(CFLAGS+set)" != set condition
  187. AC_SUBST(TUNE)
  188. AC_SUBST(WARN)
  189. # Find "ranlib".  Sone systems don't have or need ranlib.  If so,
  190. # ":" (do nothing) is used instead.
  191. AC_PROG_RANLIB
  192. dnl Checks for libraries.
  193. dnl (we don't have any)
  194. dnl Checks for header files.
  195. AC_HEADER_STDC
  196. if test $ac_cv_header_stdc = yes; then
  197.   AC_DEFINE(HAVE_ASSERT_H)
  198.   AC_DEFINE(HAVE_LIMITS_H)
  199.   AC_DEFINE(HAVE_STDLIB_H)
  200.   AC_DEFINE(HAVE_STRING_H)
  201. else # If non-ANSI, check for other brokenness.
  202. AC_CHECK_HEADERS(assert.h limits.h stdlib.h string.h)
  203. # Do we want to include memory.h?
  204. if test $ac_cv_header_string_h = no; then
  205. AC_CHECK_HEADERS(strings.h)
  206. ac_found=no
  207. else
  208. AC_MSG_CHECKING(whether string.h declares mem functions)
  209. AC_EGREP_HEADER(memset, string.h, ac_found=yes, ac_found=no)
  210. AC_MSG_RESULT($ac_found)
  211. fi
  212. # ac_found is now "yes" if string.h exists and declares the mem*
  213. # functions.  If not, see if memory.h exists and include that
  214. # as well.
  215. if test $ac_found = no; then
  216. AC_CHECK_HEADER(memory,h. [AC_DEFINE(NEED_MEMORY_H)])
  217. fi
  218. AC_CACHE_CHECK(whether <stdio.h> provides prototypes,
  219. bn_cv_header_stdio_protos,
  220. [AC_EGREP_HEADER(printf, stdio.h, bn_cv_header_stdio_protos=yes, bn_cv_header_stdio_protos=no)
  221. ])
  222. if test $bn_cv_header_stdio_protos = no; then
  223.   AC_DEFINE(NO_STDIO_PROTOS)
  224. fi
  225. fi
  226. # ^^ End of non-ANSI header brokenness tests (first part)
  227. AC_CACHE_CHECK(whether <string.h> declares mem* wrong.,
  228. bn_cv_header_mem_broken,
  229. [AC_EGREP_HEADER(memcpy.*char, string.h, bn_cv_header_mem_broken=yes, bn_cv_header_mem_broken=no)
  230. ])
  231. if test $bn_cv_header_mem_broken = yes; then
  232.   AC_DEFINE(MEM_PROTOS_BROKEN)
  233. fi
  234. # SunOS 4.1.x acc's <assert.h> is broken
  235. AC_CACHE_CHECK(whether <assert.h> is broken and needs <stdio.h>,
  236. bn_cv_header_assert_needs_stdio,
  237. [AC_EGREP_CPP(stderr,
  238. [#include <assert.h>
  239. assert(foo)
  240. ], bn_cv_header_assert_needs_stdio=yes, bn_cv_header_assert_needs_stdio=no)
  241. ])
  242. if test $bn_cv_header_assert_needs_stdio = yes; then
  243.   AC_DEFINE(ASSERT_NEEDS_STDIO)
  244. fi
  245. AC_CACHE_CHECK(whether <assert.h> is broken and needs <stdlib.h>,
  246. bn_cv_header_assert_needs_stdlib,
  247. [AC_EGREP_CPP(exit,
  248. [#include <assert.h>
  249. assert(foo)
  250. ], bn_cv_header_assert_needs_stdlib=yes, bn_cv_header_assert_needs_stdlib=no)
  251. ])
  252. if test $bn_cv_header_assert_needs_stdlib = yes; then
  253.   AC_DEFINE(ASSERT_NEEDS_STDLIB)
  254. fi
  255. # Check that we have <sys/time.h> explicitly.
  256. AC_CHECK_HEADERS(sys/time.h)
  257. AC_HEADER_TIME
  258. dnl Checks for typedefs, structures, and compiler characteristics.
  259. # Verify that the compiler supports const, and that it works.
  260. # A number of compilers sort of support const, but they have bugs
  261. # that will prevent valid programs from compiling.
  262. AC_C_CONST
  263. # See if we have size_t.  (If not, define it as unsigned.)
  264. AC_TYPE_SIZE_T
  265. dnl Checks for library functions.
  266. AC_CHECK_FUNCS(clock_gettime gethrvtime getrusage)
  267. dnl The following are for real-time clocks only as of yet.
  268. dnl AC_CHECK_FUNCS(clock_getres gethrtime gettimeofday getitimer setitimer ftime)
  269. # If we don't have ANSI C, see if a few functions are missing that
  270. # we've noticed the lack of before.
  271. if test $ac_cv_header_stdc = yes; then
  272.   AC_DEFINE(HAVE_CLOCK)
  273.   AC_DEFINE(HAVE_TIME)
  274.   AC_DEFINE(HAVE_MEMMOVE)
  275.   AC_DEFINE(HAVE_MEMCPY)
  276. else
  277. AC_CHECK_FUNCS(clock time memmove memcpy)
  278. fi
  279. # ^^ End of non-ANSI header brokenness tests (second part)
  280. # The big bang!  Produce the output files.  This is config.cache, and
  281. # config.status, which builds the config.h file and a long list of
  282. # Makefiles.
  283. dnl The value specified to AC_CONFIG_HEADER at the top if the file is
  284. dnl used here to produce config.h.
  285. AC_OUTPUT(Makefile)