configure.in 4.5 KB

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