configure.in 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. dnl Part of Scheme 48 1.9. See file COPYING for notices and license.
  2. dnl
  3. dnl Authors: Richard Kelsey, Jonathan Rees, Mike Sperber, Marcus
  4. dnl Crestani, Eric Knauel, David Frese, Ivan Shmakov, Taylor Campbell,
  5. dnl Will Noble
  6. dnl
  7. dnl Process this file with autoconf >= 2.60 to produce a configure script.
  8. dnl To do this, run:
  9. dnl env ACLOCAL="aclocal -I m4" autoreconf -v -i
  10. dnl
  11. AC_PREREQ([2.60])dnl
  12. dnl
  13. dnl We might want AC_WORDS_BIGENDIAN in the future.
  14. dnl We might want AC_CHAR_UNSIGNED in the future.
  15. dnl
  16. dnl
  17. dnl
  18. dnl
  19. AC_INIT(c/prescheme.h)
  20. AC_CONFIG_HEADER(c/sysdep.h)
  21. AC_CONFIG_HEADER(c/scheme48arch.h)
  22. AC_CANONICAL_HOST
  23. dnl set the cross-compile flag before we try anything.
  24. AC_TRY_RUN([int main() { return 0;}], [], [], [true])
  25. S48_CC
  26. S48_PICK_GC
  27. S48_ENABLE_FORCE_32BIT
  28. S48_DETERMINE_BITS_PER_BYTE
  29. S48_DETERMINE_POINTER_SIZE
  30. S48_DETERMINE_BIT_SUFFIX
  31. S48_ENABLE_UNIVERSAL_BINARY
  32. S48_OSX_ARCH_FLAGS($S48_BUILD_UNIVERSAL_P,$S48_FORCE_32_P)
  33. S48_PIC_OPTION_NAME
  34. S48_CREATE_BUILD_DIRS
  35. S48_LDFLAGS
  36. AC_ISC_POSIX
  37. AC_SYS_LARGEFILE
  38. S48_INLINE
  39. AC_PROG_INSTALL
  40. AC_CHECK_LIB(m, main)
  41. AC_CHECK_LIB(dl, main)
  42. AC_CHECK_LIB(mld, main)
  43. AC_CHECK_LIB(nsl, main)
  44. AC_CHECK_LIB(gen, main)
  45. AC_CHECK_LIB(socket, main)
  46. AC_CHECK_LIB(sun, getpwnam)
  47. S48_POSIX_LIBC
  48. S48_TM_GMTOFF
  49. AC_CONST
  50. AC_MSG_CHECKING(for socklen_t)
  51. AC_TRY_COMPILE([#include <sys/types.h>
  52. #include <sys/socket.h>
  53. socklen_t x;
  54. ],[],
  55. [AC_MSG_RESULT(yes)],
  56. [AC_TRY_COMPILE([#include <sys/types.h>
  57. #include <sys/socket.h>
  58. int accept (int,
  59. struct sockaddr *,
  60. size_t *);
  61. ],[],
  62. [AC_MSG_RESULT(size_t)
  63. AC_DEFINE(socklen_t,size_t)],
  64. [AC_MSG_RESULT(int)
  65. AC_DEFINE(socklen_t,int)])])
  66. AC_RETSIGTYPE
  67. AC_TYPE_UINTPTR_T
  68. AC_TYPE_UINT16_T
  69. AC_CHECK_HEADERS(libgen.h sys/timeb.h posix/time.h)
  70. AC_CHECK_HEADERS(sys/select.h)
  71. AC_CHECK_HEADERS(sysexits.h)
  72. AC_CHECK_HEADERS(langinfo.h)
  73. AC_CHECK_FUNC(nl_langinfo, [], [AC_LIBOBJ([c/fake/langinfo])])
  74. AC_CHECK_FUNCS(gettimeofday ftime select setitimer sigaction execvpe)
  75. AC_CHECK_HEADERS(poll.h)
  76. AC_CHECK_FUNCS(poll)
  77. S48_GLIB
  78. AC_CHECK_FUNCS(dlopen)
  79. AC_CHECK_FUNCS(socket chroot)
  80. AC_CHECK_FUNC(strerror,
  81. [AC_DEFINE(HAVE_STRERROR, 1,
  82. [Define to 1 if you have the `strerror'
  83. function.])],
  84. [AC_LIBOBJ([c/fake/strerror.o])])
  85. dnl Some idiot renamed `environ' as `__environ' in some versions of Linux.
  86. dnl POSIX says it's `environ'.
  87. AC_MSG_CHECKING([environ])
  88. AC_TRY_LINK([],
  89. [extern char **environ;
  90. if (environ)
  91. return 0;
  92. else
  93. return 1;],
  94. dnl Have `environ'
  95. [AC_DEFINE(ENVIRON_NAME,environ)
  96. AC_MSG_RESULT([using environ])],
  97. dnl Do not have `environ'
  98. [AC_TRY_LINK([],
  99. [extern char **__environ;
  100. if (__environ)
  101. return 0;
  102. else
  103. return 1;],
  104. dnl Have `__environ'
  105. [AC_DEFINE(ENVIRON_NAME,__environ)
  106. AC_MSG_RESULT([using __environ])],
  107. dnl Do not have `__environ'
  108. [AC_MSG_WARN([no environ variable found])
  109. AC_LIBOBJ([c/fake/environ.o])])])
  110. S48_IEEE_ENDIANNESS($S48_BUILD_UNIVERSAL_P)
  111. S48_NATIVE_CODE
  112. S48_DYNAMIC_EXTERNALS
  113. S48_PTHREADS
  114. S48_MISALIGNED_DOUBLES
  115. AC_SUBST(CFLAGS)
  116. AC_SUBST(CPPFLAGS)
  117. AC_SUBST(LDFLAGS)
  118. AC_SUBST(LD)
  119. AC_SUBST(DYNAMIC_EXTERNALS_CFLAGS)
  120. AC_SUBST(DYNAMIC_EXTERNALS_LDFLAGS)
  121. AC_SUBST(DYNAMIC_EXTERNALS_LDFLAGS_IN_PLACE)
  122. AC_SUBST(GC_OBJS)
  123. AC_SUBST(ADDITIONAL_EXTERNALS)
  124. AC_SUBST(ADDITIONAL_EXTERNAL_OBJS)
  125. AC_SUBST(BIT_SUFFIX)
  126. dnl More payload for Autoheader
  127. AH_TEMPLATE([ENVIRON_NAME],
  128. [Define to the name of the `environ' variable.])
  129. AH_TEMPLATE([HAVE_GLIB],
  130. [Define to 1 if you have the `glib' library.])
  131. AH_TEMPLATE([socklen_t],
  132. [Define to the type to be used instead of `socklen_t'
  133. if the system does not define the latter.])
  134. AH_BOTTOM([
  135. #include "fake/sigact.h"
  136. #include "fake/strerror.h"
  137. #include "fake/sys-select.h"
  138. #include "fake/environ.h"
  139. #include "fake/sysexits.h"
  140. #include "fake/langinfo.h"])
  141. AC_OUTPUT(Makefile)